:root{color:#1c2430;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--panel:#fff;--panel-muted:#eef3f4;--line:#d7e0e3;--text-muted:#61707d;--accent:#0f766e;--accent-strong:#0b5d56;--accent-soft:#d9eeea;--blue:#285fbd;--amber:#c56a17;--danger:#b42318;--shadow:0 18px 50px #1c24301f;letter-spacing:0;background:#f4f7f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box;letter-spacing:0}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{border:0}.app-shell{min-height:100vh;padding:28px}.workspace{max-width:1440px;margin:0 auto}.topbar{justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px;display:flex}.eyebrow{color:var(--accent);text-transform:uppercase;margin:0 0 4px;font-size:.78rem;font-weight:800}h1{margin:0;font-size:2rem;line-height:1.08}.model-pill{border:1px solid var(--line);color:#32424e;white-space:nowrap;text-overflow:ellipsis;background:#fff;border-radius:8px;flex:0 auto;max-width:100%;padding:9px 12px;font-size:.84rem;font-weight:700;overflow:hidden}.layout{grid-template-columns:minmax(300px,380px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.control-panel,.preview-panel{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px}.control-panel{gap:16px;padding:18px;display:grid;position:sticky;top:18px}.preview-panel{min-width:0;padding:18px}.field,.range-field{gap:8px;display:grid}.field>span,.group-title,.range-field>span{color:#263541;align-items:center;gap:8px;font-size:.9rem;font-weight:800;display:flex}input[type=password],textarea{border:1px solid var(--line);color:#1d2732;background:#fbfcfc;border-radius:8px;outline:none;width:100%;transition:border-color .14s,box-shadow .14s,background .14s}input[type=password]{min-height:42px;padding:10px 12px}textarea{resize:vertical;min-height:148px;padding:12px;line-height:1.45}input[type=password]:focus,textarea:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #0f766e29}.drop-zone{background:#f8faf9;border:1px dashed #91a2aa;border-radius:8px;min-height:168px;position:relative;overflow:hidden}.drop-zone.dragging{border-color:var(--accent);background:var(--accent-soft)}.drop-zone input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.drop-label{color:#40515d;cursor:pointer;align-content:center;place-items:center;gap:10px;width:100%;min-height:168px;font-weight:800;display:grid}.drop-label svg{color:var(--blue)}.reference-preview{background:#202a32;width:100%;min-height:168px;position:relative}.reference-preview img{object-fit:contain;width:100%;height:220px;display:block}.remove-reference{color:#fff;background:#141c22c2;position:absolute;top:10px;right:10px}.control-group{gap:9px;display:grid}.segmented{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.segmented.resolution{grid-template-columns:repeat(3,minmax(0,1fr))}.segmented button{border:1px solid var(--line);color:#2b3b47;cursor:pointer;background:#f7faf9;border-radius:8px;min-width:0;height:38px;font-weight:800}.segmented button.active{border-color:var(--accent);color:#fff;background:var(--accent)}.segmented button:disabled,.primary-button:disabled,.secondary-button:disabled,.icon-button:disabled,.range-field input:disabled{cursor:not-allowed;opacity:.55}.microcopy{color:var(--text-muted);font-size:.82rem;font-weight:700}.range-field{grid-template-columns:1fr auto;align-items:center}.range-field input{width:100%;accent-color:var(--accent);grid-column:1/-1}.range-field output{color:var(--amber);font-size:.86rem;font-weight:900}.primary-button,.secondary-button,.icon-button{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;font-weight:900;transition:transform .12s,background .12s,border-color .12s;display:inline-flex}.primary-button{color:#fff;background:var(--accent);min-height:46px;padding:0 16px}.primary-button:hover:not(:disabled){background:var(--accent-strong);transform:translateY(-1px)}.secondary-button{border:1px solid var(--line);color:#24323d;background:#fff;min-height:40px;padding:0 14px}.secondary-button:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}.icon-button{width:38px;height:38px}.hidden-input{display:none}.sheet-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.status-row{border:1px solid var(--line);background:var(--panel-muted);border-radius:8px;justify-content:space-between;align-items:center;gap:14px;min-height:52px;padding:12px 14px;display:flex}.status-row>div{min-width:0}.status-label{color:var(--text-muted);text-transform:uppercase;margin-bottom:2px;font-size:.74rem;font-weight:900;display:block}.status-row strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.error-box{color:var(--danger);background:#fff3f1;border:1px solid #b4231840;border-radius:8px;margin-top:12px;padding:12px 14px;font-weight:800}.player-grid{grid-template-columns:minmax(0,1fr) minmax(220px,280px);gap:14px;margin-top:14px;display:grid}.player-stage{aspect-ratio:1;background:#17212a;border:1px solid #202a32;border-radius:8px;place-items:center;width:100%;min-height:320px;display:grid;overflow:hidden}.frame-crop{width:100%;height:100%;display:block;overflow:hidden}.frame-crop img{object-fit:contain;width:100%;height:100%;transform:scale(var(--crop-scale,1));transform-origin:50%;display:block}.empty-state{color:#aebbc1;place-items:center;gap:10px;font-weight:800;display:grid}.side-stack{align-content:start;gap:12px;display:grid}.sheet-preview{aspect-ratio:1;border:1px solid var(--line);background:#f3f6f7;border-radius:8px;width:100%;overflow:hidden}.sheet-preview img{object-fit:contain;width:100%;height:100%;display:block}.placeholder-tile{background-color:#f8fafb;background-image:linear-gradient(45deg,#285fbd14 25%,#0000 25%),linear-gradient(-45deg,#0f766e14 25%,#0000 25%),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:28px 28px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;width:100%;height:100%}.playback-controls{grid-template-columns:40px 1fr;align-items:center;gap:10px;display:grid}.play-button{color:#fff;background:var(--blue)}.frame-counter{border:1px solid var(--line);color:#263541;background:#fff;border-radius:8px;align-items:center;min-height:40px;padding:0 12px;font-weight:900;display:flex}.download-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.export-progress{min-height:18px}.frame-strip{grid-template-columns:repeat(var(--frame-columns), minmax(0, 1fr));gap:6px;margin-top:14px;display:grid}.frame-strip button{aspect-ratio:1;cursor:pointer;background:#eef3f4;border:2px solid #0000;border-radius:8px;min-width:0;padding:0;overflow:hidden}.frame-strip button.active-frame{border-color:var(--amber)}.frame-strip .frame-crop img{object-fit:cover;width:100%;height:100%;display:block}.model-notes{border:1px solid var(--line);background:#fbfcfc;border-radius:8px;margin-top:14px}.model-notes summary{color:#263541;cursor:pointer;padding:12px 14px;font-weight:900}.model-notes pre{color:#344553;white-space:pre-wrap;max-height:220px;margin:0;padding:0 14px 14px;font:.82rem/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;overflow:auto}.spin{animation:.9s linear infinite spin}.muted-icon{color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1080px){.app-shell{padding:18px}.layout{grid-template-columns:1fr}.control-panel{position:static}}@media (width<=760px){.topbar{flex-direction:column;align-items:start}h1{font-size:1.65rem}.player-grid{grid-template-columns:1fr}.side-stack{grid-template-columns:minmax(120px,180px) 1fr;align-items:start}.playback-controls,.download-row,.export-progress{grid-column:2}.sheet-preview{grid-row:1/span 3}}@media (width<=560px){.app-shell{padding:12px}.control-panel,.preview-panel{padding:14px}.player-stage{min-height:240px}.segmented{grid-template-columns:repeat(4,minmax(0,1fr))}.segmented.resolution{grid-template-columns:repeat(3,minmax(0,1fr))}.side-stack{grid-template-columns:1fr}.playback-controls,.download-row,.export-progress,.sheet-preview{grid-area:auto}}
