:root{--bg-main:#f8fafc;--bg-surface:#ffffff;--bg-subtle:#f1f5f9;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--border:#e2e8f0;--border-strong:#cbd5e1;--accent:#15803d;--accent-hover:#166534;--accent-subtle:#f0fdf4;--accent-border:#bbf7d0;--radius-sm:6px;--radius-md:8px;--radius-lg:12px}[data-theme=dark]{--bg-main:#090d16;--bg-surface:#111827;--bg-subtle:#1e293b;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--border:#1e293b;--border-strong:#334155;--accent:#22c55e;--accent-hover:#16a34a;--accent-subtle:rgba(34,197,94,0.12);--accent-border:rgba(34,197,94,0.3)}*{box-sizing:border-box;margin:0;padding:0}body,html{min-height:100vh;background:var(--bg-main);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a,button{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:none;background:none}a{color:inherit;text-decoration:none}.studio-app{display:flex;flex-direction:column;height:100vh;max-height:100vh;overflow:hidden;background:var(--bg-main)}.studio-topbar{height:56px;min-height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:var(--bg-surface);border-bottom:1px solid var(--border);z-index:20}.topbar-center,.topbar-left,.topbar-right{display:flex;align-items:center;gap:12px}.brand-logo{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700;letter-spacing:0}.brand-icon{width:22px;height:22px}.brand-icon,.brand-name b{color:var(--accent)}.project-title-box{display:flex;align-items:center}.project-name-input{border:1px solid transparent;background:transparent;padding:4px 8px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;color:var(--text-secondary);transition:border-color .15s ease;width:140px}.project-name-input:focus,.project-name-input:hover{border-color:var(--border-strong);background:var(--bg-subtle);color:var(--text-primary)}.topbar-tool-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:var(--radius-sm);font-size:12px;font-weight:500;color:var(--text-secondary);transition:all .15s ease}.topbar-tool-btn svg{width:14px;height:14px}.topbar-tool-btn:hover{background:var(--bg-subtle);color:var(--text-primary)}.privacy-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:9999px;background:var(--accent-subtle);color:var(--accent);font-size:11px;font-weight:600;border:1px solid var(--accent-border)}.privacy-badge svg{width:13px;height:13px}.camera-test-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-surface);font-size:12px;font-weight:600;color:var(--text-primary);transition:all .15s ease}.camera-test-btn svg{width:14px;height:14px;color:var(--accent)}.camera-test-btn:hover{border-color:var(--border-strong);background:var(--bg-subtle)}.lang-switcher,.theme-toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-surface);font-size:11px;font-weight:700;color:var(--text-secondary);transition:all .15s ease}.theme-toggle-btn svg{width:14px;height:14px}.lang-switcher:hover,.theme-toggle-btn:hover{border-color:var(--border-strong);color:var(--text-primary)}.export-dropdown-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-sm);background:var(--accent);color:#ffffff;font-size:12px;font-weight:600;transition:background-color .15s ease}.export-dropdown-btn svg{width:13px;height:13px}.export-dropdown-btn:hover{background:var(--accent-hover)}.studio-main-body{display:flex;flex:1 1;min-height:0;overflow:hidden}.workspace-rail{width:168px;min-width:168px;background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:space-between;padding:12px 8px;transition:width .2s ease,min-width .2s ease;z-index:10}.workspace-rail.is-collapsed{width:56px;min-width:56px}.rail-nav{display:flex;flex-direction:column;gap:4px}.rail-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-md);color:var(--text-secondary);transition:all .15s ease;text-align:left}.rail-item:hover{background:var(--bg-subtle);color:var(--text-primary)}.rail-item.is-active{background:var(--accent-subtle);color:var(--accent)}.rail-icon{width:18px;height:18px;flex-shrink:0}.rail-labels{display:flex;flex-direction:column;overflow:hidden;white-space:nowrap}.rail-title{font-size:13px;font-weight:600}.rail-desc{font-size:10px;color:var(--text-muted)}.workspace-rail.is-collapsed .rail-labels{display:none}.rail-collapse-toggle{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius-md);color:var(--text-muted);font-size:12px;transition:all .15s ease}.rail-collapse-toggle svg{width:16px;height:16px;transition:transform .2s ease}.rail-collapse-toggle .rotate-180{transform:rotate(180deg)}.rail-collapse-toggle:hover{background:var(--bg-subtle);color:var(--text-primary)}.workspace-rail.is-collapsed .rail-collapse-toggle span{display:none}.studio-core{display:flex;flex-direction:column;flex:1 1;min-width:0;overflow:hidden}.presentation-strip{height:94px;min-height:94px;background:var(--bg-surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 16px;overflow-x:auto}.presentation-track{display:flex;align-items:center;gap:12px;scroll-snap-type:x mandatory;scrollbar-width:none;width:100%}.presentation-track::-webkit-scrollbar{display:none}.presentation-card{flex:0 0 110px;height:80px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);padding:4px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;cursor:pointer;position:relative;transition:all .15s ease}.presentation-card:hover{border-color:var(--border-strong)}.presentation-card.is-active{border-color:var(--accent);background:var(--accent-subtle)}.active-checkmark{position:absolute;top:3px;right:3px;width:14px;height:14px;border-radius:50%;background:var(--accent);color:#ffffff;display:flex;align-items:center;justify-content:center}.active-checkmark svg{width:9px;height:9px}.presentation-preview-box{width:46px;height:46px;display:flex;align-items:center;justify-content:center}.presentation-preview-box img{width:100%;height:100%;object-fit:contain}.presentation-name{font-size:11px;font-weight:600;color:var(--text-primary)}.workbench-grid{flex:1 1;min-height:0;display:grid;grid-template-columns:220px minmax(0,1fr) 260px;background:var(--bg-main);overflow:hidden}.contextual-controls-col{background:var(--bg-surface);border-right:1px solid var(--border);padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.control-group{display:flex;flex-direction:column;gap:6px}.control-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.control-label-micro{font-size:10px;font-weight:600;color:var(--text-muted)}.select-grid-two{display:grid;grid-template-columns:1fr 1fr;gap:6px;align-items:center}.control-field{display:flex;flex-direction:column;gap:3px}.control-select-sm{width:100%;height:28px;padding:2px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);font-size:11px;font-weight:600;outline:none}.monochrome-toggle-box{display:flex;flex-direction:column;gap:3px;align-items:flex-start}.presets-control-group{margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border)}.presets-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.custom-preset-actions{display:flex;align-items:center;gap:3px}.preset-action-chip{display:inline-flex;align-items:center;gap:3px;padding:1px 5px;font-size:9px;font-weight:600;border:1px solid var(--border);border-radius:3px;background:var(--bg-subtle);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.preset-action-chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-subtle)}.preset-action-chip svg{width:10px;height:10px}.preset-action-chip.is-custom{border-color:var(--accent);background:var(--accent-subtle);color:var(--accent)}.preset-action-chip.is-danger{color:#dc2626;border-color:#fecaca;background:#fef2f2}.preset-action-chip.is-danger:hover{background:#fee2e2}.presets-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.preset-card-btn{display:flex;align-items:center;gap:4px;padding:3px 4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);cursor:pointer;transition:all .15s ease}.preset-card-btn:hover{border-color:var(--accent);background:var(--accent-subtle)}.preset-color-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.preset-name{font-size:10px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shape-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.shape-btn{height:32px;border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;background:var(--bg-surface);transition:all .15s ease}.shape-btn:hover{border-color:var(--border-strong)}.shape-btn.is-active{border-color:var(--accent);background:var(--accent-subtle)}.shape-icon-preview{width:14px;height:14px;background:var(--text-primary)}.shape-square{border-radius:0}.shape-round{border-radius:4px}.shape-dots{border-radius:50%}.shape-leaf{border-radius:6px 0 6px 0}.finder-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.finder-btn{height:32px;border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;gap:6px;background:var(--bg-surface);transition:all .15s ease;padding:0 4px}.finder-btn:hover{border-color:var(--border-strong)}.finder-btn.is-active{border-color:var(--accent);background:var(--accent-subtle)}.finder-btn-label{font-size:11px;font-weight:600;color:var(--text-secondary)}.finder-btn.is-active .finder-btn-label{color:var(--accent)}.finder-icon-preview{width:14px;height:14px;border:2px solid var(--text-primary);display:flex;align-items:center;justify-content:center}.finder-square{border-radius:0}.finder-round{border-radius:3px}.finder-dots{border-radius:50%}.finder-inner-pupil{width:4px;height:4px;background:var(--text-primary)}.finder-square .finder-inner-pupil{border-radius:0}.finder-round .finder-inner-pupil{border-radius:1px}.finder-dots .finder-inner-pupil{border-radius:50%}.swatches-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.color-swatch-btn{height:24px;border-radius:4px;border:1px solid rgba(0,0,0,.1);transition:transform .1s ease;position:relative;cursor:pointer}.color-swatch-btn:hover{transform:scale(1.1)}.color-swatch-btn.is-active{border:2px solid var(--text-primary)}.custom-color-picker{background:var(--bg-subtle);border:1px dashed var(--border-strong);display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.custom-color-picker svg{width:12px;height:12px}.custom-color-triplet{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:4px}.color-field-compact{display:flex;align-items:center;gap:5px;padding:4px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);cursor:pointer;position:relative;transition:all .15s ease}.color-field-compact:hover{border-color:var(--border-strong);background:var(--bg-surface)}.color-dot-indicator{width:12px;height:12px;border-radius:3px;border:1px solid rgba(0,0,0,.15);flex-shrink:0}.color-field-tag{font-size:10px;font-weight:600;color:var(--text-secondary)}.hidden-color-input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.gradient-controls-subgroup{margin-top:6px;padding-top:6px;border-top:1px dashed var(--border);display:flex;flex-direction:column;gap:4px}.gradient-header-row{display:flex;align-items:center;justify-content:space-between}.mode-pill-toggle{display:inline-flex;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1px}.pill-toggle-btn{padding:2px 6px;font-size:10px;font-weight:600;color:var(--text-secondary);border-radius:3px;transition:all .15s ease}.pill-toggle-btn.is-active{background:var(--bg-surface);color:var(--text-primary);box-shadow:0 1px 2px rgba(0,0,0,.05)}.gradient-details-row{display:flex;align-items:center;gap:6px;margin-top:2px}.angle-picker-buttons{display:flex;align-items:center;gap:2px;flex:1 1}.angle-btn{flex:1 1;height:24px;border:1px solid var(--border);border-radius:3px;background:var(--bg-surface);font-size:9px;font-weight:600;color:var(--text-secondary);transition:all .15s ease}.angle-btn:hover{border-color:var(--border-strong)}.angle-btn.is-active{border-color:var(--accent);background:var(--accent-subtle);color:var(--accent)}.transparent-toggle-field{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:3px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);cursor:pointer}.toggle-checkbox-sm{width:14px;height:14px;cursor:pointer;accent-color:var(--accent)}.logo-sliders-subgroup{margin-top:6px;padding:6px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-sm)}.frame-settings-group,.logo-sliders-subgroup{display:flex;flex-direction:column;gap:4px}.frame-edit-subgroup{margin-top:4px}.frame-input-row{display:flex;align-items:center;gap:4px}.frame-text-input{flex:1 1;height:26px;padding:2px 8px;font-size:11px;font-weight:500;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-primary)}.frame-text-input:focus{outline:none;border-color:var(--accent);background:var(--bg-surface)}.print-sheet-options{display:flex;flex-direction:column;gap:4px}.print-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:26px;padding:0 8px;font-size:11px;font-weight:600;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent-subtle);color:var(--accent);cursor:pointer;transition:all .15s ease}.print-action-btn:hover{background:var(--accent);color:#ffffff}.print-action-btn svg{width:13px;height:13px}.contrast-advisory-banner{display:flex;align-items:center;gap:6px;margin-bottom:6px;padding:5px 10px;background:#fffbeb;border:1px solid #fef3c7;border-left:3px solid #f59e0b;border-radius:var(--radius-sm);color:#b45309;font-size:11px;font-weight:500}.contrast-warn-icon{width:14px;height:14px;color:#d97706;flex-shrink:0}[data-theme=dark] .contrast-advisory-banner{background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.25);color:#fcd34d}.logo-control-row{display:flex;align-items:center;gap:6px}.icon-remove-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border);border-radius:var(--radius-sm);color:#b91c1c;background:#fef2f2}.icon-remove-btn svg{width:13px;height:13px}.remove-bg-btn{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:4px;padding:4px 8px;border:1px solid #fee2e2;border-radius:var(--radius-sm);background:#fef2f2;color:#b91c1c;font-size:11px;font-weight:500}.remove-bg-btn svg{width:12px;height:12px}.slider-label-row{display:flex;justify-content:space-between;align-items:center}.slider-val{font-size:11px;font-weight:600;color:var(--text-primary)}.range-slider{width:100%;accent-color:var(--accent)}.switch-toggle{position:relative;display:inline-block;width:36px;height:20px}.switch-toggle input{opacity:0;width:0;height:0}.slider-switch{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--border-strong);transition:.2s;border-radius:20px}.slider-switch:before{position:absolute;content:"";height:14px;width:14px;left:3px;bottom:3px;background-color:white;transition:.2s;border-radius:50%}.switch-toggle input:checked+.slider-switch{background-color:var(--accent)}.switch-toggle input:checked+.slider-switch:before{transform:translateX(16px)}.upload-actions-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}.subtle-upload-btn{display:flex;align-items:center;justify-content:center;gap:4px;padding:6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:11px;font-weight:500;color:var(--text-secondary);flex:1 1}.subtle-upload-btn svg{width:13px;height:13px}.subtle-upload-btn:hover{border-color:var(--border-strong);color:var(--text-primary)}.hidden-file-input{display:none}.optimize-row{flex-direction:row;justify-content:space-between;align-items:center;padding-top:4px}.opt-title{font-size:11px;font-weight:600;color:var(--text-primary)}.workbench-stage{padding:16px;background:var(--bg-main);overflow:hidden}.canvas-frame-container,.workbench-stage{display:flex;align-items:center;justify-content:center;position:relative}.canvas-frame-container{width:min(85%,340px);aspect-ratio:1/1}.canvas-wrapper{width:100%;height:100%;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;box-shadow:0 4px 16px rgba(0,0,0,.04);display:flex;align-items:center;justify-content:center}.direct-qr-canvas{width:100%;height:100%;object-fit:contain;border-radius:4px}.barcode-stage-container{width:100%;height:100%;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;display:flex;align-items:center;justify-content:center}.barcode-svg{max-width:100%;max-height:100%}.quiet-zone-handles{position:absolute;inset:-14px;pointer-events:none}.guide-bracket{position:absolute;width:14px;height:14px;border-color:var(--text-muted);opacity:.7}.guide-bracket.top-left{top:0;left:0;border-top:2px solid;border-left:2px solid}.guide-bracket.top-right{top:0;right:0;border-top:2px solid;border-right:2px solid}.guide-bracket.bottom-left{bottom:0;left:0;border-bottom:2px solid;border-left:2px solid}.guide-bracket.bottom-right{bottom:0;right:0;border-bottom:2px solid;border-right:2px solid}.guide-dot{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--accent)}.guide-dot.top{top:-3px}.guide-dot.bottom,.guide-dot.top{left:50%;transform:translateX(-50%)}.guide-dot.bottom{bottom:-3px}.guide-dot.left{left:-3px}.guide-dot.left,.guide-dot.right{top:50%;transform:translateY(-50%)}.guide-dot.right{right:-3px}.scanner-dropzone{width:100%;height:100%;border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--bg-surface);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px}.scanner-icon{width:36px;height:36px;color:var(--accent);margin-bottom:8px}.scanner-dropzone h3{font-size:14px;margin-bottom:4px}.scanner-dropzone p{font-size:11px;color:var(--text-muted);margin-bottom:12px}.scanner-buttons{display:flex;gap:8px}.btn-primary{background:var(--accent);color:#ffffff;font-weight:600}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-sm);font-size:12px}.btn-secondary{border:1px solid var(--border);background:var(--bg-surface);font-weight:500}.scan-result-box{margin-top:12px;padding:8px 12px;background:var(--bg-subtle);border-radius:var(--radius-sm);font-size:11px;word-break:break-all;width:100%;max-width:280px;display:flex;flex-direction:column;gap:4px;text-align:left}.scan-result-header{display:flex;align-items:center;justify-content:space-between}.apply-payload-btn{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border-radius:4px;background:var(--accent);color:#ffffff;font-size:10px;font-weight:600}.apply-payload-btn svg{width:10px;height:10px}.batch-workstage{width:100%;height:100%;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;overflow:auto}.batch-header{font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:8px}.batch-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.batch-card{padding:6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);text-align:center}.batch-card img{width:100%;display:block}.batch-card span{font-size:10px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;margin-top:4px}.scan-evidence-col{background:var(--bg-surface);border-left:1px solid var(--border);padding:12px;flex-direction:column;overflow-y:auto}.evidence-header,.scan-evidence-col{display:flex;justify-content:space-between}.evidence-header{align-items:center;padding-bottom:8px;border-bottom:1px solid var(--border)}.evidence-title{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--text-primary)}.evidence-title svg{width:14px;height:14px;color:var(--accent)}.evidence-score{font-size:11px;font-weight:700}.evidence-score,.evidence-score.is-perfect{color:var(--accent)}.evidence-list{display:flex;flex-direction:column;gap:8px;margin:10px 0}.evidence-item{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle)}.evidence-item-info{display:flex;flex-direction:column}.test-name{font-size:11px;font-weight:600;color:var(--text-primary)}.test-detail{font-size:10px;color:var(--text-muted)}.test-advice{font-size:9px;color:#b45309;margin-top:2px}.test-status-pill{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px}.test-status-pill svg{width:10px;height:10px}.test-status-pill.is-pass{background:var(--accent-subtle);color:var(--accent)}.test-status-pill.is-fail{background:#fef2f2;color:#b91c1c}.retest-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:11px;font-weight:500;color:var(--text-secondary)}.retest-btn svg{width:12px;height:12px}.retest-btn:hover{border-color:var(--border-strong);color:var(--text-primary)}.timeline-recipe-strip{height:52px;min-height:52px;background:var(--bg-surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:0 16px;display:flex;align-items:center}.gif-timeline-panel{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px}.playback-controls,.timeline-options{display:flex;align-items:center;gap:8px}.play-btn{width:28px;height:28px;border-radius:50%;background:var(--accent);color:#ffffff;display:flex;align-items:center;justify-content:center}.play-btn svg{width:13px;height:13px}.sample-select,.speed-select{padding:3px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:11px;font-weight:500}.frame-counter{font-size:11px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-secondary)}.scrubber-track{display:flex;gap:4px;flex:1 1;overflow-x:auto;scrollbar-width:none;align-items:center}.scrubber-track::-webkit-scrollbar{display:none}.frame-thumb-btn{position:relative;width:28px;height:28px;flex:0 0 28px;border:1px solid var(--border);border-radius:3px;background:var(--bg-subtle);display:flex;align-items:center;justify-content:center;font-size:9px;color:var(--text-muted);overflow:hidden}.frame-thumb-btn img{width:100%;height:100%;object-fit:cover}.frame-thumb-btn .thumb-idx{position:absolute;right:1px;bottom:1px;min-width:11px;padding:0 2px;border-radius:2px;background:rgba(15,23,42,.72);color:#ffffff;line-height:11px}.frame-thumb-btn.is-active{border-color:var(--accent);background:var(--accent);color:#ffffff;font-weight:700}.loop-toggle{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:var(--radius-sm);font-size:11px;color:var(--text-muted)}.loop-toggle svg{width:12px;height:12px}.loop-toggle.is-active{color:var(--accent);background:var(--accent-subtle)}.static-recipe-panel{display:flex;align-items:center;gap:20px;font-size:11px;color:var(--text-secondary)}.recipe-item{display:flex;gap:6px}.recipe-label{color:var(--text-muted)}.recipe-value{font-weight:600;color:var(--text-primary)}.context-previews-strip{height:130px;min-height:130px;background:var(--bg-surface);border-bottom:1px solid var(--border);padding:6px 16px;display:flex;flex-direction:column;justify-content:space-between}.section-heading-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.scene-studio-hint{font-size:10px;font-weight:600;color:var(--accent)}.previews-grid{display:grid;gap:8px;height:100px}.previews-grid,.previews-grid-four{grid-template-columns:repeat(4,1fr)}.context-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-main);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:4px;position:relative;overflow:hidden;cursor:pointer;transition:all .15s ease}.scene-thumb-card:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.scene-thumb-canvas{width:68px;height:68px;object-fit:cover;border-radius:4px;background:#ffffff}.context-caption{font-size:10px;font-weight:600;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scene-studio-modal{width:90vw;max-width:820px;max-height:90vh;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:modalScaleIn .15s ease}.scene-studio-body{display:flex;flex-direction:column;gap:12px;padding:12px 16px 16px;overflow-y:auto}.scene-tabs-bar{display:flex;gap:6px;border-bottom:1px solid var(--border);padding-bottom:8px}.scene-tab-btn{padding:6px 12px;font-size:12px;font-weight:600;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.scene-tab-btn:hover{border-color:var(--accent);color:var(--accent)}.scene-tab-btn.is-active{border-color:var(--accent);background:var(--accent);color:#ffffff}.scene-studio-layout{display:grid;grid-template-columns:1fr 300px;gap:16px;align-items:start}.scene-canvas-wrap{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;padding:12px;min-height:380px}.scene-live-canvas{max-width:100%;max-height:440px;border-radius:8px;box-shadow:var(--shadow-md);object-fit:contain}.scene-controls-panel{display:flex;flex-direction:column;gap:12px}.scene-control-group{display:flex;flex-direction:column;gap:4px}.scene-control-label{font-size:11px;font-weight:600;color:var(--text-secondary)}.scene-text-input{height:32px;padding:0 10px;font-size:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-primary);outline:none}.scene-text-input:focus{border-color:var(--accent);background:var(--bg-surface)}.scene-color-row{display:flex;align-items:center;gap:8px}.scene-color-picker{width:32px;height:32px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;cursor:pointer}.scene-color-code{font-size:11px;font-family:monospace;color:var(--text-secondary)}.poster-ratios-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.ratio-btn{height:28px;font-size:11px;font-weight:600;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.ratio-btn.is-active,.ratio-btn:hover{border-color:var(--accent);color:var(--accent)}.ratio-btn.is-active{background:var(--accent-subtle)}.scene-export-footer{margin-top:8px}.scene-download-btn{width:100%;height:36px;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--accent);color:#ffffff;font-size:12px;font-weight:700;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.scene-download-btn:hover{background:var(--accent-hover)}.scene-download-btn svg{width:14px;height:14px}@media (max-width:640px){.scene-studio-modal{width:100vw;max-width:100vw;height:92vh;max-height:92vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;margin-top:auto}.scene-studio-layout{grid-template-columns:1fr}.scene-canvas-wrap{min-height:240px}}.command-export-row{height:52px;min-height:52px;background:var(--bg-surface);padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:16px}.content-type-selector{display:flex;align-items:center;gap:8px;flex:1 1;max-width:540px}.content-type-dropdown{padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:12px;font-weight:500}.content-input-wrap{display:flex;align-items:center;flex:1 1;position:relative}.content-fields-row{display:flex;align-items:center;gap:4px;flex:1 1;min-width:0}.batch-content-wrap{display:flex;flex-direction:column;gap:4px;flex:1 1;min-width:0}.batch-actions-bar{display:flex;align-items:center;gap:6px}.batch-tool-btn{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;font-size:10px;font-weight:600;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-primary);cursor:pointer;transition:all .15s ease}.batch-tool-btn:hover{border-color:var(--accent);background:var(--accent-subtle);color:var(--accent)}.batch-tool-btn svg{width:11px;height:11px}.batch-content-input,.content-fields-row input,.content-fields-row select{min-width:0;width:100%;height:34px;padding:0 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);font-size:12px;outline:none}.batch-content-input:focus,.content-fields-row input:focus,.content-fields-row select:focus{border-color:var(--accent);background:var(--bg-surface)}.batch-content-input{height:48px;padding:4px 8px;resize:none;font-family:monospace;font-size:11px}.command-export-row.is-batch{height:82px;min-height:82px}.main-content-input{width:100%;height:34px;padding:0 54px 0 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);font-size:13px;outline:none}.main-content-input:focus{border-color:var(--accent);background:var(--bg-surface)}.input-clear-btn{position:absolute;right:28px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.input-clear-btn svg{width:12px;height:12px}.input-copy-btn{position:absolute;right:6px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.input-copy-btn svg{width:12px;height:12px}.quick-format-exports{display:flex;align-items:center;gap:6px}.format-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:12px;font-weight:500;color:var(--text-primary);transition:all .15s ease}.format-btn svg{width:13px;height:13px}.format-btn:hover{border-color:var(--border-strong)}.primary-export-pack-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:var(--accent);color:#ffffff;border-radius:var(--radius-sm);font-size:13px;font-weight:600;transition:background-color .15s ease}.primary-export-pack-btn svg{width:14px;height:14px}.primary-export-pack-btn:hover{background:var(--accent-hover)}.camera-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100}.camera-modal-dialog{width:min(90%,440px);background:var(--bg-surface);border-radius:var(--radius-lg);padding:16px;box-shadow:0 20px 40px rgba(0,0,0,.2);display:flex;flex-direction:column;gap:12px}.camera-modal-header{display:flex;justify-content:space-between;align-items:center}.camera-title-box{display:flex;align-items:center;gap:8px}.camera-title-box svg{width:18px;height:18px;color:var(--accent)}.camera-title-box h3{font-size:15px}.close-modal-btn svg{width:18px;height:18px}.camera-status-card{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-md);padding:24px 16px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}.camera-status-card.is-error{border-color:#fca5a5;background:#fef2f2;color:#991b1b}.camera-status-card.is-error svg{width:32px;height:32px;color:#dc2626}.retry-cam-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-sm);background:#dc2626;color:#ffffff;font-size:12px;font-weight:600}.retry-cam-btn svg{width:13px!important;height:13px!important;color:#ffffff!important}.camera-video-wrap{position:relative;width:100%;aspect-ratio:4/3;background:#000;border-radius:var(--radius-md);overflow:hidden}.camera-video-feed{width:100%;height:100%;object-fit:cover}.scan-crosshair{position:absolute;inset:20%;border:2px solid rgba(34,197,94,.7);border-radius:8px}.scan-line-anim{position:absolute;left:0;right:0;height:2px;background:#22c55e;box-shadow:0 0 8px #22c55e;animation:scan-vertical 2s ease-in-out infinite}@keyframes scan-vertical{0%{top:0}50%{top:100%}to{top:0}}.camera-decoded-box{padding:8px 12px;background:var(--bg-subtle);border-radius:var(--radius-sm);font-size:11px;display:flex;flex-direction:column;gap:4px}.camera-decoded-header{display:flex;align-items:center;justify-content:space-between}.camera-modal-footer{display:flex;justify-content:flex-end}.stop-camera-btn{padding:6px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:12px;font-weight:500;color:var(--text-secondary)}.stop-camera-btn:hover{border-color:var(--border-strong);color:var(--text-primary)}.toast-popup{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--text-primary);color:var(--bg-surface);padding:8px 16px;border-radius:var(--radius-md);font-size:12px;font-weight:600;opacity:0;pointer-events:none;transition:all .2s ease;z-index:200}.toast-popup.is-visible{opacity:1;transform:translateX(-50%) translateY(0)}@media (max-width:1180px){.workbench-grid{grid-template-columns:200px minmax(0,1fr) 220px}}@media (max-width:960px){.workspace-rail{width:60px;min-width:60px}.rail-collapse-toggle span,.rail-labels{display:none}.workbench-grid{grid-template-columns:minmax(0,1fr) 200px}.contextual-controls-col{display:none}}@media (max-width:768px){.studio-app{height:auto;max-height:none;overflow-y:auto}.studio-main-body{flex-direction:column}.workspace-rail{height:auto;border-right:none;border-bottom:1px solid var(--border);padding:8px}.rail-nav,.workspace-rail{width:100%;flex-direction:row}.rail-nav{justify-content:space-around}.rail-collapse-toggle{display:none}.workbench-grid{display:flex;flex-direction:column}.workbench-stage{order:1}.contextual-controls-col{display:flex;order:2;flex-direction:row;align-items:stretch;gap:8px;overflow-x:auto;padding:8px 12px;border-right:none;border-top:1px solid var(--border);scrollbar-width:none}.contextual-controls-col::-webkit-scrollbar{display:none}.contextual-controls-col .control-group{min-width:154px;padding:8px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface)}.contextual-controls-col .control-group.optimize-row{min-width:170px}.scan-evidence-col{order:3;border-left:none;border-top:1px solid var(--border)}.command-export-row{flex-direction:column;height:auto;padding:12px 16px}.content-type-selector{max-width:100%;width:100%}.content-fields-row{overflow-x:auto}.content-fields-row input,.content-fields-row select{min-width:150px}.quick-format-exports{width:100%;justify-content:space-between}.context-previews-strip{height:auto}.previews-grid{grid-template-columns:1fr;height:auto}.context-card{height:70px}.studio-topbar{height:52px;min-height:52px;gap:4px;padding:0 8px;overflow:hidden}.topbar-center,.topbar-left,.topbar-right{gap:3px;min-width:0}.brand-logo{flex:0 0 auto;gap:4px;font-size:13px}.brand-icon{width:18px;height:18px}.brand-name{white-space:nowrap}.project-name-input{width:76px;padding:3px 4px;font-size:12px!important;text-overflow:ellipsis}.topbar-center{margin-left:auto}.export-dropdown-btn,.lang-switcher,.theme-toggle-btn,.topbar-tool-btn{width:30px;height:30px;min-height:30px;padding:0;justify-content:center}.camera-test-btn,.export-dropdown-btn span,.privacy-badge,.topbar-tool-btn span{display:none}button,input,select{min-height:44px;font-size:16px!important}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media screen{#print-sheet-root{display:none!important}}@media print{@page{size:A4 portrait;margin:8mm}body{background:#ffffff!important;color:#000000!important}body *{visibility:hidden!important}#print-sheet-root,#print-sheet-root *{visibility:visible!important}#print-sheet-root{position:fixed!important;left:0!important;top:0!important;width:100vw!important;min-height:100vh!important;margin:0!important;padding:0!important;background:#ffffff!important;z-index:999999!important;display:block!important}.print-sheet-page{display:grid!important;width:100%!important;box-sizing:border-box!important}.print-sheet-page.layout-single{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;min-height:80vh!important}.print-sheet-page.layout-single .print-card-item{width:120mm!important;padding:8mm!important;border:1.5pt dashed #cbd5e1!important}.print-sheet-page.layout-3x4{grid-template-columns:repeat(3,1fr)!important;grid-gap:4mm!important}.print-sheet-page.layout-4x5{grid-template-columns:repeat(4,1fr)!important;grid-gap:3mm!important}.print-card-item{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;padding:2.5mm!important;border:.5pt dashed #cbd5e1!important;border-radius:2mm!important;page-break-inside:avoid!important;break-inside:avoid!important;background:#ffffff!important}.print-card-qr{width:100%!important;max-width:48mm!important;height:auto!important;aspect-ratio:1/1!important}.layout-single .print-card-qr{max-width:100mm!important}.layout-4x5 .print-card-qr{max-width:36mm!important}.print-card-caption{display:flex!important;flex-direction:column!important;align-items:center!important;margin-top:1.5mm!important;text-align:center!important}.print-card-title{font-size:8pt!important;font-weight:700!important;color:#0f172a!important}.print-card-meta{font-size:6pt!important;color:#64748b!important}}