:root{--bg:#08090a;--panel:#0f1011;--surface:#191a1b;--surface-2:#28282c;--surface-3:#23252a;--text:#f7f8f8;--text-2:#d0d6e0;--text-3:#8a8f98;--text-4:#62666d;--accent:#5e6ad2;--accent-bright:#7170ff;--accent-hover:#828fff;--accent-muted:#7a7fad;--green:#27a644;--emerald:#10b981;--amber:#f5a623;--red:#e5484d;--red-hover:#f2555a;--blue:#4e8be6;--border:#ffffff14;--border-subtle:#ffffff0d;--border-strong:#ffffff29;--border-solid:#23252a;--r-sm:4px;--r-md:6px;--r-lg:8px;--r-xl:12px;--r-2xl:22px;--r-full:9999px;--shadow-sm:#00000008 0px 1.2px 0px 0px;--shadow-md:#0006 0px 2px 4px;--shadow-lg:#0000 0px 8px 2px, #00000003 0px 5px 2px, #0000000a 0px 3px 2px, #00000012 0px 1px 1px, #00000014 0px 0px 1px;--shadow-inset:#0003 0px 0px 12px 0px inset;--overlay:#000000d9;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-7:28px;--s-8:32px;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-tiny:10px;--fs-micro:11px;--fs-label:12px;--fs-caption:13px;--fs-sm:14px;--fs-body:15px;--fs-base:16px;--fs-h3:20px;--fs-h2:24px;--fs-h1:32px;--fw-regular:400;--fw-medium:500;--fw-semibold:600}*,:before,:after{box-sizing:border-box}*{margin:0}html,body{height:100%}body{font-family:var(--font-sans);font-size:var(--fs-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-feature-settings:"cv01", "ss03";line-height:1.5}img,svg{max-width:100%;display:block}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}a{color:var(--accent-bright);text-decoration:none}a:hover{color:var(--accent-hover)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border:2px solid var(--bg);background:#ffffff1a;border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:#ffffff2e}::selection{background:#7170ff59}:focus-visible{outline:2px solid var(--accent-bright);outline-offset:1px;border-radius:var(--r-md)}h1,h2,h3,h4{font-weight:var(--fw-medium);letter-spacing:-.02em;line-height:1.2}h1{font-size:var(--fs-h1);letter-spacing:-.022em}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3);font-weight:var(--fw-semibold)}.text-2{color:var(--text-2)}.text-3{color:var(--text-3)}.text-4{color:var(--text-4)}.mono{font-family:var(--font-mono);font-size:.92em}.icon{stroke:currentColor;fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.icon--sm{width:14px;height:14px}.icon--lg{width:20px;height:20px}.divider{border:none;border-top:1px solid var(--border-subtle);margin:var(--s-4) 0}.divider--strong{border-top-color:var(--border)}.kbd{min-width:20px;height:20px;font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--text-2);border:1px solid var(--border);border-radius:var(--r-sm);background:#ffffff0a;border-bottom-width:2px;justify-content:center;align-items:center;padding:0 5px;line-height:1;display:inline-flex}.btn{height:32px;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-2);border:1px solid var(--border);border-radius:var(--r-md);white-space:nowrap;-webkit-user-select:none;user-select:none;background:#ffffff0a;justify-content:center;align-items:center;gap:6px;padding:0 12px;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.btn:hover{color:var(--text);background:#ffffff14}.btn:active{background:#ffffff1a}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn--primary{background:var(--accent);color:#fff;border-color:#0000}.btn--primary:hover{background:var(--accent-hover);color:#fff}.btn--danger{color:var(--red);border-color:#e5484d59}.btn--danger:hover{color:var(--red-hover);background:#e5484d24}.btn--danger.btn--primary{background:var(--red);color:#fff;border-color:#0000}.btn--danger.btn--primary:hover{background:var(--red-hover)}.btn--ghost{color:var(--text-2);background:0 0;border-color:#0000}.btn--ghost:hover{color:var(--text);background:#ffffff0f}.btn--subtle{color:var(--text-2);background:#ffffff05}.btn--sm{height:26px;font-size:var(--fs-caption);border-radius:var(--r-sm);padding:0 8px}.btn--lg{height:40px;font-size:var(--fs-base);padding:0 16px}.btn--block{width:100%}.btn--icon{border-radius:var(--r-md);width:32px;padding:0}.btn--icon.btn--sm{width:26px;height:26px}.btn .spinner{width:14px;height:14px}.btn-group{display:inline-flex}.btn-group .btn{border-radius:0;margin-left:-1px}.btn-group .btn:first-child{border-radius:var(--r-md) 0 0 var(--r-md);margin-left:0}.btn-group .btn:last-child{border-radius:0 var(--r-md) var(--r-md) 0}.field{flex-direction:column;gap:6px;display:flex}.label{font-size:var(--fs-label);font-weight:var(--fw-medium);color:var(--text-2)}.input,.textarea,.select{border:1px solid var(--border);border-radius:var(--r-md);width:100%;color:var(--text);background:#ffffff05;transition:border-color .12s,background .12s,box-shadow .12s}.input::placeholder,.textarea::placeholder{color:var(--text-4)}.input{height:32px;font-size:var(--fs-sm);padding:0 12px}.textarea{min-height:80px;font-size:var(--fs-sm);resize:vertical;padding:10px 12px;line-height:1.5}.select{height:32px;font-size:var(--fs-sm);appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238a8f98' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;padding:0 32px 0 12px}.select option{background:var(--surface);color:var(--text)}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent-bright);background:#ffffff0a;outline:none}.input:disabled,.textarea:disabled,.select:disabled{opacity:.45;cursor:not-allowed}.input--search{padding-left:34px}.input-wrap{position:relative}.input-wrap .icon--lead{color:var(--text-4);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.helper{font-size:var(--fs-caption);color:var(--text-3)}.helper--error{color:var(--red)}.field--error .input,.field--error .textarea,.field--error .select{border-color:var(--red)}.checkbox,.radio,.switch{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--fs-sm);color:var(--text-2);align-items:center;gap:8px;display:inline-flex;position:relative}.checkbox input,.radio input,.switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute}.checkbox__box,.radio__box{border:1px solid var(--border-strong);background:#ffffff05;flex:none;justify-content:center;align-items:center;width:16px;height:16px;transition:all .12s;display:flex}.checkbox__box{border-radius:var(--r-sm)}.radio__box{border-radius:50%}.checkbox:hover .checkbox__box,.radio:hover .radio__box{border-color:var(--border-strong);background:#ffffff0f}.checkbox input:checked+.checkbox__box{background:var(--accent);border-color:var(--accent)}.checkbox input:checked+.checkbox__box:after{content:"";border-bottom:1.8px solid #fff;border-left:1.8px solid #fff;width:9px;height:5px;transform:rotate(-45deg)translate(.5px,-1px)}.radio input:checked+.radio__box{border-color:var(--accent-bright)}.radio input:checked+.radio__box:after{content:"";background:var(--accent-bright);border-radius:50%;width:8px;height:8px}.checkbox input:focus-visible+.checkbox__box,.radio input:focus-visible+.radio__box,.switch input:focus-visible+.switch__track{outline:2px solid var(--accent-bright);outline-offset:1px}.switch__track{background:#ffffff1a;border-radius:9999px;flex:none;width:34px;height:20px;transition:background .15s;position:relative}.switch__track:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px}.switch input:checked+.switch__track{background:var(--accent)}.switch input:checked+.switch__track:after{transform:translate(14px)}.slider{appearance:none;cursor:pointer;background:#ffffff1f;border-radius:9999px;outline:none;width:100%;height:4px}.slider::-webkit-slider-thumb{appearance:none;border:2px solid var(--accent);background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .1s}.slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.slider:focus-visible{outline:2px solid var(--accent-bright);outline-offset:4px}.badge{height:22px;font-size:var(--fs-label);font-weight:var(--fw-medium);color:var(--text-2);border:1px solid var(--border-solid);border-radius:var(--r-full);white-space:nowrap;align-items:center;gap:6px;padding:0 10px 0 6px;display:inline-flex}.badge__dot{background:currentColor;border-radius:50%;width:6px;height:6px}.badge--accent{color:var(--accent-hover);border-color:#7170ff59}.badge--green{color:var(--emerald);border-color:#10b98159}.badge--red{color:var(--red-hover);border-color:#e5484d59}.badge--amber{color:var(--amber);border-color:#f5a62359}.badge--blue{color:var(--blue);border-color:#4e8be659}.badge--solid{color:#fff;border-color:#0000;padding:0 10px}.badge--solid.badge--accent{background:var(--accent)}.badge--solid.badge--green{background:var(--emerald)}.badge--solid.badge--red{background:var(--red)}.badge--solid.badge--amber{background:var(--amber)}.status-dot{background:var(--text-3);border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.status-dot--green{background:var(--green)}.status-dot--emerald{background:var(--emerald)}.status-dot--amber{background:var(--amber)}.status-dot--red{background:var(--red)}.status-dot--accent{background:var(--accent-bright)}.status-dot--pulse{animation:2s infinite pulse;box-shadow:0 0 #27a64480}@keyframes pulse{0%{box-shadow:0 0 #27a64480}70%{box-shadow:0 0 0 6px #27a64400}to{box-shadow:0 0 #27a64400}}.avatar{width:28px;height:28px;font-size:var(--fs-caption);font-weight:var(--fw-medium);color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-bright));letter-spacing:0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%}.avatar--sm{width:22px;height:22px;font-size:10px}.avatar--lg{width:40px;height:40px;font-size:var(--fs-base)}.avatar--xl{width:56px;height:56px;font-size:var(--fs-h3)}.avatar__status{border:2px solid var(--surface);background:var(--text-4);border-radius:50%;width:9px;height:9px;position:absolute;bottom:-1px;right:-1px}.avatar__status--on{background:var(--emerald)}.avatar__status--away{background:var(--amber)}.avatar__status--busy{background:var(--red)}.avatar-group{display:inline-flex}.avatar-group .avatar{border:2px solid var(--surface);margin-left:-8px}.avatar-group .avatar:first-child{margin-left:0}.card{border:1px solid var(--border);border-radius:var(--r-lg);background:#ffffff05;overflow:hidden}.card--interactive{cursor:pointer;transition:background .12s,border-color .12s}.card--interactive:hover{border-color:var(--border-strong);background:#ffffff0a}.card__header{border-bottom:1px solid var(--border-subtle);align-items:center;gap:10px;padding:14px 16px;display:flex}.card__body{padding:16px}.card__footer{border-top:1px solid var(--border-subtle);background:#ffffff03;padding:12px 16px}.list{flex-direction:column;display:flex}.list__item{border-radius:var(--r-md);align-items:center;gap:12px;padding:10px 12px;transition:background .1s;display:flex}.list__item--hover{cursor:pointer}.list__item--hover:hover{background:#ffffff0a}.list__item+.list__item{margin-top:2px}.list__content{flex:1;min-width:0}.list__title{font-size:var(--fs-sm);color:var(--text);font-weight:var(--fw-medium)}.list__desc{font-size:var(--fs-caption);color:var(--text-3)}.list__actions{opacity:0;align-items:center;gap:4px;transition:opacity .1s;display:flex}.list__item:hover .list__actions{opacity:1}.list__meta{font-size:var(--fs-caption);color:var(--text-4);white-space:nowrap}.tabs{border-bottom:1px solid var(--border-subtle);gap:2px;display:flex}.tab{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-3);border-radius:var(--r-md) var(--r-md) 0 0;white-space:nowrap;padding:8px 12px;transition:color .12s,background .12s;position:relative}.tab:hover{color:var(--text);background:#ffffff08}.tab--active{color:var(--text)}.tab--active:after{content:"";background:var(--accent-bright);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:12px;right:12px}.tab .badge{margin-left:4px}.tabs--pill{border-bottom:none;gap:6px}.tabs--pill .tab{border:1px solid var(--border);border-radius:var(--r-full);color:var(--text-2);padding:6px 14px}.tabs--pill .tab--active{border-color:var(--border-strong);color:var(--text);background:#ffffff0f}.tabs--pill .tab--active:after{display:none}.breadcrumb{font-size:var(--fs-sm);color:var(--text-3);align-items:center;gap:6px;display:flex}.breadcrumb a{color:var(--text-3)}.breadcrumb a:hover{color:var(--text)}.breadcrumb__sep{color:var(--text-4)}.breadcrumb .current{color:var(--text);font-weight:var(--fw-medium)}.progress{background:#ffffff14;border-radius:9999px;width:100%;height:6px;position:relative;overflow:hidden}.progress__bar{background:var(--accent-bright);border-radius:9999px;height:100%;transition:width .2s}.progress--green .progress__bar{background:var(--emerald)}.progress--indeterminate .progress__bar{width:40%;animation:1.4s ease-in-out infinite progress-indet}@keyframes progress-indet{0%{transform:translate(-100%)}to{transform:translate(350%)}}.skeleton{border-radius:var(--r-md);background:#ffffff0f;display:inline-block;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffff0f,#0000);animation:1.6s infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.spinner{border:2px solid #ffffff26;border-top-color:var(--accent-bright);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}.spinner--lg{border-width:3px;width:24px;height:24px}@keyframes spin{to{transform:rotate(360deg)}}.alert{font-size:var(--fs-sm);color:var(--text-2);border:1px solid var(--border);border-radius:var(--r-lg);background:#ffffff05;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.alert .icon{margin-top:2px}.alert__title{font-weight:var(--fw-semibold);color:var(--text)}.alert--info .icon,.alert--info .alert__title{color:var(--blue)}.alert--success .icon,.alert--success .alert__title{color:var(--emerald)}.alert--warning .icon,.alert--warning .alert__title{color:var(--amber)}.alert--danger .icon,.alert--danger .alert__title{color:var(--red)}.alert--info{border-color:#4e8be659}.alert--success{border-color:#10b98159}.alert--warning{border-color:#f5a62359}.alert--danger{border-color:#e5484d66}.toast{min-width:260px;max-width:380px;font-size:var(--fs-sm);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);align-items:center;gap:10px;padding:10px 14px;display:flex}.toast__icon{flex:none;width:18px;height:18px}.toast--success .toast__icon{color:var(--emerald)}.toast--error .toast__icon{color:var(--red)}.toast--info .toast__icon{color:var(--blue)}.toast__msg{flex:1}.toast__close{color:var(--text-4)}.toast__close:hover{color:var(--text-2)}.toast-stack{z-index:1000;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:16px;right:16px}.toast-stack .toast{animation:.18s ease-out toast-in}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.modal-backdrop{z-index:900;background:var(--overlay);justify-content:center;align-items:flex-start;padding:10vh 16px 16px;animation:.14s ease-out fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);width:100%;max-width:440px;box-shadow:var(--shadow-lg);animation:.16s ease-out modal-in;overflow:hidden}@keyframes modal-in{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal__header{justify-content:space-between;align-items:center;padding:16px 16px 8px;display:flex}.modal__title{font-size:var(--fs-base);font-weight:var(--fw-medium)}.modal__body{font-size:var(--fs-sm);color:var(--text-2);padding:8px 16px 16px}.modal__footer{border-top:1px solid var(--border-subtle);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);min-width:180px;box-shadow:var(--shadow-lg);padding:6px}.menu__item{width:100%;font-size:var(--fs-sm);color:var(--text-2);text-align:left;border-radius:var(--r-md);align-items:center;gap:10px;padding:7px 10px;transition:background .1s,color .1s;display:flex}.menu__item:hover{color:var(--text);background:#ffffff0f}.menu__item--danger{color:var(--red)}.menu__item--danger:hover{color:var(--red-hover);background:#e5484d24}.menu__item .icon{color:var(--text-3)}.menu__item:hover .icon{color:var(--text-2)}.menu__item--danger .icon{color:var(--red)}.menu__shortcut{font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--text-4);margin-left:auto}.menu__separator{background:var(--border-subtle);height:1px;margin:6px 4px}.menu__label{font-size:var(--fs-tiny);font-weight:var(--fw-medium);color:var(--text-4);text-transform:uppercase;letter-spacing:.05em;padding:6px 10px 2px}.empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:48px 24px;display:flex}.empty__icon{border-radius:var(--r-lg);border:1px solid var(--border);width:44px;height:44px;color:var(--text-3);background:#ffffff0a;justify-content:center;align-items:center;display:flex}.empty__title{font-size:var(--fs-base);font-weight:var(--fw-medium)}.empty__desc{font-size:var(--fs-sm);color:var(--text-3);max-width:320px}.table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.table th{text-align:left;font-size:var(--fs-label);font-weight:var(--fw-medium);color:var(--text-3);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 12px}.table td{border-bottom:1px solid var(--border-subtle);color:var(--text-2);vertical-align:middle;padding:11px 12px}.table tbody tr{transition:background .1s}.table--hover tbody tr:hover{background:#ffffff08}.table tbody tr:last-child td{border-bottom:none}.table .mono{color:var(--text-3)}.table--dense th,.table--dense td{padding:7px 12px}.app{height:100vh;display:flex;overflow:hidden}.app__sidebar{background:var(--panel);border-right:1px solid var(--border-subtle);flex-direction:column;flex:none;width:232px;display:flex}.app__main{flex-direction:column;flex:1;min-width:0;display:flex}.app__content{flex:1;padding:24px;overflow-y:auto}.nav{flex:1;padding:8px;overflow-y:auto}.nav__section{font-size:var(--fs-tiny);font-weight:var(--fw-medium);color:var(--text-4);text-transform:uppercase;letter-spacing:.05em;margin:12px 0 4px;padding:0 8px}.nav__item{width:100%;font-size:var(--fs-sm);color:var(--text-2);text-align:left;border-radius:var(--r-md);align-items:center;gap:10px;margin-bottom:1px;padding:7px 8px;transition:background .1s,color .1s;display:flex}.nav__item:hover{color:var(--text);background:#ffffff0a}.nav__item--active{color:var(--text);font-weight:var(--fw-medium);background:#ffffff0f}.nav__item .icon{color:var(--text-3)}.nav__item--active .icon{color:var(--accent-hover)}.nav__item .nav__badge{margin-left:auto}.topbar{background:var(--panel);border-bottom:1px solid var(--border-subtle);flex:none;align-items:center;gap:8px;height:48px;padding:0 16px;display:flex}.topbar__title{font-size:var(--fs-base);font-weight:var(--fw-medium);flex:1}.topbar__spacer{flex:1}.cmd{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);width:100%;max-width:560px;box-shadow:var(--shadow-lg);overflow:hidden}.cmd__input-wrap{border-bottom:1px solid var(--border-subtle);align-items:center;gap:10px;padding:14px 16px;display:flex}.cmd__input{font-size:var(--fs-base);color:var(--text);background:0 0;border:none;outline:none;flex:1}.cmd__input::placeholder{color:var(--text-4)}.cmd__list{max-height:320px;padding:6px;overflow-y:auto}.cmd__group-label{font-size:var(--fs-tiny);font-weight:var(--fw-medium);color:var(--text-4);text-transform:uppercase;letter-spacing:.05em;padding:8px 10px 2px}.cmd__item{border-radius:var(--r-md);cursor:pointer;align-items:center;gap:12px;padding:8px 10px;transition:background .1s;display:flex}.cmd__item--active{background:#ffffff0f}.cmd__item-icon{border-radius:var(--r-sm);border:1px solid var(--border-subtle);width:28px;height:28px;color:var(--text-3);background:#ffffff0a;flex:none;justify-content:center;align-items:center;display:flex}.cmd__item--active .cmd__item-icon{color:var(--accent-hover)}.cmd__item-text{flex:1;min-width:0}.cmd__item-title{font-size:var(--fs-sm);color:var(--text)}.cmd__item-desc{font-size:var(--fs-caption);color:var(--text-3)}.cmd__empty{text-align:center;font-size:var(--fs-sm);color:var(--text-3);padding:24px}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);font-size:var(--fs-caption);color:var(--text);white-space:nowrap;background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--r-md);opacity:0;pointer-events:none;z-index:1100;padding:5px 8px;transition:opacity .1s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}[data-tooltip]:hover:after{opacity:1}@media (width<=768px){.app__sidebar{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.icp{font-size:var(--fs-micro);text-align:center}.icp a{color:var(--text-4)}.icp a:hover{color:var(--text-3)}.auth .icp{right:0;bottom:var(--s-4);position:absolute;left:0}.app__content{flex-direction:column;display:flex}.app__content>.icp{padding-top:var(--s-4);margin-top:auto}.modal-backdrop{padding:var(--s-5);align-items:center}.modal__body{max-height:65vh;overflow-y:auto}.auth{min-height:100vh;padding:var(--s-6);justify-content:center;align-items:center;display:flex;position:relative}.auth__card{width:100%;max-width:400px;padding:var(--s-7) var(--s-6) var(--s-6);border:1px solid var(--border);border-radius:var(--r-xl);background:#ffffff05}.auth__brand{justify-content:center;align-items:center;gap:var(--s-2);margin-bottom:var(--s-5);display:flex}.auth__logo{border-radius:var(--r-lg);background:var(--accent);color:#fff;flex:none;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.auth__logo .icon{width:20px;height:20px}.auth__title{font-size:var(--fs-h3);font-weight:var(--fw-semibold);text-align:center}.auth__subtitle{text-align:center;font-size:var(--fs-caption);color:var(--text-3);margin-top:6px}.auth__form{gap:var(--s-4);margin-top:var(--s-6);flex-direction:column;display:flex}.auth__form .btn--block{margin-top:var(--s-1)}.auth__footer{margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--border-subtle);text-align:center;font-size:var(--fs-caption);color:var(--text-3)}.input-trail{position:absolute;top:50%;right:5px;transform:translateY(-50%)}.input--with-lead{padding-left:34px}.strength{gap:4px;margin-top:2px;display:flex}.strength__seg{border-radius:var(--r-full);background:#ffffff14;flex:1;height:3px;transition:background .15s}.strength__seg--weak{background:var(--red)}.strength__seg--medium{background:var(--amber)}.strength__seg--strong{background:var(--emerald)}.rail{background:var(--panel);border-right:1px solid var(--border-subtle);flex-direction:column;flex:none;align-items:center;width:72px;padding:12px 0;display:flex}.rail__avatar{margin-bottom:var(--s-4);cursor:default}.rail__nav{flex-direction:column;gap:2px;display:flex}.rail__item{border-radius:var(--r-md);width:60px;height:48px;color:var(--text-3);flex-direction:column;justify-content:center;align-items:center;gap:3px;transition:background .1s,color .1s;display:flex}.rail__item:hover{color:var(--text);background:#ffffff0f}.rail__item .icon{color:var(--text-3)}.rail__item:hover .icon{color:var(--text-2)}.rail__label{font-size:var(--fs-tiny);white-space:nowrap;line-height:1}.rail__spacer{flex:1}.menu-host{position:relative}.menu-pop{z-index:1100;min-width:180px;position:fixed}.toolbar{align-items:center;gap:var(--s-2);margin-bottom:var(--s-4);display:flex}.pager{justify-content:center;align-items:center;gap:var(--s-3);margin-top:var(--s-4);display:flex}.pager__info,.toolbar__hint{font-size:var(--fs-caption);color:var(--text-3)}.lib-loading{justify-content:center;padding:64px 0;display:flex}.stack-form{gap:var(--s-4);flex-direction:column;display:flex}.lib-grid{gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.lib-card{padding:var(--s-4);position:relative}.lib-card__body{gap:var(--s-3);display:flex}.lib-card__icon{border-radius:var(--r-lg);border:1px solid var(--border);width:40px;height:40px;color:var(--text-3);background:#ffffff0a;flex:none;justify-content:center;align-items:center;display:flex}.lib-card__info{flex:1;min-width:0}.lib-card__name{font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--text);align-items:center;gap:6px;display:flex}.lib-card__badge{height:18px;font-size:var(--fs-tiny);padding:0 8px}.lib-card__remark{font-size:var(--fs-caption);color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;overflow:hidden}.lib-card__meta{font-size:var(--fs-micro);color:var(--text-4);margin-top:4px}.lib-card__actions{opacity:0;transition:opacity .1s;position:absolute;top:10px;right:10px}.lib-card:hover .lib-card__actions{opacity:1}.share-row{gap:var(--s-2);display:flex}.share-list{margin:var(--s-3) 0 0;flex-direction:column;gap:2px;padding:0;list-style:none;display:flex}.share-list__item{align-items:center;gap:var(--s-2);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--text-2);padding:7px 10px;display:flex}.share-list__item .icon{color:var(--text-4)}.share-list__name{flex:1;min-width:0}.share-list__tag{font-size:var(--fs-tiny);color:var(--text-4)}.style-head{margin-bottom:var(--s-6)}.style-head__row{align-items:center;gap:var(--s-2);display:flex}.style-head__meta{font-size:var(--fs-caption);color:var(--text-4);margin-top:6px}.section-head{margin-bottom:var(--s-3);justify-content:space-between;align-items:center;display:flex}.section-head__title{align-items:center;gap:var(--s-2);font-size:var(--fs-base);font-weight:var(--fw-medium);display:flex}.section-head__title .icon{color:var(--text-3)}.section-head__count{font-size:var(--fs-caption);color:var(--text-4)}.group-grid{gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.group-card__cover{aspect-ratio:1;background:#ffffff08;position:relative;overflow:hidden}.group-card__cover img{object-fit:cover;width:100%;height:100%}.group-card__video-mark{width:100%;height:100%;color:var(--text-4);justify-content:center;align-items:center;display:flex}.group-card__delete{opacity:0;transition:opacity .1s;position:absolute;top:6px;right:6px}.group-card:hover .group-card__delete{opacity:1}.group-card__meta{padding:10px 12px}.group-card__name{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.group-card__sub{font-size:var(--fs-caption);color:var(--text-4);align-items:center;gap:6px;margin-top:4px;display:flex}.upload-pick{align-items:center;gap:var(--s-2);width:100%;padding:var(--s-6) var(--s-4);font-size:var(--fs-sm);color:var(--text-3);border:1px dashed var(--border-strong);border-radius:var(--r-lg);cursor:pointer;background:#ffffff05;flex-direction:column;transition:background .12s,color .12s;display:flex}.upload-pick:hover{color:var(--text-2);background:#ffffff0a}.upload-list{margin:var(--s-2) 0 0;flex-direction:column;gap:2px;padding:0;list-style:none;display:flex}.upload-list__item{align-items:center;gap:var(--s-2);font-size:var(--fs-caption);color:var(--text-2);border-radius:var(--r-md);padding:6px 8px;display:flex}.upload-list__item .icon{color:var(--text-4)}.upload-list__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.upload-list__size{color:var(--text-4);font-size:var(--fs-micro)}.img-grid{align-items:flex-start;gap:var(--s-3);max-width:100%;padding-bottom:var(--s-2);display:flex;overflow-x:auto}.img-grid__cell{border:1px solid var(--border-subtle);border-radius:var(--r-md);flex:1 1 0;min-width:120px;max-width:340px;margin:0;position:relative;overflow:hidden}.img-grid__cell>img{cursor:zoom-in;width:100%;height:auto;display:block}.groups-panel{flex:1;min-width:0}.style-split{gap:var(--s-4);align-items:stretch;min-height:60vh;display:flex}.glist{width:232px;padding:var(--s-2);background:var(--panel);border:1px solid var(--border-subtle);border-radius:var(--r-lg);flex:none;overflow-y:auto}.glist__sec{padding:var(--s-2) var(--s-2) var(--s-1);justify-content:space-between;align-items:center;display:flex}.glist__sec-title{font-size:var(--fs-micro);font-weight:var(--fw-medium);color:var(--text-4);text-transform:uppercase;letter-spacing:.05em}.glist__add{width:22px;height:22px;color:var(--text-3);border-radius:var(--r-sm);justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.glist__add:hover{color:var(--text);background:#ffffff0f}.glist__item{align-items:center;gap:var(--s-2);width:100%;padding:7px var(--s-2);font-size:var(--fs-sm);color:var(--text-2);text-align:left;border-radius:var(--r-md);margin-bottom:1px;transition:background .1s,color .1s;display:flex}.glist__item:hover{color:var(--text);background:#ffffff0d}.glist__item--active{color:var(--text);background:#5e6ad22e}.glist__item .icon{color:var(--text-4)}.glist__item--active .icon{color:var(--accent-hover)}.glist__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.glist__count{font-size:var(--fs-micro);color:var(--text-4)}.gcontent{flex:1;min-width:0}.gcontent__head{align-items:center;gap:var(--s-3);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}.gcontent__name{font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--text)}.gcontent__meta{font-size:var(--fs-caption);color:var(--text-4)}.gtype-switch{border-radius:var(--r-md);background:#ffffff0a;gap:2px;padding:2px;display:flex}.gtype-switch__btn{font-size:var(--fs-caption);color:var(--text-3);border-radius:var(--r-sm);padding:5px 14px;transition:background .12s,color .12s}.gtype-switch__btn:hover{color:var(--text)}.gtype-switch__btn--active{background:var(--accent);color:#fff}.style-list{width:232px;padding:var(--s-2);background:var(--panel);border:1px solid var(--border-subtle);border-radius:var(--r-lg);flex-direction:column;flex:none;align-self:stretch;display:flex}.style-list__head{align-items:center;gap:var(--s-2);margin-bottom:var(--s-2);flex-wrap:wrap;display:flex}.style-list__head .input-wrap{flex:100%}.style-list__rows{flex:1;overflow-y:auto}.style-list__item{align-items:center;gap:var(--s-2);width:100%;padding:7px var(--s-2);font-size:var(--fs-sm);color:var(--text-2);text-align:left;border-radius:var(--r-md);margin-bottom:1px;transition:background .1s,color .1s;display:flex}.style-list__item:hover{color:var(--text);background:#ffffff0d}.style-list__item--active{color:var(--text);background:#5e6ad22e}.style-list__star{color:var(--text-4);cursor:pointer;display:inline-flex}.style-list__star--on{color:var(--amber)}.style-list__code{font-size:var(--fs-sm)}.style-list__trash{color:var(--text-4);opacity:0;cursor:pointer;transition:opacity .1s,color .1s;display:inline-flex}.style-list__item:hover .style-list__trash{opacity:1}.style-list__trash:hover{color:var(--red-hover)}.crop-frame{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;position:relative;overflow:hidden}.crop-frame:active{cursor:grabbing}.img-grid__cell .crop-frame__img{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block}.crop-grid{pointer-events:none;opacity:0;transition:opacity .15s ease-out;position:absolute;inset:0}.crop-grid--visible{opacity:1}.crop-grid span{position:absolute}.crop-grid span:first-child{border-left:1px dashed #ffffff80;top:0;bottom:0;left:33.33%}.crop-grid span:nth-child(2){border-left:1px dashed #ffffff80;top:0;bottom:0;left:66.67%}.crop-grid span:nth-child(3){border-top:1px dashed #ffffff80;top:33.33%;left:0;right:0}.crop-grid span:nth-child(4){border-top:1px dashed #ffffff80;top:66.67%;left:0;right:0}.img-grid__bar{background:#ffffff05;align-items:center;gap:4px;padding:4px 6px;display:flex}.img-grid__name{min-width:0;font-size:var(--fs-micro);color:var(--text-4);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.img-grid__index{font-size:var(--fs-micro);color:var(--text-4)}.cover-flag{font-size:var(--fs-micro);color:#fff;background:var(--accent);border-radius:var(--r-full);padding:2px 8px;position:absolute;top:6px;left:6px}.crop-switch{margin-bottom:var(--s-3);border-radius:var(--r-md);background:#ffffff0a;gap:2px;width:fit-content;padding:2px;display:flex}.crop-switch__btn{font-size:var(--fs-caption);color:var(--text-3);border-radius:var(--r-sm);padding:5px 14px;transition:background .12s,color .12s}.crop-switch__btn:hover{color:var(--text)}.crop-switch__btn--active{background:var(--accent);color:#fff}.dl-checks{gap:var(--s-3);padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);flex-direction:column;display:flex}.crop-head{align-items:center;gap:var(--s-3);margin-bottom:var(--s-3);flex-wrap:wrap;display:flex}.img-strip{gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.img-cell{border:1px solid var(--border-subtle);border-radius:var(--r-md);position:relative;overflow:hidden}.img-cell img{cursor:zoom-in;width:100%;height:auto;display:block}.img-cell__bar{background:#ffffff05;align-items:center;gap:4px;padding:6px 8px;display:flex}.img-cell__name{min-width:0;font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-4);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.img-cell__act{width:24px;height:24px;color:var(--text-3);border-radius:var(--r-sm);flex:none;justify-content:center;align-items:center;transition:background .1s,color .1s;display:inline-flex}.img-cell__act:hover{color:var(--text);background:#ffffff14}.img-cell__act--danger:hover{color:var(--red-hover);background:#e5484d24}.video-hero{border-radius:var(--r-md);background:#000;position:relative;overflow:hidden}.video-hero img{object-fit:contain;width:100%;max-height:56vh;display:block}.video-hero__playbtn{color:#fff;border:1px solid var(--border-strong);border-radius:var(--r-full);cursor:pointer;background:#0000008c;justify-content:center;align-items:center;width:56px;height:56px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.video-hero__playbtn svg{width:20px;height:20px}.video-player video{border-radius:var(--r-md);background:#000;width:100%;max-height:60vh;display:block}.dl-panel{margin-top:var(--s-3);padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:#ffffff05}.dl-panel__title{font-size:var(--fs-caption);color:var(--text-3);margin-bottom:var(--s-2)}.dl-check{align-items:center;gap:var(--s-2);cursor:pointer;font-size:var(--fs-sm);color:var(--text-2);padding:6px 8px;display:flex}.dl-check input{accent-color:var(--accent);cursor:pointer;width:15px;height:15px}.dl-check .sub{font-size:var(--fs-micro);color:var(--text-4);margin-left:auto}.lightbox{z-index:1200;padding:var(--s-6);background:#000000eb;justify-content:center;align-items:center;animation:.14s ease-out lightbox-in;display:flex;position:fixed;inset:0}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}.lightbox img{object-fit:contain;max-width:100%;max-height:100vh}.lightbox__close{top:var(--s-4);right:var(--s-4);position:absolute}.video-player video{border-radius:var(--r-md);background:#000;width:100%;max-height:56vh}.video-player__poster{aspect-ratio:16/9;border-radius:var(--r-md);cursor:pointer;width:100%;position:relative;overflow:hidden}.video-player__poster img{object-fit:cover;width:100%;height:100%;display:block}.video-player__playbtn{color:#fff;border:1px solid var(--border-strong);border-radius:var(--r-full);background:#0000008c;justify-content:center;align-items:center;width:56px;height:56px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.video-player__bar{justify-content:space-between;align-items:center;gap:var(--s-2);margin-top:var(--s-3);font-size:var(--fs-caption);color:var(--text-3);display:flex}[data-tooltip].tooltip--below:after{top:calc(100% + 6px);bottom:auto}[data-tooltip].tooltip--right:after{top:50%;bottom:auto;left:calc(100% + 8px);transform:translateY(-50%)}.toast-enter-active[data-v-355d0aed],.toast-leave-active[data-v-355d0aed]{transition:opacity .15s ease-out,transform .15s ease-out}.toast-enter-from[data-v-355d0aed],.toast-leave-to[data-v-355d0aed]{opacity:0;transform:translateY(8px)}.lib-switcher__trigger[data-v-efd7d618]{height:30px;font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--text);border-radius:var(--r-md);align-items:center;gap:8px;padding:0 10px;transition:background .12s;display:inline-flex}.lib-switcher__trigger[data-v-efd7d618]:hover{background:#ffffff0f}.lib-switcher__trigger .icon[data-v-efd7d618]{color:var(--text-3)}.lib-switcher__name[data-v-efd7d618]{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.lib-switcher__item-name[data-v-efd7d618]{text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1;min-width:0;overflow:hidden}.lib-switcher__item-badge[data-v-efd7d618]{font-size:var(--fs-micro);color:var(--text-4);align-items:center;gap:3px;display:inline-flex}
