:root{--color-bg:#f3f5f8;--color-surface:#fff;--color-surface-2:#f8fafc;--color-text:#0f172a;--color-text-2:#334155;--color-muted:#64748b;--color-faint:#94a3b8;--color-border:#e2e8f0;--color-border-strong:#cbd5e1;--color-accent:#1d4ed8;--color-accent-hover:#1e40af;--color-accent-soft:#dbeafe;--color-accent-soft-text:#1e3a8a;--color-accent-text:#fff;--color-ring:#1d4ed847;--color-header:#1e40af;--color-header-active:#1d4ed8;--color-header-hover:#2563eb;--color-header-text:#fff;--color-success:#15803d;--color-success-bg:#f0fdf4;--color-success-border:#86efac;--color-warning:#92400e;--color-warning-bg:#fffbeb;--color-warning-border:#fcd34d;--color-danger:#b91c1c;--color-danger-bg:#fef2f2;--color-danger-border:#fca5a5;--color-info-bg:#eff6ff;--color-info-border:#bfdbfe;--color-stage:#0b1220;--color-stage-bar:#ffffff14;--color-stage-text:#e2e8f0;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-xs:12px;--text-sm:13px;--text-base:14px;--text-md:15px;--text-lg:17px;--text-xl:20px;--text-2xl:24px;--leading:1.5;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--radius-sm:4px;--radius:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:999px;--shadow-sm:0 1px 2px #0f172a0f;--shadow:0 1px 3px #0f172a14, 0 4px 12px #0f172a0f;--shadow-lg:0 8px 24px #0f172a24;--shadow-xl:0 24px 64px #0f172a47;--header-height:48px;--width-page:1440px;--width-narrow:720px;--sidebar-width:272px;--ease:cubic-bezier(.2, 0, 0, 1);--duration-fast:.12s;--duration:.18s;--duration-slow:.28s}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);font-size:var(--text-base);line-height:var(--leading);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{text-wrap:balance;margin:0;line-height:1.3}h1{font-size:var(--text-xl);letter-spacing:-.01em;font-weight:600}h2{font-size:var(--text-lg);font-weight:600}h3{font-size:var(--text-md);font-weight:600}p{margin:0}a{color:var(--color-accent)}code{font-family:var(--font-mono);background:var(--color-surface-2);padding:1px var(--space-1);border-radius:var(--radius-sm);font-size:.92em}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}.muted{color:var(--color-muted)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:30;height:var(--header-height);background:var(--color-header);color:var(--color-header-text);box-shadow:var(--shadow-sm);position:sticky;top:0}.topbar__inner{max-width:var(--width-page);padding:0 var(--space-4);align-items:center;gap:var(--space-5);height:100%;margin:0 auto;display:flex}.brand{align-items:center;gap:var(--space-2);color:inherit;letter-spacing:-.01em;white-space:nowrap;font-weight:600;text-decoration:none;display:inline-flex}.brand__mark{border-radius:var(--radius);background:var(--color-surface);width:28px;height:28px;color:var(--color-header);letter-spacing:0;place-items:center;font-size:12px;font-weight:700;display:grid}.brand__sub{opacity:.72;font-weight:400}.nav{gap:var(--space-1);scrollbar-width:none;flex:1;min-width:0;margin:0;display:flex;overflow-x:auto}.nav::-webkit-scrollbar{display:none}.nav a{color:var(--color-header-text);font-size:var(--text-base);padding:6px var(--space-3);border-radius:var(--radius-sm);white-space:nowrap;transition:background var(--duration-fast) var(--ease);text-decoration:none}.nav a:hover{background:var(--color-header-hover)}.nav a[aria-current=page]{background:var(--color-header-active);font-weight:500}.page__user{gap:var(--space-2);font-size:var(--text-sm);white-space:nowrap;align-items:center;display:flex}.page__user .chip{color:var(--color-header-text);background:0 0;border-color:#ffffff59}.page__user .chip:hover{background:var(--color-header-hover);border-color:#0000}.page__user-name{opacity:.9}.page__user-role{opacity:.65}@media (width<=720px){.topbar{height:auto}.topbar__inner{gap:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-4);flex-wrap:wrap}.brand__sub,.page__user-name,.page__user-role{display:none}.nav{flex-basis:100%;order:3}.page__user{margin-left:auto}.catalog>aside{max-height:40vh}}.page{width:100%;max-width:var(--width-page);padding:var(--space-5) var(--space-4) var(--space-10);flex:1;margin:0 auto}.page--narrow{max-width:var(--width-narrow)}.page__header{justify-content:space-between;align-items:flex-end;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.page__header h1{font-size:var(--text-xl)}.page__lead{color:var(--color-muted);font-size:var(--text-sm);margin-top:2px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5)}.card+.card{margin-top:var(--space-4)}.card>h2{margin-bottom:var(--space-1)}.card>h2+.muted,.card>h2+p{margin-bottom:var(--space-4)}.card>h3{margin:var(--space-4) 0 var(--space-2)}.form{gap:var(--space-4);display:grid}.form__row{gap:6px;display:grid}.form__row>label{font-size:var(--text-sm);color:var(--color-text-2);font-weight:500}.form__row input:not([type=checkbox]):not([type=radio]):not([type=file]),.form__row select,.form__row textarea,.filters select,.filters input,.taxonomy__add input,.taxonomy__add select,.slot-row select,.bulkbar select,.users select{padding:8px var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface);min-height:38px;transition:border-color var(--duration-fast) var(--ease), box-shadow var(--duration-fast) var(--ease)}.form__row input:focus-visible,.form__row select:focus-visible,.form__row textarea:focus-visible,.filters select:focus-visible,.filters input:focus-visible,.search:focus-visible,.taxonomy__add input:focus-visible,.taxonomy__add select:focus-visible,.slot-row select:focus-visible,.bulkbar select:focus-visible{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-ring);outline:none}.form__row input[type=file]{padding:var(--space-2) 0;font-size:var(--text-sm)}.form__row input[type=file]::file-selector-button{font:inherit;padding:6px var(--space-3);margin-right:var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface);cursor:pointer}.form__row textarea{resize:vertical;min-height:80px}.tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.tags label{font-size:var(--text-sm);padding:4px var(--space-3) 4px var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);cursor:pointer;align-items:center;gap:6px;display:inline-flex}.tags label:has(input:checked){border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-soft-text)}.tags input{accent-color:var(--color-accent);margin:0}.actions{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.button{padding:8px var(--space-4);border-radius:var(--radius);border:1px solid var(--color-border-strong);background:var(--color-surface);min-height:36px;color:var(--color-text);font-weight:500;font-size:var(--text-base);cursor:pointer;white-space:nowrap;transition:background var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease), box-shadow var(--duration-fast) var(--ease), transform var(--duration-fast) var(--ease);justify-content:center;align-items:center;gap:6px;text-decoration:none;display:inline-flex}.button:hover{background:var(--color-surface-2);border-color:var(--color-faint)}.button:active{transform:translateY(1px)}.button--primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-text);box-shadow:var(--shadow-sm)}.button--primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.button--danger{color:var(--color-danger);border-color:var(--color-danger-border)}.button--danger:hover{background:var(--color-danger-bg)}.button:disabled,.button--disabled{opacity:.5;cursor:default;pointer-events:none;transform:none}.chip{font-size:var(--text-sm);padding:4px var(--space-3);border-radius:var(--radius-full);border:1px solid var(--color-border-strong);background:var(--color-surface);min-height:28px;color:var(--color-text-2);cursor:pointer;white-space:nowrap;transition:background var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease), color var(--duration-fast) var(--ease);align-items:center;gap:4px;line-height:1.2;display:inline-flex}.chip:hover{border-color:var(--color-accent);color:var(--color-accent)}.chip[aria-pressed=true]{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-text)}.chip:disabled{opacity:.5;cursor:default;color:var(--color-muted);border-color:var(--color-border)}.progress{background:var(--color-border);border-radius:var(--radius-full);height:8px;overflow:hidden}.progress__bar{background:var(--color-accent);border-radius:var(--radius-full);height:100%;transition:width var(--duration-slow) var(--ease)}.notice{padding:var(--space-3) var(--space-4);border-radius:var(--radius);border:1px solid var(--color-info-border);background:var(--color-info-bg);font-size:var(--text-base);margin-top:var(--space-3);animation:fade-in var(--duration) var(--ease);display:block}.notice:first-child{margin-top:0}.notice ul{margin:var(--space-1) 0 0;padding-left:var(--space-5)}.notice .actions{margin-top:var(--space-2)}.notice--warning{background:var(--color-warning-bg);border-color:var(--color-warning-border);color:var(--color-warning)}.notice--danger{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger)}.notice--success{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success)}.notice--danger .chip,.notice--warning .chip,.notice--success .chip{color:inherit;background:0 0;border-color:currentColor}.existing{margin:var(--space-2) 0 0;padding-left:var(--space-5)}.catalog{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);gap:var(--space-5);align-items:start;display:grid}.catalog>aside{top:calc(var(--header-height) + var(--space-4));max-height:calc(100vh - var(--header-height) - var(--space-8));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-2);position:sticky;overflow:auto}.catalog>section{min-width:0}@media (width<=840px){.catalog{grid-template-columns:1fr}.catalog>aside{max-height:none;position:static}}.tree{margin:0;padding:0;list-style:none}.tree ul{margin:0 0 0 calc(var(--space-5) / 2);padding-left:var(--space-1);border-left:1px solid var(--color-border);list-style:none}.tree__tools{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-1);border-top:1px solid var(--color-border);display:flex}.tree__tools button{color:var(--color-muted);font-size:var(--text-xs);cursor:pointer;background:0 0;border:0;padding:0}.tree__tools button:hover{color:var(--color-accent)}.tree__item{align-items:center;display:flex}.tree .tree__toggle{width:var(--space-5);height:var(--space-5);color:var(--color-faint);border-radius:var(--radius-sm);flex:none;justify-content:center;padding:0}.tree .tree__toggle:hover{color:var(--color-text)}.tree .tree__toggle svg{transition:transform var(--duration-fast) var(--ease)}.tree .tree__toggle[aria-expanded=true] svg{transform:rotate(90deg)}.tree__toggle-space{width:var(--space-5);flex:none}.tree .tree__name{min-width:0;padding-left:var(--space-1);flex:1}.tree__label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tree__item--root .tree__name,.tree__item--industry .tree__name{color:var(--color-text);font-weight:600}.tree .tree__name>.tree__dot{width:var(--space-2);height:var(--space-2);border-radius:var(--radius-full);background:var(--color-faint);box-shadow:0 0 0 2px var(--color-surface), 0 0 0 3px var(--color-border);flex:none}.tree button{align-items:center;gap:var(--space-2);width:100%;padding:6px var(--space-2);border-radius:var(--radius);cursor:pointer;text-align:left;color:var(--color-text-2);font-size:var(--text-base);transition:background var(--duration-fast) var(--ease), color var(--duration-fast) var(--ease);background:0 0;border:0;display:flex}.tree button>span:first-child{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tree button:hover{background:var(--color-surface-2);color:var(--color-text)}.tree button[aria-current=true]{background:var(--color-accent-soft);color:var(--color-accent-soft-text);font-weight:500}.tree .count{color:var(--color-faint);font-size:var(--text-xs);font-variant-numeric:tabular-nums;margin-left:auto}.tree button[aria-current=true] .count{color:var(--color-accent)}.tree .empty{color:var(--color-faint)}.tree__row{gap:var(--space-1);display:grid}.tree__actions{gap:var(--space-1);padding:0 var(--space-2) var(--space-2);flex-wrap:wrap;display:flex}.tree__actions .chip{font-size:var(--text-xs);min-height:24px;padding:2px var(--space-2)}.toolbar{gap:var(--space-3);margin-bottom:var(--space-4);display:grid}.search-wrap{position:relative}.search-wrap svg{left:var(--space-3);color:var(--color-faint);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.search{width:100%;padding:10px var(--space-3) 10px 40px;border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);min-height:44px;font-size:var(--text-md);box-shadow:var(--shadow-sm);transition:border-color var(--duration-fast) var(--ease), box-shadow var(--duration-fast) var(--ease)}.search::placeholder{color:var(--color-faint)}.filters{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.filters select,.filters input{min-height:34px;padding:5px var(--space-3);font-size:var(--text-sm)}.results-bar{justify-content:space-between;align-items:baseline;gap:var(--space-2);color:var(--color-muted);font-size:var(--text-sm);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.results-bar h2{color:var(--color-text)}.cards{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(252px,1fr));display:grid}.cardm{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration) var(--ease), transform var(--duration) var(--ease), border-color var(--duration) var(--ease);flex-direction:column;display:flex;position:relative;overflow:hidden}.cardm:hover{box-shadow:var(--shadow-lg);border-color:var(--color-border-strong);transform:translateY(-2px)}.cardm>a{background:var(--color-surface-2);border-bottom:1px solid var(--color-border);display:block;position:relative}.cardm__thumb{aspect-ratio:16/9;object-fit:contain;background:var(--color-surface-2);width:100%;display:block}.cardm__count{right:var(--space-2);bottom:var(--space-2);font-size:var(--text-xs);padding:2px var(--space-2);border-radius:var(--radius-sm);color:#fff;font-variant-numeric:tabular-nums;background:#0f172ab8;font-weight:500;position:absolute}.cardm__stripe{flex:0 0 3px;height:3px;display:block}.cardm__body{padding:var(--space-3) var(--space-4) var(--space-4);flex:1;align-content:start;gap:6px;display:grid}.cardm__title{font-weight:600;font-size:var(--text-md);overflow-wrap:anywhere;line-height:1.35}.cardm__title a{color:inherit;text-decoration:none}.cardm__title a:hover{color:var(--color-accent)}.cardm__facts{color:var(--color-muted);font-size:var(--text-sm);overflow-wrap:anywhere}.cardm__facts b{color:var(--color-text-2);font-weight:500}.cardm__body .download{margin-top:var(--space-2)}.cardm__body .download .button{width:100%}.badges{gap:var(--space-1);flex-wrap:wrap;display:flex}.badges:empty{display:none}.badge{border-radius:var(--radius-full);background:var(--color-surface-2);border:1px solid var(--color-border);color:var(--color-text-2);letter-spacing:.01em;align-items:center;padding:4px 8px;font-size:11px;font-weight:500;line-height:1;display:inline-flex}.tag-list{gap:var(--space-1);flex-wrap:wrap;display:flex}.tag{border:1px solid var(--color-border-strong);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text-2);align-items:center;padding:3px 8px;font-size:11px;line-height:1;display:inline-flex}.badge--actual{background:var(--color-accent-soft);border-color:var(--color-info-border);color:var(--color-accent-soft-text)}.badge--archive{background:var(--color-warning-bg);border-color:var(--color-warning-border);color:var(--color-warning)}.badge--internal{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger)}.badge--updated{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success)}.badge--state{border-style:dashed}.pager{gap:var(--space-2);margin-top:var(--space-5);font-size:var(--text-sm);justify-content:center;align-items:center;display:flex}.empty-state{text-align:center;padding:var(--space-10) var(--space-4);color:var(--color-muted);background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg)}.empty-state svg{color:var(--color-faint);margin-bottom:var(--space-3)}.empty-state h3{color:var(--color-text);margin-bottom:var(--space-1)}.empty-state .actions{margin-top:var(--space-4);justify-content:center}.skeleton{background:linear-gradient(90deg, var(--color-border) 25%, var(--color-surface-2) 50%, var(--color-border) 75%);border-radius:var(--radius);background-size:200% 100%;animation:1.4s linear infinite shimmer}.skeleton--card{aspect-ratio:16/11;border-radius:var(--radius-lg)}.skeleton--line{height:14px;margin:6px 0}.plain{margin:0;padding:0;list-style:none}.taxonomy{gap:var(--space-5);grid-template-columns:1fr 1fr;display:grid}@media (width<=720px){.taxonomy{grid-template-columns:1fr}}.taxonomy__row{gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;display:flex}.taxonomy__add{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.taxonomy__add input[type=text],.taxonomy__add input:not([type]){min-height:34px;padding:5px var(--space-3)}.variant-set{padding-bottom:var(--space-3)}.variant-set__items{margin:var(--space-2) 0 0;gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));padding:0;list-style:none;display:grid}.variant-set__items li{font-size:var(--text-sm);gap:4px;display:grid}.variant-set__items img{aspect-ratio:16/9;object-fit:contain;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-2);width:100%;display:block}.variant-set__item-bar{justify-content:space-between;align-items:center;gap:4px;display:flex}.slot-row{gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);grid-template-columns:170px 1fr 96px auto;align-items:center;display:grid}.slot-row__thumb img{aspect-ratio:16/9;object-fit:contain;border-radius:var(--radius);background:var(--color-surface-2);width:96px;display:block}@media (width<=560px){.slot-row{grid-template-columns:1fr}}.bulkbar{top:calc(var(--header-height) + var(--space-2));z-index:5;gap:var(--space-2);margin-bottom:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-accent-soft);border:1px solid var(--color-accent);border-radius:var(--radius);color:var(--color-accent-soft-text);animation:fade-in var(--duration) var(--ease);flex-wrap:wrap;align-items:center;display:flex;position:sticky}.bulkbar select{min-height:32px;padding:4px var(--space-2);font-size:var(--text-sm)}.pick{font-size:var(--text-xs);color:var(--color-muted);margin-bottom:var(--space-1);cursor:pointer;align-items:center;gap:6px;padding-left:2px;display:inline-flex}.pick input{accent-color:var(--color-accent);margin:0}.selected .cardm{outline:2px solid var(--color-accent);outline-offset:1px}.cards>div{flex-direction:column;display:flex}.cards>div>.cardm{flex:1}.cards>div>.actions{margin-top:var(--space-2);gap:var(--space-1);flex-wrap:wrap}.cards>div>.actions .chip{font-size:var(--text-xs);min-height:26px;padding:2px var(--space-2)}.deck__header{gap:var(--space-4);border-top-width:4px;grid-template-columns:minmax(0,1fr) auto;align-items:start;display:grid}@media (width<=720px){.deck__header{grid-template-columns:1fr}}.deck__header h2{font-size:var(--text-2xl);letter-spacing:-.015em;margin:var(--space-2) 0 var(--space-1)}.deck__facts{color:var(--color-muted);font-size:var(--text-sm)}.deck__facts b{color:var(--color-text-2);font-weight:500}.deck__side{gap:var(--space-2);min-width:220px;display:grid}.deck__side .button{width:100%}.deck__grid{gap:var(--space-4);margin-top:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.deck__thumb{cursor:pointer;text-align:left;color:var(--color-muted);background:0 0;border:0;gap:6px;width:100%;padding:0;display:grid}.deck__thumb-image{border:1px solid var(--color-border);border-radius:var(--radius);background-color:var(--color-surface);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration) var(--ease), transform var(--duration) var(--ease), border-color var(--duration) var(--ease);max-width:100%;display:block;overflow:hidden}.deck__thumb-image img{object-fit:contain;width:100%;height:100%;display:block}.deck__thumb:hover .deck__thumb-image,.deck__thumb:focus-visible .deck__thumb-image{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-ring), var(--shadow);transform:translateY(-2px)}.deck__number{font-size:var(--text-xs);font-variant-numeric:tabular-nums;padding-left:2px}.viewer{background:var(--color-stage);color:var(--color-stage-text);z-index:40;animation:fade-in var(--duration) var(--ease);flex-direction:column;display:flex;position:fixed;inset:0}.viewer__bar{gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--color-stage-bar);min-height:52px;font-size:var(--text-sm);align-items:center;display:flex}.viewer__title{text-overflow:ellipsis;white-space:nowrap;color:#fff;flex:1;min-width:0;font-weight:500;overflow:hidden}.viewer__counter{font-variant-numeric:tabular-nums;opacity:.8}.viewer__bar .badge{color:var(--color-stage-text);background:#ffffff1f;border-color:#0000}.viewer__bar .chip{color:var(--color-stage-text);background:0 0;border-color:#ffffff40}.viewer__bar .chip:hover{color:#fff;background:#ffffff1f}.viewer__bar .chip[aria-pressed=true]{color:var(--color-stage);background:#fff;border-color:#fff}.viewer__body{flex:1;grid-template-columns:56px minmax(0,1fr) 56px;align-items:center;min-height:0;display:grid}.viewer__arrow{color:var(--color-stage-text);cursor:pointer;opacity:.7;height:100%;transition:opacity var(--duration-fast) var(--ease), background var(--duration-fast) var(--ease);background:0 0;border:0;place-items:center;display:grid}.viewer__arrow:hover{opacity:1;background:#ffffff0f}.viewer__arrow:disabled{opacity:.2;cursor:default;background:0 0}.viewer__stage{height:100%;padding:var(--space-3);justify-content:center;align-items:center;min-height:0;display:flex;position:relative}.viewer__image{object-fit:contain;border-radius:var(--radius-sm);max-width:100%;max-height:100%;box-shadow:var(--shadow-xl);animation:slide-in var(--duration) var(--ease)}.viewer__placeholder,.viewer__fallback{justify-content:center;align-items:center;gap:var(--space-3);color:var(--color-faint);flex-direction:column;display:flex;position:absolute;inset:0}.viewer__text{max-height:28vh;padding:var(--space-3) var(--space-5);font-size:var(--text-sm);animation:fade-in var(--duration) var(--ease);background:#00000073;overflow:auto}.viewer__text pre{white-space:pre-wrap;font:inherit;max-width:72ch;margin:0 auto}.viewer__strip{gap:var(--space-2);padding:var(--space-2) var(--space-4) var(--space-3);scrollbar-width:thin;background:var(--color-stage-bar);display:flex;overflow-x:auto}.viewer__strip button{aspect-ratio:16/9;border-radius:var(--radius-sm);cursor:pointer;opacity:.55;width:96px;transition:opacity var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease);background:#1e293b;border:2px solid #0000;flex:none;padding:0;overflow:hidden}.viewer__strip button:hover{opacity:.85}.viewer__strip button[aria-current=true]{opacity:1;border-color:#fff}.viewer__strip img{object-fit:contain;width:100%;height:100%;display:block}.viewer__hint{font-size:var(--text-xs);opacity:.55}.download{gap:var(--space-1);flex-direction:column;display:flex}.download__note{font-size:var(--text-xs);color:var(--color-faint);margin:0;line-height:1.4}.cardm__body .download__note{display:none}.cardm__facts .chip{white-space:normal;text-align:left}.download__history{margin:var(--space-1) 0 0;padding-left:var(--space-5)}.modal{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:var(--space-4);z-index:50;animation:fade-in var(--duration-fast) var(--ease);background:#0f172a8c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal__card{width:100%;max-width:520px;max-height:calc(100vh - var(--space-8));border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:var(--space-6);animation:rise var(--duration) var(--ease);overflow:auto}.modal__card>h2{margin-bottom:var(--space-3)}.modal__card>.actions{margin-top:var(--space-5);justify-content:flex-end}.modal__card .form{margin-top:var(--space-2)}.hit{gap:var(--space-2);align-content:start;display:grid}.hit__slides{gap:var(--space-1);font-size:var(--text-sm);margin:0;padding:0;list-style:none;display:grid}.hit__slides a{padding:6px var(--space-3);border-radius:var(--radius);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-2);transition:border-color var(--duration-fast) var(--ease);text-decoration:none;display:block}.hit__slides a:hover{border-color:var(--color-accent)}.hit__slides a:before{content:""}.hit__note{font-size:var(--text-xs);color:var(--color-muted);margin:0}.hit mark{color:inherit;background:#fde68a;border-radius:2px;padding:0 2px}.login-screen{min-height:100vh;padding:var(--space-6) var(--space-4);background:linear-gradient(160deg, #eef2ff 0%, var(--color-bg) 45%, #e0f2fe 100%);place-items:center;display:grid}.login{width:100%;max-width:400px;padding:var(--space-8) var(--space-6);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);text-align:center;animation:rise var(--duration-slow) var(--ease)}.login .brand{color:var(--color-text);font-size:var(--text-lg);margin-bottom:var(--space-1);justify-content:center}.login .brand__mark{background:var(--color-accent);color:#fff;width:40px;height:40px;font-size:15px}.login .brand__sub{display:none}.login>p{color:var(--color-muted);font-size:var(--text-sm)}.login .button{width:100%;min-height:42px}.login .form{text-align:left;margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.login details{margin-top:var(--space-5);text-align:left}.login summary{cursor:pointer;color:var(--color-muted);font-size:var(--text-sm);text-align:center}.login details .form{margin-top:var(--space-3);border-top:0;padding-top:0}.table-wrap{overflow-x:auto}.users{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.users th{text-align:left;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);padding:var(--space-2) var(--space-3);background:var(--color-surface-2);border-bottom:1px solid var(--color-border);font-weight:500}.users td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);vertical-align:top}.users tr:hover td{background:var(--color-surface-2)}.users__off td{color:var(--color-muted)}.users select{min-height:32px;padding:4px var(--space-2);font-size:var(--text-sm)}.journal{font-size:var(--text-sm);margin:0;padding:0;list-style:none;display:grid}.journal li{padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);overflow-wrap:anywhere}.journal li:last-child{border-bottom:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(8px)scale(.99)}to{opacity:1;transform:none}}@keyframes slide-in{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.field__hint{font-size:var(--text-xs)}.crumbs{gap:var(--space-2);font-size:var(--text-sm);color:var(--color-muted);margin-bottom:var(--space-3);align-items:center;display:flex}.crumbs a{font-weight:500;text-decoration:none}.crumbs a:hover{text-decoration:underline}.viewer__strip button{aspect-ratio:auto;place-items:center;width:auto;height:58px;padding:2px;display:grid}.viewer__strip-image{background-color:#fff;background-repeat:no-repeat;border-radius:2px;max-height:52px;display:block}.star{border-radius:var(--radius-full);color:var(--color-faint);cursor:pointer;transition:color var(--duration-fast) var(--ease), transform var(--duration-fast) var(--ease), background var(--duration-fast) var(--ease);background:0 0;border:0;padding:4px;display:inline-flex}.star:hover{color:#d97706;background:var(--color-surface-2)}.star--on{color:#f59e0b}.star:active{transform:scale(.9)}.cardm__top{justify-content:space-between;align-items:flex-start;gap:var(--space-2);display:flex}.cardm__top .badges{flex:1;min-width:0}.cardm__top .star{margin:-4px -6px 0 0}.shelf{margin-bottom:var(--space-5)}.shelf__head{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);color:var(--color-text-2);font-size:var(--text-sm);font-weight:500;display:flex}.shelf__head svg{color:var(--color-faint)}.shelf__row{gap:var(--space-3);padding:2px 2px var(--space-2);scrollbar-width:thin;scroll-snap-type:x proximity;display:flex;overflow-x:auto}.shelf__item{scroll-snap-align:start;color:inherit;flex:0 0 200px;gap:6px;text-decoration:none;display:grid}.shelf__item img,.shelf__item .shelf__blank{aspect-ratio:16/9;object-fit:contain;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;transition:box-shadow var(--duration) var(--ease), border-color var(--duration) var(--ease);display:block}.shelf__item:hover img{border-color:var(--color-accent);box-shadow:var(--shadow)}.shelf__title{font-size:var(--text-sm);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:500;line-height:1.3;display:-webkit-box;overflow:hidden}.shelf__meta{font-size:var(--text-xs);color:var(--color-muted)}.cards--compact{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(188px,1fr))}.cards--compact .cardm__body{padding:var(--space-2) var(--space-3) var(--space-3);gap:4px}.cards--compact .cardm__title{font-size:var(--text-base)}.cards--compact .cardm__client{display:none}.cards--compact .cardm__body .download .button{min-height:32px;font-size:var(--text-sm)}.cards--compact .badge{padding:3px 6px}.results-bar__tools{align-items:center;gap:var(--space-2);margin-left:auto;display:flex}.results-bar__tools select{min-height:30px;padding:3px var(--space-2);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.segmented{border:1px solid var(--color-border);border-radius:var(--radius);display:inline-flex;overflow:hidden}.segmented button{background:var(--color-surface);cursor:pointer;color:var(--color-muted);font-size:var(--text-xs);border:0;align-items:center;gap:4px;padding:4px 8px;display:inline-flex}.segmented button[aria-pressed=true]{background:var(--color-accent-soft);color:var(--color-accent-soft-text)}.applied{gap:var(--space-2);margin-bottom:var(--space-3);font-size:var(--text-sm);flex-wrap:wrap;align-items:center;display:flex}.applied .chip{background:var(--color-accent-soft);color:var(--color-accent-soft-text);border-color:#0000}.applied .chip:hover{background:var(--color-accent);color:var(--color-accent-text)}.applied__clear{color:var(--color-accent);cursor:pointer;font-size:var(--text-sm);padding:4px var(--space-2);background:0 0;border:0}.applied__clear:hover{text-decoration:underline}.quality{gap:var(--space-2);margin-bottom:var(--space-3);display:grid}.quality__option{align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;transition:border-color var(--duration-fast) var(--ease), background var(--duration-fast) var(--ease);display:flex}.quality__option[aria-checked=true]{border-color:var(--color-accent);background:var(--color-accent-soft)}.quality__option input{accent-color:var(--color-accent);margin:0}.quality__text{flex:1;gap:2px;min-width:0;display:grid}.quality__text .muted{font-size:var(--text-sm)}.quality__size{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.quality__note{font-size:var(--text-sm);margin:var(--space-2) 0}.slide-edit{margin-top:var(--space-4)}.slide-pick{gap:var(--space-2);max-height:320px;margin-bottom:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(112px,1fr));padding:2px;display:grid;overflow:auto}.slide-pick__item{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text-2);font-size:var(--text-sm);cursor:pointer;gap:4px;padding:4px;display:grid}.slide-pick__item img{aspect-ratio:16/9;object-fit:contain;border-radius:calc(var(--radius) - 2px);background:var(--color-surface-2);width:100%;display:block}.slide-pick__item[aria-pressed=true]{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-ring);color:var(--color-accent-soft-text)}.slide-pick__item:disabled{opacity:.5;cursor:default}.variants{gap:var(--space-2);margin-bottom:var(--space-3);display:grid}.variant-slot{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);grid-template-columns:1fr 160px;align-items:center;display:grid}.variant-slot__thumb{aspect-ratio:16/9;border-radius:var(--radius);background:var(--color-surface-2);font-size:var(--text-sm);text-align:center;place-items:center;display:grid;overflow:hidden}.variant-slot__thumb img{object-fit:contain;width:100%;height:100%;display:block}@media (width<=560px){.variant-slot{grid-template-columns:1fr}}.favorites{gap:var(--space-3);margin-bottom:var(--space-4);display:grid}.favorites__folders{gap:var(--space-2);flex-wrap:wrap;display:flex}.favorites__title{font-size:var(--text-base);margin:var(--space-2) 0 0}.favorites__slides{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.fslide{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin:0;overflow:hidden}.fslide img{aspect-ratio:16/9;object-fit:cover;background:var(--color-surface-2);width:100%;display:block}.fslide figcaption{padding:var(--space-2) var(--space-3) 0;font-size:var(--text-sm)}.fslide__actions{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-3);display:flex}.placement{font-size:var(--text-sm);min-height:30px;margin-top:var(--space-2)}.fslide__actions .placement{flex:1;margin-top:0}.assemblies{gap:var(--space-4);display:grid}.assemblies__bar{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.assemblies__bar p{margin:0}.assemblies__list{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin:0;padding:0;list-style:none;display:grid}.assembly-card{gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--color-text);font-size:var(--text-sm);justify-items:start;text-decoration:none;display:grid}.assembly-card:hover{border-color:var(--color-border-strong)}.assembly-card__title{font-size:var(--text-md);font-weight:600}.assembly{gap:var(--space-3);display:grid}.assembly .page__header{margin-bottom:0}.assembly__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.assembly__items{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.aitem{gap:var(--space-3);padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);grid-template-columns:28px 240px 1fr auto;align-items:start;display:grid}.aitem--off{opacity:.6}.aitem__number{color:var(--color-muted);text-align:right;padding-top:var(--space-1);font-weight:600}.aitem__thumb{aspect-ratio:16/9;border-radius:var(--radius);background:var(--color-surface-2);border:1px solid var(--color-border);display:block;overflow:hidden}.aitem__thumb img{object-fit:cover;width:100%;height:100%;display:block}.aitem__thumb--blank,.aitem__thumb--slide{padding:var(--space-2);font-size:var(--text-xs);color:var(--color-muted);text-align:center;border-style:dashed;justify-content:center;align-items:center;display:flex;overflow:hidden}.aitem__thumb--blank{background:var(--color-warning-bg);border-color:var(--color-warning-border);color:var(--color-warning);-webkit-line-clamp:6;-webkit-box-orient:vertical;display:-webkit-box}.aitem__body{gap:var(--space-2);min-width:0;display:grid}.aitem__caption{align-items:center;gap:var(--space-2);flex-wrap:wrap;font-weight:500;display:flex}.aitem__note{gap:var(--space-1);font-size:var(--text-sm);display:grid}.aitem__note textarea{resize:vertical;width:100%;font:inherit}.aitem__note-text{padding:var(--space-2) var(--space-3);background:var(--color-warning-bg);border-left:3px solid var(--color-warning-border);font-size:var(--text-sm);white-space:pre-wrap;margin:0}.aitem__tools{gap:var(--space-1);display:flex}@media (width<=720px){.aitem{grid-template-columns:24px 1fr}.aitem__body,.aitem__tools{grid-column:2}}.viewer__bar select.chip{text-overflow:ellipsis;cursor:pointer;max-width:220px}.viewer__bar select.chip option{color:var(--color-text);background:var(--color-surface)}
