*,:before,:after{box-sizing:border-box}*{margin:0}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}img,svg,video{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0}a{color:inherit;text-decoration:none}:root{--ink:#16191a;--ink-2:#4a5157;--dim:#838b91;--line:#e2e5e3;--line-soft:#eef0ee;--surface:#fff;--canvas:#f4f6f4;--nav:#f7f8f6;--nav-ink:#4a5157;--acid:#d7ff55;--purple:#6c54d9;--danger:#c8483f;--warn:#b5811f;--ok:#4b8a2b;--mono:var(--font-geist-mono), ui-monospace, monospace;--radius:8px}html[data-theme=dark]{--ink:#eef4ec;--ink-2:#c4cdbf;--dim:#8d998f;--line:#29332c;--line-soft:#202922;--surface:#111712;--canvas:#0b100d;--nav:#0f1511;--nav-ink:#b9c4ba;--acid:#d7ff55;--purple:#9a86ff;--danger:#ff7d72;--warn:#f2bd55;--ok:#8fd06b}html,body{height:100%;overflow:hidden}body{color:var(--ink);background:var(--canvas);font-family:var(--font-geist-sans), "PingFang SC", sans-serif;-webkit-font-smoothing:antialiased;font-size:13px}:focus-visible{outline:2px solid var(--purple);outline-offset:1px}.mono{font-family:var(--mono);font-size:11px}.dim{color:var(--dim)}.btn{white-space:nowrap;border-radius:6px;align-items:center;gap:6px;height:30px;padding:0 11px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn b{font-family:var(--mono);background:#14190a24;border-radius:99px;padding:1px 6px;font-size:10px}.btn-primary{background:var(--acid);color:#1a1e16;box-shadow:inset 0 0 0 1px #28340829}.btn-primary:hover:not(:disabled){background:#cbf44d}.btn-ghost{background:var(--surface);border:1px solid var(--line);color:var(--ink-2)}.btn-ghost:hover:not(:disabled){background:#fafbfa;border-color:#cdd2ce}.btn-ghost.danger{color:var(--danger)}.btn-ghost.waiting{background:var(--purple);border-color:var(--purple);color:#fff}.btn.wide{justify-content:center;width:100%}.btn-mini{height:32px;padding:0 10px;font-size:11px}.icon-btn{width:26px;height:26px;color:var(--dim);border-radius:5px;place-items:center;display:grid}.icon-btn:hover{background:var(--line-soft);color:var(--ink)}.icon-btn.danger:hover{color:var(--danger);background:#fdeeec}.link{color:var(--ink);align-items:center;gap:6px;font-weight:550;display:inline-flex}.link:hover{color:var(--purple)}.link svg{color:var(--dim)}.tag{font-family:var(--mono);background:var(--line-soft);color:var(--ink-2);border-radius:99px;padding:2px 7px;font-size:10px}.toast{z-index:100;background:var(--nav);color:#fff;border-radius:6px;align-items:center;gap:8px;padding:9px 14px;font-size:12px;animation:.2s toast-in;display:flex;position:fixed;top:14px;left:50%;transform:translate(-50%);box-shadow:0 10px 26px #00000038}.toast svg{color:var(--acid)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-8px)}}.shell{background:var(--canvas);grid-template-columns:208px minmax(0,1fr);height:100dvh;max-height:100dvh;display:grid;overflow:hidden}.shell-nav{background:var(--nav);color:var(--nav-ink);border-right:1px solid var(--line);grid-template-rows:52px minmax(0,1fr) auto;min-height:0;display:grid}.shell-brand{color:var(--ink);letter-spacing:-.4px;border-bottom:1px solid var(--line);align-items:center;gap:9px;padding:0 14px;font-size:15px;font-weight:700;display:flex}.shell-brand>span:last-child>span{color:var(--acid)}.brand-mark{background:var(--acid);color:#1a1e16;border-radius:7px;place-items:center;width:26px;height:26px;display:grid}.shell-nav nav{align-content:start;gap:2px;padding:10px 8px;display:grid}.nav-section{color:var(--dim);letter-spacing:1.1px;text-transform:uppercase;padding:12px 10px 5px;font-size:9px;font-weight:700;display:block}.shell-nav nav>.nav-section:first-child{padding-top:3px}.project-switch{border-bottom:1px solid #ffffff12;padding:10px 12px}.project-switch label{color:#626b66;letter-spacing:1.1px;margin-bottom:5px;font-size:9px;font-weight:700;display:block}.project-switch select{color:#fff;background:#101713;border-color:#ffffff1a;width:100%;height:32px}.project-switch select:disabled{color:#6f7873;cursor:not-allowed}.nav-item{height:34px;color:var(--nav-ink);text-align:left;border-radius:6px;align-items:center;gap:10px;padding:0 10px;font-size:13px;display:flex}a.nav-item{cursor:pointer}.nav-item span{flex:1}.nav-item b{font-family:var(--mono);background:#e8ebe6;border-radius:99px;padding:1px 6px;font-size:10px}.nav-item:hover:not(:disabled){color:var(--ink);background:#eef2e9}.nav-item.active{color:#425600;background:#e9f7c9}.nav-item:disabled{opacity:.32;cursor:not-allowed}.shell-nav-foot{border-top:1px solid var(--line);padding:12px 14px}.theme-toggle{border:1px solid var(--line);background:var(--surface);width:100%;height:30px;color:var(--ink-2);border-radius:7px;justify-content:center;align-items:center;gap:7px;margin-bottom:10px;font-size:12px;font-weight:650;display:flex}.theme-toggle:hover{color:var(--ink);background:#f4fbdf;border-color:#b8c29a}.shell-nav-foot p{color:var(--ink);font-size:11px;font-weight:600}.shell-nav-foot small{color:var(--dim);margin-top:3px;font-size:10px;line-height:1.5;display:block}.shell-main{grid-template-rows:52px minmax(0,1fr) 26px;min-width:0;min-height:0;display:grid}.shell-head{background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:0 16px;display:flex}.crumbs{color:var(--dim);gap:6px;font-size:10px;display:flex}.crumbs span:not(:last-child):after{content:" /"}.shell-title h1{letter-spacing:-.2px;font-size:15px;font-weight:650}.shell-actions{align-items:center;gap:7px;display:flex}.head-project-switch{color:var(--dim);align-items:center;gap:7px;font-size:11px;font-weight:600;display:flex}.head-project-switch select{border:1px solid var(--line);background:var(--surface);min-width:168px;height:30px;color:var(--ink);border-radius:6px;outline:none;padding:0 9px}.head-project-switch select:focus{border-color:#b8c29a}.shell-body{min-width:0;min-height:0;overflow:hidden}.shell-enhance .shell-body{overflow:hidden auto}.shell.prototype-shell .shell-body{padding:0}.prototype-frame-wrap{width:100%;height:100%;min-height:0}.prototype-frame{background:#f4f6f9;border:0;width:100%;height:100%;display:block}.shell-status{background:var(--surface);border-top:1px solid var(--line);color:var(--dim);justify-content:space-between;align-items:center;gap:16px;padding:0 14px;font-size:10px;display:flex}.status-right{align-items:center;gap:14px;display:flex}.status-right em{font-style:normal;font-weight:600}.status-right .warn{color:var(--warn)}.status-right .ok{color:var(--ok)}.status-right a{color:var(--purple);font-weight:600}.module{align-content:start;gap:14px;min-width:0;height:100%;min-height:0;padding:16px;display:grid;overflow:auto}.module.narrow{max-width:720px}.module.listing-module{width:100%}.module.enhance-module{overscroll-behavior:contain;align-content:stretch;height:auto;min-height:100%;overflow:visible}.stat-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);gap:5px;padding:12px 14px;display:grid}.stat span{color:var(--dim);font-size:11px}.stat b{letter-spacing:-.6px;font-size:22px;font-weight:640}.stage-overview{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.stage-overview-card{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(#fff,#f8faf5);gap:5px;min-width:0;padding:12px;display:grid}.stage-overview-card span{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:650;overflow:hidden}.stage-overview-card b{letter-spacing:-.7px;font-size:24px;line-height:1}.stage-overview-card small{color:var(--dim);font-size:11px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.panel-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:12px;padding:11px 14px;display:flex}.panel-head h2{font-size:13px;font-weight:650}.panel-head h2 em{font-style:normal;font-family:var(--mono);color:var(--dim);margin-left:6px;font-size:10px}.panel-actions{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.toolbar{gap:7px;display:flex}.grid{border-collapse:collapse;width:100%;font-size:12px}.grid th{text-align:left;letter-spacing:.4px;text-transform:uppercase;color:var(--dim);border-bottom:1px solid var(--line-soft);white-space:nowrap;padding:8px 12px;font-size:10px;font-weight:600}.grid td{border-bottom:1px solid var(--line-soft);vertical-align:middle;padding:7px 12px}.grid tr:last-child td{border-bottom:0}.grid tbody tr:hover{background:#fafbfa}.grid tbody tr[tabindex]{cursor:pointer}.grid tbody tr[tabindex]:focus-visible{outline:2px solid var(--acid);outline-offset:-2px}.grid tbody tr.current{background:#d7ff551f}.grid tbody tr.dragging{opacity:.45}.grid tbody tr.picked{background:#6c54d90f}.grid .drag-col{text-align:center;width:32px;padding-right:4px}.drag-handle{width:24px;height:24px;color:var(--dim);cursor:grab;border-radius:6px;place-items:center;display:inline-grid}.drag-handle:hover{color:var(--ink);background:#eef2e9}.drag-handle:active{cursor:grabbing}.grid .num{text-align:right}.grid .act{text-align:right;width:40px}.stage-steps{flex-wrap:wrap;gap:6px;display:flex}.stage-pill{border:1px solid var(--line);height:24px;color:var(--dim);white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:4px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.stage-pill.current{color:#526b00;background:#f4fbdf;border-color:#d5e99d}.stage-pill.done{color:var(--ok);background:#eef8ea;border-color:#d7e6cf}.stage-pill.locked{color:#a5abb0;background:#f7f8f7}.status-pill{border:1px solid var(--line);height:24px;color:var(--dim);white-space:nowrap;background:#f7f8f7;border-radius:999px;align-items:center;padding:0 9px;font-size:11px;font-weight:700;display:inline-flex}.status-pill.current{color:#526b00;background:#f4fbdf;border-color:#d5e99d}.status-pill.done{color:var(--ok);background:#eef8ea;border-color:#d7e6cf}.kind-pill{border:1px solid var(--line);height:24px;color:var(--dim);white-space:nowrap;background:#f7f8f7;border-radius:999px;align-items:center;padding:0 9px;font-size:11px;font-weight:700;display:inline-flex}.kind-pill.game{color:#4a3b8f;background:#f2effb;border-color:#d8d3ef}.grid .pick{width:34px}.grid .thumb{width:56px}.grid input[type=checkbox]{accent-color:var(--purple);cursor:pointer}.checker{background-color:#eef0ec;background-image:linear-gradient(45deg,#e2e5e0 25%,#0000 25%),linear-gradient(-45deg,#e2e5e0 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#e2e5e0 75%),linear-gradient(-45deg,#0000 75%,#e2e5e0 75%);background-position:0 0,0 5px,5px -5px,-5px 0;background-size:10px 10px;border-radius:4px;place-items:center;width:44px;height:30px;display:grid;overflow:hidden}.checker img{object-fit:contain;max-width:100%;max-height:100%}.checker.sm{width:34px;height:26px}.batch-bar{border-bottom:1px solid var(--line-soft);color:var(--purple);background:#f6f4fe;align-items:center;gap:10px;padding:8px 14px;font-size:12px;font-weight:600;display:flex}.batch-bar .btn{height:26px}.empty{text-align:center;color:var(--dim);justify-items:center;gap:8px;padding:44px 30px;display:grid}.empty.tall{align-content:center;min-height:60vh}.empty svg{color:var(--dim)}.empty h3{color:var(--ink);margin-top:4px;font-size:14px;font-weight:650}.empty p{max-width:380px;font-size:12px;line-height:1.7}.empty .btn{margin-top:8px}.delivery-panel{gap:16px;padding:18px;display:grid}.enhance-module .delivery-panel{min-width:0;overflow:visible}.listing-module .delivery-panel{width:100%;min-height:auto}.delivery-hero{align-items:flex-start;gap:14px;display:flex}.delivery-icon{color:#526b00;background:#edf8cf;border:1px solid #d5e99d;border-radius:12px;flex:none;place-items:center;width:44px;height:44px;display:grid}.delivery-hero h2{margin-bottom:6px;font-size:18px;font-weight:750;line-height:1.25}.delivery-hero p,.delivery-card p{color:var(--dim);font-size:12px;line-height:1.7}.delivery-card,.delivery-note,.listing-progress{border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px}.delivery-card{justify-items:start;gap:8px;display:grid}.delivery-card b,.listing-progress b{font-size:14px;font-weight:750}.delivery-note.warn{color:#8a5a00;background:#fff8e8;border-color:#f0d89a;font-size:12px;line-height:1.7}.listing-progress{background:#f7f8f7;justify-content:space-between;align-items:center;gap:12px;display:flex}.listing-progress.done{color:var(--ok);background:#eef8ea;border-color:#d7e6cf}.listing-progress span{color:var(--dim);font-size:12px}.listing-checklist{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.listing-item{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;min-height:76px;padding:14px;display:grid}.listing-item:hover{background:#fafbfa}.listing-item.checked{background:#f5fbf2;border-color:#d7e6cf}.listing-item>input{width:16px;height:16px;accent-color:var(--acid);cursor:pointer}.listing-item span{gap:2px;display:grid}.listing-item b{font-size:13px;font-weight:700}.listing-item small{color:var(--dim);font-size:11px;line-height:1.5}.listing-value-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:9px;display:grid}.listing-value-input{border:1px solid var(--line);min-width:0;height:32px;color:var(--ink);font:inherit;background:#fff;border-radius:8px;outline:none;padding:0 10px;font-size:12px}.listing-value-input:focus{border-color:#b8c29a;box-shadow:0 0 0 2px #d7ff553d}.listing-value-row .btn{white-space:nowrap;height:32px}.enhance-summary{grid-template-columns:repeat(4,minmax(0,1fr)) auto;align-items:stretch;gap:10px;display:grid}.enhance-summary>span{border:1px solid var(--line);color:var(--dim);background:#fff;border-radius:12px;gap:3px;padding:10px 12px;font-size:11px;display:grid}.enhance-summary b{color:var(--ink);font-size:20px;line-height:1}.enhance-summary .ok b{color:var(--ok)}.enhance-summary .warn b{color:var(--warn)}.enhance-summary .error b{color:var(--danger)}.enhance-summary .btn{align-self:stretch;height:auto;min-height:48px}.enhance-batches{gap:12px;display:grid}.enhance-batch{border:1px solid var(--line);background:#fff;border-radius:14px;scroll-margin-top:14px;transition:border-color .18s,box-shadow .18s;overflow:hidden}.enhance-batch.active{border-color:#b8cf61;box-shadow:0 0 0 3px #d7ff5547}.enhance-batch-head{border-bottom:1px solid var(--line-soft);background:#fbfcfa;justify-content:space-between;align-items:flex-start;gap:12px;padding:13px 14px;display:flex}.enhance-batch-head .icon-btn{background:#fff;border:1px solid #0000;width:32px;height:32px}.enhance-batch-head .icon-btn:hover{border-color:#efc3bf}.enhance-batch-head>div:first-child{gap:3px;display:grid}.enhance-batch-actions{flex:none;align-items:center;gap:8px;display:flex}.enhance-batch-head b{font-size:13px;font-weight:750}.enhance-batch-head small{color:var(--dim);font-size:11px;line-height:1.6}.matrix-upload-label{min-height:180px;color:var(--ink-2);cursor:pointer;text-align:center;background:#f8faf5;border:1px dashed #cbd2c4;border-radius:10px;align-content:center;place-items:center;gap:5px;padding:10px 8px;display:grid}.matrix-upload-label:hover{background:#f4fbdf;border-color:#aec06f}.matrix-upload-label svg{color:#789000}.matrix-upload-label b{font-size:12px;line-height:1.2}.matrix-upload-label span{color:var(--dim);font-size:10px}.enhance-matrix{overscroll-behavior-x:contain;grid-template-columns:92px repeat(10,136px) 112px;gap:8px;width:100%;min-width:0;padding:12px 14px 14px;display:grid;overflow:auto hidden}.matrix-export-button,.matrix-side-spacer{border-radius:10px;min-height:180px}.matrix-side-spacer{border:1px solid #0000}.matrix-export-button{color:#425600;cursor:pointer;text-align:center;background:#fbfff0;border:1px solid #d9decf;align-content:center;place-items:center;gap:5px;padding:10px 8px;display:grid}.matrix-export-button:hover:not(:disabled){background:#f4fbdf;border-color:#aec06f}.matrix-export-button:disabled{opacity:.42;cursor:not-allowed;color:var(--dim);background:#f8f9f6}.matrix-export-button b{font-size:12px;line-height:1.25}.matrix-export-button span{color:var(--dim);font-size:10px}.matrix-original-export-button{color:var(--purple);background:#f7f4ff;border-color:#d8d1f3}.matrix-original-export-button:hover:not(:disabled){background:#f2efff;border-color:#c9c2ec}.matrix-label{color:var(--ink-2);writing-mode:vertical-rl;letter-spacing:2px;background:#f7f8f7;border-radius:10px;place-items:center;font-size:12px;font-weight:750;display:grid}.matrix-thumb{border:1px solid var(--line);background-color:#0000;background-image:linear-gradient(45deg,#eef0ec 25%,#0000 25%),linear-gradient(-45deg,#eef0ec 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#eef0ec 75%),linear-gradient(-45deg,#0000 75%,#eef0ec 75%);background-position:0 0,0 5px,5px -5px,-5px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:10px 10px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;border-radius:10px;place-items:center;height:180px;padding:24px 8px 8px;display:grid;position:relative;overflow:hidden}.matrix-thumb.ok{border-color:#d7e6cf}.matrix-thumb.warn{border-color:#f0d89a}.matrix-thumb.error{border-color:#efc3bf}.matrix-thumb.missing-enhanced{background-color:#fff1ee;border:2px solid #e35b43;box-shadow:inset 0 0 0 2px #ffffffd1,0 0 0 3px #e35b4324}.matrix-thumb.missing-enhanced:after{content:"缺高清";z-index:2;color:#fff;background:#d94431;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:800;position:absolute;top:8px;right:8px;box-shadow:0 4px 12px #d9443142}.matrix-thumb.rejected{background-color:#fff3f2;border-color:#d95c52}.matrix-thumb.rejected:after{content:"已标记";color:#fff;background:#c8483feb;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:750;position:absolute;bottom:8px;right:8px}.matrix-thumb small{z-index:1;font:10px var(--mono);color:var(--dim);background:#ffffffdb;border-radius:999px;padding:1px 5px;position:absolute;top:6px;left:6px}.matrix-copy,.matrix-reject,.matrix-replace{z-index:2;border:1px solid var(--line);width:24px;height:24px;color:var(--ink-2);background:#ffffffeb;border-radius:999px;place-items:center;display:grid;position:absolute;box-shadow:0 4px 12px #10120e1f}.matrix-copy{top:6px;left:6px}.matrix-reject{top:6px;right:6px}.matrix-replace{cursor:pointer;bottom:6px;left:6px}.matrix-copy:hover{color:var(--purple);border-color:#c9c2ec}.matrix-reject:hover,.matrix-thumb.rejected .matrix-reject{color:var(--danger);background:#fff7f6;border-color:#efc3bf}.matrix-replace:hover{color:var(--purple);border-color:#c9c2ec}.matrix-thumb img{object-fit:contain;width:100%;height:100%}.matrix-upload-slot{width:100%;height:100%;color:var(--dim);cursor:pointer;border-radius:8px;align-content:center;place-items:center;gap:6px;display:grid}.matrix-thumb.missing-enhanced .matrix-upload-slot{color:#b83425;background:#ffffff8f;border:1px dashed #d944319e}.matrix-thumb.missing-enhanced .matrix-upload-slot svg{color:#d94431;transform:scale(1.18)}.matrix-thumb.missing-enhanced .matrix-upload-slot em{font-size:12px;font-weight:800}.matrix-upload-slot:hover{color:#526b00;background:#d7ff552e}.matrix-upload-slot em{font-size:11px;font-style:normal;font-weight:650}.matrix-image-button{cursor:zoom-in;width:100%;min-width:0;height:100%;display:block}.matrix-image-button:hover img{transform:scale(1.02)}.matrix-image-button img{transition:transform .15s}.matrix-thumb em{color:var(--dim);font-size:10px;font-style:normal}.image-preview-overlay{z-index:120;background:#0f1210b8;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.image-preview-card{grid-template-rows:minmax(0,1fr) auto;gap:10px;width:min(92vw,980px);height:min(86vh,760px);display:grid}.image-preview-card img{object-fit:contain;background-color:#0000;background-image:linear-gradient(45deg,#eef0ec 25%,#0000 25%),linear-gradient(-45deg,#eef0ec 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#eef0ec 75%),linear-gradient(-45deg,#0000 75%,#eef0ec 75%);background-position:0 0,0 7px,7px -7px,-7px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:14px 14px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;border-radius:14px;width:100%;height:100%;box-shadow:0 24px 80px #00000059}.image-preview-card figcaption{max-width:min(86vw,720px);color:var(--ink);background:#ffffffeb;border-radius:999px;justify-self:center;align-items:center;gap:10px;padding:8px 12px;font-size:12px;display:flex}.image-preview-card figcaption b{text-overflow:ellipsis;white-space:nowrap;max-width:52vw;overflow:hidden}.image-preview-card figcaption span{color:var(--dim);font-family:var(--mono);font-size:11px}.image-preview-close{z-index:121;width:36px;height:36px;color:var(--ink);background:#fffffff0;border-radius:999px;place-items:center;display:grid;position:fixed;top:22px;right:22px;box-shadow:0 8px 24px #00000038}.image-preview-close:hover{color:var(--danger)}.workbench{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) 250px;height:100%;min-height:0;display:grid;overflow:hidden}.source-pane{border-right:1px solid var(--line);grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid}.sheet-rail{background:var(--surface);border-bottom:1px solid var(--line);align-items:stretch;gap:8px;padding:8px 10px;display:flex;overflow:auto hidden}.sheet-thumb{flex:none;position:relative}.sheet-open{border:1px solid var(--line);background:var(--surface);border-radius:6px;justify-items:center;gap:3px;width:62px;padding:3px;display:grid}.sheet-thumb.active .sheet-open{border-color:var(--purple);box-shadow:0 0 0 2px #6c54d929}.sheet-open .checker{border-radius:4px;place-items:center;width:100%;height:46px;display:grid;overflow:hidden}.sheet-open .checker img{object-fit:contain;max-width:100%;max-height:100%}.sheet-open em{color:var(--dim);font-size:9px;font-style:normal}.sheet-count{background:var(--purple);color:#fff;min-width:15px;height:15px;font-family:var(--mono);border-radius:99px;place-items:center;padding:0 4px;font-size:9px;display:grid;position:absolute;top:-4px;left:-4px}.sheet-remove{background:var(--surface);border:1px solid var(--line);width:16px;height:16px;color:var(--dim);opacity:0;border-radius:99px;place-items:center;transition:opacity .12s;display:grid;position:absolute;top:-4px;right:-4px}.sheet-thumb:hover .sheet-remove,.sheet-remove:focus-visible{opacity:1}.sheet-remove:hover{color:var(--danger);border-color:var(--danger)}.sheet-add{border:1px dashed var(--line);width:62px;color:var(--dim);border-radius:6px;flex:none;align-content:center;place-items:center;gap:2px;font-size:10px;display:grid}.sheet-add:hover{border-color:var(--purple);color:var(--purple)}.board{background:var(--canvas);border-right:1px solid var(--line);grid-template-rows:40px minmax(0,1fr);min-width:0;min-height:0;display:grid}.board-head{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:0 12px;display:flex}.board-head h2{font-size:12px;font-weight:650}.seg{border:1px solid var(--line);border-radius:6px;margin-left:auto;display:flex;overflow:hidden}.seg button{color:var(--dim);background:var(--surface);padding:3px 9px;font-size:11px}.seg button.on{background:var(--nav);color:#fff}.board-empty{text-align:center;color:var(--dim);align-content:center;place-items:center;gap:8px;font-size:11px;line-height:1.7;display:grid}.board-grid{grid-template-columns:repeat(auto-fill,minmax(124px,1fr));align-content:start;gap:10px;padding:12px;display:grid;overflow:auto}.piece{background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:7px;gap:6px;padding:7px;transition:border-color .12s,box-shadow .12s;display:grid;position:relative}.piece:hover{border-color:#cdd2ce}.piece.active{border-color:var(--purple);box-shadow:0 0 0 2px #6c54d924}.piece-art{border-radius:5px;place-items:center;height:92px;display:grid;overflow:hidden}.piece-art img{object-fit:contain;max-width:100%;max-height:100%}.piece-meta{gap:1px;min-width:0;display:grid}.piece-meta b{text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.piece-meta small{color:var(--dim);font-size:9px}.piece-sheet{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.piece-remove{width:20px;height:20px;color:var(--dim);opacity:0;background:#ffffffe6;border-radius:5px;place-items:center;transition:opacity .12s;display:grid;position:absolute;top:5px;right:5px}.piece:hover .piece-remove,.piece-remove:focus-visible{opacity:1}.piece-remove:hover{color:var(--danger);background:#fdeeec}.inspector{background:var(--surface);border-left:1px solid var(--line);grid-template-rows:40px minmax(0,1fr) auto;min-height:0;display:grid}.inspector-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;padding:0 12px;display:flex}.inspector-head h2{font-size:12px;font-weight:650}.inspector-list{align-content:start;gap:4px;padding:8px;display:grid;overflow:auto}.inspector-empty{color:var(--dim);text-align:center;padding:22px 14px;font-size:11px;line-height:1.7}.chip{text-align:left;border:1px solid #0000;border-radius:6px;align-items:center;gap:9px;padding:6px;display:flex}.chip:hover{background:#fafbfa}.chip.active{background:#f6f4fe;border-color:#b6a8f2}.chip-text{flex:1;gap:2px;min-width:0;display:grid}.chip-text b{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.chip-text small{color:var(--dim);font-size:10px}.chip em{color:var(--dim);font-style:normal}.inspector-props{border-top:1px solid var(--line);padding-bottom:10px}.prop{color:var(--dim);gap:4px;padding:8px 12px 0;font-size:10px;display:grid}.prop-grid{grid-template-columns:repeat(4,1fr);gap:6px;padding:10px 12px;display:grid}.prop-grid>div{text-align:center;background:var(--canvas);border-radius:5px;gap:2px;padding:5px 2px;display:grid}.prop-grid span{color:var(--dim);font-size:9px}.prop-grid b{font-size:11px;font-weight:600}.inspector-props .btn{width:calc(100% - 24px);margin:0 12px}.canvas-area{grid-template-rows:52px minmax(0,1fr) 31px;min-width:0;min-height:0;display:grid}.canvas-toolbar{scrollbar-width:none;background:#f8f9f5;border-bottom:1px solid #d7dad3;justify-content:space-between;align-items:center;gap:10px;padding:0 12px;display:flex;overflow:auto hidden}.canvas-toolbar::-webkit-scrollbar{display:none}.canvas-toolbar>*{flex:none}.segmented{background:#fff;border:1px solid #dcdfd8;border-radius:8px;padding:3px;display:flex}.segmented button{color:#777d75;white-space:nowrap;border-radius:5px;align-items:center;gap:5px;padding:6px 9px;font-size:11px;display:flex}.segmented button.active{color:#fff;background:#222621}.trim-toggle{color:#6c726a;cursor:pointer;white-space:nowrap;align-items:center;gap:7px;font-size:11px;display:flex}.trim-toggle input{accent-color:var(--purple);cursor:pointer;width:13px;height:13px}.zoom-control{background:#fff;border:1px solid #dcdfd8;border-radius:8px;align-items:center;gap:2px;padding:3px;display:flex}.zoom-control button{color:#686e66;border-radius:5px;place-items:center;width:29px;height:27px;display:grid}.zoom-control button:hover{background:#eff1eb}.zoom-control span{font:10px var(--font-geist-mono);text-align:center;color:#676c65;width:42px}.zoom-control button:last-child{border-left:1px solid #e5e7e1;border-radius:0;margin-left:2px}.canvas-viewport{touch-action:none;overscroll-behavior:contain;background-color:#dfe1dc;background-image:linear-gradient(45deg,#d9dbd6 25%,#0000 25%),linear-gradient(-45deg,#d9dbd6 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#d9dbd6 75%),linear-gradient(-45deg,#0000 75%,#d9dbd6 75%);background-position:0 0,0 11px,11px -11px,-11px 0;background-size:22px 22px;position:relative;overflow:hidden}.canvas-viewport.select{cursor:crosshair}.canvas-viewport.pan{cursor:grab}.canvas-viewport.panning{cursor:grabbing}.canvas-image-wrap{-webkit-user-select:none;user-select:none;position:absolute;top:0;left:0;box-shadow:0 14px 40px #16191533}.canvas-image-wrap>img{pointer-events:none;width:100%;height:100%}.component-box{cursor:move;background:#d7ff550f;border:1.5px solid #d7ff55d9;padding:0;position:absolute}.component-box:not(.selected):before,.component-box:not(.selected):after,.draft-box:before,.draft-box:after{content:"";background:var(--acid);border:1px solid #263010;width:6px;height:6px;position:absolute}.component-box:not(.selected):before,.draft-box:before{top:-4px;left:-4px}.component-box:not(.selected):after,.draft-box:after{bottom:-4px;right:-4px}.component-box-label{min-width:18px;height:18px;font:9px var(--font-geist-mono);background:#d7ff55e6;border-radius:4px 4px 0 0;place-items:center;display:grid;position:absolute;top:-21px;left:-2px}.component-box.selected{z-index:4;background:#6c54d91c;border-color:#8e74fa}.component-box.selected .component-box-label{color:#fff;background:#8e74fa}.handle{background:#fff;border:1.5px solid #8e74fa;border-radius:2px;width:10px;height:10px;position:absolute}.handle-nw{cursor:nwse-resize;top:-6px;left:-6px}.handle-ne{cursor:nesw-resize;top:-6px;right:-6px}.handle-sw{cursor:nesw-resize;bottom:-6px;left:-6px}.handle-se{cursor:nwse-resize;bottom:-6px;right:-6px}.draft-box{pointer-events:none;border:1.5px solid var(--acid);z-index:10;background:#d7ff5521;position:absolute}.draft-box span{background:var(--acid);font:9px var(--font-geist-mono);white-space:nowrap;padding:4px 6px;position:absolute;top:-22px;left:-1px}.canvas-hint{color:#fff;pointer-events:none;background:#1b1f1bdb;border:1px solid #ffffff1a;border-radius:9px;align-items:center;gap:8px;padding:9px 13px;font-size:11px;display:flex;position:absolute;bottom:23px;left:50%;transform:translate(-50%);box-shadow:0 8px 22px #0000002b}.canvas-hint svg{color:var(--acid)}.canvas-status{color:#92978f;font:9px var(--font-geist-mono);background:#f7f8f4;border-top:1px solid #d7dad3;justify-content:space-between;align-items:center;gap:12px;padding:0 14px;display:flex}.field{border:1px solid var(--line);background:var(--surface);height:28px;color:var(--ink);border-radius:5px;outline:none;min-width:0;padding:0 8px;font-size:12px}.field:focus{border-color:var(--purple)}.field.flush{background:0 0;border-color:#0000;width:100%;padding-left:4px}.field.flush:hover{border-color:var(--line)}.field.flush:focus{border-color:var(--purple);background:var(--surface)}.form{display:grid}.form .row{border-bottom:1px solid var(--line-soft);cursor:pointer;justify-content:space-between;align-items:center;gap:20px;padding:12px 14px;display:flex}.form .row:last-child{border-bottom:0}.form .row.static{cursor:default}.form .row>div{gap:3px;display:grid}.form .row b{font-size:12px;font-weight:600}.form .row small{color:var(--dim);max-width:46ch;font-size:11px;line-height:1.6}.form .row code{font-family:var(--mono);background:var(--line-soft);border-radius:3px;padding:1px 4px;font-size:10px}.form .row input[type=checkbox]{width:15px;height:15px;accent-color:var(--purple);cursor:pointer;flex:none}.form .row .field{flex:none;width:180px}html[data-theme=dark] .btn-ghost,html[data-theme=dark] .head-project-switch select,html[data-theme=dark] .field,html[data-theme=dark] .theme-toggle{border-color:var(--line);color:var(--ink-2);background:#141c17}html[data-theme=dark] .btn-ghost:hover:not(:disabled),html[data-theme=dark] .theme-toggle:hover,html[data-theme=dark] .nav-item:hover:not(:disabled){color:var(--ink);background:#1b251e;border-color:#3a473e}html[data-theme=dark] .nav-item b{color:var(--ink-2);background:#253128}html[data-theme=dark] .nav-item.active{color:#eef4ec;background:#263027}html[data-theme=dark] .btn-primary{color:#eef4ec;background:#303832;box-shadow:inset 0 0 0 1px #465047}html[data-theme=dark] .btn-primary:hover:not(:disabled){background:#3a433c}html[data-theme=dark] .btn b{background:#eef4ec1a}html[data-theme=dark] .brand-mark{color:#151b12}html[data-theme=dark] .stage-overview-card,html[data-theme=dark] .delivery-card,html[data-theme=dark] .delivery-hero,html[data-theme=dark] .listing-progress,html[data-theme=dark] .listing-item,html[data-theme=dark] .enhance-summary,html[data-theme=dark] .enhance-batch,html[data-theme=dark] .enhance-batch-head,html[data-theme=dark] .matrix-thumb,html[data-theme=dark] .extractor-page,html[data-theme=dark] .inspector,html[data-theme=dark] .sheet-tray,html[data-theme=dark] .workbench,html[data-theme=dark] .canvas-status{background:var(--surface);border-color:var(--line)}html[data-theme=dark] .stage-overview-card{background:linear-gradient(#151d17,#111712)}html[data-theme=dark] .delivery-note.warn,html[data-theme=dark] .matrix-thumb.warn{background:#f2bd551a;border-color:#f2bd5552}html[data-theme=dark] .listing-item.checked,html[data-theme=dark] .listing-progress.done,html[data-theme=dark] .matrix-thumb.ok{background:#8fd06b1a;border-color:#8fd06b4d}html[data-theme=dark] .matrix-upload-label,html[data-theme=dark] .matrix-export-button{color:#c8d0c8;background:#171d19;border-color:#313a33}html[data-theme=dark] .matrix-upload-label:hover,html[data-theme=dark] .matrix-export-button:hover:not(:disabled){background:#202822;border-color:#485249}html[data-theme=dark] .matrix-copy,html[data-theme=dark] .matrix-reject,html[data-theme=dark] .matrix-replace,html[data-theme=dark] .enhance-batch-head .icon-btn,html[data-theme=dark] .listing-value-row .btn{border-color:var(--line);background:#19211c}html[data-theme=dark] .btn:not(.btn-primary),html[data-theme=dark] .icon-btn,html[data-theme=dark] .panel-actions button,html[data-theme=dark] .shell-actions button,html[data-theme=dark] .toolbar button,html[data-theme=dark] .listing-value-row button,html[data-theme=dark] .image-preview-close{color:#c6cec6;background:#171d19;border-color:#303932}html[data-theme=dark] .btn:not(.btn-primary):hover:not(:disabled),html[data-theme=dark] .icon-btn:hover:not(:disabled),html[data-theme=dark] .panel-actions button:hover:not(:disabled),html[data-theme=dark] .shell-actions button:hover:not(:disabled),html[data-theme=dark] .toolbar button:hover:not(:disabled),html[data-theme=dark] .listing-value-row button:hover:not(:disabled),html[data-theme=dark] .image-preview-close:hover{color:#eef4ec;background:#222a24;border-color:#465047}html[data-theme=dark] .matrix-thumb.missing-enhanced,html[data-theme=dark] .matrix-thumb.error,html[data-theme=dark] .matrix-thumb.rejected{background:#ff7d721c;border-color:#ff7d7259}html[data-theme=dark] .grid tbody tr:hover{background:#172018}html[data-theme=dark] .empty,html[data-theme=dark] .drop-zone,html[data-theme=dark] .component-card,html[data-theme=dark] .project-card,html[data-theme=dark] .dialog,html[data-theme=dark] .modal,html[data-theme=dark] .new-project-dialog{background:var(--surface);border-color:var(--line)}html[data-theme=dark] .prototype-frame{background:#0b100d}@media (width<=1100px){.stat-row,.stage-overview{grid-template-columns:repeat(2,1fr)}.workbench{grid-template-columns:minmax(0,1fr) 240px}}@media (width<=820px){.shell{grid-template-columns:52px minmax(0,1fr)}.shell-brand span:last-child,.nav-item span,.nav-item b,.shell-nav-foot{display:none}.nav-item{justify-content:center}.shell-head{padding:0 10px}.shell-title h1{font-size:14px}.crumbs{display:none}.shell-actions .btn-ghost span,.btn-ghost{gap:0;padding:0 8px;font-size:0}.workbench{grid-template-rows:minmax(0,1fr) 220px;grid-template-columns:minmax(0,1fr)}.inspector{border-left:0;border-top:1px solid var(--line)}.panel{overflow-x:auto}.panel-head{flex-direction:column;align-items:stretch}.panel-actions{justify-content:space-between}.toolbar{flex-wrap:wrap}.stage-overview{grid-template-columns:minmax(0,1fr)}.delivery-hero,.listing-progress{display:grid}.listing-checklist{grid-template-columns:minmax(0,1fr)}.listing-item{min-height:0}.listing-value-row,.enhance-summary{grid-template-columns:minmax(0,1fr)}.enhance-matrix{grid-template-columns:82px repeat(10,118px) 96px;min-width:0}.matrix-thumb,.matrix-upload-label,.matrix-export-button,.matrix-side-spacer{height:160px;min-height:160px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.canvas-image-wrap.magnified>img{image-rendering:pixelated}.scrim{z-index:90;background:#1216136b;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog{background:var(--surface);border:1px solid var(--line);border-radius:10px;gap:13px;width:min(380px,100%);padding:16px;display:grid;box-shadow:0 20px 50px #0e120f4d}.dialog-head{justify-content:space-between;align-items:center;display:flex}.dialog-head h2{align-items:center;gap:7px;font-size:14px;font-weight:650;display:flex}.dialog-head svg{color:var(--dim)}.dialog-note{color:var(--dim);background:var(--line-soft);border-radius:6px;padding:8px 10px;font-size:11px;line-height:1.6}.dialog-foot{justify-content:flex-end;gap:8px;display:flex}html[data-theme=dark] button,html[data-theme=dark] .btn,html[data-theme=dark] .icon-btn,html[data-theme=dark] .matrix-copy,html[data-theme=dark] .matrix-reject,html[data-theme=dark] .matrix-replace,html[data-theme=dark] .theme-toggle,html[data-theme=dark] .matrix-export-button,html[data-theme=dark] .listing-value-row .btn,html[data-theme=dark] .image-preview-close,.theme-dark button,.theme-dark .btn,.theme-dark .icon-btn,.theme-dark .matrix-copy,.theme-dark .matrix-reject,.theme-dark .matrix-replace,.theme-dark .theme-toggle,.theme-dark .matrix-export-button,.theme-dark .listing-value-row .btn,.theme-dark .image-preview-close{color:#c7d0c8!important;box-shadow:none!important;background:#151a17!important;border-color:#2f3731!important}html[data-theme=dark] button:hover:not(:disabled),html[data-theme=dark] .btn:hover:not(:disabled),html[data-theme=dark] .icon-btn:hover:not(:disabled),html[data-theme=dark] .matrix-copy:hover,html[data-theme=dark] .matrix-reject:hover,html[data-theme=dark] .matrix-replace:hover,html[data-theme=dark] .theme-toggle:hover,html[data-theme=dark] .matrix-export-button:hover:not(:disabled),html[data-theme=dark] .listing-value-row .btn:hover:not(:disabled),html[data-theme=dark] .image-preview-close:hover,.theme-dark button:hover:not(:disabled),.theme-dark .btn:hover:not(:disabled),.theme-dark .icon-btn:hover:not(:disabled),.theme-dark .matrix-copy:hover,.theme-dark .matrix-reject:hover,.theme-dark .matrix-replace:hover,.theme-dark .theme-toggle:hover,.theme-dark .matrix-export-button:hover:not(:disabled),.theme-dark .listing-value-row .btn:hover:not(:disabled),.theme-dark .image-preview-close:hover{color:#eef4ec!important;background:#202722!important;border-color:#475149!important}html[data-theme=dark] .btn-primary,.theme-dark .btn-primary{color:#eef4ec!important;background:#2d3430!important;border-color:#4a544c!important}html[data-theme=dark] .btn-primary:hover:not(:disabled),.theme-dark .btn-primary:hover:not(:disabled){background:#39413b!important}html[data-theme=dark] .brand-mark,.theme-dark .brand-mark{color:#151b12!important;background:#b9d94a!important}
