.chip.pl-status{padding:1px 8px;font-size:11.5px}.chip.pl-photographed{color:#1f5e39;background:#e2f1e8}.chip.pl-synthesized{color:#2a5487;background:#e4edf8}.chip.pl-thumbnail-only{color:#5a3f86;background:#eee8f6}.chip.pl-needs-asset{background:var(--surface-2);color:var(--text-muted)}.st-thumb{--dot:#7b5ea7}.pl-intro,.pl-notes{margin:0 0 12px}.pl-notes ul{margin:6px 0 0;padding-left:18px}.pl-stale{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.pl-settings{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr);align-items:start;gap:16px;display:grid}@media (width<=900px){.pl-settings{grid-template-columns:1fr}}.pl-settings .field{margin-bottom:0}.pl-settings .field input,.pl-settings .field select{max-width:100%}.pl-hint{color:var(--text-muted);margin:2px 0 0;font-size:12px}ul.pl-modes{color:var(--text-muted);margin:4px 0 0;padding:0;font-size:12px;list-style:none}ul.pl-modes li{padding:1px 0}ul.pl-modes li.on{color:var(--text)}ul.pl-modes li strong{font-weight:600}.pl-actions{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:12px;display:flex}.pl-saved{color:var(--ok);font-size:12px}.pl-section-title{margin:18px 0 8px;font-size:13px;font-weight:600}ul.pl-slots{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}ul.pl-slots li{flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:13px;display:flex}.pl-variants{flex-direction:column;gap:10px;margin-top:8px;display:flex}.pl-variant{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.pl-variant.off{border-color:#d7cce8;box-shadow:inset 3px 0 #b9a5d8}.pl-vhead{flex-wrap:wrap;align-items:center;gap:6px 12px;padding:8px 12px;display:flex}.pl-vtoggle{font:inherit;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:6px;padding:2px 0;font-weight:600;display:inline-flex}.pl-vtoggle:hover{color:var(--accent)}.pl-caret{width:10px;color:var(--text-muted);font-size:11px;transition:transform .15s;display:inline-block}.pl-vtoggle[aria-expanded=true] .pl-caret{transform:rotate(90deg)}.pl-meta{color:var(--text-muted);font-size:12px}.pl-counts{flex-wrap:wrap;gap:4px;display:inline-flex}.pl-spacer{flex:1}.pl-voff{padding:0 12px 10px;font-size:13px}.pl-body{border-top:1px solid var(--border);padding:10px 12px 12px}table.pl-table td{vertical-align:top}table.pl-table td.pl-thumbcell{width:48px}.pl-thumb{object-fit:contain;outline-offset:-1px;border-radius:6px;outline:1px solid #0000001f;width:36px;height:36px;display:block}.pl-thumb.empty{background:var(--surface-2)}.pl-thumb.checker{background-position:0 0,0 4px,4px -4px,-4px 0;background-size:8px 8px}.pl-name{font-weight:500}.pl-code{font-family:var(--mono);color:var(--text-muted);font-size:11.5px}.pl-why{color:#5a3f86;margin-top:3px;font-size:12px}.pl-why .muted{color:var(--text-muted)}.pl-photo{flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:12.5px;display:flex}tr.pl-noterow td{background:#f7f4fb}.pl-border .pl-intro{margin-bottom:8px}ul.pl-paths{margin-bottom:10px}ul.pl-paths .dot{margin-right:6px}.pl-photographed{margin:0 0 8px}.pl-switch{border:1px solid var(--border);background:var(--surface-2);font:inherit;color:var(--text-muted);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:2px 8px 2px 2px;font-size:12px;line-height:1.2;display:inline-flex}.pl-switch .pl-knob{background:#fff;border:1px solid #bdb7ad;border-radius:50%;width:16px;height:16px;transition:transform .15s}.pl-switch.on{color:#1f5e39;background:#e2f1e8;border-color:#9cc9ad;flex-direction:row-reverse;padding:2px 2px 2px 8px}.pl-switch.on .pl-knob{background:#2f7a4e;border-color:#2f7a4e}.pl-switch:hover:not(:disabled){border-color:#999}.pl-switch:disabled{opacity:.5;cursor:not-allowed}.pl-always{color:var(--text-muted);font-size:12px}.pl-offform{flex-direction:column;gap:6px;display:flex}.pl-offform label{color:var(--text-muted);font-size:12px}.pl-offform textarea{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);resize:vertical;width:100%;min-height:54px;padding:6px 8px}.pl-offform textarea:focus{border-color:var(--accent);outline:2px solid #d9b89b}.pl-offform .row{align-items:center;gap:6px}.pl-dialog-backdrop{z-index:60;background:#1f1d1a73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.pl-dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(480px,100%);padding:16px;box-shadow:0 12px 32px #0003}.pl-dialog h3{margin:0 0 6px;font-size:15px;font-weight:600}.pl-dialog p{margin:0 0 10px;font-size:13px}.pl-done{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.pl-gen-group{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);margin:14px 0 6px;font-size:12px;font-weight:600}.pl-qa{margin-top:16px}.pl-qa-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;display:grid}.pl-qa-part{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:12px 14px}.pl-qa-part.large{background:#fffbef;border-color:#f0d58a}.pl-qa-part h3{flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 6px;font-size:13px;font-weight:600;display:flex}.pl-qa-num{align-items:baseline;gap:8px;margin:6px 0 2px;display:flex}.pl-qa-num strong{font-size:24px;font-weight:700;line-height:1}.pl-qa-num .from{color:var(--text-muted);font-size:15px}dl.pl-facts{grid-template-columns:max-content minmax(0,1fr);gap:3px 10px;margin:8px 0 0;font-size:12.5px;display:grid}dl.pl-facts dt{color:var(--text-muted)}dl.pl-facts dd{min-width:0;margin:0}table.pl-slotqa{border-collapse:collapse;width:100%;margin-top:8px;font-size:12px}table.pl-slotqa th,table.pl-slotqa td{text-align:left;border-bottom:1px solid var(--border);padding:3px 8px 3px 0}table.pl-slotqa th{color:var(--text-muted);font-weight:600}.pl-qa-warn{border-radius:var(--radius);color:#6b4d00;background:#fff1d6;margin:8px 0 0;padding:6px 10px;font-size:12.5px}.pl-qa-note{color:var(--text-muted);margin:8px 0 0;font-size:12px}.pchip.thumbonly{border-style:dashed;border-color:#b9a5d8}.pchip .pl-tmark{text-transform:uppercase;letter-spacing:.3px;color:#5a3f86;background:#eee8f6;border-radius:999px;padding:0 5px;font-size:9.5px;line-height:14px}.pchip[aria-pressed=true] .pl-tmark{color:#fff;background:#ffffff40}.pl-thumbonly{border-radius:var(--radius);background:#f7f4fb;border:1px solid #e3d9f0;align-items:center;gap:12px;margin-top:10px;padding:8px 10px;font-size:12.5px;display:flex}.pl-thumbonly img{object-fit:contain;outline-offset:-1px;border-radius:8px;outline:1px solid #0000001f;flex:none;width:96px;height:96px}.pchip .pl-dot{background:var(--dot,#999);border-radius:50%;flex:none;width:7px;height:7px}.pchip[aria-pressed=true] .pl-dot{box-shadow:0 0 0 1.5px #fff}.pl-faces{border:0;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0;padding:0;display:flex}.pl-faces legend{color:var(--text-muted);margin-bottom:6px;padding:0;font-size:12px}.pl-faces .pl-hint{flex-basis:100%}.pl-faces .seg button[aria-checked=true]{background:var(--accent);color:var(--accent-text)}.preview .page-head h1,.preview .page-head>a,.preview .page-head>.small{white-space:nowrap}.preview .page-head .legend{justify-content:flex-end;min-width:0}.option-picker{min-width:240px;position:relative}.option-picker input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;padding:6px 8px}.option-picker-list{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-height:320px;margin:0;padding:4px 0;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow:auto;box-shadow:0 6px 18px #0000001f}.option-picker-list li{cursor:pointer;flex-direction:column;gap:1px;padding:5px 10px;display:flex}.option-picker-list li.active{background:var(--surface-2)}.asset-status{border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:1px 7px;font-size:11px;display:inline-block}.asset-status.as-ready{color:var(--ok);background:#f1f8f1;border-color:#b9d8bb}.asset-status.as-needs_input{color:var(--warn);background:#fdf6ea;border-color:#e6c48f}.asset-status.as-failed{color:var(--danger);background:#fcf1f0;border-color:#e7b1ad}.asset-status.as-pending,.asset-status.as-processing{color:var(--text-muted);background:var(--surface-2)}.kind-label{background:var(--surface-2);color:var(--text);white-space:nowrap;border-radius:999px;padding:1px 7px;font-size:11px;display:inline-block}.kind-label.misfit{color:var(--warn);text-decoration:line-through}.checker{background-color:#fff;background-image:linear-gradient(45deg,#e9e6df 25%,#0000 25%),linear-gradient(-45deg,#e9e6df 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#e9e6df 75%),linear-gradient(-45deg,#0000 75%,#e9e6df 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px}main.page.asset-page{max-width:1320px}.asset-page .crumbs{color:var(--text-muted);flex-wrap:wrap;align-items:baseline;gap:6px;margin-bottom:6px;font-size:13px;display:flex}.asset-page .crumbs a{text-decoration:none}.asset-page .crumbs a:hover{text-decoration:underline}.asset-page .asset-head{flex-wrap:wrap;row-gap:6px;margin-bottom:10px}.asset-page .asset-head h1{overflow-wrap:anywhere;min-width:0}.asset-page .asset-head h1 .muted{font-size:15px;font-weight:400}.asset-page .primary-mark{color:var(--accent);white-space:nowrap;font-size:12px;font-weight:600}.asset-page .asset-notice{align-items:center;gap:10px;margin-bottom:12px;display:flex}.asset-page .asset-notice .spacer{flex:1}.asset-page .asset-notice.danger{color:#7a1c15;background:#fde5e3;border-color:#f2b4af}.asset-page .icon-btn{color:inherit;opacity:.7;cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:16px;line-height:1}.asset-page .icon-btn:hover{opacity:1}.asset-page .asset-message{border-left:3px solid var(--border);color:var(--text-muted);background:var(--surface);border-radius:0 var(--radius) var(--radius) 0;margin:-2px 0 12px;padding:6px 10px}.asset-page .asset-progress{flex-direction:column;gap:8px;margin-bottom:12px;padding:10px 12px;display:flex}.asset-page .asset-progress .row{align-items:center}.asset-page .asset-progress .spacer{flex:1}.asset-page .warn-text{color:var(--warn)}.asset-page .linkbtn{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.asset-page .linkbtn:hover{text-decoration:underline}.asset-page .asset-layout{grid-template-columns:minmax(0,1fr) 292px;align-items:start;gap:16px;display:grid}@media (width<=1000px){.asset-page .asset-layout{grid-template-columns:1fr}}.asset-page .asset-tool{min-width:0;padding:14px 16px 16px}.asset-page .asset-side{flex-direction:column;gap:12px;min-width:0;display:flex}.asset-page .side-card{padding:12px 14px}.asset-page .side-card h2{margin-bottom:8px;font-size:12px}.asset-page .side-option{flex-direction:column;gap:2px;margin-bottom:10px;display:flex}.asset-page .size-field label,.asset-page .field-label{color:var(--text-muted);margin-bottom:4px;font-size:12px;display:block}.asset-page .size-row{align-items:center;gap:8px;display:flex}.asset-page .size-row input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:110px;padding:6px 8px}.asset-page .size-row input[aria-invalid]{border-color:var(--danger)}.asset-page .size-field p{margin:6px 0 0}.asset-page .field.compact{margin-bottom:10px}.asset-page .field.compact select{padding:6px 8px}.asset-page .field.compact .option-picker{min-width:0}.asset-page .move-confirm,.asset-page .delete-confirm{border-radius:var(--radius);background:var(--surface-2);flex-direction:column;gap:8px;margin-top:8px;padding:8px 10px;display:flex}.asset-page .delete-confirm{background:#fcf1f0;border:1px solid #f2b4af}.asset-page .move-confirm .row,.asset-page .delete-confirm .row{gap:6px}.asset-page .side-actions{flex-wrap:wrap;gap:8px;display:flex}.asset-page .notes{margin:8px 0 0;padding-left:16px}.asset-page dl.facts{grid-template-columns:max-content minmax(0,1fr);gap:4px 10px;margin:0;font-size:13px;display:grid}.asset-page dl.facts dt{color:var(--text-muted);padding-top:1px;font-size:12px}.asset-page dl.facts dd{min-width:0;margin:0}.asset-page .break{overflow-wrap:anywhere}.asset-page ul.siblings{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.asset-page .sibling{color:var(--text-muted);flex-direction:column;align-items:center;gap:2px;font-size:11px;text-decoration:none;display:flex}.asset-page .sibling img,.asset-page .sibling-empty{object-fit:contain;border:1px solid var(--border);border-radius:4px;width:52px;height:52px;display:block}.asset-page .sibling.as-failed img,.asset-page .sibling.as-failed .sibling-empty{border-color:#e7b1ad}.asset-page .sibling.as-needs_input img,.asset-page .sibling.as-needs_input .sibling-empty{border-color:#e6c48f}.asset-page .sibling[aria-current=page] img,.asset-page .sibling[aria-current=page] .sibling-empty{outline:2px solid var(--accent);outline-offset:1px}.asset-page .sibling[aria-current=page]{color:var(--text);font-weight:600}.asset-page .asset-tool>h2{margin-bottom:12px}.asset-page .tool-stack{flex-direction:column;gap:14px;display:flex}.asset-page .tool{grid-template-columns:minmax(0,1fr) 236px;align-items:start;gap:16px;display:grid}@media (width<=1180px){.asset-page .tool{grid-template-columns:1fr}}.asset-page .tool-main{flex-direction:column;gap:14px;min-width:0;display:flex}.asset-page .tool-side{flex-direction:column;gap:12px;min-width:0;font-size:13px;display:flex}.asset-page .tool-side p{margin:0}.asset-page .tool-title{margin:0;font-size:13px;font-weight:600}.asset-page .tool-actions{flex-wrap:wrap;gap:6px;display:flex}.asset-page .tool-wait{text-align:center;background:var(--surface-2);border-radius:var(--radius);padding:60px 16px}.asset-page .tool-warnings{border-radius:var(--radius);color:#6b4d00;background:#fdf6ea;border:1px solid #e6c48f;margin:0;padding:8px 10px 8px 26px;font-size:12px}.asset-page .tool-error{border-radius:var(--radius);color:var(--danger);background:#fcf1f0;border:1px solid #e7b1ad;margin:0;padding:8px 10px;font-size:12px}.asset-page .tool-group{border:1px solid var(--border);border-radius:var(--radius);margin:0;padding:6px 10px 10px}.asset-page .tool-group legend{color:var(--text-muted);padding:0 4px;font-size:12px}.asset-page .num-row{gap:8px;display:flex}.asset-page .num-row label{color:var(--text-muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}.asset-page .num-row input{border:1px solid var(--border);background:var(--surface);border-radius:4px;width:58px;padding:3px 5px;font-size:12px}.asset-page .confidence{font-weight:600}.asset-page .confidence.hi{color:var(--ok)}.asset-page .confidence.mid{color:var(--warn)}.asset-page .confidence.lo{color:var(--danger)}.asset-page .stage-wrap{flex-direction:column;gap:6px;min-width:0;display:flex}.asset-page .stage-frame{background:var(--surface-2);border-radius:4px;width:100%;position:relative;overflow:hidden}.asset-page .stage-frame.checker{background-color:#fff}.asset-page .stage-frame.zoomed{overflow:auto}.asset-page .stage-frame svg{touch-action:none;-webkit-user-select:none;user-select:none;margin:0 auto;display:block}.asset-page .stage-handle{cursor:grab}.asset-page .stage-ring{cursor:nwse-resize;pointer-events:stroke}.asset-page .stage-bar{flex-wrap:wrap;align-items:center;gap:12px;min-height:26px;display:flex}.asset-page .stage-zoom{gap:2px;display:inline-flex}.asset-page .stage-zoom .tbtn{justify-content:center;min-width:28px;padding:2px 8px;font-size:12px}.asset-page .stage-legend{color:var(--text-muted);flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.asset-page .stage-legend .key{vertical-align:middle;border-top:2px solid;width:16px;height:0;margin-right:4px;display:inline-block}.asset-page .stage-legend .key.dashed{border-top-style:dashed}.asset-page .cutout-fig{flex-direction:column;gap:4px;margin:0;display:flex}.asset-page .cutout-fig>img,.asset-page .cutout-box,.asset-page .cutout-empty{object-fit:contain;border:1px solid var(--border);border-radius:var(--radius);width:100%;max-height:236px}.asset-page .cutout-fig>img.thumb-256{width:180px;height:180px}.asset-page .cutout-empty{height:120px;color:var(--text-muted);justify-content:center;align-items:center;font-size:12px;display:flex}.asset-page .cutout-box{justify-content:center;display:flex;position:relative}.asset-page .cutout-box img{max-width:100%;max-height:234px;display:block}.asset-page .cutout-box{align-self:flex-start;width:auto}.asset-page .cutout-mark{pointer-events:none;background:#ffffffb3;border:2px solid #e8590c;border-radius:50%;width:11px;height:11px;margin:-6px 0 0 -6px;position:absolute}.asset-page .source-modes{border:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;display:grid}@media (width<=900px){.asset-page .source-modes{grid-template-columns:1fr}}.asset-page .source-modes legend{color:var(--text-muted);margin-bottom:6px;padding:0;font-size:12px}.asset-page .source-mode{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:var(--surface);align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.asset-page .source-mode:hover{background:#faf8f4}.asset-page .source-mode.on{border-color:var(--accent);background:#f6ece2}.asset-page .source-mode input{margin-top:3px}.asset-page .source-mode>span{flex-direction:column;gap:2px;display:flex}.asset-page .source-mode strong{font-size:13px;font-weight:600}.asset-page .source-modes:disabled .source-mode{opacity:.6;cursor:default}.asset-page .tool-steps{flex-direction:column;gap:3px;margin:0;padding-left:18px;display:flex}.asset-page .tool-steps li.done{color:var(--ok)}.asset-page .sam-state{min-height:20px}.asset-page .check-row{cursor:pointer;align-items:flex-start;gap:8px;display:flex}.asset-page .check-row input{margin-top:3px}.asset-page .check-row .muted{display:block}.asset-page .range-row{color:var(--text-muted);grid-template-columns:auto minmax(0,1fr) 48px;align-items:center;gap:8px;font-size:12px;display:grid}.asset-page .range-row .mono{text-align:right;color:var(--text)}.asset-page .strip-result{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding-top:12px;display:flex}.asset-page .strip-result.stale{opacity:.55}.asset-page .strip-result-head{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.asset-page .strip-tile{flex-direction:column;gap:4px;display:flex;overflow-x:auto}.asset-page .strip-tile img{image-rendering:pixelated;border:1px solid var(--border);border-radius:2px;align-self:flex-start;display:block}.asset-page .region-pick{border:0;flex-direction:column;gap:4px;margin:0;padding:0;display:flex}.asset-page .region-pick legend{color:var(--text-muted);margin-bottom:4px;padding:0;font-size:12px}.asset-page .region-pick label{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:6px;padding:5px 8px;display:flex}.asset-page .region-pick label.on{border-color:var(--accent);background:#f6ece2}.asset-page .key-sq{border-radius:2px;width:10px;height:10px;display:inline-block}.asset-page .tool.tool-swatch{grid-template-columns:minmax(0,1fr) 280px}@media (width<=1180px){.asset-page .tool.tool-swatch{grid-template-columns:1fr}}.asset-page .measures{flex-direction:column;gap:10px;display:flex}.asset-page .measure-block{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:5px;padding:8px 10px;display:flex}.asset-page .measure-head{align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.asset-page .measure-head .unmark{margin-left:auto;font-weight:400}.asset-page .compare{align-items:flex-end;gap:0;display:flex}.asset-page .compare-half{flex-direction:column;gap:2px;display:flex}.asset-page .compare-chip{background:repeating-linear-gradient(45deg,#f0eee9 0 6px,#fff 6px 12px);border:1px solid #0000002e;width:84px;height:34px;display:block}.asset-page .compare-half:first-child .compare-chip{border-right:0;border-radius:4px 0 0 4px}.asset-page .compare-half:nth-child(2) .compare-chip{border-radius:0 4px 4px 0}.asset-page .compare .delta{margin:0 0 20px 10px;font-weight:600}.asset-page .measure-lines{flex-direction:column;gap:1px;display:flex}.asset-page .target-note{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.asset-page .tool-swatch select{border:1px solid var(--border);background:var(--surface);border-radius:4px;padding:3px 6px}.cal-tone{vertical-align:middle;flex-wrap:wrap;align-items:center;gap:3px;display:inline-flex}.cal-exp{font-family:var(--mono);margin-right:2px;font-size:12px;font-weight:600}.cal-wb{font-family:var(--mono);background:var(--surface-2);color:var(--text-muted);border-left:3px solid;border-radius:3px;padding:0 5px;font-size:11px;line-height:17px;display:inline-block}.cal-wb.r{border-left-color:#c0392b}.cal-wb.g{border-left-color:#2e8b57}.cal-wb.b{border-left-color:#2f6db5}.cal-wb.moved{color:var(--text);font-weight:600}.cal-grade{white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:999px;padding:1px 7px;font-size:12px;font-weight:500;display:inline-block}.cal-grade.close{color:#1f6b25;background:#e2f3e4}.cal-grade.noticeable{color:#8a5a00;background:#fff1d6}.cal-grade.off{color:#9c1f18;background:#fde5e3}.cal-grade.none{background:var(--surface-2);color:var(--text-muted)}.cal-grade-word{font-weight:400}.cal-conf{white-space:nowrap;border-radius:4px;padding:0 6px;font-size:11.5px;line-height:17px;display:inline-block}.cal-conf.estimated{color:#6b4d2e;background:#f3ebe2}.cal-conf.measured{color:#1f6b25;background:#e2f3e4}.cal-conf.other{background:var(--surface-2);color:var(--text-muted)}.cal-studio{border-top:1px dashed var(--border);margin-top:10px;padding-top:8px}.cal-studio-head{font-size:12.5px;font-weight:600}.cal-studio-head .muted{font-weight:400}.cal-measured-src{color:#1f6b25;font-weight:500}.calibration .cal-intro{max-width:900px;color:var(--text-muted);margin:-6px 0 12px;font-size:13px;line-height:1.45}.calibration .cal-notice{z-index:3;align-items:flex-start;gap:8px;display:flex;position:sticky;top:8px;box-shadow:0 2px 8px #00000014}.calibration .cal-notice .spacer{flex:1}.calibration .cal-notice.danger{color:#7a1c15;background:#fde5e3;border-color:#f2b4af}.calibration .cal-x{color:inherit;cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:15px;line-height:1.2}.calibration .cal-summary{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.calibration .cal-stat{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:5px 12px;font-size:13px}.calibration .cal-stat strong{color:var(--text);font-variant-numeric:tabular-nums;margin-right:2px}.calibration .cal-stat.todo{color:#6b4d00;background:#fff7e0;border-color:#f0d58a}.calibration .cal-stat.todo strong{color:#6b4d00}.calibration .cal-focus{border-radius:var(--radius);background:#f3ebe2;align-items:center;gap:10px;margin-bottom:14px;padding:6px 12px;font-size:13px;display:flex}.calibration .cal-section{margin-bottom:16px}.calibration .cal-section h2{align-items:center;gap:8px;display:flex}.calibration .cal-count{background:var(--surface-2);letter-spacing:0;color:var(--text-muted);border-radius:999px;padding:0 7px;font-size:11.5px}.calibration .cal-hint{max-width:920px;margin:-4px 0 10px;line-height:1.4}.calibration table.cal-table td{vertical-align:top}.calibration table.cal-table .cal-num{font-variant-numeric:tabular-nums;white-space:nowrap}.calibration table.cal-table .cal-actions{white-space:nowrap;text-align:right}.calibration table.cal-table .cal-actions .btn+.btn{margin-left:6px}.calibration .cal-option{min-width:150px}.calibration .cal-option-name{color:var(--text);font-weight:500;text-decoration:none}.calibration .cal-option-name:hover{color:var(--accent);text-decoration:underline}.calibration tr.cal-row.differs td:first-child,.calibration tr.cal-row.new td:first-child{box-shadow:inset 3px 0 #e0a100}.calibration tr.cal-row.confirming td{background:#faf6ef}.calibration tr.cal-row.orphan td{background:#faf9f6}.calibration tr.cal-sub>td{background:#faf8f4;border-top:0;padding:0 12px 10px 15px}.calibration .cal-compare{align-items:flex-start;gap:10px;display:flex}.calibration .cal-pair{border:1px solid #00000040;border-radius:5px;flex:none;display:inline-flex;overflow:hidden}.calibration .cal-pair .cal-swatch{border:0;border-radius:0}.calibration .cal-pair.inline{vertical-align:middle}.calibration .cal-note{max-width:300px;margin-top:2px;font-size:11.5px;line-height:1.3}.cal-swatch{vertical-align:middle;border:1px solid #0003;border-radius:3px;flex:none;width:14px;height:14px;display:inline-block}.cal-swatch.big{width:34px;height:34px}.cal-swatch.none{background:repeating-linear-gradient(45deg,#eee 0 4px,#fff 4px 8px)}.calibration .cal-link{font:inherit;color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:0}.calibration .cal-link:hover{text-decoration:underline}.calibration .cal-one{color:#8a5a00;cursor:help;background:#fff1d6;border-radius:4px;margin-top:3px;padding:0 6px;font-size:11.5px;font-weight:600;display:inline-block}.calibration .cal-status{white-space:nowrap;cursor:help;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:500;display:inline-block}.calibration .cal-status.new{color:#0b57a4;background:#e9f3ff}.calibration .cal-status.differs{color:#8a5a00;background:#fff1d6}.calibration .cal-status.matches{color:#1f6b25;background:#e2f3e4}.calibration .cal-status.approved{color:#444;cursor:default;background:#ececec}.calibration .cal-obs{padding-top:8px;font-size:12.5px}.calibration .cal-obs ul{margin:0 0 6px;padding:0;list-style:none}.calibration .cal-obs li{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:4px 10px;padding:3px 0;display:flex}.calibration .cal-method{background:var(--surface-2);cursor:help;border-radius:4px;padding:0 6px;font-size:11.5px}.calibration .cal-confirm{border:1px solid var(--accent);border-radius:var(--radius);background:var(--surface);margin-top:8px;padding:10px 14px;font-size:13px}.calibration .cal-confirm.danger{border-color:var(--danger)}.calibration .cal-confirm ul{margin:6px 0 8px;padding-left:18px;line-height:1.45}.calibration .cal-confirm li+li{margin-top:3px}.calibration .cal-one-warn{border-radius:var(--radius);color:#6b4d00;background:#fff1d6;margin:0 0 10px;padding:6px 10px;font-size:12.5px}.calibration .cal-excluded{color:var(--text-muted);margin-top:8px}.calibration .cal-thumb{object-fit:contain;border:1px solid var(--border);background:repeating-conic-gradient(#eee 0 25%, #fff 0 50%) 0 0 / 8px 8px;border-radius:4px;width:40px;height:40px;display:block}.calibration .cal-thumb.empty{background:var(--surface-2)}.calibration .cal-bound{margin-top:3px}.calibration .cal-bound.ok{color:var(--ok)}.calibration .cal-bound.old{color:var(--warn);cursor:help}.calibration table.cal-inner{border-collapse:collapse;width:100%;margin-top:6px;font-size:12.5px}.calibration table.cal-inner td{border-bottom:1px solid var(--border);padding:3px 10px 3px 0}.calibration .cal-older{color:var(--warn);cursor:help}.calibration .cal-before-after{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.calibration .cal-val{white-space:nowrap}.calibration table.cal-inner tr.cal-uncounted td{color:var(--text-muted)}.calibration table.cal-inner tr.cal-uncounted .cal-grade{opacity:.6}.catalog .has-tip{-webkit-text-decoration:underline dotted var(--text-muted);text-decoration:underline dotted var(--text-muted);text-underline-offset:3px;cursor:help}.catalog .catalog-notice{z-index:3;align-items:flex-start;gap:8px;display:flex;position:sticky;top:8px;box-shadow:0 2px 8px #00000014}.catalog .catalog-notice .spacer{flex:1}.catalog .catalog-notice.danger{color:#7a1c15;background:#fde5e3;border-color:#f2b4af}.catalog .icon-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:13px;line-height:1.2}.catalog .icon-btn:hover{color:var(--accent)}.catalog .inline-edit{align-items:baseline;gap:2px;display:inline-flex}.catalog .inline-form{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.catalog .inline-form input,.catalog .rename-form input,.catalog select.compact{border:1px solid var(--border);background:var(--surface);border-radius:4px;padding:3px 6px;font-size:13px}.catalog .inline-form input.code-input{width:64px;font-family:var(--mono)}.catalog .rename-form input{width:100%;min-width:220px}.catalog select.compact:disabled{opacity:.6}.catalog .linklike{font:inherit;color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.catalog .linklike:hover{text-decoration:underline}.catalog table.list tr.row-link.selected td{background:#f3ebe2}.catalog table.list tr.row-link.selected td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.catalog table.list tr.row-link.selected .linklike{color:var(--text);font-weight:600}.catalog .catalog-filters{align-items:center;margin-bottom:10px}.catalog .catalog-filters .spacer{flex:1}.catalog .catalog-filters input[type=search]{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:300px;padding:6px 10px}.catalog table.catalog-options td{vertical-align:top}.catalog table.catalog-options td.actions{white-space:nowrap;text-align:right}.catalog table.catalog-options tr.retired td{color:var(--text-muted);background:#faf9f6}.catalog .chip.retired{color:#555;background:#ececec;margin-right:4px}.catalog .flag.quiet{background:var(--surface-2);color:var(--text-muted)}.catalog .aliases{flex-wrap:wrap;align-items:center;gap:2px 0;max-width:260px;display:flex}.catalog .alias-chip{background:var(--surface-2);border-radius:999px;align-items:center;margin-right:4px;padding:1px 2px 1px 8px;font-size:12px;display:inline-flex}.catalog .alias-chip button{cursor:pointer;color:var(--text-muted);background:0 0;border:0;padding:0 5px;font-size:13px;line-height:1}.catalog .alias-chip button:hover{color:var(--danger)}.catalog .inline-form input.alias-add{background:0 0;border-style:dashed;border-radius:999px;width:72px;padding:1px 8px;font-size:12px}.catalog .inline-form input.alias-add:focus{background:var(--surface);border-style:solid;border-color:var(--accent);outline:none;width:150px}.catalog table.catalog-options .hover-only{visibility:hidden}.catalog table.catalog-options tr:hover .hover-only,.catalog table.catalog-options tr:focus-within .hover-only,.catalog .hover-only:focus{visibility:visible}.catalog .catalog-import h2{margin-bottom:6px}.catalog .catalog-import textarea{font-family:var(--mono);font-size:12px}.catalog .visually-hidden{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.catalog table.catalog-options td.photos-cell{white-space:nowrap;width:1%;padding:3px 4px 3px 6px}.catalog .photo-btn{cursor:pointer;font:inherit;color:inherit;background:0 0;border:1px solid #0000;border-radius:6px;align-items:flex-start;gap:5px;padding:2px 4px 2px 2px;display:inline-flex}.catalog .photo-btn:hover{border-color:var(--border);background:var(--surface)}.catalog .photo-btn[aria-expanded=true]{border-color:var(--accent);background:var(--surface)}.catalog .photo-thumb{border:1px solid var(--border);border-radius:4px;flex:none;width:36px;height:36px;display:block;position:relative}.catalog .photo-thumb.checker{background-position:0 0,0 4px,4px -4px,-4px 0;background-size:8px 8px}.catalog .photo-thumb img{object-fit:contain;border-radius:3px;width:100%;height:100%;display:block}.catalog .photo-thumb.empty{background:0 0;border:1.5px dashed #cfc9bd}.catalog .photo-btn:hover .photo-thumb.empty{border-color:var(--text-muted)}.catalog .photo-thumb.missing:before{content:"";background:var(--warn);width:9px;height:9px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;top:-4px;right:-4px}.catalog .photo-meta{flex-direction:column;align-items:flex-start;gap:3px;min-width:16px;padding-top:1px;display:flex}.catalog .photo-count{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12px;line-height:14px}.catalog .photo-inds{gap:2px;display:inline-flex}.catalog .ind{text-align:center;color:#fff;border-radius:50%;width:13px;height:13px;font-size:10px;font-weight:700;line-height:13px;display:inline-block}.catalog .ind.needs{background:var(--warn)}.catalog .ind.failed{background:var(--danger)}.catalog .ind.proc{border:2px solid var(--border);border-top-color:var(--accent);animation:.8s linear infinite spin}.catalog table.catalog-options tr.drop-target td{box-shadow:inset 0 2px 0 var(--accent), inset 0 -2px 0 var(--accent);background:#f6ece2}.catalog table.catalog-options tr.drop-target td:first-child{box-shadow:inset 2px 2px 0 var(--accent), inset 0 -2px 0 var(--accent)}.catalog table.catalog-options tr.drop-target td:last-child{box-shadow:inset -2px 2px 0 var(--accent), inset 0 -2px 0 var(--accent)}.catalog table.catalog-options tr.drop-refused td{background:#fcf1f0;box-shadow:inset 0 2px #e7b1ad,inset 0 -2px #e7b1ad}.catalog table.catalog-options tr.drop-target .photo-thumb.empty{border-color:var(--accent)}.catalog table.catalog-options tr.uploading .photo-thumb:after{content:"";border:2px solid var(--border);border-top-color:var(--accent);background:var(--surface);border-radius:50%;width:12px;height:12px;margin:-8px 0 0 -8px;animation:.8s linear infinite spin;position:absolute;top:50%;left:50%}.catalog table.catalog-options tr.photos-open td{background:#f3ebe2;border-bottom-color:#0000}.catalog table.catalog-options tr.photos-open td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.catalog table.catalog-options tr.photos-row>td{box-shadow:inset 3px 0 0 var(--accent);vertical-align:top;background:#faf8f4;padding:0}.catalog .option-photos{padding:12px 16px 16px 19px}.catalog .option-photos .op-head{align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.catalog .option-photos .op-head h3{margin:0;font-size:14px;font-weight:600}.catalog .option-photos .op-head .spacer{flex:1}.catalog .option-photos .op-close{font-size:18px}.catalog .option-photos .op-body{grid-template-columns:310px minmax(0,1fr);align-items:start;gap:20px;display:grid}.catalog .option-photos .op-side{flex-direction:column;gap:12px;display:flex}.catalog .option-photos .op-drop{text-align:center;border:1.5px dashed var(--border);background:var(--surface);border-radius:8px;flex-direction:column;align-items:center;gap:6px;padding:14px 12px;transition:border-color .15s,background .15s;display:flex}.catalog .option-photos .op-drop.active{border-color:var(--accent);background:#f6ece2}.catalog .option-photos input.visually-hidden:focus-visible+label{outline-offset:2px;outline:2px solid #d9b89b}.catalog .option-photos label.btn.disabled{opacity:.5;cursor:not-allowed}.catalog .option-photos .op-field{flex-direction:column;gap:4px;margin:0;display:flex}.catalog .option-photos .op-field>label{color:var(--text-muted);font-size:12px}.catalog .option-photos .op-section{border-top:1px solid var(--border);padding-top:12px}.catalog .option-photos .op-field select,.catalog .option-photos .op-field input{border:1px solid var(--border);background:var(--surface);border-radius:4px;min-width:0;padding:5px 8px;font-size:13px}.catalog .option-photos .op-field select:disabled{opacity:.6}.catalog .option-photos .op-inline{align-items:center;gap:6px;display:flex}.catalog .option-photos .op-inline select{flex:1}.catalog .option-photos input.op-size{width:96px}.catalog .option-photos .op-hint{color:var(--text-muted);font-size:12px;line-height:1.35}.catalog .option-photos .op-hint.warn{color:var(--warn)}.catalog .option-photos .op-refused{background:var(--surface-2);color:var(--text-muted);border-radius:6px;padding:10px 12px}.catalog .option-photos .op-empty{text-align:center;border:1px dashed var(--border);border-radius:8px;padding:28px 16px}.catalog .option-photos .op-group+.op-group{margin-top:14px}.catalog .option-photos .op-group-head{align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.catalog .option-photos .op-grid{grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.catalog .option-photos .op-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;flex-direction:column;display:flex;overflow:hidden}.catalog .option-photos .op-card.primary{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.catalog .option-photos .op-preview{border-bottom:1px solid var(--border);justify-content:center;align-items:center;height:132px;text-decoration:none;display:flex}.catalog .option-photos .op-preview:not(.checker){background:var(--surface-2)}.catalog .option-photos .op-preview img{object-fit:contain;max-width:100%;max-height:100%;display:block}.catalog .option-photos .op-card-body{flex-direction:column;gap:5px;min-width:0;padding:8px 10px 9px;display:flex}.catalog .option-photos .op-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.catalog .option-photos .op-line{flex-wrap:wrap;align-items:center;gap:6px;min-height:24px;display:flex}.catalog .option-photos .op-primary{color:var(--accent);font-size:12px;font-weight:600}.catalog .option-photos .op-problem{color:var(--warn);line-height:1.35}.catalog .option-photos .op-problem.failed{color:var(--danger);overflow-wrap:anywhere}.catalog .option-photos .op-note{color:var(--text-muted);line-height:1.35}.catalog .option-photos .op-meta{overflow-wrap:anywhere}.catalog .option-photos .op-actions{align-items:center;gap:14px;margin-top:2px;display:flex}.catalog .option-photos .linklike.danger{color:var(--danger);font-size:12px}.catalog .option-photos .linklike:disabled{color:var(--text-muted);cursor:default;text-decoration:none}@media (width<=900px){.catalog .option-photos .op-body{grid-template-columns:1fr}}.catalog table.catalog-options td.cal-cell{width:1%;min-width:96px}.catalog .cal-cell>a{margin:1px 4px 2px 0;text-decoration:none;display:inline-block}.catalog .cal-chip{white-space:nowrap;border-radius:999px;padding:1px 7px;font-size:12px}.catalog .cal-chip.measured{background:var(--surface-2);color:var(--text)}.catalog .cal-chip.todo{color:#8a5a00;background:#fff1d6;font-weight:600}.catalog .cal-chip.approved{color:#1f6b25;background:#e2f3e4}.catalog .cal-cell>a:hover .cal-grade,.catalog .cal-cell>a.cal-chip:hover{box-shadow:0 0 0 1px}.library .lib-lede,.library-batch .lib-lede{margin:-4px 0 12px}.library .lib-section{margin-top:16px}.library .has-tip{-webkit-text-decoration:underline dotted var(--text-muted);text-decoration:underline dotted var(--text-muted);text-underline-offset:3px;cursor:help}.library select.compact,.library-batch select.compact{border:1px solid var(--border);background:var(--surface);border-radius:4px;max-width:100%;padding:3px 6px;font-size:13px}.library td.num,.library th.num{text-align:right;width:72px}.library td.right{text-align:right}.library-batch .linklike{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0}.library-batch .linklike:hover{text-decoration:underline}.library-batch .linklike:disabled{color:var(--text-muted);cursor:default;text-decoration:none}.library .lib-top{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:stretch;gap:16px;display:grid}@media (width<=900px){.library .lib-top{grid-template-columns:1fr}}.bulk-upload{flex-direction:column;display:flex}.bulk-upload .bulk-drop{gap:6px;padding:20px 16px;position:relative}.bulk-upload .bulk-pick{justify-content:center;gap:8px;margin-top:4px}.bulk-upload label.btn.disabled{opacity:.5;cursor:not-allowed}.bulk-upload .bulk-options{align-items:center;gap:8px;margin-top:10px;display:flex}.bulk-upload .bulk-options label{color:var(--text-muted)}.bulk-upload .bulk-options select{color:var(--text);min-width:0}.bulk-upload .bulk-picked{background:var(--surface-2);border-radius:var(--radius);align-items:center;gap:8px;margin-top:10px;padding:8px 10px;display:flex}.bulk-upload .bulk-picked .spacer{flex:1}.bulk-upload .bulk-folders{overflow-wrap:anywhere}.bulk-upload .bulk-progress{flex-direction:column;gap:6px;margin-top:10px;display:flex}.bulk-upload .bulk-progress-line{align-items:center}.bulk-upload .bulk-progress-line .spacer{flex:1}.bulk-upload .error{margin-bottom:0}.library .inbox-card{flex-direction:column;align-items:flex-start;display:flex}.library .inbox-path{background:var(--surface-2);overflow-wrap:anywhere;border-radius:4px;margin:-6px 0 12px;padding:2px 6px;display:inline-block}.library a.btn{color:var(--text);text-decoration:none}.library .error-text,.library-batch .error-text{color:var(--danger)}.library .inbox-facts{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.library .inbox-note{margin:8px 0 0}.batch-status{background:var(--surface-2);color:var(--text-muted);white-space:nowrap;border-radius:999px;align-items:center;padding:1px 8px;font-size:12px;display:inline-flex}.batch-status.bs-open{color:#8a5a00;background:#fff1d6}.batch-status.bs-staging{color:#1d4a8f;background:#e3ecfa}.batch-status.bs-done{color:#1f6b25;background:#e2f3e4}.library .attention-list{border:1px solid var(--border);border-radius:var(--radius);margin:0 0 8px;padding:0;list-style:none}.library .attention-list li+li{border-top:1px solid var(--border)}.library .attention-row{color:inherit;grid-template-columns:40px minmax(160px,1.1fr) 116px 76px minmax(0,2fr);place-items:center start;gap:12px;padding:6px 10px;text-decoration:none;display:grid}.library .attention-row:hover{background:#faf8f4}.library .attention-row img,.library .attention-noimg{object-fit:contain;border:1px solid var(--border);border-radius:4px;width:40px;height:40px}.library .attention-noimg{background:var(--surface-2);display:block}.library .attention-main{flex-direction:column;min-width:0;display:flex}.library .attention-name{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.library .attention-error{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.library table.coverage td{vertical-align:middle}.library .cov-variant{color:var(--text);font-weight:500;text-decoration:none}.library .cov-variant:hover{color:var(--accent);text-decoration:underline}.library .cov-cell{flex-direction:column;gap:3px;min-width:110px;display:inline-flex}.library .cov-num{font-variant-numeric:tabular-nums;font-size:13px}.library .cov-bar{background:var(--surface-2);border-radius:2px;width:110px;height:4px;display:block;overflow:hidden}.library .cov-bar>span{background:var(--accent);height:100%;display:block}.library .cov-bar.full>span{background:var(--ok)}.library .disclose{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:2px 0;font-size:13px;display:inline-flex}.library .disclose:hover{text-decoration:underline}.library .caret,.library-batch .caret{border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:5px solid;width:0;height:0;margin:0 3px 0 1px;transition:transform .12s;display:inline-block}.library [aria-expanded=true]>.caret,.library-batch [aria-expanded=true]>.caret{transform:rotate(90deg)}.library table.coverage tr.open td{background:#faf8f4;border-bottom-color:#0000}.library table.coverage tr.missing-row td{background:#faf8f4;padding-top:0}.library .missing-list{flex-wrap:wrap;gap:4px 6px;margin:0;padding:0 0 4px;list-style:none;display:flex}.library .missing-list li{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:12.5px}.library .missing-list li a{text-decoration:none}.library .missing-list li a:hover{text-decoration:underline}.library .missing-list li.muted{border-style:dashed}.library-batch{padding-bottom:0}.library-batch .back-link{margin-bottom:8px;font-size:13px;text-decoration:none;display:inline-block}.library-batch .back-link:hover{text-decoration:underline}.library-batch .batch-head{flex-wrap:wrap;row-gap:4px;margin-bottom:12px}.library-batch .banner.danger{color:#7a1c15;background:#fde5e3;border-color:#f2b4af}.library-batch .ok-banner{color:#1f6b25;background:#e2f3e4;border-color:#b9d8bb;margin-top:12px}.library-batch .staging-card{flex-direction:column;gap:10px;max-width:720px;display:flex}.library-batch .staging-card .row{align-items:center;gap:8px}.library-batch .staging-card .spacer{flex:1}.library-batch .staging-card p{margin:0}.library-batch .batch-summary{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.library-batch .stat{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:999px;align-items:baseline;gap:5px;padding:4px 10px;font-size:13px;text-decoration:none;display:inline-flex}.library-batch .stat strong{font-variant-numeric:tabular-nums}.library-batch .stat:hover{border-color:#b9b3a6}.library-batch .stat.zero{color:var(--text-muted)}.library-batch .stat-decide:not(.zero){color:#8a5a00;background:#fdf6ea;border-color:#e6c48f}.library-batch .stat-ready:not(.zero){color:#1f6b25;background:#f1f8f1;border-color:#b9d8bb}.library-batch .batch-filters{align-items:center;margin-bottom:12px}.library-batch .batch-filters .spacer{flex:1}.library-batch .batch-filters label{color:var(--text-muted);gap:6px}.library-batch .batch-filters select{color:var(--text);max-width:360px}.library-batch .batch-filters input[type=search]{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:280px;padding:5px 10px}.library-batch .all-decided{margin:0 0 12px}.library-batch .batch-section{margin-bottom:14px}.library-batch .batch-section>header{border-bottom:1px solid var(--border);align-items:baseline;gap:8px;padding:10px 14px;display:flex}.library-batch .batch-section h2{text-transform:none;letter-spacing:0;color:var(--text);white-space:nowrap;margin:0;font-size:14px;font-weight:600}.library-batch .sec-count{background:var(--surface-2);font-variant-numeric:tabular-nums;border-radius:999px;padding:0 7px;font-size:12px}.library-batch .sec-decide .sec-count{color:#8a5a00;background:#fdf6ea}.library-batch .sec-ready .sec-count{color:#1f6b25;background:#f1f8f1}.library-batch .sec-hint{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-left:6px;overflow:hidden}.library-batch .section-toggle{cursor:pointer;color:var(--text-muted);background:0 0;border:0;align-self:center;padding:0 2px}.library-batch .bi-none{margin:0;padding:10px 14px}.library-batch .bi-list{margin:0;padding:0;list-style:none}.library-batch .bi-row{grid-template-columns:52px minmax(150px,1.15fr) minmax(120px,.8fr) minmax(260px,1.9fr) 140px 92px;align-items:center;gap:12px;min-height:64px;padding:6px 14px;display:grid}.library-batch .bi-row+.bi-row{border-top:1px solid var(--border)}.library-batch .bi-row.busy{opacity:.6}.library-batch .sec-left .bi-row,.library-batch .sec-attached .bi-row{min-height:56px}.library-batch .bi-file,.library-batch .bi-state,.library-batch .bi-option{min-width:0}.library-batch .bi-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.library-batch .bi-facts{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.library-batch .bi-folder{color:#948d80;text-overflow:ellipsis;white-space:nowrap;line-height:1.35;overflow:hidden}.library-batch .bi-option.wide{grid-column:span 2}.library-batch .bi-state{flex-direction:column;align-items:flex-start;gap:3px;display:flex}.library-batch .bi-reason{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;line-height:1.3;display:-webkit-box;overflow:hidden}.library-batch .bi-opt-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.library-batch .bi-opt .muted{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.library-batch .bi-opt .flag{margin-left:6px}.library-batch .bi-choose{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.library-batch .bi-picker{flex:220px;align-items:center;gap:8px;min-width:0;display:flex}.library-batch .bi-picker .option-picker{flex:1;min-width:0}.library-batch .bi-picker .option-picker input{padding:4px 8px;font-size:13px}.library-batch .cand{color:var(--text);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:#fdf6ea;border:1px solid #e6c48f;border-radius:999px;max-width:100%;padding:2px 9px;font-size:12px;overflow:hidden}.library-batch .cand:hover:not(:disabled){border-color:var(--accent);background:#f6ece2}.library-batch .bi-kind select{width:100%}.library-batch .bi-act{justify-self:start}.library-batch .bi-act label{cursor:pointer}.library-batch .bi-attached{flex-direction:column;align-items:flex-start;gap:3px;display:inline-flex}.library-batch .match-label{background:var(--surface-2);color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:1px 7px;font-size:11px}.library-batch .ml-matched,.library-batch .ml-chosen{color:#1f6b25;background:#e2f3e4}.library-batch .ml-suggested,.library-batch .ml-ambiguous{color:#8a5a00;background:#fff1d6}.library-batch .ml-unmatched{color:#444;background:#ececec}.library-batch .ml-unreadable{color:#9c1f18;background:#fde5e3}.library-batch .bi-thumb{border:1px solid var(--border);border-radius:4px;width:52px;height:52px;position:relative}.library-batch .bi-thumb>img{object-fit:contain;width:100%;height:100%;display:block}.library-batch .bi-thumb.empty{background:var(--surface-2);color:var(--text-muted);justify-content:center;align-items:center;display:flex}.library-batch .bi-zoom{z-index:25;border:1px solid var(--border);border-radius:var(--radius);width:208px;height:208px;padding:4px;display:none;position:absolute;top:50%;left:60px;transform:translateY(-50%);box-shadow:0 8px 24px #0000002e}.library-batch .bi-zoom img{object-fit:contain;width:100%;height:100%}.library-batch .bi-thumb:hover .bi-zoom,.library-batch .bi-thumb:focus .bi-zoom{display:block}.library-batch .bi-thumb:focus{outline-offset:1px;outline:2px solid #d9b89b}.library-batch .batch-footer{z-index:20;border:1px solid var(--border);border-radius:var(--radius);background:#fffffff7;align-items:center;gap:10px;margin:4px 0 24px;padding:10px 14px;display:flex;position:sticky;bottom:12px;box-shadow:0 6px 20px #0000001f}.library-batch .batch-footer .spacer{flex:1}.library-batch .footer-msg{align-items:baseline;gap:10px;min-width:0;font-size:13px;display:flex}.library-batch .footer-msg>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width<=1000px){.library-batch .bi-row{grid-template-columns:52px minmax(0,1fr) minmax(0,1fr) 140px;grid-template-areas:"thumb file state act""thumb option option kind";row-gap:6px}.library-batch .bi-thumb{grid-area:thumb}.library-batch .bi-file{grid-area:file}.library-batch .bi-state{grid-area:state}.library-batch .bi-act{grid-area:act}.library-batch .bi-option{grid-area:option}.library-batch .bi-option.wide{grid-area:2/2/3/-1}.library-batch .bi-kind{grid-area:kind}}.ob-page .spacer,.ob-side .spacer,.ob-add .spacer{flex:1}.ob-ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ob-empty{color:var(--text-muted);margin:6px 0;font-size:13px;line-height:1.45}.ob-lede{margin:-4px 0 10px;line-height:1.45}.ob-warn{color:var(--warn)}.ob-link{font:inherit;color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.ob-link:hover{text-decoration:underline}.ob-select{border:1px solid var(--border);background:var(--surface);border-radius:4px;max-width:100%;padding:4px 6px;font-size:13px}.ob-sw{vertical-align:middle;border:1px solid #00000040;border-radius:3px;flex:none;width:14px;height:14px;display:inline-block}.ob-sw.big{border-radius:5px;width:34px;height:34px}.error-inline{color:var(--danger)}.ob-grade{white-space:nowrap;border-radius:999px;padding:1px 7px;font-size:11.5px;font-weight:500;display:inline-block}.ob-grade-close{color:#1f6b25;background:#e2f3e4}.ob-grade-noticeable{color:#8a5a00;background:#fff1d6}.ob-grade-off{color:#9c1f18;background:#fde5e3}.ob-intro{max-width:900px;color:var(--text-muted);margin:-6px 0 16px;line-height:1.5}.ob-add{margin-bottom:16px}.ob-add-head{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:16px;padding:12px 16px 0;display:flex}.ob-add-head h2{margin:0 0 10px}.ob-tabs{flex-wrap:wrap;gap:2px;display:flex}.ob-tab{font:inherit;color:var(--text-muted);cursor:pointer;border-radius:var(--radius) var(--radius) 0 0;background:0 0;border:1px solid #0000;border-bottom:0;align-items:center;gap:6px;margin-bottom:-1px;padding:7px 12px;font-size:13px;display:inline-flex}.ob-tab:hover{color:var(--text)}.ob-tab.active{color:var(--text);background:var(--surface);border-color:var(--border);border-bottom:1px solid var(--surface);font-weight:600}.ob-tab-n{background:var(--surface-2);color:var(--text-muted);border-radius:999px;padding:0 6px;font-size:11px;font-weight:500}.ob-add-body{padding:14px 16px 16px}.ob-upload .ob-drop{gap:8px;padding:22px 16px;position:relative}.ob-upload label.btn.disabled{opacity:.5;cursor:not-allowed}.ob-upload-opts{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.ob-upload-opts label{color:var(--text-muted)}.ob-upload-list{border:1px solid var(--border);border-radius:var(--radius);max-height:260px;margin:10px 0 0;padding:0;list-style:none;overflow:auto}.ob-upload-list li{align-items:center;gap:10px;padding:5px 10px;font-size:13px;display:flex}.ob-upload-list li+li{border-top:1px solid var(--border)}.ob-filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.ob-search{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:240px;padding:4px 8px;font-size:13px}.ob-src-list{border:1px solid var(--border);border-radius:var(--radius);max-height:340px;margin:0;padding:0;list-style:none;overflow:auto}.ob-src-list li{align-items:center;gap:12px;padding:6px 10px;display:flex}.ob-src-list li+li{border-top:1px solid var(--border)}.ob-src-list li:hover{background:#faf8f4}.ob-src-main{flex-direction:column;flex:1;min-width:0;display:flex}.ob-src-list .btn .spinner{margin-right:2px}.ob-src-list a.btn,.ob-saddles a.btn,.ob-list-card a.btn{color:var(--text);text-decoration:none}.ob-saddles{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.ob-saddle{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:6px;padding:8px;display:flex}.ob-saddle img,.ob-saddle-noimg{aspect-ratio:1;object-fit:contain;border:1px solid var(--border);background:#fff;border-radius:4px;width:100%;display:block}.ob-saddle-noimg{background:var(--surface-2)}.ob-saddle>.ob-ellipsis{max-width:100%;font-weight:500}.ob-list-card h2{margin:0}.ob-list-head{align-items:center;gap:12px;margin-bottom:12px;display:flex}.ob-list-head label{color:var(--text-muted)}.ob-filter-banner{align-items:center;gap:6px;display:flex}.ob-table td{vertical-align:top}.ob-thumb-cell{width:64px}.ob-thumb{object-fit:contain;border:1px solid var(--border);background:#fff;border-radius:4px;width:52px;height:52px;display:block}.ob-thumb.empty{background:var(--surface-2)}.ob-name-link{overflow-wrap:anywhere;font-weight:500;text-decoration:none}.ob-name-link:hover{text-decoration:underline}.ob-tagchips{flex-wrap:wrap;gap:4px;max-width:280px;display:flex}.ob-tagchip{border:1px solid var(--border);background:var(--surface-2);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:12px}.ob-kinds{gap:6px;margin-top:3px;display:inline-flex}.ob-kind{color:var(--text-muted);align-items:center;gap:2px;font-size:11px;display:inline-flex}.ob-status{background:var(--surface-2);color:var(--text-muted);white-space:nowrap;border-radius:999px;align-items:center;padding:1px 8px;font-size:12px;display:inline-flex}.ob-status-ready{color:#1f6b25;background:#e2f3e4}.ob-status-pending,.ob-status-processing{color:#1d4a8f;background:#e3ecfa}.ob-status-failed{color:#9c1f18;background:#fde5e3}table.list tr.ob-new td{background:#fbf6ee}.ob-crumbs{margin-bottom:12px}.ob-editor .ob-title{text-overflow:ellipsis;white-space:nowrap;max-width:280px;margin-left:6px;overflow:hidden}.ob-editor .editor-parts{width:280px}.ob-regions .ob-empty{padding:4px 12px}.ob-regions .parts-add .btn{gap:4px}.parts-list li.part.ob-excluded .pname{color:var(--text-muted);-webkit-text-decoration:line-through #0000004d;text-decoration:line-through #0000004d}.ob-mchip{flex:none;justify-content:center;align-items:center;min-width:18px;height:16px;font-size:11px;display:inline-flex}.ob-mchip .spinner{margin:0}.ob-mchip-error{color:#fff;background:var(--danger);border-radius:999px;width:16px;min-width:16px;font-weight:700}.ob-mchip-stale{color:#8a5a00;background:#fff1d6;border-radius:999px;width:16px;min-width:16px;font-weight:700}.ob-measures{margin:6px 0 2px;line-height:1.4}.ob-note{border:1px solid var(--border);background:#fff;border-radius:4px;width:100%;margin-top:6px;padding:4px 6px;font-size:12px}.ob-wait{text-align:center;flex-direction:column;padding:24px;line-height:1.6}.ob-boot-error{color:var(--danger)}.ob-wait .btn{margin-top:10px}.ob-side{background:var(--surface);border-left:1px solid var(--border);flex:none;width:360px;overflow-y:auto}.ob-card{border-bottom:1px solid var(--border);padding:12px 14px}.ob-card h2{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);margin:0 0 8px;font-size:12px;font-weight:600}.ob-card-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.ob-card-head h2{margin:0}.ob-name{background:0 0;border:1px solid #0000;border-radius:4px;width:100%;margin:-2px 0 8px -6px;padding:4px 6px;font-weight:600}.ob-name:hover,.ob-name:focus{border-color:var(--border);background:#fff}.ob-field{flex-direction:column;gap:3px;margin-bottom:8px;display:flex}.ob-field>span{color:var(--text-muted);font-size:12px}.ob-field select{border:1px solid var(--border);background:var(--surface);border-radius:4px;padding:5px 6px}.ob-field textarea{border:1px solid var(--border);resize:vertical;background:#fff;border-radius:4px;padding:5px 6px;font-size:12px}.ob-facts{grid-template-columns:auto 1fr;gap:3px 10px;margin:0 0 10px;font-size:12px;display:grid}.ob-facts dt{color:var(--text-muted)}.ob-facts dd{min-width:0;margin:0}.ob-wrap{overflow-wrap:anywhere}.ob-side a.btn{color:var(--text);text-decoration:none}.ob-parsed{color:var(--text-muted);background:#f4f1ea;border-radius:4px;margin-bottom:8px;padding:6px 8px}.ob-tags{flex-direction:column;gap:10px;display:flex}.ob-tag .option-picker{min-width:0}.ob-tag .option-picker input{padding:4px 8px;font-size:13px}.ob-tag-head{align-items:center;gap:6px;margin-bottom:3px;display:flex}.ob-tag-variant{font-size:12px;font-weight:600}.ob-tag-kinds{gap:2px;display:inline-flex}.ob-tag-current{align-items:center;gap:6px;margin-bottom:4px;font-size:13px;display:flex}.ob-src{border:1px solid var(--border);color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:0 6px;font-size:11px}.ob-src-parser{color:#6b4d00;background:#fff7e0;border-color:#f0d58a}.ob-src-saddle{color:#1d4a8f;background:#e3ecfa;border-color:#c4d4ee}.ob-x{cursor:pointer;color:var(--text-muted);background:0 0;border:0;padding:0 4px;font-size:16px;line-height:1}.ob-x:hover:not(:disabled){color:var(--danger)}.ob-x:disabled{opacity:.4;cursor:not-allowed}.ob-suggest{background:#fff7e0;border:1px solid #f0d58a;border-radius:4px;margin-top:4px;padding:5px 8px}.ob-suggest .btn{margin-left:4px;padding:1px 8px}.ob-more{margin-top:10px}.ob-more>summary{cursor:pointer;margin-bottom:8px;font-size:12px;font-weight:600}.ob-meas,.ob-score{border-top:1px solid var(--border);flex-direction:column;gap:5px;padding:8px 0;display:flex}.ob-card-head+.ob-meas,.ob-lede+.ob-score{border-top:0;padding-top:2px}.ob-meas.ob-excluded{opacity:.6}.ob-meas-head{align-items:center;gap:6px;min-width:0;font-size:13px;display:flex}.ob-meas-head .ob-link{white-space:nowrap;font-weight:600}.ob-colour{align-items:center;gap:10px;display:flex}.ob-colour .mono{font-size:12.5px}.ob-fit{align-items:flex-start;gap:6px;line-height:1.4;display:flex}.ob-fit .ob-sw{margin-top:1px}.ob-outdated{opacity:.6}dl.ob-stats{grid-template-columns:auto 1fr;gap:2px 10px;margin:0;font-size:12px;display:grid}dl.ob-stats dt{color:var(--text-muted)}dl.ob-stats dd{font-family:var(--mono);margin:0}.ob-pieces{color:var(--text-muted);margin:2px 0 0;padding-left:16px}.ob-border,.ob-metal{flex-direction:column;gap:4px;display:flex}.ob-chips{flex-wrap:wrap;gap:4px;display:flex}.ob-chip{font-family:var(--mono);border:1px solid var(--border);background:var(--surface-2);border-radius:999px;align-items:center;gap:4px;padding:1px 7px;font-size:11.5px;display:inline-flex}.ob-wb .ob-sw{border-radius:50%;width:10px;height:10px}.ob-preview{border:1px solid var(--border);cursor:zoom-in;background:#fff;border-radius:4px;max-width:100%;padding:0;display:block}.ob-preview img{max-width:100%;max-height:180px;display:block}.ob-score-num{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.ob-parts{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.ob-parts li{align-items:center;gap:6px;display:flex}.ob-part-kind{width:96px;color:var(--text-muted)}.ob-parts .ob-sw+.ob-sw{margin-left:-4px}.swatches-intro{margin:-8px 0 12px}.swatches-filter{cursor:pointer;align-items:center;gap:8px;margin-bottom:12px;display:inline-flex}.swatch-card{margin-bottom:16px}.swatch-card .swatch-hint{margin:0 0 10px}.swatch-table td{vertical-align:top}.swatch-table select{border:1px solid var(--border);background:var(--surface);border-radius:4px;padding:2px 4px}.swatch-colour{white-space:nowrap}.swatch-colour input[type=color]{border:1px solid var(--border);background:var(--surface);cursor:pointer;vertical-align:middle;border-radius:4px;width:36px;height:24px;margin-right:6px;padding:0 2px}.swatch-note{max-width:320px;margin-top:2px}.swatch-offered{white-space:nowrap}.swatch-actions{white-space:nowrap;text-align:right}.swatch-actions .btn+.btn{margin-left:6px}.swatch-table tr.changed td{background:#fffaf0}.swatch-table tr.changed td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.swatch-measured{white-space:nowrap;font-size:12px}.swatch-measured-row{align-items:center;gap:6px;line-height:20px;display:flex}.swatch-measured .swatch-chip{border:1px solid #0003;border-radius:3px;flex:none;width:16px;height:16px;display:inline-block}.swatch-measured .swatch-de{font-variant-numeric:tabular-nums;color:var(--text-muted)}.swatch-measured-row.differs .swatch-de,.swatch-measured-row.new .swatch-de{color:#8a5a00;font-weight:600}.vp-intro{margin:0 0 12px}.vp-list{flex-direction:column;gap:8px;display:flex}.vp-spacer{flex:1}.vp-block{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.vp-block.needs{border-color:#f0d58a;box-shadow:inset 3px 0 #f0d58a}.vp-head{flex-wrap:wrap;align-items:center;gap:6px 12px;padding:8px 12px;display:flex}.vp-toggle{font:inherit;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:6px;padding:2px 0;font-weight:600;display:inline-flex}.vp-toggle:hover{color:var(--accent)}.vp-caret{width:10px;color:var(--text-muted);font-size:11px;transition:transform .15s;display:inline-block}.vp-toggle[aria-expanded=true] .vp-caret{transform:rotate(90deg)}.vp-meta{color:var(--text-muted);font-size:12px}.vp-counts{font-size:12px}.vp-status{color:var(--text-muted);font-size:12px}.vp-status.saved{color:var(--ok)}.vp-error{padding:0 12px}.vp-photo{flex-wrap:wrap;align-items:center;gap:6px 10px;padding:0 12px 10px;display:flex}.vp-photo label{color:var(--text-muted);font-size:12px}.vp-photo select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:280px;max-width:100%;padding:5px 8px}.vp-photo select.needs{border-color:var(--danger);outline:2px solid #fde5e3}.vp-body{border-top:1px solid var(--border);padding:10px 12px 12px}.vp-tools{flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:8px;display:flex}.vp-tools input[type=search]{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:220px;padding:5px 8px}.vp-table th.vp-check,.vp-table td.vp-check{width:32px}.vp-table tr.selected td{background:#faf3ea}.vp-table .badge{margin-right:4px}.vp-opt{align-items:center;gap:8px;display:flex}.vp-thumb{flex:none;width:22px;height:22px}.vp-thumb img{object-fit:contain;outline-offset:-1px;border-radius:4px;outline:1px solid #0000001f;width:22px;height:22px;display:block}.vp-thumb img.checker{background-position:0 0,0 4px,4px -4px,-4px 0;background-size:8px 8px}.vp-av{border:1px solid var(--border);background:var(--surface);border-radius:4px;padding:3px 6px}.vp-av.av-standard{font-weight:600}.vp-av.av-hidden{color:var(--text-muted)}.vp-hidden-note{margin-top:8px}.vp-link{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.vp-footer{flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:12px;display:flex}.vp-footer select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:240px;padding:5px 8px}.vp-footer-error{flex-basis:100%}.vp-replace{border-top:1px solid var(--border);margin-top:14px;padding-top:10px}.vp-replace>summary{cursor:pointer;margin-bottom:8px;font-weight:600}.vp-empty h3{margin:16px 0 8px;font-size:13px;font-weight:600}.vi-preview{margin-top:14px}.vi-copy .field select{max-width:420px}.vp-choice{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}.vp-choice label{cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);align-items:flex-start;gap:10px;padding:12px;display:flex}.vp-choice label:hover{border-color:#c9b9a5}.vp-choice label.active{border-color:var(--accent);background:#faf3ea}.vp-choice input{margin-top:3px}.vp-choice .vp-choice-text{flex-direction:column;gap:2px;display:flex}@media (width<=640px){.vp-choice{grid-template-columns:1fr}}:root{--bg:#f6f5f2;--surface:#fff;--surface-2:#f0eee9;--border:#dcd8cf;--text:#1f1d1a;--text-muted:#6b665d;--accent:#8a4b1f;--accent-text:#fff;--danger:#b3261e;--ok:#2e7d32;--warn:#b26a00;--radius:6px;--font:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--text);background:var(--bg);font-size:14px}a{color:var(--accent)}button,input,select,textarea{font:inherit;color:inherit}.app{flex-direction:column;min-height:100%;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:16px;height:48px;padding:0 20px;display:flex}.topbar .brand{letter-spacing:.2px;color:var(--text);font-weight:600;text-decoration:none}.topbar .tag{text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:11px}.topbar nav{gap:14px;margin-left:12px;display:flex}.topbar nav a{color:var(--text-muted);padding:4px 2px;text-decoration:none}.topbar nav a.active{color:var(--text);border-bottom:2px solid var(--accent)}.topbar .spacer{flex:1}.topbar .user{color:var(--text-muted)}main.page{width:100%;max-width:1200px;margin:0 auto;padding:24px 20px}.page-head{align-items:center;gap:12px;margin-bottom:16px;display:flex}.page-head h1{margin:0;font-size:20px;font-weight:600}.page-head .spacer{flex:1}.btn{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);cursor:pointer;align-items:center;gap:6px;padding:7px 12px;line-height:1.2;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{color:var(--danger);border-color:var(--danger)}.btn.small{padding:4px 8px;font-size:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.card.pad{padding:16px}table.list{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;overflow:hidden}table.list th,table.list td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 12px}table.list th{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--surface-2);font-size:12px;font-weight:600}table.list tr:last-child td{border-bottom:none}table.list tr.row-link{cursor:pointer}table.list tr.row-link:hover td{background:#faf8f4}.muted{color:var(--text-muted)}.mono{font-family:var(--mono);font-size:12px}.chip{white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.chip.setup{color:#444;background:#ececec}.chip.masking{color:#1d4a8f;background:#e3ecfa}.chip.generated{color:#0b57a4;background:#e9f3ff}.chip.in_review{color:#8a5a00;background:#fff1d6}.chip.changes_requested{color:#9c1f18;background:#fde5e3}.chip.approved{color:#1f6b25;background:#e2f3e4}.chip.delivered{color:#0b5d75;background:#d9f0f7}.chip.stale{color:#8a5a00;background:#fff1d6}.empty-state{text-align:center;color:var(--text-muted);padding:48px 16px}.empty-state h2{color:var(--text);margin:0 0 6px;font-size:16px;font-weight:600}.login-wrap{justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.login{width:360px}.login h1{margin:0 0 4px;font-size:18px}.login p.sub{color:var(--text-muted);margin:0 0 16px}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.field label{color:var(--text-muted);font-size:12px}.field input,.field select,.field textarea{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:8px 10px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);outline:2px solid #d9b89b}.dropzone{border:1.5px dashed var(--border);background:var(--surface);text-align:center;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:36px 16px;transition:border-color .15s,background .15s;display:flex}.dropzone.active{border-color:var(--accent);background:#f6ece2}.dropzone-icon{color:var(--text-muted)}.dropzone.active .dropzone-icon{color:var(--accent)}.dropzone-text{color:var(--text-muted);font-size:14px}.dropzone input[type=file]{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.dropzone-browse{margin-top:2px}.error{color:var(--danger);margin:8px 0}.banner{color:#6b4d00;border-radius:var(--radius);background:#fff7e0;border:1px solid #f0d58a;margin-bottom:16px;padding:8px 12px}main.page.narrow{max-width:820px}.card h2{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);margin:0 0 10px;font-size:14px;font-weight:600}.grid2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.grid3{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}@media (width<=900px){.grid2,.grid3{grid-template-columns:1fr}}.row{align-items:flex-start;gap:12px;display:flex}.row.wrap{flex-wrap:wrap}img.preview{border:1px solid var(--border);border-radius:var(--radius);background:#fff;max-width:240px;max-height:240px}.thumb-sm{object-fit:contain;border:1px solid var(--border);background:#fff;border-radius:4px;width:40px;height:40px;display:inline-block}.thumb-sm.empty{background:var(--surface-2)}figure.thumb{width:140px;margin:0}figure.thumb img{object-fit:contain;border:1px solid var(--border);border-radius:var(--radius);background:repeating-conic-gradient(#eee 0 25%, #fff 0 50%) 0 0 / 16px 16px;width:140px;height:140px}figure.thumb figcaption{margin-top:4px;font-size:12px}.small{font-size:12px}.ok{color:var(--ok)}.flag{border-radius:4px;margin:1px 4px 1px 0;padding:1px 6px;font-size:12px;display:inline-block}.flag.warn{color:#8a5a00;background:#fff1d6}.flag.danger{color:#9c1f18;background:#fde5e3}table.list.compact th,table.list.compact td{padding:6px 10px}.dot{vertical-align:middle;background:#ccc;border-radius:50%;width:9px;height:9px;margin-right:6px;display:inline-block}.dot.drafted{background:var(--warn)}.dot.done{background:var(--ok)}ol.steps{counter-reset:step;gap:20px;margin:0 0 16px;padding:0;list-style:none;display:flex}ol.steps li{color:var(--text-muted);font-size:13px}ol.steps li:before{counter-increment:step;content:counter(step);text-align:center;background:var(--surface-2);border-radius:50%;width:20px;height:20px;margin-right:6px;font-size:12px;line-height:20px;display:inline-block}ol.steps li.active{color:var(--text);font-weight:600}ol.steps li.active:before{background:var(--accent);color:#fff}ol.steps li.done:before{background:var(--ok);color:#fff;content:"✓"}details.card>summary{cursor:pointer;font-weight:600}.spinner{border:2px solid var(--border);border-top-color:var(--accent);vertical-align:middle;border-radius:50%;width:10px;height:10px;margin-right:4px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}label.btn input[type=file]{display:none}.editor{background:var(--bg);flex-direction:column;height:calc(100vh - 48px);min-height:480px;display:flex}.editor-toolbar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 12px;display:flex}.editor-toolbar .sep{background:var(--border);width:1px;height:22px;margin:0 4px}.editor-toolbar .spacer{flex:1}.tbtn{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);cursor:pointer;align-items:center;gap:6px;padding:5px 9px;font-size:13px;display:inline-flex}.tbtn:hover:not(:disabled){background:var(--surface-2)}.tbtn.active,.tbtn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.tbtn:disabled{opacity:.45;cursor:not-allowed}kbd{font-family:var(--mono);border:1px solid var(--border);color:#333;background:#fafafa;border-bottom-width:2px;border-radius:3px;padding:1px 4px;font-size:10px}.tbtn.active kbd,.tbtn.primary kbd{color:#fff;background:#fff3;border-color:#fff6}label.inline{align-items:center;gap:6px;display:inline-flex}.editor-banner{color:#6b4d00;background:#fff7e0;border-bottom:1px solid #f0d58a;padding:6px 12px}.editor-banner.danger{color:#9c1f18;background:#fde5e3;border-color:#f2b4af}.editor-body{flex:1;min-height:0;display:flex}.editor-parts{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex:none;width:300px;display:flex;overflow-y:auto}.parts-head{border-bottom:1px solid var(--border);justify-content:space-between;padding:8px 12px;font-weight:600;display:flex}.parts-list{margin:0;padding:4px 0;list-style:none}.parts-list li.part{cursor:pointer;border-left:3px solid #0000;align-items:center;gap:6px;padding:5px 10px;display:flex}.parts-list li.part:hover{background:var(--surface-2)}.parts-list li.part.active{border-left-color:var(--accent);background:#f3ebe2}.parts-list .swatch{border:1px solid #0003;border-radius:3px;flex:none;width:12px;height:12px}.parts-list .pname{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.parts-list .px{text-align:right;width:44px}.parts-list .eye{cursor:pointer;color:#555;background:0 0;border:none;padding:0 2px}.parts-list .eye.off{color:#bbb}kbd.num{margin-right:2px}.parts-add{border-top:1px solid var(--border);flex-wrap:wrap;gap:6px;padding:8px 12px;display:flex}.part-detail{border-top:1px solid var(--border);padding:10px 12px}.part-detail .rename{background:0 0;border:1px solid #0000;border-radius:4px;width:100%;padding:4px 6px;font-weight:600}.part-detail .rename:hover,.part-detail .rename:focus{border-color:var(--border);background:#fff}.part-detail .hint{color:var(--text-muted);margin:6px 0;font-size:12px}.view-toggles{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:auto;padding:10px 12px;display:flex}.editor-canvas-wrap{flex:1;min-width:0;position:relative;overflow:hidden}.editor-canvas{touch-action:none;cursor:crosshair;width:100%;height:100%;display:block}.editor-canvas.tool-pan{cursor:grab}.editor-canvas.tool-brush,.editor-canvas.tool-eraser{cursor:none}.editor-loading{background:#f6f5f2cc;justify-content:center;align-items:center;font-size:15px;display:flex;position:absolute;inset:0}.editor-status{background:var(--surface);border-top:1px solid var(--border);align-items:center;gap:12px;padding:4px 12px;font-size:12px;display:flex}.editor-status .spacer{flex:1}.badge{background:var(--surface-2);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;display:inline-flex}.badge.ok{color:#1f6b25;background:#e2f3e4}.badge.warn{color:#8a5a00;background:#fff1d6}.badge.danger{color:#9c1f18;background:#fde5e3}.badge.muted{color:var(--text-muted)}.samstate{align-items:center;gap:6px;display:inline-flex}.help-pop,.history-pop{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);z-index:5;width:460px;max-height:calc(100% - 24px);padding:12px 14px;position:absolute;top:12px;right:12px;overflow:auto;box-shadow:0 8px 24px #00000026}.help-pop table{border-collapse:collapse;margin-top:8px}.help-pop td{vertical-align:top;padding:3px 8px 3px 0;font-size:13px}.history-pop ul{margin:8px 0 0;padding:0;list-style:none}.history-pop li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:4px 0;font-size:12px;display:flex}.editor-toolbar{flex-wrap:nowrap;overflow-x:auto}.editor-context{background:var(--surface-2);border-bottom:1px solid var(--border);align-items:center;gap:8px;min-height:36px;padding:4px 12px;font-size:13px;display:flex}.swatch-inline{vertical-align:middle;border:1px solid #0003;border-radius:2px;width:10px;height:10px;display:inline-block}.editor-canvas.tool-path{cursor:crosshair}.parts-list .swatch.path-swatch{border-radius:2px;height:4px}.parts-list span.eye{cursor:default;width:14px;display:inline-block}dl.border-stats{grid-template-columns:auto 1fr;gap:2px 10px;margin:6px 0 8px;font-size:12px;display:grid}dl.border-stats dt{color:var(--text-muted)}dl.border-stats dd{font-family:var(--mono);margin:0}.progress{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;height:10px;overflow:hidden}.progress .bar{background:var(--accent);height:100%;transition:width .4s}.qa-row{flex-wrap:wrap;align-items:stretch;gap:24px;margin-top:12px;display:flex}.qa-big{border-radius:var(--radius);min-width:260px;padding:14px 18px}.qa-big.ok{color:#1f6b25;background:#e2f3e4}.qa-big.fail{color:#9c1f18;background:#fde5e3}.qa-num{font-size:34px;font-weight:700;line-height:1}.qa-label{margin-top:6px;font-size:12px}.qa-side{flex-direction:column;justify-content:center;gap:4px;font-size:13px;display:flex}.sheets{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}figure.sheet{cursor:zoom-in;margin:0}figure.sheet img{border:1px solid var(--border);border-radius:var(--radius);background:#fff;width:100%}figure.sheet figcaption{color:var(--text-muted);margin-top:4px;font-size:12px}.lightbox{z-index:50;cursor:zoom-out;background:#000000d9;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.lightbox img{max-width:100%;max-height:100%}.preview-banner{color:#fff;border-radius:var(--radius);background:#b3202c;margin-bottom:14px;padding:8px 14px;font-weight:600}.legend{color:var(--text-muted);flex-wrap:wrap;gap:6px 14px;font-size:12px;display:flex}.st:before{content:"";background:var(--dot,#999);border-radius:50%;width:9px;height:9px;margin-right:6px;display:inline-block}.st-photo{--dot:#2f7a4e}.st-draft{--dot:#b6791b}.st-synth{--dot:#3b6ea8}.st-need{--dot:#8a837e}.preview-main{grid-template-columns:minmax(320px,1fr) minmax(300px,440px);align-items:start;gap:16px;display:grid}@media (width<=900px){.preview-main{grid-template-columns:1fr}}.stagebox{flex-direction:column;gap:10px;padding:12px;display:flex}.stage{aspect-ratio:1;background:#fff;border-radius:4px;width:100%;position:relative;overflow:hidden}.stage img{width:100%;height:100%;transition:transform .45s cubic-bezier(.2,.7,.2,1),opacity .2s;display:block;position:absolute;inset:0}.stage.exploded img{transform:translate(calc(var(--i) * 4.5%), calc(var(--i) * -4.5%)) scale(.82)}.stage img.photo-under{opacity:.35}.stagebar{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:12.5px;display:flex}.stagebar label{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.build{font-family:var(--mono);color:var(--text);background:var(--surface-2);border-radius:4px;padding:3px 8px;font-size:12px}.controls{flex-direction:column;gap:10px;display:flex}.group{padding:10px 12px 12px}.group h2{align-items:baseline;gap:10px;margin-bottom:2px;display:flex}.group h2 .cur{text-transform:none;letter-spacing:0;color:var(--text-muted);font-size:12px;font-weight:500}.group .hint{color:var(--text-muted);margin:0 0 8px;font-size:12px}.chips{flex-wrap:wrap;gap:6px;display:flex}.pchip{border:1px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:4px 10px 4px 6px;font-size:12.5px;line-height:1.2;display:inline-flex}.pchip:hover{border-color:#999}.pchip[aria-pressed=true]{color:#fff;background:#b3202c;border-color:#b3202c}.pchip .sw,.pchip .sw2{border:1px solid #00000040;border-radius:50%;flex:none;width:16px;height:16px}.pchip .code{font-family:var(--mono);opacity:.75;font-size:11px}.pchip.need{opacity:.55;cursor:not-allowed;border-style:dashed}.pchip.has-thumb{padding:2px 10px 2px 2px}.pchip .pthumb{object-fit:contain;outline-offset:-1px;border-radius:8px;outline:1px solid #00000024;flex:none;width:26px;height:26px;display:block}.pchip .pthumb.checker{background-position:0 0,0 4px,4px -4px,-4px 0;background-size:8px 8px}.pchip.need.has-thumb{opacity:1;background:#f7f6f3;border-color:#e8e5de}.pchip.need.has-thumb>span{opacity:.55}.pchip.need.has-thumb>.code{opacity:.41}.chips.with-thumbs .pchip{min-height:32px}ul.chips{margin:0;padding:0;list-style:none}.pchip.static{cursor:default;background:var(--surface)}.pchip.static:hover{border-color:var(--border)}.preview .thumb-note{margin:0 2px}.preview .group h2{flex-wrap:wrap}.preview .group h2 .tcount{text-transform:none;letter-spacing:0;color:var(--text-muted);white-space:nowrap;margin-left:auto;font-size:11.5px;font-weight:400}.seg{border:1px solid var(--border);border-radius:999px;display:inline-flex;overflow:hidden}.seg button{background:var(--surface-2);color:var(--text);font:inherit;cursor:pointer;border:0;padding:5px 12px;font-size:12.5px}.seg button+button{border-left:1px solid var(--border)}.seg button[aria-pressed=true]{color:#fff;background:#b3202c}.seg button:disabled{opacity:.5;cursor:not-allowed}ul.checklist{margin:8px 0 0;padding:0;list-style:none}ul.checklist li{border-bottom:1px solid var(--border);padding:6px 0}ul.checklist label{cursor:pointer;align-items:flex-start;gap:10px;display:flex}ul.checklist input{margin-top:3px}
