:root{--site-footer-height:36px;--bg:#F4F2EE;--rail:#ECE9E3;--surface:#fff;--surface-2:#F1EEE8;--surface-soft:#FAF8F5;--text:#17161B;--text-2:#45424D;--text-3:#6E6975;--faint:#ADA8B3;--border:#E8E4DD;--border-strong:#D8D3CA;--ink:#17161B;--ink-hover:#2E2C34;--primary:#2E6BF0;--primary-dark:#1F4FC2;--primary-weak:#EBF1FE;--success:#0E7A55;--success-weak:#E1F5EC;--danger:#D92D20;--danger-ink:#B42318;--danger-weak:#FEF3F2;--warning:#B54708;--warning-weak:#FEF0C7;--hot:#C2610C;--ai:#C2610C;--ai-weak:#FDF1DC;--r-sm:6px;--r-ctl:8px;--r:10px;--r-lg:14px;--r-xl:18px;--shadow:0 1px 2px rgba(23,22,27,.05),0 0 0 1px rgba(23,22,27,.02);--shadow-pop:0 14px 34px -18px rgba(23,22,27,.32),0 2px 6px rgba(23,22,27,.05);--shadow-lg:0 24px 60px -20px rgba(10,9,12,.55),0 6px 18px rgba(10,9,12,.18);--dark:#111013;--dark-2:#19181C;--dark-3:#232227;--dark-line:#2E2C33;--dark-text:#ECEAE6;--dark-muted:#9C97A3;--font:"PingFang SC",-apple-system,BlinkMacSystemFont,"Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;--mono:"SF Mono",ui-monospace,Menlo,Consolas,monospace}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}.site-footer{height:var(--site-footer-height);display:flex;align-items:center;justify-content:center;padding:0 12px;color:var(--text-3);font-size:12px}.site-footer a{color:inherit;text-decoration:none}.site-footer a:hover{text-decoration:underline}.site-footer a:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:2px}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}img{display:block}input,select,textarea{font:inherit;color:var(--text)}input:not([type=checkbox]):not([type=file]):not([type=radio]),select,textarea{height:34px;border:1px solid var(--border);border-radius:var(--r);padding:0 10px;background:#fff;font-size:13.5px;width:100%}textarea{height:auto;padding:8px 10px;resize:vertical;line-height:1.5}input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--primary) 30%,transparent)}input[type=checkbox]{accent-color:var(--primary);width:14px;height:14px}h1{font-size:22px;font-weight:700;letter-spacing:-.01em}h3{font-size:14.5px}.mono{font-family:var(--mono);font-size:12.5px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.btn{padding:0 12px;border-radius:var(--r);border:1px solid var(--border);background:#fff;font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;transition:background .12s,border-color .12s}.btn:hover:not(:disabled){background:var(--surface-2)}.btn.primary{background:var(--primary);border-color:var(--primary)}.btn.primary:hover:not(:disabled){background:var(--primary-dark)}.btn.sm{height:28px;padding:0 9px;font-size:12.5px}.btn.icon{width:32px;padding:0;justify-content:center}.btn.on{border-color:var(--primary);color:var(--primary)}.btn.on-star{color:#b7791f;border-color:#f1d08a;background:#fff8e6}.btn.danger,.btn.danger-ghost{color:var(--danger)}.btn.block{width:100%;justify-content:center;height:38px;font-size:14px}.btn em.count{font-style:normal;background:var(--primary);color:#fff;border-radius:999px;font-size:11px;padding:0 6px;line-height:17px}select.btn{width:auto;padding-right:8px}.icon-btn{width:28px;height:28px;border-radius:var(--r-sm);display:inline-flex;align-items:center;justify-content:center;color:var(--text-2);flex:none}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.icon-btn.tiny{width:22px;height:22px}.icon-btn.light{color:#D3CFD8}.icon-btn.light:hover{background:rgba(255,255,255,.08);color:#fff}.icon-btn.ok{font-weight:700}.link{color:var(--primary);display:inline-flex;align-items:center;gap:4px;padding:0}.link:hover{text-decoration:underline}.link.small{font-size:12.5px}.link.back{margin-bottom:12px;font-size:13px}.chip{height:30px;padding:0 11px;border-radius:999px;border:1px solid var(--border);background:#fff;font-size:13px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.chip:hover{border-color:var(--border-strong)}.chip.on{background:var(--primary-weak);border-color:var(--primary);color:var(--primary);font-weight:550}.chip em{font-style:normal;font-size:11.5px;color:var(--text-3);font-weight:400}.chip.on em{color:var(--primary)}.search-input{display:flex;align-items:center;gap:8px;height:34px;border:1px solid var(--border);border-radius:var(--r);background:#fff;padding:0 10px;color:var(--text-3);min-width:220px}.search-input:focus-within{border-color:var(--primary)}.search-input input{border:none!important;outline:none!important;height:100%!important;padding:0!important;flex:1 1;background:transparent!important;min-width:0}.search-input.small{height:30px;min-width:0}.search-input.global{width:min(560px,60%)}.kbd{font-family:var(--mono);font-size:10.5px;min-width:18px;height:18px;padding:0 4px;border-radius:4px;border:1px solid var(--border-strong);color:var(--text-2);display:inline-flex;align-items:center;justify-content:center;margin-left:4px;font-weight:500}.density,.segmented{display:inline-flex;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:#fff}.density button,.segmented button{height:30px;min-width:30px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-3)}.density button.on,.segmented button.active{background:var(--primary-weak);color:var(--primary)}.check{font-size:13px;margin:6px 0}.check,.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.switch{font-size:12.5px;color:var(--dark-muted)}.switch input{display:none}.switch span{width:30px;height:18px;border-radius:9px;background:#4A4851;position:relative;transition:background .15s}.switch span:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .15s}.switch input:checked+span{background:var(--primary)}.switch input:checked+span:after{transform:translateX(12px)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field-label{font-size:12.5px;font-weight:600;color:var(--text-2)}.field-hint{font-size:12px;color:var(--text-3)}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-column-gap:14px;column-gap:14px}.progress{height:4px;border-radius:2px;overflow:hidden}.progress i{display:block;height:100%;background:var(--primary);transition:width .2s}.row-gap{align-items:center;flex-wrap:wrap}.row-end,.row-gap{display:flex;gap:8px}.row-end{justify-content:flex-end;margin-top:10px}.row-between{display:flex;justify-content:space-between;align-items:center}.callout{display:flex;gap:8px;align-items:flex-start;background:var(--primary-weak);border:1px solid #d6e2fc;color:#1F3F8F;padding:10px 12px;font-size:13px;line-height:1.6;margin:10px 0 14px}.callout svg{flex:none;margin-top:3px}.error-box{background:var(--danger-weak);color:var(--danger);border:1px solid #f8d4d0;padding:10px 12px;font-size:13px;margin:10px 0}.empty{text-align:center;padding:48px 20px;color:var(--text-2)}.empty h3{margin-bottom:6px;color:var(--text)}.empty p{font-size:13px;max-width:460px;margin:0 auto 14px;line-height:1.6}.empty-icon{width:56px;height:56px;border-radius:50%;margin:0 auto 12px}.empty-icon,.spinner-row{display:flex;align-items:center;justify-content:center}.spinner-row{gap:10px;padding:40px;color:var(--text-3)}.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.tag-chip{--tag:#58657b;display:inline-flex;align-items:center;gap:3px;font-size:11.5px;line-height:18px;padding:0 7px;border-radius:999px;color:var(--tag);background:color-mix(in srgb,var(--tag) 9%,#fff);border:1px solid color-mix(in srgb,var(--tag) 22%,#fff);white-space:nowrap}.tag-chip.more{color:var(--text-3);background:var(--surface-2);border-color:var(--border)}.tag-chip.suggest{color:var(--warning);background:#fff7e6;border:1px dashed #e9c97d}.tag-chip.dashed{border-style:dashed}.tag-chip.removable button{display:inline-flex;color:inherit;opacity:.6;margin-right:-3px}.tag-chip.removable button:hover{opacity:1}.ai-dot{font-size:10px;font-weight:700;color:#6b4fc8;background:#f1edfc;border-radius:4px;padding:0 4px;margin-left:4px}.tag-picker-list{overflow:auto;margin-top:8px}.tp-group{margin-bottom:10px}.tp-group-head{font-size:12px;font-weight:600;color:var(--text-2);display:flex;align-items:center;gap:6px;margin-bottom:6px}.facet-group-head i,.tp-group-head i{width:8px;height:8px;border-radius:2px;display:inline-block}.tp-chips{display:flex;flex-wrap:wrap;gap:6px}.tp-chip{--tag:#2e4ed8;height:26px;padding:0 10px;border-radius:999px;border:1px solid var(--border);background:#fff;font-size:12.5px;display:inline-flex;align-items:center;gap:4px}.tp-chip.on,.tp-chip:hover{border-color:var(--tag)}.tp-chip.on{background:color-mix(in srgb,var(--tag) 11%,#fff);color:var(--tag);font-weight:550}.tp-chip em{font-style:normal;color:var(--text-3);font-size:11px}.tp-row{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border-radius:var(--r-sm);text-align:left;font-size:13px}.tp-row:hover{background:var(--surface-2)}.tp-check{width:16px;height:16px;border:1px solid var(--border-strong);border-radius:4px;display:inline-flex;align-items:center;justify-content:center;flex:none}.tp-row.on .tp-check{background:var(--primary);border-color:var(--primary);color:#fff}.tp-dim{margin-left:auto}.tp-count,.tp-dim{color:var(--text-3);font-size:12px}.tp-count{min-width:24px;text-align:right}.tp-empty{padding:12px 8px;color:var(--text-3);font-size:13px;line-height:1.6}.tp-create{display:flex;gap:8px;padding:8px 0 2px;border-top:1px solid var(--border);margin-top:6px;align-items:center}.tp-create select{height:28px!important;font-size:12.5px!important}.dropdown{position:relative;display:inline-flex}.dropdown-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:60;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);min-width:200px;color:var(--text)}.dropdown-panel.right{left:auto;right:0}.dropdown.up .dropdown-panel{top:auto;bottom:calc(100% + 8px)}.dropdown-pad{padding:12px}.menu{padding:6px;min-width:210px}.menu>button{display:block;width:100%;text-align:left;padding:8px 10px;border-radius:var(--r-sm);font-size:13px}.menu>button:hover{background:var(--surface-2)}.menu>button.danger{color:var(--danger)}.menu-check{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:var(--r-sm);font-size:13px;cursor:pointer;white-space:nowrap}.menu-check:hover{background:var(--surface-2)}.menu-check em{margin-left:auto;padding-left:16px;font-style:normal;color:var(--text-3);font-size:12px}.modal-backdrop{position:fixed;inset:0;background:rgba(17,16,19,.45);z-index:150;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:#fff;border-radius:var(--r-lg);max-width:100%;max-height:88vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.modal-head{display:flex;justify-content:space-between;gap:12px;padding:18px 20px 12px}.modal-head h2{font-size:17px}.modal-head p{font-size:13px;color:var(--text-2);margin-top:4px;line-height:1.55}.modal-body{padding:4px 20px 16px;overflow:auto}.modal-body>input[type=file],.modal-body>textarea{margin:8px 0}.modal-foot{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid var(--border)}.modal-foot>.muted{margin-right:auto}.drawer-backdrop{position:fixed;inset:0;background:rgba(17,16,19,.25);z-index:140}.drawer{position:fixed;right:0;top:0;bottom:0;width:460px;max-width:100%;background:#fff;box-shadow:var(--shadow-lg);display:flex;flex-direction:column}.drawer-head{display:flex;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid var(--border)}.drawer-head h2{display:flex;align-items:center;gap:8px}.drawer-head p{font-size:12.5px;color:var(--text-2);margin-top:4px}.drawer-body{flex:1 1;overflow:auto;padding:12px 16px}.drawer-foot{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px;border-top:1px solid var(--border);justify-content:flex-end}.basket-row{display:grid;grid-template-columns:22px 56px 1fr auto;grid-gap:10px;gap:10px;align-items:center;padding:8px 4px;border-bottom:1px solid var(--border)}.basket-index{font-family:var(--mono);color:var(--text-3);font-size:12px;text-align:center}.basket-thumb{width:56px;height:72px;border-radius:var(--r-sm);background:#1A191D;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#8C8794}.basket-thumb img{width:100%;height:100%;object-fit:cover}.basket-info{display:flex;flex-direction:column;gap:3px;min-width:0}.basket-info .inline-input{height:26px!important;font-size:12px!important;margin-top:2px}.basket-ops,.toasts{display:flex;flex-direction:column}.toasts{position:fixed;bottom:20px;right:20px;z-index:300;gap:8px;align-items:flex-end}.toast{color:#fff;padding:10px 14px;font-size:13px;box-shadow:var(--shadow-lg);display:flex;gap:12px;align-items:center;max-width:420px;animation:rise .18s ease-out}.toast .link{color:#9EC0FF;white-space:nowrap}@keyframes rise{0%{transform:translateY(8px);opacity:0}}.shell{display:grid;grid-template-columns:236px 1fr;height:calc(100vh - var(--site-footer-height))}.sidebar{background:#fff;display:flex;flex-direction:column;overflow:hidden}.brand{display:flex;align-items:center;padding:16px 16px 12px;color:var(--primary)}.brand div{display:flex;flex-direction:column}.brand strong{font-size:16px;color:var(--text);letter-spacing:.02em}.brand span{font-size:11.5px}.brand.big strong{font-size:20px}.nav{padding:4px 10px 8px;display:flex;flex-direction:column;gap:1px}.nav-item{border-radius:var(--r);display:flex;align-items:center;gap:10px;text-align:left}.nav-item:hover{background:var(--surface-2)}.nav-item.active{background:var(--primary-weak);color:var(--primary)}.nav-badge{margin-left:auto;font-style:normal;background:var(--primary);border-radius:999px;padding:0 6px;line-height:17px;font-weight:600}.side-sec{padding:8px 10px;overflow:auto}.side-sec:first-of-type{flex:1 1}.side-sec-head{justify-content:space-between;font-size:11.5px;font-weight:600;padding:4px 6px 6px;letter-spacing:.04em}.folder-item,.side-sec-head{display:flex;align-items:center}.folder-item{gap:2px;border-radius:var(--r-sm);padding-right:4px}.folder-item:hover{background:var(--surface-2)}.folder-item.active{background:var(--primary-weak)}.folder-item.active .folder-name{color:var(--primary)}.folder-caret{width:18px;height:22px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-3);flex:none}.folder-name{flex:1 1;min-width:0;display:flex;align-items:center;gap:7px;font-size:13px;color:var(--text-2);height:100%;text-align:left}.folder-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1}.folder-name svg{flex:none}.dot-count{font-style:normal;font-size:10.5px;background:#ffe9d6;color:var(--hot);border-radius:999px;padding:0 6px;line-height:16px;font-weight:600}.folder-total{font-style:normal;color:var(--text-3)}.folder-menu{flex:none;opacity:0}.folder-item.active .folder-menu,.folder-item:hover .folder-menu,.folder-menu.open,.folder-menu:focus-within{opacity:1}.folder-menu-panel{position:fixed;z-index:130;min-width:176px;max-height:calc(100vh - 16px);overflow-y:auto;padding:5px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg)}.folder-menu-panel>button{width:100%;min-height:36px;display:flex;align-items:center;gap:9px;padding:0 10px;border-radius:var(--r-sm);text-align:left;font-size:13px;color:var(--text-2)}.folder-menu-panel>button:focus-visible,.folder-menu-panel>button:hover{background:var(--surface-2);color:var(--text)}.folder-menu-panel>button.danger{color:var(--danger)}.folder-menu-panel>button.danger:focus-visible,.folder-menu-panel>button.danger:hover{color:var(--danger);background:var(--danger-weak)}@media (hover:none){.folder-menu{opacity:1}}.side-foot{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--border)}.side-user{flex:1 1;font-size:13px;font-weight:550;overflow:hidden;text-overflow:ellipsis}.avatar{width:34px;height:34px;border-radius:50%;background:var(--primary-weak);color:var(--primary);font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}.avatar.sm{width:28px;height:28px;font-size:12.5px}.main-col{display:flex;flex-direction:column;min-width:0;height:calc(100vh - var(--site-footer-height))}.topbar{flex:none;justify-content:space-between;gap:16px;padding:0 24px;background:#fff}.topbar,.topbar-actions{display:flex;align-items:center}.topbar-actions{gap:8px}.main{flex:1 1;overflow:auto;position:relative}.library,.page{padding:20px 24px 96px}.page.narrow{max-width:900px}.splash{height:calc(100vh - var(--site-footer-height));gap:10px;color:var(--primary);font-size:18px;font-weight:600}.login,.splash{display:flex;align-items:center;justify-content:center}.login{min-height:calc(100vh - var(--site-footer-height));background:var(--bg)}.login-card{width:380px;background:#fff;border-radius:16px;padding:30px 32px;box-shadow:var(--shadow-lg)}.login-card .brand{padding:0 0 6px}.login-tag{color:var(--text-2);font-size:13px;margin-bottom:22px}.lib-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.lib-title p{color:var(--text-2);font-size:13.5px;margin-top:4px;max-width:780px;line-height:1.55}.lib-head-actions{justify-content:flex-end}.lib-head-actions,.toolbar{display:flex;gap:8px;flex-wrap:wrap}.toolbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;align-items:center;background:color-mix(in srgb,var(--bg) 94%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);margin:0 -24px;padding:10px 24px}.toolbar .search-input{width:280px}.toolbar-spacer{flex:1 1}.chip.open{border-color:var(--primary)}.active-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 8px}.active-filters .tag-chip{font-size:12.5px;line-height:24px;padding:0 10px}.active-filter-label{color:var(--text-2);font-size:12px;font-weight:600}.filter-token{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:6px;background:var(--primary-weak);color:var(--primary-dark);font-size:12px}.filter-token button{display:inline-flex;color:inherit}.select-loaded{margin-left:auto;white-space:nowrap}.lib-body{display:flex;gap:18px;align-items:flex-start}.lib-results{flex:1 1;min-width:0}.facet-panel{width:220px;flex:none;position:-webkit-sticky;position:sticky;top:60px;max-height:calc(100vh - 140px);overflow:auto;background:#fff;border:1px solid var(--border);padding:12px}.facet-head{display:flex;gap:6px;align-items:center;font-size:13px;font-weight:650;margin-bottom:8px}.facet-empty{padding:10px 2px;line-height:1.6}.facet-group{margin-top:14px}.facet-group-head{font-size:12px;font-weight:650;color:var(--text-2);gap:6px;margin-bottom:4px}.facet-group-head,.facet-row{display:flex;align-items:center}.facet-row{gap:8px;height:27px;font-size:13px;cursor:pointer;border-radius:var(--r-sm);padding:0 4px}.facet-row:hover{background:var(--surface-2)}.facet-row span{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.facet-row em{font-style:normal;color:var(--text-3);font-size:12px}.facet-row.zero{opacity:.45}.result-bar{justify-content:space-between;margin:4px 0 12px;font-size:13px;min-height:30px}.result-bar,.result-summary{display:flex;align-items:center;gap:12px}.result-summary{flex-wrap:wrap}.drag-select-hint{display:inline-flex;align-items:center;gap:5px;color:var(--text-2);font-size:12px}.drag-select-hint svg{color:var(--primary)}.fresh-banner{background:var(--primary);color:#fff;border-radius:999px;padding:6px 12px;display:inline-flex;gap:6px;align-items:center;font-size:12.5px;font-weight:550;box-shadow:0 4px 14px rgba(23,22,27,.25);animation:rise .2s ease-out}.grid{display:grid;grid-gap:14px;gap:14px}.grid.drag-selecting{cursor:crosshair;-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid.drag-selecting .card{cursor:crosshair}.grid.drag-selecting .card.selected,.grid.drag-selecting .card:hover{border-color:var(--primary)}.sentinel{height:48px;display:flex;align-items:center;justify-content:center;color:var(--text-3)}.keys-hint{text-align:center;margin-top:8px;line-height:2}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;cursor:pointer;transition:box-shadow .15s,border-color .15s;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.card:hover{box-shadow:var(--shadow);border-color:var(--border-strong)}.card.focused{box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 45%,transparent)}.card.unusable .card-media{opacity:.45}.card-media,.thumb{position:relative}.thumb{background:#1A191D;display:flex;align-items:center;justify-content:center;overflow:hidden;width:100%}.thumb img{width:100%;height:100%;object-fit:contain}.thumb-sprite{background-repeat:no-repeat;flex:none}.thumb-empty{display:flex;flex-direction:column;align-items:center;gap:6px;color:#8C8794;font-size:12px}.thumb-empty.warn{color:#d9a441}.scrub-bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.2)}.scrub-bar i{display:block;height:100%;background:#fff}.scrub-time{left:50%;transform:translateX(-50%);background:rgba(0,0,0,.65);color:#fff;font-size:11px;font-family:var(--mono);padding:1px 6px;border-radius:4px}.card-tl,.scrub-time{position:absolute;top:8px}.card-tl{left:8px;display:flex;gap:4px;flex-wrap:wrap;max-width:calc(100% - 44px)}.badge{font-size:11px;font-weight:650;padding:1px 6px;border-radius:4px;color:#fff;line-height:17px}.badge.pick-pending{background:#a56c10}.badge.expired{background:var(--warning)}.badge.private{background:#4A4851}.card-check{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:6px;border:2px solid rgba(255,255,255,.85);background:rgba(0,0,0,.25);color:#fff;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .12s}.card-check.on,.card:hover .card-check,.grid:has(.card.selected) .card-check{opacity:1}.card-check.on{background:var(--primary);border-color:var(--primary)}.card-actions{position:absolute;top:36px;right:8px;display:flex;flex-direction:column;gap:4px;opacity:0;transition:opacity .12s}.card:hover .card-actions{opacity:1}.card-actions:has(.on){opacity:1}.mini-btn{width:26px;height:26px;border-radius:var(--r-sm);background:rgba(17,20,27,.62);color:#fff;display:inline-flex;align-items:center;justify-content:center}.mini-btn:hover{background:rgba(17,20,27,.85)}.mini-btn.on{background:var(--primary)}.mini-btn.on.star{background:rgba(17,20,27,.62);color:#ffcc4d}.card-bl,.card-br{position:absolute;bottom:8px;display:flex;gap:4px}.card-bl{left:8px}.card-br{right:8px}.pill{font-size:11px;padding:1px 6px;border-radius:4px;line-height:17px;display:inline-flex;align-items:center;gap:2px;font-weight:550}.pill.dark{background:rgba(0,0,0,.62);color:#fff;font-family:var(--mono);font-weight:500}.card-body{padding:8px 10px 10px;display:flex;flex-direction:column;gap:6px}.card-name{font-size:12.5px;font-weight:550;display:block}.card-meta,.card-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-meta{font-size:11.5px;color:var(--text-2)}.card-tags{display:flex;flex-wrap:wrap;gap:4px;max-height:20px;overflow:hidden}.card-muted{font-size:11.5px;color:var(--text-3)}.card-reason{font-size:11.5px;color:#5a49a8;display:flex;align-items:center;gap:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.card-reason svg{flex:none}.density-s .card-body{padding:6px 8px 8px;gap:4px}.density-s .card-reason{display:none}.density-s .card-name{font-size:12px}.card.skeleton .thumb{aspect-ratio:3/4;background:linear-gradient(90deg,#ECE8E1 25%,#F6F3EE 50%,#ECE8E1 75%);background-size:200% 100%;animation:shimmer 1.2s infinite}.card.skeleton .card-body i{display:block;height:10px;border-radius:4px;background:#ECE8E1}.card.skeleton .card-body i+i{width:60%}@keyframes shimmer{to{background-position:-200% 0}}.select-bar{position:fixed;bottom:20px;left:calc(50% + 104px);transform:translateX(-50%);color:#fff;padding:8px 10px 8px 16px;display:flex;gap:6px;align-items:center;box-shadow:var(--shadow-lg);z-index:50;animation:rise .15s ease-out;flex-wrap:wrap;max-width:calc(100vw - 252px)}.sel-count{font-weight:650;margin-right:6px;font-size:13px}.select-bar .btn:hover{background:#34333B}.select-bar .btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.select-bar .btn.primary:hover:not(:disabled){background:var(--primary-dark)}.select-bar .btn.danger{color:#ffabb1}.select-bar .btn:disabled{opacity:.55;cursor:wait}.bulk-pending{color:#CFCBD3;font-size:12px;padding:0 4px}.select-bar .kbd{background:#34333B;border-color:#45444C;color:#B9B5BF}.select-bar .icon-btn{color:#B9B5BF}.select-bar .icon-btn:hover{background:#34333B;color:#fff}.select-bar .link{color:#9EC0FF}.select-bar .muted{color:#9C97A3}.batch-strip{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;margin-bottom:8px}.batch-card{flex:none;width:270px;display:flex;gap:10px;background:#fff;border:1px solid var(--border);border-radius:10px;padding:8px;text-align:left;align-items:center}.batch-card:hover{box-shadow:var(--shadow)}.batch-card.has-new{border-color:var(--primary)}.batch-covers{width:90px;height:64px;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:2px;gap:2px;border-radius:var(--r-sm);overflow:hidden;background:#1A191D;flex:none;align-items:center;justify-items:center}.batch-covers img{width:100%;height:64px;object-fit:cover}.batch-info{display:flex;flex-direction:column;gap:3px;min-width:0;font-size:13px}.batch-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-hero{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.home-hero p{color:var(--text-2);margin-top:6px;font-size:14px}.hero-actions{display:flex;gap:8px}.stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:24px}.stat{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 16px;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;grid-column-gap:12px;column-gap:12px;align-items:center;text-align:left;color:var(--text-2)}.stat:hover{box-shadow:var(--shadow)}.stat svg:first-child{grid-row:span 2;color:var(--primary)}.stat b{font-size:22px;color:var(--text);line-height:1.1}.stat span{font-size:12.5px;grid-column:2}.stat svg:last-child{grid-row:1/span 2;grid-column:3;color:var(--text-3)}.stat.accent{background:var(--primary);border-color:var(--primary);color:#dfe5ff}.stat.accent b,.stat.accent svg{color:#fff!important}.home-sec{margin-bottom:28px}.sec-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.batch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:12px;gap:12px}.batch-tile{background:#fff;border:1px solid var(--border);overflow:hidden;text-align:left;display:flex;flex-direction:column}.batch-tile:hover{box-shadow:var(--shadow)}.batch-tile.has-new{border-color:color-mix(in srgb,var(--primary) 45%,var(--border))}.batch-mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:2px;gap:2px;height:96px;background:#1A191D}.batch-mosaic img,.batch-mosaic span{width:100%;height:96px;object-fit:cover;background:var(--ink)}.batch-tile-body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:6px;font-size:13px}.batch-tile-body strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shot-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:12px;gap:12px}.shot-tile{text-align:left;width:100%;background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden;cursor:pointer}.shot-tile:hover{box-shadow:var(--shadow)}.shot-tile-body{padding:7px 9px 9px;gap:4px}.dropzone,.shot-tile-body{display:flex;flex-direction:column}.dropzone{border:2px dashed var(--border-strong);padding:22px;text-align:center;color:var(--text-2);align-items:center;gap:6px;margin-bottom:12px;transition:background .15s,border-color .15s}.dropzone p{font-size:13.5px}.upload-list{max-height:220px;overflow:auto;border:1px solid var(--border);border-radius:var(--r);margin-bottom:14px}.upload-row{display:grid;grid-template-columns:1fr 76px 110px 50px;grid-gap:10px;gap:10px;align-items:center;padding:6px 10px;font-size:12.5px;border-bottom:1px solid var(--border)}.upload-row:last-child{border-bottom:none}.upload-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-status{text-align:right;font-family:var(--mono);font-size:12px}.upload-row.done .upload-status{color:var(--success)}.upload-row.error .upload-status{color:var(--danger)}.upload-row.done .progress i{background:var(--success)}.batch-tags{border:1px solid var(--border);border-radius:var(--r);padding:8px}.tag-layout{display:grid;grid-template-columns:1fr 300px;grid-gap:20px;gap:20px;align-items:flex-start}.tag-dims{display:flex;flex-direction:column;gap:12px}.dim-card,.panel{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 16px}.panel{margin-bottom:16px}.panel h3{margin-bottom:12px}.dim-card-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.dim-card-head .row-gap{margin-left:auto}.dim-color{width:10px;height:10px;border-radius:3px}.ai-toggle{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text-3);border:1px solid var(--border);border-radius:999px;padding:2px 8px;cursor:pointer}.ai-toggle input{display:none}.ai-toggle.on{color:#6b4fc8;border-color:#cfc3f3;background:#f6f3fe}.color-dots{display:flex;gap:4px}.color-dots button{width:14px;height:14px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--border)}.color-dots button.on{box-shadow:0 0 0 2px var(--text)}.value-list{display:flex;flex-direction:column}.value-row{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px dashed var(--border);font-size:13px}.value-row .tag-chip{font-size:12.5px;line-height:22px;padding:0 9px}.value-count{margin-left:auto;color:var(--text-3);font-size:12px;min-width:64px;text-align:right}.value-row.editing input{height:30px!important}.add-dim,.add-value{display:flex;gap:8px;margin-top:10px}.add-dim{background:#fff;border:1px dashed var(--border-strong);padding:12px}.preset-panel{position:-webkit-sticky;position:sticky;top:20px;background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:14px;display:flex;flex-direction:column;gap:10px}.preset-card{justify-content:space-between;gap:10px;align-items:center;padding:10px}.preset-card>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}.preset-dim{margin-bottom:14px}.preset-dim .tp-chips{margin-top:6px}.merge-list{max-height:50vh;overflow:auto}.member-list{display:flex;flex-direction:column;gap:8px}.member-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#fff;border:1px solid var(--border);border-radius:10px}.member-info{flex:1 1;display:flex;flex-direction:column;gap:3px}.badge-inline{font-size:11px;background:var(--primary-weak);color:var(--primary);padding:1px 6px;border-radius:4px;margin-left:6px;display:inline-flex;align-items:center;gap:3px;font-weight:550}.badge-inline.off{background:var(--danger-weak);color:var(--danger)}.inline-input{height:28px!important;font-size:12.5px!important;padding:0 8px!important}.inline-input.danger{color:var(--danger);border-color:#f3c2c6!important}.note-input{width:100%;min-height:64px;margin-top:8px;font-size:13px}.ql{position:fixed;inset:0;z-index:100;background:var(--dark);color:var(--dark-text);display:grid;grid-template-rows:52px 1fr auto}.ql-top{display:flex;align-items:center;gap:14px;padding:0 16px;border-bottom:1px solid var(--dark-line);min-width:0}.ql-count{font-family:var(--mono);color:var(--dark-muted);font-size:12.5px;flex:none}.ql-title{max-width:36%;font-size:14px}.ql-sub,.ql-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ql-sub{color:var(--dark-muted);font-size:12.5px;flex:1 1;min-width:0}.ql-top-actions{display:flex;align-items:center;gap:10px;flex:none}.ql-main{display:grid;grid-template-columns:1fr 384px;min-height:0}.ql-stage{position:relative;padding:16px 64px;min-width:0}.ql-media,.ql-stage{display:flex;align-items:center;justify-content:center;min-height:0}.ql-media{width:100%;height:100%}.ql-media img,.ql-media video{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;background:#000}.ql-placeholder{color:var(--dark-muted)}.ql-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.06);color:#fff;display:flex;align-items:center;justify-content:center}.ql-nav:hover:not(:disabled){background:rgba(255,255,255,.14)}.ql-nav.left{left:12px}.ql-nav.right{right:12px}.ql-nav:disabled{opacity:.2}.ql-mute{position:absolute;left:76px;bottom:26px;width:32px;height:32px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;display:flex;align-items:center;justify-content:center}.ql-side{background:var(--dark-2);border-left:1px solid var(--dark-line);overflow:auto;padding:4px 16px 20px}.ql-sec{padding:14px 0;border-bottom:1px solid var(--dark-line)}.ql-sec:last-child{border-bottom:none}.ql-sec.more{display:flex;flex-wrap:wrap;gap:6px}.ql .sec-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.ql h4{font-size:13px;font-weight:650;color:#fff}.ql .muted{color:var(--dark-muted)}.ql p.small{line-height:1.6}.ql .btn{background:var(--dark-3);border-color:#34323A;color:var(--dark-text)}.ql .btn:hover:not(:disabled){background:#2B2A31}.ql .btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.ql .btn.on{background:#1C2C55;border-color:#3E6FE0;color:#C9D8FF}.ql .btn.on-star{background:#3a2f12;border-color:#7a6020;color:#ffcc4d}.ql .btn.danger{color:#f08b93}.ql .kbd{background:#2B2A31;border-color:#3A3941}.ql .icon-btn,.ql .kbd{color:#B9B5BF}.ql .icon-btn:hover:not(:disabled){background:#2B2A31;color:#fff}.ql .link{color:#9EC0FF}.ql input:not([type=checkbox]):not([type=file]):not([type=radio]),.ql select,.ql textarea{color-scheme:dark;background:var(--dark-3);border-color:#34323A;color:var(--dark-text)}.ql .dropdown-panel{color:var(--text)}.ql .dropdown-panel input{background:#fff!important;color:var(--text)!important;border-color:var(--border)!important}.pick-row{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px;gap:8px}.pick-btn{height:42px;border-radius:var(--r);border:1px solid #34323a;background:var(--dark-3);color:#dfe3ec;font-size:14px;font-weight:650;display:flex;align-items:center;justify-content:center;gap:4px}.pick-btn:hover{background:#2B2A31}.pick-btn.usable.on{background:var(--success);border-color:var(--success);color:#fff}.pick-btn.unusable.on{background:var(--danger);border-color:var(--danger);color:#fff}.review-reset{margin-top:8px;min-height:28px}.pick-btn.on .kbd{background:rgba(255,255,255,.2);border-color:transparent;color:#fff}.action-row{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.ql-sec>p.small{margin-top:8px}.dim-line{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:7px}.dim-name{font-size:12px;color:var(--dark-muted);min-width:56px}.ql .tag-chip{background:color-mix(in srgb,var(--tag) 22%,#151821);border-color:color-mix(in srgb,var(--tag) 45%,#151821);color:color-mix(in srgb,var(--tag) 35%,#fff)}.suggest-box{margin-top:10px;background:var(--dark-3);border:1px solid #34323a;border-radius:var(--r);padding:10px}.suggest-head{display:flex;gap:6px;align-items:center;font-size:12.5px;color:#f5c46b;margin-bottom:6px}.suggest-head .link{margin-left:auto}.suggest-row{display:flex;gap:8px;align-items:center;padding:3px 0}.suggest-row .muted{flex:1 1}.ql .tag-chip.dashed{--tag:#d9a441}.seg-draft{display:flex;gap:6px;align-items:center;margin-bottom:8px;font-family:var(--mono);font-size:12px;color:#f5c46b}.seg-draft input{height:28px!important;font-family:var(--font);font-size:12.5px!important;flex:1 1}.seg-row{display:flex;gap:8px;align-items:center;padding:4px 0;font-size:12.5px}.seg-row .link{font-family:var(--mono);font-size:12px}.seg-note{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta-list{display:grid;grid-template-columns:64px 1fr;grid-gap:7px 10px;gap:7px 10px;font-size:12.5px;align-items:center}.meta-list dt{color:var(--dark-muted)}.meta-list dd{overflow:hidden;text-overflow:ellipsis}.meta-list .inline-input{width:150px}.ql-bottom{padding:8px 16px 12px;border-top:1px solid var(--dark-line)}.ql-strip{display:flex;gap:4px;overflow-x:auto;padding-bottom:4px}.strip-frame{height:64px;flex:none;border-radius:4px;border:2px solid transparent;background-repeat:no-repeat;position:relative;opacity:.75}.strip-frame:hover{opacity:1}.strip-frame.on{border-color:var(--primary);opacity:1}.strip-frame span{position:absolute;bottom:2px;left:50%;transform:translateX(-50%);font-size:10px;font-family:var(--mono);background:rgba(0,0,0,.6);color:#fff;padding:0 3px;border-radius:3px}.ql-timeline{position:relative;height:10px;background:#2B2A31;border-radius:5px;margin-top:8px;cursor:pointer;overflow:hidden}.tl-seg{background:#f5a524;opacity:.85}.tl-draft,.tl-seg{position:absolute;top:0;bottom:0}.tl-draft{background:rgba(110,140,255,.6)}.tl-cursor{position:absolute;top:0;bottom:0;width:2px;background:#fff}.keys-card{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--dark-3);border:1px solid #34323a;color:var(--dark-text);border-radius:var(--r-lg);padding:18px 22px;z-index:120;box-shadow:var(--shadow-lg);min-width:420px}.keys-card.global{position:fixed;z-index:200}.keys-card h4{margin-bottom:10px;font-size:14px;color:#fff}.keys-card ul{list-style:none;display:flex;flex-direction:column;gap:9px;font-size:13px;margin-bottom:10px}.keys-card li b{display:inline-block;width:52px;color:var(--dark-muted);font-weight:500}.keys-card .kbd{background:#2B2A31;border-color:#3A3941;color:#D9D5DE;margin-right:2px}.keys-card .muted{color:var(--dark-muted)}@media (max-width:1180px){.facet-panel{width:190px}.stat-row{grid-template-columns:repeat(2,1fr)}.tag-layout{grid-template-columns:1fr}.ql-main{grid-template-columns:1fr 330px}}.mobile-nav-backdrop,.mobile-nav-toggle{display:none}@media (max-width:860px){.mobile-nav-toggle{display:inline-flex;flex:none}.mobile-nav-backdrop{display:block;position:fixed;inset:0;z-index:50;background:rgba(17,16,19,.48);border:0}.sidebar.mobile-open{display:flex;position:fixed;inset:0 auto 0 0;width:min(300px,85vw);z-index:51;overflow-y:auto}.topbar{padding:0 12px;gap:8px}.topbar-actions{gap:4px}.shell{grid-template-columns:1fr}.sidebar{display:none}.select-bar{left:50%;max-width:calc(100vw - 24px)}.lib-body{flex-direction:column}.facet-panel{display:block;position:static;width:100%;max-height:320px}.lib-results{width:100%}.toolbar{position:static}.toolbar .search-input{width:min(100%,360px);flex:1 1 230px}.lib-head{flex-wrap:wrap}.card-check{opacity:1}.ql-main{grid-template-columns:1fr;grid-template-rows:1fr auto}.ql-side{max-height:45vh}}@media (max-width:600px){.stat-row{grid-template-columns:1fr}.topbar .search-input.global{min-width:0;flex:1 1}.topbar-actions>.icon-btn{display:none}.topbar-actions .btn{font-size:12px;padding:7px 8px;gap:4px}.page{padding:20px 16px}.home-hero{align-items:flex-start;gap:12px;flex-wrap:wrap}.form-grid{grid-template-columns:1fr}.modal-foot{flex-wrap:wrap}}body{font-size:14px;line-height:1.5}h1{font-size:20px;letter-spacing:0}h1,h2{font-weight:650}h2{font-size:16px}h3{font-size:14px;font-weight:650}.small{font-size:12px}.muted{color:var(--text-3)}.center{text-align:center}.mono-num{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:.94em}.text-danger{color:var(--danger-ink)}.text-warn{color:var(--warning)}.text-good{color:var(--success);font-weight:600}.text-primary{color:var(--primary)}input:not([type=checkbox]):not([type=file]):not([type=radio]),select,textarea{border-radius:var(--r-ctl);border-color:var(--border-strong)}input:focus,select:focus,textarea:focus{outline:3px solid color-mix(in srgb,var(--primary) 18%,transparent);outline-offset:0;border-color:var(--primary)}input[aria-invalid=true]{border-color:var(--danger)!important}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.skip-link{position:absolute;left:-9999px;top:8px;z-index:999;background:var(--ink);color:#fff;padding:8px 12px;border-radius:var(--r-ctl);font-size:13px}.skip-link:focus{left:12px}.btn{height:32px;border-radius:var(--r-ctl);border-color:var(--border-strong);color:var(--text)}.btn:hover:not(:disabled){background:var(--surface-soft);border-color:#CBC5BA}.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn.primary:hover:not(:disabled){background:var(--ink-hover);border-color:var(--ink-hover)}.btn.on{border-color:color-mix(in srgb,var(--primary) 45%,var(--border));color:var(--primary-dark);background:var(--primary-weak)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover:not(:disabled){background:var(--surface-2);border-color:transparent}.btn.danger{color:var(--danger-ink)}.btn.danger:not(.ghost){border-color:#F2C4BE}.btn.danger:hover:not(:disabled){background:var(--danger-weak)}.btn.danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger-solid:hover:not(:disabled){background:var(--danger-ink);border-color:var(--danger-ink)}.btn em.count{background:var(--ink)}.btn.on em.count{background:var(--primary)}.icon-btn{border-radius:var(--r-ctl)}.icon-btn.danger{color:var(--danger-ink)}.icon-btn.ok{color:var(--success)}.link{color:var(--primary-dark)}.select{width:auto!important;min-width:120px;height:32px!important;font-size:13px!important;padding-right:26px!important}.select.sm{height:28px!important;min-width:96px;font-size:12.5px!important}.kbd{border-color:var(--border-strong);background:var(--surface-soft)}.progress{background:var(--surface-2)}.callout,.error-box{border-radius:var(--r)}.error-box{color:var(--danger-ink)}.notice-box{background:var(--warning-weak);color:#7A3306;border:1px solid #f5d9a8;border-radius:var(--r);padding:10px 12px;font-size:13px;margin:8px 0 12px;line-height:1.6}.hint-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:12.5px;color:var(--text-3);line-height:1.6;margin:0 0 14px}.hint-line.warn{color:var(--warning)}.field-hint.danger{color:var(--danger-ink)}.field-hint.ok{color:var(--success)}.stack{display:flex;flex-direction:column;gap:12px}.stack>.field{margin-bottom:0}.inline-form{display:flex;gap:8px;align-items:center;max-width:640px}.inline-form input,.inline-form select{flex:1 1;min-width:0}.inline-form .select{flex:1 1;width:100%!important}.input-with-action{position:relative;display:flex;align-items:center}.input-with-action input{padding-right:56px!important}.input-with-action .link{position:absolute;right:10px}.check input[type=checkbox]{flex:none}.empty{border:1px dashed var(--border-strong);border-radius:var(--r-lg);background:rgba(255,255,255,.55);padding:36px 20px;margin:4px 0}.empty h3{font-size:14px}.empty-icon{background:var(--surface-2);color:var(--text-3);width:48px;height:48px}.drawer .empty,.facet-panel .empty,.modal .empty{border:none;background:none}.spinner{border-color:var(--border);border-top-color:var(--ink)}.shell{grid-template-columns:208px 1fr}.sidebar{background:var(--rail);border-right:1px solid var(--border)}.brand{color:var(--text);gap:10px;padding:16px 14px 12px}.brand img{border-radius:8px;flex:none}.brand div{min-width:0}.brand strong{font-size:15px;font-weight:700;letter-spacing:0}.brand span{font-size:12px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav{padding:2px 8px 8px;gap:2px}.nav-item{height:34px;border-radius:var(--r-ctl);color:var(--text-2);font-size:13.5px;gap:9px;padding:0 10px;width:100%}.nav-item span{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item:hover{background:rgba(255,255,255,.6);color:var(--text)}.nav-item.active{background:#fff;color:var(--ink);font-weight:600;box-shadow:var(--shadow)}.nav-item.active svg{color:var(--ink)}.nav-badge{background:var(--ink);color:#fff;font-family:var(--mono);font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.nav-badge.warn{background:var(--warning-weak);color:var(--warning)}.nav-badge.accent{background:var(--primary);color:#fff}.side-sec{padding:8px;border-top:1px solid var(--border)}.side-sec-head{letter-spacing:0}.side-empty,.side-sec-head{font-size:12px;color:var(--text-3);padding:4px 8px 6px}.side-empty{line-height:1.6}.folder-item{border-radius:var(--r-ctl);height:30px}.folder-item:hover{background:rgba(255,255,255,.6)}.folder-item.active{background:#fff;box-shadow:var(--shadow)}.folder-item.active .folder-name{color:var(--ink);font-weight:600}.folder-more{opacity:0}.folder-item.active .folder-more,.folder-item:hover .folder-more,.folder-more:focus-visible,.folder-more[aria-expanded=true]{opacity:1}@media (hover:none){.folder-more{opacity:1}}.dot-count{background:var(--ai-weak);color:var(--ai);font-family:var(--mono)}.folder-total{font-family:var(--mono);font-size:11px;color:var(--faint)}.side-foot{flex-direction:column;align-items:stretch;gap:4px;padding:8px}.user-card{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border-radius:var(--r);text-align:left;color:var(--text-3)}.user-card:hover,.user-card[aria-expanded=true]{background:#fff;box-shadow:var(--shadow)}.user-card-text{flex:1 1;min-width:0;display:flex;flex-direction:column}.user-card-text strong{font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-card-text span{font-size:12px;color:var(--text-3)}.avatar{background:var(--surface-2);color:var(--text-2)}.avatar,.pop-menu{border:1px solid var(--border)}.pop-menu{position:fixed;z-index:400;min-width:176px;padding:5px;background:#fff;border-radius:var(--r);box-shadow:var(--shadow-pop)}.pop-menu>button{width:100%;min-height:34px;display:flex;align-items:center;gap:9px;padding:0 10px;border-radius:var(--r-sm);text-align:left;font-size:13px;color:var(--text-2)}.pop-menu>button:focus-visible,.pop-menu>button:hover{background:var(--surface-2);color:var(--text);outline:none}.pop-menu>button.danger{color:var(--danger-ink)}.pop-menu>button.danger:focus-visible,.pop-menu>button.danger:hover{background:var(--danger-weak)}.topbar{background:var(--bg);border-bottom:1px solid var(--border);padding:0 28px;height:56px}.topbar .search-input.global{background:#fff}.main{background:var(--bg)}.library,.page{padding:22px 28px 96px}.toolbar{margin:0 -28px;padding:10px 28px}.page.narrow{max-width:860px}.drawer,.dropdown-panel,.modal{border-color:var(--border)}.modal{border-radius:var(--r-xl)}.modal-head h2{font-size:16px}.toast{background:var(--ink);border-radius:var(--r)}.toast.success{background:#0B5E43}.toast.error{background:#8F2A20}.splash{color:var(--text)}.login-card{border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-pop)}.login-card .brand{padding:0 0 8px}.login-foot,.login-tag{color:var(--text-3)}.login-foot{margin-top:16px;font-size:12px;text-align:center;line-height:1.6}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.page-head>div:first-child{min-width:0}.page-head .btn{flex:none}.page-sub{font-size:13px;margin-top:4px;line-height:1.55;max-width:860px}.lib-title p,.page-sub{color:var(--text-3)}.panel{border-radius:var(--r-lg);padding:16px 18px}.panel h3{display:flex;align-items:center;gap:6px;margin-bottom:4px}.panel>p.muted{margin-bottom:12px;line-height:1.6}.panel .field-hint{margin-top:8px;display:block}.seg{gap:2px;padding:3px;background:var(--surface-2);border-radius:var(--r);flex-wrap:wrap}.seg,.seg-item{display:inline-flex}.seg-item{height:28px;padding:0 12px;border-radius:var(--r-ctl);font-size:13px;color:var(--text-2);align-items:center;gap:6px;white-space:nowrap}.seg-item:hover{color:var(--text)}.seg-item.on{background:#fff;color:var(--ink);font-weight:600;box-shadow:var(--shadow)}.seg-item em{font-style:normal;font-family:var(--mono);font-size:11.5px;color:var(--text-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.seg-item.danger em{color:var(--danger-ink);font-weight:600}.toolbar.wrap{row-gap:8px}.table-wrap,.toolbar .search-input{background:#fff}.table-wrap{border:1px solid var(--border);border-radius:var(--r-lg);overflow-x:auto;margin-bottom:12px}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{text-align:left;font-size:12px;font-weight:600;color:var(--text-3);background:var(--surface-soft);white-space:nowrap}.data-table td,.data-table th{padding:10px 14px;border-bottom:1px solid var(--border)}.data-table td{vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:#FCFBF9}.data-table tbody tr.on{background:var(--primary-weak)}.data-table .num{text-align:right;white-space:nowrap}.data-table .check{width:40px;padding-right:0}.data-table tr.off td{color:var(--text-3)}.row-actions{text-align:right;white-space:nowrap}.row-actions>*+*{margin-left:4px}.member-cell{display:flex;align-items:center;gap:10px;min-width:180px}.member-cell>div{display:flex;flex-direction:column;min-width:0}.member-cell strong{font-size:13.5px;max-width:24ch;white-space:normal}.member-cell strong,.username-current{overflow-wrap:anywhere}.file-cell{display:flex;align-items:center;gap:10px;min-width:220px}.file-cell img,.thumb-ph{width:40px;height:52px;border-radius:var(--r-sm);object-fit:cover;background:var(--dark-3);flex:none;display:block}.file-cell>div{display:flex;flex-direction:column;min-width:0}.file-cell strong{font-size:13px;font-weight:550;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-pill{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:2px 9px;border-radius:999px;background:var(--surface-2);color:var(--text-2);white-space:nowrap}.role-pill.role-owner{background:var(--ink);color:#fff}.role-pill.role-admin{background:var(--primary-weak);color:var(--primary-dark)}.role-pill.role-reviewer{background:var(--success-weak);color:var(--success)}.role-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:10px;gap:10px;margin-bottom:16px}.role-card{background:#fff;border:1px solid var(--border);border-radius:var(--r);padding:10px 12px;display:flex;flex-direction:column;gap:4px}.role-card b{font-size:13px}.role-card span{font-size:12px;color:var(--text-3);line-height:1.55}.role-choice{border:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.role-choice legend{margin-bottom:6px}.role-option{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--border);border-radius:var(--r);padding:10px 12px;cursor:pointer;background:#fff}.role-option:hover{border-color:var(--border-strong)}.role-option.on{border-color:color-mix(in srgb,var(--primary) 55%,var(--border));background:var(--primary-weak)}.role-option input{margin-top:3px;accent-color:var(--primary)}.role-option>span{display:flex;flex-direction:column;gap:2px}.role-option b{font-size:13.5px}.cred-box{background:var(--surface-soft);border:1px dashed var(--border-strong);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}.cred-box dl{display:grid;grid-template-columns:72px minmax(0,1fr);grid-gap:6px 10px;gap:6px 10px;font-size:13px;margin:0;max-width:100%}.cred-box dt{color:var(--text-3)}.cred-box dd{margin:0;font-weight:600;-webkit-user-select:all;-moz-user-select:all;user-select:all;overflow-wrap:anywhere}.confirm-body{font-size:13.5px;color:var(--text-2);line-height:1.7}.reason-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;margin-bottom:12px}.reason-chip{display:flex;align-items:center;gap:8px;min-height:38px;padding:0 12px;border-radius:var(--r);border:1px solid var(--border-strong);background:#fff;text-align:left;font-size:13.5px}.reason-chip:hover{border-color:#CBC5BA;background:var(--surface-soft)}.reason-chip.on{border-color:var(--danger);background:var(--danger-weak);color:var(--danger-ink)}.reason-chip .kbd{margin-left:0}.home .page-head h1{font-size:22px}.guide-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 18px;margin-bottom:18px}.guide-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.guide-head h2{font-size:15px;margin-bottom:2px}.guide-steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.guide-steps li{display:flex;flex-direction:column;gap:8px;border:1px solid var(--border);border-radius:var(--r);padding:12px;background:var(--surface-soft)}.guide-steps li>div{display:flex;flex-direction:column;gap:3px}.guide-steps li strong{font-size:13.5px}.guide-steps li>div>span{font-size:12px;color:var(--text-3);line-height:1.55}.guide-steps li .btn{align-self:flex-start;margin-top:auto}.guide-steps li.done{background:#fff}.guide-steps li.done strong{color:var(--text-3);text-decoration:line-through;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint)}.guide-num{width:24px;height:24px;border-radius:50%;background:var(--ink);color:#fff;font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono)}.guide-steps li.done .guide-num{background:var(--success-weak);color:var(--success)}.task-row{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));grid-gap:12px;margin-bottom:26px}.task-card,.task-row{display:grid;gap:12px}.task-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 16px;text-align:left;grid-template-columns:auto 1fr auto;grid-gap:12px;align-items:start;transition:box-shadow .15s,border-color .15s}.task-card:hover{box-shadow:var(--shadow-pop);border-color:var(--border-strong)}.task-icon{width:34px;height:34px;border-radius:var(--r);background:var(--surface-2);color:var(--text-2);display:inline-flex;align-items:center;justify-content:center}.task-text{display:flex;flex-direction:column;gap:2px;min-width:0}.task-label{font-size:12.5px;color:var(--text-2);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.task-label .nav-badge{margin-left:0}.task-text b{font-size:24px;font-weight:650;font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink);line-height:1.25}.task-hint{font-size:12px;color:var(--text-3);line-height:1.5}.task-go{color:var(--faint);margin-top:4px}.task-card:hover .task-go{color:var(--text-2)}.task-card.warn .task-icon{background:var(--warning-weak);color:var(--warning)}.task-card.warn b{color:var(--warning)}.task-card.danger .task-icon{background:var(--danger-weak);color:var(--danger-ink)}.task-card.accent .task-icon{background:var(--primary-weak);color:var(--primary-dark)}.sec-title h2{font-size:15px}.push{margin-left:auto}.batch-tile,.card,.shot-tile{border-color:var(--border)}.batch-tile{border-radius:var(--r-lg)}.batch-card:hover,.batch-tile:hover,.shot-tile:hover{box-shadow:var(--shadow-pop)}.batch-tile.has-new{border-color:color-mix(in srgb,var(--ai) 40%,var(--border))}.batch-card.has-new{border-color:color-mix(in srgb,var(--warning) 45%,var(--border))}.shot-row{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.fresh-banner{background:var(--ink);box-shadow:var(--shadow-pop)}.badge.new{background:var(--primary)}.badge.pick-pending{background:var(--warning)}.badge.pick-usable{background:var(--success)}.badge.pick-unusable{background:var(--danger)}.card-reason{color:var(--text-2)}.card-reason.danger{color:var(--danger-ink)}.card.selected{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary)}.facet-panel{border-radius:var(--r-lg)}.dropzone{border-color:var(--border-strong);border-radius:var(--r-lg);background:var(--surface-soft)}.dropzone.over{border-color:var(--primary);background:var(--primary-weak)}.callout{background:var(--surface-soft);border-color:var(--border);color:var(--text-2)}.callout svg{color:var(--text-3)}.select-bar{background:var(--ink);border-radius:var(--r-lg)}.select-bar .btn{background:#2B2A31;border-color:#3A3941;color:#ECEAE6}.select-bar .btn:hover:not(:disabled){background:#34333B}.select-bar .btn.primary{background:#fff;border-color:#fff;color:var(--ink)}.select-bar .btn.primary:hover:not(:disabled){background:#ECEAE6}.select-bar.inline{position:static;transform:none;left:auto;bottom:auto;max-width:none;display:inline-flex;margin:0 0 12px;box-shadow:var(--shadow-pop);animation:none}.select-bar.inline .btn.danger{color:#FFB4AB}.dim-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));grid-gap:12px;gap:12px;align-items:start}.dim-grid>.add-dim{grid-column:1/-1}.dim-card{border-radius:var(--r-lg)}.dim-card-head h3{font-size:14px}.dim-tools{margin-left:auto;display:flex;align-items:center;gap:4px;flex-wrap:wrap}.mini-switch{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--text-3);cursor:pointer;padding:3px 8px 3px 6px;border-radius:999px;border:1px solid var(--border);-webkit-user-select:none;-moz-user-select:none;user-select:none}.mini-switch input{position:absolute;opacity:0;pointer-events:none}.mini-switch>span{width:22px;height:13px;border-radius:7px;background:var(--border-strong);position:relative;flex:none;transition:background .15s}.mini-switch>span:after{content:"";position:absolute;top:2px;left:2px;width:9px;height:9px;border-radius:50%;background:#fff;transition:transform .15s}.mini-switch.on{color:var(--ink);border-color:var(--border-strong);background:var(--surface-soft)}.mini-switch.on>span{background:var(--ink)}.mini-switch.on>span:after{transform:translateX(9px)}.mini-switch:focus-within{outline:2px solid var(--primary);outline-offset:1px}.req{font-style:normal;font-size:11px;font-weight:600;color:var(--warning);background:var(--warning-weak);padding:0 6px;border-radius:4px;line-height:18px;margin-left:4px}.alias,.req{white-space:nowrap}.alias{max-width:180px;overflow:hidden;text-overflow:ellipsis}.value-row{border-bottom-color:var(--border)}.value-count{min-width:40px;font-family:var(--mono)}.add-dim{border-color:var(--border-strong);border-radius:var(--r-lg);background:rgba(255,255,255,.55)}.preset-start{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:20px}.preset-start h3{font-size:15px;margin-bottom:4px}.preset-start .add-dim{margin-top:16px}.preset-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin:14px 0 0}.preset-card{align-items:stretch;justify-content:flex-start;gap:6px;padding:12px}.preset-card>span{line-height:1.55}.preset-card-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.preset-dim{margin:4px 0 0}.preset-dim b{font-size:12px;color:var(--text-2)}.chip-wrap{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.tag-picker{display:flex;flex-direction:column}.tp-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp-row.on .tp-check{background:var(--ink);border-color:var(--ink)}.tp-chip.on{font-weight:600}.audit-list{display:flex;flex-direction:column;gap:18px}.audit-day-label{font-size:12px;color:var(--text-3);font-weight:600;margin:0 0 6px 2px}.audit-day ol{list-style:none;background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.audit-row{display:grid;grid-template-columns:44px 28px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:start;padding:10px 14px;border-bottom:1px solid var(--border)}.audit-row:last-child{border-bottom:none}.audit-row time{padding-top:5px}.audit-text{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;font-size:13.5px;line-height:1.6;padding-top:3px;min-width:0;word-break:break-word}.audit-text b{font-weight:600}.audit-target{color:var(--ink)}.audit-samples{flex-basis:100%;line-height:1.6}.load-more{display:flex;justify-content:center;margin:8px 0}.ql .hint-line{color:var(--dark-muted);margin:8px 0 0}.ql .hint-line.warn,.ql .req{color:#F5C46B}.ql .req{background:rgba(245,196,107,.14)}.status-line{display:flex;align-items:flex-start;gap:8px;padding:9px 10px;border-radius:var(--r-ctl);font-size:13px;line-height:1.55;background:var(--dark-3);color:var(--dark-text)}.status-line svg{flex:none;margin-top:3px}.status-line b{font-weight:650}.status-line.pending{color:#F5C46B}.status-line.usable{color:#6FD3A6}.status-line.unusable{color:#FF9C93}.status-line.private{color:var(--dark-muted)}.note-read{font-size:13px;line-height:1.65;white-space:pre-wrap;background:var(--dark-3);border-radius:var(--r-ctl);padding:8px 10px;color:var(--dark-text);word-break:break-word}.as-button{width:100%;text-align:left;cursor:pointer;margin-bottom:0}.as-button h4{display:flex;align-items:center;gap:6px}.history-list{list-style:none;display:flex;flex-direction:column;gap:8px;margin-top:10px;font-size:12.5px;line-height:1.6;color:var(--dark-text)}.history-list li{display:flex;flex-wrap:wrap;gap:0 6px;align-items:baseline}.history-list time{margin-left:auto}.dim-line.pickable{align-items:flex-start}.dim-line.pickable .dim-name{padding-top:4px;display:inline-flex;align-items:center;flex-wrap:wrap}.dim-line.missing .dim-name{color:#F5C46B}.dim-values{display:flex;flex-wrap:wrap;gap:6px;flex:1 1;min-width:0}.tag-toggle{--tag:#8C8794;height:26px;padding:0 10px;border-radius:999px;border:1px solid #3a3941;background:transparent;color:var(--dark-text);font-size:12.5px;display:inline-flex;align-items:center}.tag-toggle:hover{border-color:color-mix(in srgb,var(--tag) 70%,#3A3941)}.tag-toggle.on{background:color-mix(in srgb,var(--tag) 32%,#19181C);border-color:color-mix(in srgb,var(--tag) 80%,#fff);color:#fff;font-weight:600}.tag-toggle.more{border-style:dashed;color:var(--dark-muted)}.ql .btn.primary{background:#fff;border-color:#fff;color:var(--ink)}.ql .btn.primary:hover:not(:disabled){background:#ECEAE6}.ql .btn.danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}@media (max-width:1180px){.guide-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.dim-grid{grid-template-columns:1fr}}@media (max-width:860px){.shell{grid-template-columns:1fr}.topbar{padding:0 12px}.library,.page{padding:18px 16px 96px}.toolbar{margin:0 -16px;padding:10px 16px;position:static}.select-bar{left:50%;max-width:calc(100vw - 24px)}.inline-form,.page-head{flex-wrap:wrap}.file-cell strong{max-width:180px}}@media (max-width:600px){.hide-sm{display:none!important}.guide-steps,.reason-grid,.task-row{grid-template-columns:1fr}.audit-row{grid-template-columns:40px minmax(0,1fr)}.audit-row .avatar{display:none}}.thumb-scrub{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#1A191D}.scrub-bar,.scrub-time,.thumb-scrub{pointer-events:none}.batch-mosaic{display:flex}.batch-mosaic img{flex:1 1;min-width:0}.batch-mosaic .empty-cover{flex:1 1;display:flex;align-items:center;justify-content:center;color:#8C8794;font-size:12px;background:#1A191D}.member-cell .badge-inline{align-self:flex-start;margin-left:0;margin-top:3px}.data-table td.check,.data-table th.check{display:table-cell;margin:0}.dim-card-head .dim-tools{flex-wrap:nowrap}.dim-settings{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 4px}.dim-settings .color-dots{margin-left:auto}.ql-sec .suggest-box{margin:4px 0 12px}.dim-line.missing{border-radius:8px;box-shadow:inset 0 0 0 1px rgba(245,196,107,.45);padding:4px 6px;margin:0 -6px}.dim-line.flash{animation:dim-flash 1.2s ease-out 1}@keyframes dim-flash{0%,40%{background:rgba(245,196,107,.22)}to{background:transparent}}.ql-sec .sec-head h4{flex:none;white-space:nowrap}.ql-sec .sec-hint{margin:-2px 0 8px}body:has(.select-bar:not(.inline)) .toasts{bottom:92px}.shooting-date-panel{width:270px;max-width:calc(100vw - 32px);padding:12px;display:grid;grid-gap:10px;gap:10px}.shooting-date-panel>p{margin:0}.shooting-date-panel .search-input{min-width:0;width:100%}.shooting-date-panel>button{justify-self:start}.shooting-date-options{max-height:260px;overflow-y:auto;overscroll-behavior:contain}.shooting-date-options>p{padding:8px 0}@media (max-width:600px){.shooting-date-filter .dropdown-panel{position:fixed;top:140px;left:16px;right:16px;min-width:0}.shooting-date-panel{width:100%;max-width:none}.shooting-date-options{max-height:40vh}}.asset-delivery-actions{display:flex;align-items:center;gap:6px;width:100%;margin-top:8px}.asset-delivery-actions .btn{justify-content:center;min-width:0}.asset-delivery-actions .delivery-sync{flex:1.6 1}.asset-delivery-actions .delivery-download{flex:1 1}.basket-delivery-actions{margin-top:4px}.bulk-delivery-actions{width:auto;margin-top:0;flex:0 0 auto}.bulk-delivery-actions .delivery-sync{min-width:136px}.bulk-delivery-actions .delivery-download{min-width:84px}.browser-download-panel{position:fixed;right:20px;bottom:20px;z-index:145;width:420px;max-width:calc(100vw - 40px);background:var(--surface);color:var(--text);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow:hidden}.browser-download-panel>header{display:flex;align-items:center;gap:6px;padding:10px 12px}.browser-download-heading{flex:1 1;min-width:0;display:flex;align-items:center;gap:10px;text-align:left}.browser-download-heading>span{flex:1 1;display:grid;grid-gap:2px;gap:2px}.browser-download-heading strong{font-size:13px;font-weight:600}.browser-download-heading small{font-size:12px;color:var(--text-2)}.browser-download-body{max-height:min(54vh,380px);padding:0 12px 12px;overflow:auto}.browser-download-body>p{font-size:12px;color:var(--text-2);line-height:1.6;padding:2px 0 10px}.browser-download-body ul{list-style:none}.browser-download-body li{display:flex;align-items:center;gap:12px;border-top:1px solid var(--border);padding:10px 0}.browser-download-body li>div{min-width:0;flex:1 1;display:grid;grid-gap:3px;gap:3px}.browser-download-body li strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500}.browser-download-body li span{font-size:12px;line-height:1.5;overflow-wrap:anywhere}.browser-download-body li>button{flex:none}.browser-bundle-progress{width:100%;height:6px;margin:2px 0 10px;accent-color:var(--primary)}.browser-bundle-actions{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:2px}.browser-download-body>p.text-danger{color:var(--danger);overflow-wrap:anywhere}@media (max-width:600px){.bulk-delivery-actions{width:100%}.browser-download-panel{bottom:12px;right:12px;max-width:calc(100vw - 24px)}}.local-sync-page{max-width:1120px}.local-sync-page h2{font-size:15px}.local-sync-page .panel>h2{margin-bottom:12px}.sync-pending{padding:16px 18px;margin-bottom:16px;background:var(--primary-weak);border-radius:var(--r-lg)}.sync-pending p{margin-top:4px;color:var(--text-2);font-size:13px}.sync-pending>.row-gap{margin-top:12px}.sync-target-select{max-width:460px;margin-bottom:10px}.sync-target-detail{display:grid;grid-gap:6px;gap:6px}.sync-state{display:inline-flex;align-items:center;gap:5px;font-size:12px;white-space:nowrap}.sync-state svg{flex:none}.sync-file-path,.sync-path{overflow-wrap:anywhere;font-size:13px}.sync-path{color:var(--text-2)}.sync-setup>summary{cursor:pointer}.sync-setup>summary h2{display:inline}.sync-setup-content{padding-top:14px}.sync-setup ol{padding-left:22px;color:var(--text-2);font-size:13px;display:grid;grid-gap:6px;gap:6px}.sync-install-links{margin:14px 0 20px}.sync-install-links a.btn{text-decoration:none}.sync-pair-form{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.sync-pair-form .field{width:260px;max-width:100%;margin-bottom:0}.sync-pair-form+.field-hint,.sync-pair-form+.text-danger{margin-top:8px}.sync-devices,.sync-jobs{margin-top:28px}.sync-device-list{margin-top:10px}.sync-device-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto auto;grid-gap:12px;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border)}.sync-device-row>svg{color:var(--text-3)}.sync-device-info{min-width:0;display:grid;grid-gap:2px;gap:2px;overflow-wrap:anywhere}.sync-device-info strong{font-size:13px;font-weight:600}.sync-skipped{margin-top:24px;padding:14px 16px;background:var(--warning-weak);border-radius:var(--r)}.sync-skipped h2{display:flex;gap:6px;align-items:center}.sync-skipped ul{list-style:none;margin-top:8px;display:grid;grid-gap:5px;gap:5px;font-size:13px}.sync-skipped li{display:flex;justify-content:space-between;gap:12px;overflow-wrap:anywhere}.sync-skipped li>:last-child{color:var(--text-2)}.sync-section-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}.sync-job{padding:16px 0;border-bottom:1px solid var(--border)}.sync-job:first-child{padding-top:8px}.sync-job-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.sync-job-heading h3{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.sync-job-status{font-size:12px;font-weight:500}.sync-job-heading p{margin-top:3px}.sync-job-count{display:flex;flex-wrap:wrap;gap:4px 16px;justify-content:space-between;margin-top:12px;font-size:12px;color:var(--text-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sync-job-count>span{color:var(--text-3)}.sync-progress{display:block;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;margin-top:6px;border:none;border-radius:2px;color:var(--primary);background:var(--surface-2);overflow:hidden}.sync-progress::-webkit-progress-bar{background:var(--surface-2)}.sync-progress::-webkit-progress-value{background:var(--primary)}.sync-progress::-moz-progress-bar{background:var(--primary)}.sync-job-details{margin-top:10px}.sync-job-details>summary{color:var(--primary-dark);font-size:12px;cursor:pointer;width:-moz-fit-content;width:fit-content}.sync-job-details>ul{list-style:none;margin-top:4px}.sync-job-details li{display:grid;grid-gap:4px;gap:4px;padding:12px 0;border-bottom:1px solid var(--border)}.sync-job-details li:last-child{border-bottom:none;padding-bottom:2px}.sync-file-heading{display:flex;gap:12px;justify-content:space-between;align-items:flex-start}.sync-file-heading strong{min-width:0;overflow-wrap:anywhere;font-size:13px;font-weight:500}.sync-file-path{display:flex;align-items:flex-start;gap:8px;color:var(--text-2)}.sync-file-path>span{flex:1 1;min-width:0}.sync-footer-note{color:var(--text-3);font-size:12px;line-height:1.7;margin-top:24px}@media (max-width:600px){.sync-device-row{grid-template-columns:18px minmax(0,1fr) auto;gap:8px}.sync-device-row>button{grid-column:2/4;justify-self:start}.sync-skipped li{flex-direction:column;gap:2px}.sync-skipped .row-between{align-items:flex-start}.sync-pair-form{align-items:stretch}.sync-pair-form .field{width:100%}.sync-job-heading>.row-gap{gap:4px}}.search-input.wide{min-width:300px;flex:1 1 340px;max-width:520px}.search-input.busy{border-color:var(--primary)}.search-input .icon-btn{width:26px;height:26px;flex:none}.filter-token.image-token img{width:18px;height:18px;object-fit:cover;border-radius:3px}.active-filters .link.small svg,.filter-bar .link.small svg{vertical-align:-2px}.badge.explore{background:#6B4FD8}.badge.explore,.badge.featured{display:inline-flex;align-items:center;gap:3px}.badge.featured{background:#B7791F}.badge.ok{background:var(--success-weak);color:var(--success);display:inline-flex;align-items:center;gap:3px}.badge.muted{background:var(--surface-2);color:var(--text-3)}.card.explore{border-color:#D8CFF7}.card.stacked{box-shadow:4px 4px 0 -1px var(--surface),4px 4px 0 0 var(--border-strong),8px 8px 0 -1px var(--surface),8px 8px 0 0 var(--border)}.card.stacked:hover{box-shadow:4px 4px 0 -1px var(--surface),4px 4px 0 0 var(--border-strong),8px 8px 0 -1px var(--surface),8px 8px 0 0 var(--border-strong),var(--shadow)}.card.stacked.selected{box-shadow:0 0 0 2px var(--primary),6px 6px 0 -1px var(--surface),6px 6px 0 0 var(--primary)}.group-badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:999px;background:rgba(17,16,19,.72);color:#fff;font-size:11.5px;font-weight:600;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.group-badge:hover{background:var(--primary)}.card-caption{font-size:12px;color:var(--text-2);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.rank-explain{display:inline-flex;align-items:center;gap:3px;cursor:help}.rank-explain svg{color:var(--faint)}.search-explain{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0 0 10px;padding:8px 12px;border-radius:var(--r);background:var(--surface-soft);border:1px dashed var(--border-strong);font-size:12.5px;color:var(--text-2)}.search-explain>span{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px}.search-explain .tag-chip{font-weight:550}.semantic-note{color:var(--ai)}.semantic-note svg{flex:none}.cluster-note{margin:2px 0 12px;line-height:1.6}.cluster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:14px;gap:14px}.cluster-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .15s,border-color .15s}.cluster-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-pop)}.cluster-card.muted-card{opacity:.75}.cluster-open{display:flex;flex-direction:column;text-align:left;width:100%}.cluster-covers{display:grid;grid-gap:2px;gap:2px;aspect-ratio:4/3;background:var(--surface-2);overflow:hidden;grid-template-rows:minmax(0,1fr)}.cluster-covers.n1{grid-template-columns:minmax(0,1fr)}.cluster-covers.n2,.cluster-covers.n3,.cluster-covers.n4{grid-template-columns:repeat(2,minmax(0,1fr))}.cluster-covers.n3,.cluster-covers.n4{grid-template-rows:repeat(2,minmax(0,1fr))}.cluster-covers.n3>:first-child{grid-row:span 2}.cluster-covers .thumb-empty,.cluster-covers img{width:100%;height:100%;object-fit:cover;min-height:0;background:var(--surface-2)}.cluster-body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:6px}.cluster-body strong{display:flex;justify-content:space-between;align-items:baseline;font-size:13.5px}.cluster-body em{font-style:normal;font-size:12px;color:var(--text-3);font-weight:500}.cluster-tag{padding:0 10px 10px}.cluster-card.skeleton .cluster-covers{animation:pulse 1.4s ease-in-out infinite}.cluster-card.skeleton .card-body i{display:block;height:10px;border-radius:4px;background:var(--surface-2);margin:4px 0}@keyframes pulse{50%{opacity:.55}}.drawer.wide{width:760px}.group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:12px;gap:12px}.group-tile{position:relative;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--surface)}.group-tile.cover{border-color:#E3B341}.group-tile.picked{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary)}.group-thumb{display:block;width:100%}.group-check{top:6px;right:6px;width:24px;height:24px;border-radius:6px;background:rgba(255,255,255,.92);display:flex;justify-content:center;box-shadow:var(--shadow)}.cover-badge,.group-check{position:absolute;align-items:center}.cover-badge{top:8px;left:8px;background:#B7791F;display:inline-flex;gap:3px}.compare-ops .cover-badge{position:static}.group-info{padding:6px 8px 8px;display:flex;flex-direction:column;gap:2px}.group-ops{display:flex;gap:2px;margin-top:2px}.group-ops .icon-btn{width:28px;height:28px}.icon-btn.on{color:var(--primary);background:var(--primary-weak)}.ql.compare{z-index:160;grid-template-rows:52px 1fr}.compare .btn.light,.ql .btn.ghost.light{color:var(--dark-text);border-color:var(--dark-line);background:transparent}.compare .btn.light:hover{background:rgba(255,255,255,.08)}.compare .kbd{background:transparent;border-color:var(--dark-line);color:var(--dark-muted);margin-left:4px}.compare-grid{display:grid;grid-gap:10px;gap:10px;padding:12px;min-height:0}.compare-grid.n1{grid-template-columns:1fr}.compare-grid.n2{grid-template-columns:1fr 1fr}.compare-grid.n3{grid-template-columns:repeat(3,1fr)}.compare-grid.n4{grid-template-columns:repeat(4,1fr)}.compare-tile{display:flex;flex-direction:column;min-height:0;background:var(--dark-2);border:1px solid var(--dark-line);border-radius:var(--r);overflow:hidden}.compare-media{flex:1 1;min-height:0;display:flex;align-items:center;justify-content:center;background:#000}.compare-media img,.compare-media video{max-width:100%;max-height:100%;object-fit:contain}.compare-tile figcaption{padding:8px 10px 10px;display:flex;flex-direction:column;gap:4px}.compare-tile .muted{color:var(--dark-muted)}.compare-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compare-ops{display:flex;gap:6px;flex-wrap:wrap}.compare-ops .btn.sm.on{border-color:#fff;color:#fff}.related-row{display:flex;flex-wrap:wrap;gap:6px}.related-row .kbd{margin-left:2px}.group-link{margin-top:8px;display:inline-flex;align-items:center;gap:4px}.ql .group-link{color:#9DB8FF}.caption-text{font-size:13px;line-height:1.6}.caption-text.ai{color:var(--dark-muted)}.featured-btn{margin-top:10px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ql .featured-btn.on{border-color:#E3B341;color:#F5C46B;background:rgba(227,179,65,.1)}.featured-line{color:#F5C46B!important;display:flex;gap:4px;align-items:center}.home .sec-title h2{display:inline-flex;align-items:center;gap:6px}.home .sec-title h2 svg{color:var(--text-3)}.hint-banner{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;border-radius:var(--r);background:var(--primary-weak);color:var(--primary-dark);font-size:13px;line-height:1.6;margin:0 0 16px}.hint-banner svg{flex:none;margin-top:3px}.hint-banner.warn{background:var(--warning-weak);color:var(--warning)}.insight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.insight-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 18px;display:flex;flex-direction:column;gap:8px;font-size:13px;line-height:1.6;color:var(--text-2)}.insight-card.wide{grid-column:span 3}.insight-card h3{display:flex;align-items:center;gap:6px;color:var(--text)}.insight-card h3 svg{color:var(--text-3)}.insight-card .btn{align-self:flex-start}.big-num{font-size:30px;font-weight:700;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.funnel-row{display:grid;grid-template-columns:150px 1fr 52px;grid-gap:12px;gap:12px;align-items:center}.funnel-label{color:var(--text-2)}.bar{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}.bar,.bar i{display:block}.bar i{height:100%;background:var(--primary);border-radius:inherit}.bar-list,.gap-list{list-style:none;display:flex;flex-direction:column;gap:8px}.bar-list li{display:grid;grid-template-columns:180px 1fr 110px;grid-gap:12px;gap:12px;align-items:center}.bar-list li .link{text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-list .bar i{background:var(--hot)}.gap-list li{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}.models .page-head h1{display:flex;align-items:center;gap:8px}.model-progress{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 18px;margin-bottom:16px}.model-progress h3{margin-bottom:4px}.progress-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.progress-chips .pill{background:var(--surface-2);color:var(--text-2);padding:3px 8px}.text-danger{color:var(--danger)}.text-ok{color:var(--success)}.error-list{list-style:none;margin-top:8px;font-size:12px;color:var(--danger-ink);display:flex;flex-direction:column;gap:2px}.error-list li{display:flex;gap:4px;align-items:center}.model-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px 20px;margin-bottom:16px}.model-card.reserved{background:var(--surface-soft);border-style:dashed}.model-head h2{display:flex;align-items:center;gap:8px;margin-bottom:4px}.model-head h2 .badge{font-size:11px}.model-head .badge:not(.ok){background:var(--surface-2);color:var(--text-2)}.model-head p{line-height:1.6;font-size:13px}.model-head .hint-line{display:flex;gap:6px;align-items:center;color:var(--text-2);margin-top:6px;font-size:12.5px}.model-sub{margin:16px 0 8px;font-size:13px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:10px;gap:10px}.preset-card{text-align:left;border:1px solid var(--border);border-radius:var(--r);padding:10px 12px;display:flex;flex-direction:column;gap:4px;background:#fff;line-height:1.5}.preset-card:hover{border-color:var(--border-strong)}.preset-card.on{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary);background:var(--primary-weak)}.preset-card.recommended:not(.on){border-color:#BFD3FB}.preset-title{display:flex;flex-direction:column-reverse;align-items:flex-start;gap:4px;font-weight:600;font-size:13px;color:var(--text);word-break:break-word}.preset-title .badge{flex:none;font-style:normal;background:var(--surface-2);color:var(--text-2);display:inline-flex;align-items:center;gap:3px;white-space:nowrap}.preset-title .badge.ok{background:var(--success-weak);color:var(--success)}.preset-fit{font-size:12.5px;color:var(--text-2)}.preset-card .link{align-self:flex-start;display:inline-flex;align-items:center;gap:3px}.model-form{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px 16px;gap:12px 16px;margin-top:16px}.model-form .field:has(textarea){grid-column:span 2}.model-form textarea.invalid{border-color:var(--danger)}.key-row{display:flex;gap:6px}.switch-row{display:inline-flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.switch-row input{width:16px;height:16px}.model-foot{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.model-foot>span{margin-right:auto;display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}@media (max-width:1100px){.insight-grid{grid-template-columns:1fr 1fr}.insight-card.wide{grid-column:span 2}.compare-grid.n3,.compare-grid.n4{grid-template-columns:1fr 1fr}}@media (max-width:760px){.insight-grid{grid-template-columns:1fr}.insight-card.wide{grid-column:auto}.model-form{grid-template-columns:1fr}.model-form .field:has(textarea){grid-column:auto}.search-input.wide{min-width:0;max-width:none}.bar-list li{grid-template-columns:1fr 80px}.bar-list li .bar{display:none}}.toolbar.filters{position:static;z-index:auto;margin-top:-2px;padding-top:0;gap:6px;background:none;-webkit-backdrop-filter:none;backdrop-filter:none}.toolbar>.search-input.wide{flex:1 1 320px;max-width:560px;width:auto}.toolbar.filters:empty{display:none}.shown-badge{background:var(--primary)}.basket-lean{display:flex;align-items:flex-start;gap:10px;margin:12px 16px 0;padding:10px 12px;border-radius:var(--r);background:var(--warning-weak);color:var(--warning);font-size:12.5px;line-height:1.55}.basket-lean>svg{flex:none;margin-top:2px}.basket-lean>div{flex:1 1;display:flex;flex-direction:column;gap:2px}.basket-lean strong{font-weight:600}.basket-lean span{color:var(--text-2)}.drawer-foot-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;width:100%}.drawer-foot>p{width:100%}.reuse-line{background:var(--warning-weak);color:var(--warning);border-radius:var(--r);padding:6px 10px;margin:8px 0 0}.reuse-line .link{color:var(--warning);text-decoration:underline}@media (min-width:900px){body:has(.drawer) .toasts{right:calc(460px + 20px)}body:has(.drawer.wide) .toasts{right:calc(760px + 20px)}}.ql .reuse-line{background:rgba(253,176,34,.12);color:#FCD38A;border:1px solid rgba(253,176,34,.28)}.ql .reuse-line .link{color:#FDB022}.topbar-spacer{flex:1 1}.ql .featured-line{margin-top:10px;font-size:12.5px;gap:6px;flex-wrap:wrap}.ql .featured-line .featured-text{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ql .featured-line .link{font-size:12px}.ql .featured-line.muted-line{color:var(--dark-muted)!important}.caption-ai .caption-text.ai{color:var(--dark-text);display:flex;gap:6px;align-items:flex-start}.caption-ai .caption-text.ai svg{flex:none;margin-top:4px;color:#B9A6FF}.kw-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.kw-chip{font-size:11.5px;line-height:18px;padding:0 7px;border-radius:9px;background:rgba(255,255,255,.06);color:var(--dark-muted)}.caption-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px}.caption-by{margin-top:4px}.caption-empty{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;line-height:1.6}.caption-empty .link{display:inline-flex;align-items:center;gap:3px}.spinner-dot{width:8px;height:8px;border-radius:50%;background:#9EC0FF;display:inline-block;animation:pulse-dot 1.2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:.3}50%{opacity:1}}.batch-note{display:block;margin-top:2px;font-size:12px;color:var(--dark-muted);line-height:1.5}