.pwa-toasts{position:fixed;left:0;right:0;top:calc(env(safe-area-inset-top) + 4.25rem);z-index:100;display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 8px;pointer-events:none}.pwa-live{display:flex;flex-direction:column;align-items:center;gap:8px}.pwa-toast{pointer-events:auto;display:flex;align-items:center;gap:8px;max-width:100%;padding:6px 6px 6px 14px;background:var(--surface, #14141a);color:var(--text, #fff);border:2px solid var(--border, #6e6e84);border-radius:12px;box-shadow:0 4px 16px #0009}.pwa-msg{font-weight:600}.pwa-btn{min-width:var(--tap, 44px);min-height:var(--tap, 44px);padding:0 14px;background:var(--surface-2, #22222c);border:2px solid var(--border, #6e6e84);border-radius:8px;cursor:pointer}.pwa-btn-primary{background:var(--accent, #ffd54a);border-color:var(--accent, #ffd54a);color:var(--accent-text, #000);font-weight:700}.cal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;height:100dvh;background:var(--bg, #000);color:var(--text, #fff);font:1.125rem/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.cal-header,.cal-body,.cal-footer{width:100%;max-width:560px}.cal-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(8px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) 8px calc(12px + env(safe-area-inset-left));background:var(--surface, #14141a);border-bottom:1px solid var(--border, #6e6e84)}.cal-indicator{margin:0;font-weight:700;color:var(--accent, #ffd54a)}.cal-body{flex:1 1 0;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px calc(16px + env(safe-area-inset-right)) 16px calc(16px + env(safe-area-inset-left))}.cal-title{margin:0 0 4px;font-size:1.5rem;line-height:1.2}.cal-title:focus{outline:3px solid var(--accent, #ffd54a);outline-offset:4px}.cal-eyes,.cal-muted{margin:0 0 12px;color:var(--muted, #c4c4d0);font-size:.95rem}.cal-list{margin:0 0 12px;padding-left:1.3em}.cal-list li{margin-bottom:8px}.cal-fieldset{margin:0 0 12px;padding:8px 12px;border:2px solid var(--border, #6e6e84);border-radius:8px}.cal-fieldset legend{padding:0 6px;font-weight:600}.cal-choice{display:flex;align-items:center;gap:12px;min-height:var(--tap, 44px);cursor:pointer}.cal-choice input{flex:0 0 auto;width:24px;height:24px;accent-color:var(--accent, #ffd54a)}.cal-field{display:block;margin:12px 0 4px;font-weight:600}.cal-input{width:100%;min-height:var(--tap, 44px);padding:8px 12px;border:2px solid var(--border, #6e6e84);border-radius:8px;background:var(--surface, #14141a);color:var(--text, #fff);font:inherit}.cal-input:focus{outline:3px solid var(--accent, #ffd54a);outline-offset:2px}.cal-input[aria-invalid=true]{border-color:var(--danger, #ff8a80)}.cal-textarea{resize:vertical}.cal-error{margin:4px 0 8px;color:var(--danger, #ff8a80)}.cal-note{margin:12px 0;padding:12px;border:2px solid var(--accent, #ffd54a);border-radius:8px;font-weight:600}.cal-figure{display:block;width:min(60vw,220px);height:auto;margin:8px auto 12px;border:2px solid var(--border, #6e6e84)}.cal-footer{display:flex;gap:12px;padding:12px calc(16px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));background:var(--surface, #14141a);border-top:1px solid var(--border, #6e6e84)}.cal-footer .cal-btn{flex:1 1 0}.cal-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;min-width:var(--tap, 44px);padding:0 16px;border:2px solid var(--accent, #ffd54a);border-radius:8px;font:inherit;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.cal-btn:focus-visible{outline:3px solid var(--text, #fff);outline-offset:2px}.cal-btn:disabled{opacity:.4;cursor:default}.cal-btn-primary{background:var(--accent, #ffd54a);color:var(--accent-text, #000)}.cal-btn-secondary,.cal-btn-ghost{background:transparent;color:var(--text, #fff)}.cal-btn-ghost{min-height:var(--tap, 44px);border-color:var(--border, #6e6e84)}.cal-wide{width:100%;margin-top:8px}.slider,.toggle,.segmented{margin:0 0 10px}.slider-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.slider-label{font-weight:600}.slider-value{color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.slider-unit{font-weight:400;color:var(--muted)}.slider-row{display:flex;align-items:center;gap:8px}.slider-input{flex:1 1 0;min-width:0;height:var(--tap, 44px);margin:0;padding:0;background:transparent;cursor:pointer;touch-action:pan-y;-webkit-appearance:none;-moz-appearance:none;appearance:none}.slider-input:disabled{opacity:.4;cursor:default}.slider-input::-webkit-slider-runnable-track{height:var(--tap, 44px);border-radius:8px;background:linear-gradient(to right,var(--accent) 0,var(--accent) var(--pct, 0%),var(--border) var(--pct, 0%),var(--border) 100%) center / 100% 10px no-repeat}.slider-input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:30px;height:var(--tap, 44px);border:3px solid var(--bg, #000);border-radius:10px;background:var(--text, #fff);box-shadow:0 0 0 2px var(--accent)}.slider-input::-moz-range-track{height:10px;border-radius:5px;background:var(--border)}.slider-input::-moz-range-progress{height:10px;border-radius:5px;background:var(--accent)}.slider-input::-moz-range-thumb{box-sizing:border-box;width:30px;height:var(--tap, 44px);border:3px solid var(--bg, #000);border-radius:10px;background:var(--text, #fff);box-shadow:0 0 0 2px var(--accent)}.slider-reset{flex:0 0 auto;width:var(--tap, 44px);min-width:var(--tap, 44px);height:var(--tap, 44px);padding:0;border:2px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);font-weight:700;cursor:pointer;touch-action:manipulation}.slider-reset:disabled{opacity:.4;cursor:default}.slider-help{margin:0;color:var(--muted);font-size:.85rem}.slider[data-disabled=true] .slider-label,.toggle[data-disabled=true] .toggle-label{color:var(--muted)}.toggle-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--tap, 44px);cursor:pointer}.toggle-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.toggle-track{position:relative;flex:0 0 auto;width:56px;height:32px;border:2px solid var(--border);border-radius:16px;background:var(--surface-2)}.toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:24px;height:24px;border-radius:50%;background:var(--text, #fff);transition:transform .12s ease}.toggle-input:checked+.toggle-track{border-color:var(--accent);background:var(--accent)}.toggle-input:checked+.toggle-track:after{background:var(--accent-text, #000);transform:translate(24px)}.toggle-input:focus-visible+.toggle-track{outline:3px solid var(--text, #fff);outline-offset:2px}.segmented-options{display:flex;gap:4px;margin-top:4px}.segmented-btn{flex:1 1 0;min-height:var(--tap, 44px);border:2px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);font-weight:600;cursor:pointer;touch-action:manipulation}.segmented-btn[aria-checked=true]{border-color:var(--accent);background:var(--accent);color:var(--accent-text, #000)}.radio-group{margin:0 0 10px;padding:0;border:0;min-width:0}.radio-legend{padding:0;font-weight:600}.radio-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.radio-option{flex:1 1 120px;display:flex;align-items:center;gap:12px;min-height:var(--tap, 44px);padding:4px 12px;border:2px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);font-weight:600;cursor:pointer;touch-action:manipulation}.radio-option[data-checked=true]{border-color:var(--accent)}.radio-input{flex:0 0 auto;width:24px;height:24px;margin:0;accent-color:var(--accent, #ffd54a)}.radio-option:focus-within{outline:3px solid var(--text, #fff);outline-offset:2px}.radio-group:disabled .radio-option{opacity:.5;cursor:not-allowed}.cmp{display:flex;flex-direction:column;gap:12px;min-width:0}.cmp-group{display:flex;flex-direction:column;gap:8px}.cmp-heading{margin:0;color:var(--muted);font-size:.85rem;font-weight:600}.cmp-help{margin:0;color:var(--muted);font-size:.9rem}.cmp-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:var(--tap);padding:0 14px;border:2px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);font-weight:600;cursor:pointer;touch-action:manipulation}.cmp-btn:hover:not(:disabled){border-color:var(--text)}.cmp-btn:disabled{opacity:.45;cursor:default}.cmp-btn-primary{border-color:var(--accent);background:var(--accent);color:var(--accent-text);font-weight:700}.cmp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}.sbs{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;gap:8px;padding:6px;background:#0a0a0e;overflow:hidden}.sbs[data-layout=stacked]{flex-direction:column}.sbs[data-layout=side-by-side]{flex-direction:row}.sbs-cell{position:relative;flex:1 1 0;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;margin:0}.sbs-label{position:absolute;top:6px;left:6px;z-index:1;padding:2px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-size:.85rem;font-weight:700}.sbs-label-sim{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.sbs-pic{position:relative;flex:0 0 auto;max-width:100%;max-height:100%}.sbs-pic canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.sbs-note,.sbs-empty{position:absolute;left:4px;right:4px;bottom:4px;margin:0;padding:4px 8px;border-radius:6px;background:#000000bf;color:var(--text);font-size:.8rem;text-align:center}.sbs-empty{top:50%;bottom:auto;transform:translateY(-50%);font-size:1rem;background:none;color:var(--muted)}.wipe{position:absolute;top:0;bottom:0;width:0;z-index:5;pointer-events:none}.wipe-handle{position:absolute;top:50%;left:-22px;width:44px;height:44px;margin-top:-22px;display:flex;align-items:center;justify-content:center;pointer-events:auto;cursor:ew-resize;touch-action:none;z-index:1}.wipe-handle:focus-visible{outline:none}.wipe-handle:focus-visible .wipe-knob{outline:3px solid var(--text);outline-offset:2px}.wipe-line{position:absolute;top:0;bottom:0;left:-8px;width:16px;pointer-events:auto;cursor:ew-resize;touch-action:none}.wipe-line:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:3px;margin-left:-1.5px;background:var(--accent);box-shadow:0 0 0 1px #000}.wipe-knob{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:3px solid #000;border-radius:50%;background:var(--accent);color:var(--accent-text)}.wipe-label{position:absolute;top:8px;padding:3px 10px;border-radius:999px;background:#000c;border:1px solid var(--border);color:var(--text);font-size:.85rem;font-weight:700;white-space:nowrap;pointer-events:none}.wipe-label-left{right:28px}.wipe-label-right{left:28px}.present{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;overflow:hidden;background:#000;color:#fff;cursor:pointer;user-select:none;-webkit-user-select:none;outline:none}.present-pic{position:absolute}.present-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.present-badge{position:absolute;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));padding:4px 16px;border-radius:999px;background:#0000008c;border:2px solid rgba(255,255,255,.55);color:#fff;font-size:clamp(1.4rem,5vw,2.6rem);font-weight:700;pointer-events:none}.present-warn{position:absolute;top:4.5rem;left:12px;right:12px;margin:0;text-align:center;color:#ffd54a;pointer-events:none}.present-buttons{position:absolute;bottom:calc(5rem + env(safe-area-inset-bottom));right:max(12px,env(safe-area-inset-right));z-index:10;display:flex;gap:8px;cursor:default}.present-btn{min-width:48px;min-height:48px;padding:0 16px;border:2px solid rgba(255,255,255,.7);border-radius:10px;background:#000c;color:#fff;font-weight:700;cursor:pointer;touch-action:manipulation}.present-btn[aria-pressed=true]{background:#ffd54a;border-color:#ffd54a;color:#000}.present-btn:focus-visible{outline:3px solid #fff;outline-offset:2px}.present-caption{position:absolute;left:0;right:0;bottom:0;z-index:6;display:flex;flex-wrap:wrap;gap:2px 14px;justify-content:center;padding:6px max(12px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:#000c;color:#e6e6ee;font-size:.8rem;text-align:center;pointer-events:none}.present-hint{color:#c4c4d0}.present .wipe{z-index:5}.fx-panel{display:flex;flex-direction:column}.fx-prompt{margin:0 0 8px;color:var(--muted)}.fx-link{align-self:flex-start;min-height:var(--tap, 44px);margin-bottom:8px;padding:0 12px;border:2px solid var(--border);border-radius:8px;background:var(--surface-2);font-weight:600;cursor:pointer;touch-action:manipulation}.fx-name{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.fx-name-input{min-height:var(--tap, 44px);padding:0 10px;border:2px solid var(--border);border-radius:8px;background:var(--bg, #000);color:var(--text);font:inherit}.fx-group{margin:0 0 6px;padding-top:6px;border-top:1px solid var(--border)}.fx-group-title{margin:0 0 6px;color:var(--accent);font-size:.95rem;font-weight:700;letter-spacing:.02em}.fx-details{margin-top:8px;border-top:1px solid var(--border)}.fx-summary{display:flex;align-items:center;min-height:var(--tap, 44px);font-weight:700;cursor:pointer}.fx-details-body{padding-bottom:8px}.export-group{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;border:0;min-width:0}.export-group>legend,.export-heading{padding:0;margin:6px 0 2px;font-weight:700}.export-check{display:flex;align-items:center;gap:12px;min-height:var(--tap, 44px);cursor:pointer}.export-check input{flex:0 0 auto;width:24px;height:24px;margin:0;accent-color:var(--accent)}.export-field{display:flex;flex-direction:column;gap:4px;margin:0 0 8px}.export-field>span{font-weight:600}.export-field input,.export-field textarea{width:100%;min-height:var(--tap, 44px);padding:8px 10px;border:2px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);font:inherit}.export-field textarea{resize:vertical;min-height:72px}.export-field input:focus,.export-field textarea:focus{outline:3px solid var(--text);outline-offset:1px}.export-fields-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.export-fixed-note{margin:0 0 8px;padding:8px 10px;border-left:4px solid var(--accent);background:var(--surface-2);color:var(--muted);font-size:.9rem}.export-thumb{display:block;width:100%;max-height:260px;object-fit:contain;border:2px solid var(--border);border-radius:8px;background:#111}.export-thumb[hidden]{display:none}.export-notice{margin:0;padding:8px 10px;border-left:4px solid var(--accent);background:var(--surface-2);font-size:.9rem}.export-link{align-self:flex-start;min-height:var(--tap, 44px);padding:0 4px;border:0;background:none;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer}.export-actions{position:sticky;bottom:0;z-index:1;display:flex;flex-direction:column;gap:8px;margin:0 -12px;padding:10px 12px 12px;border-top:1px solid var(--border);background:var(--surface)}.export-actions .export-status:empty{display:none}.export-panel{margin-bottom:-12px}.pf{display:flex;flex-direction:column;gap:14px;min-width:0}.pf-msg{margin:0;padding:8px 12px;border:2px solid var(--border);border-radius:8px;background:var(--surface-2);overflow-wrap:anywhere}.pf-msg-error{border-color:var(--danger);color:var(--danger)}.pf-card,.pf-item{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:2px solid var(--border);border-radius:10px;background:var(--surface-2);min-width:0}.pf-item[data-current=true]{border-color:var(--accent)}.pf-card-head,.pf-list-head,.pf-item-title{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.pf-item-title strong{min-width:0;overflow-wrap:anywhere}.pf-h{margin:0;font-size:1rem}.pf-label{color:var(--muted);font-size:.85rem}.pf-input{width:100%;min-height:var(--tap);padding:0 10px;border:2px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font:inherit}.pf-meta,.pf-note,.pf-hint{margin:0;color:var(--muted);font-size:.85rem;overflow-wrap:anywhere}.pf-note{color:var(--text);font-style:italic}.pf-state{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-weight:700;color:var(--accent)}.pf-state-ok{color:var(--muted);font-weight:600}.pf-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--accent)}.pf-tag{padding:2px 8px;border-radius:999px;background:var(--accent);color:var(--accent-text);font-size:.75rem;font-weight:700}.pf-row{display:flex;flex-wrap:wrap;gap:8px}.pf-list{display:flex;flex-direction:column;gap:10px;margin:8px 0 0;padding:0;list-style:none}.pf-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);min-width:var(--tap);padding:4px 14px;border:2px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-weight:600;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation}.pf-btn:hover:not(:disabled){border-color:var(--text)}.pf-btn:disabled{opacity:.45;cursor:default}.pf-btn-primary{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.pf-btn-danger{border-color:var(--danger);background:var(--danger);color:#000}.pf-file{overflow:hidden}.pf-file input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.pf-file:focus-within{outline:3px solid var(--text);outline-offset:2px}.tl{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;gap:8px;padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:var(--bg);color:var(--text)}.tl-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.tl-title{margin:0;flex:1 1 auto;text-align:center;font-size:1.05rem}.tl-controls{border:2px solid var(--border);border-radius:10px;background:var(--surface)}.tl-controls summary{min-height:var(--tap);padding:10px 12px;cursor:pointer;font-weight:600}.tl-controls-body{display:flex;flex-direction:column;gap:8px;max-height:40vh;padding:0 12px 12px;overflow-y:auto}.tl-profiles{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;border:0}.tl-check{display:flex;align-items:center;gap:10px;min-height:var(--tap)}.tl-check input{width:24px;height:24px;flex:0 0 auto}.tl-stage{flex:1 1 0;min-height:0;display:flex;gap:10px;margin:0;padding:0 0 6px;list-style:none;overflow-x:auto;overflow-y:auto;scroll-snap-type:x mandatory;overscroll-behavior:contain}.tl-tile{flex:0 0 86%;min-width:0;scroll-snap-align:center}.tl-pic{display:flex;align-items:center;justify-content:center;width:100%;padding:0;border:2px solid var(--border);border-radius:8px;background:#0a0a0e;overflow:hidden;cursor:zoom-in}.tl-pic img{display:block;width:100%;height:100%;object-fit:contain;-webkit-touch-callout:none}.tl-wait{color:var(--muted)}.tl-caption{display:flex;flex-direction:column;margin:6px 0 0;text-align:center;overflow-wrap:anywhere}.tl-caption span{color:var(--muted);font-size:.85rem}.tl-note,.tl-empty{margin:0;color:var(--muted);font-size:.8rem;text-align:center}.tl-large{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:8px;background:var(--bg)}.tl-large img{flex:1 1 0;min-height:0;max-width:100%;object-fit:contain}@media(min-width:900px){.tl-stage{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-content:start;scroll-snap-type:none}.tl-tile{flex:none}}.pf-preset[aria-pressed=true]{border-color:var(--accent, #ffd54a);font-weight:700}.pf-setting{display:flex;flex-direction:column;gap:8px}.pf-setting+.pf-setting{padding-top:8px;border-top:1px solid var(--border)}.tool-box{display:flex;flex-direction:column;gap:8px;margin-bottom:10px;padding:10px;border:2px solid var(--accent);border-radius:10px;background:var(--surface-2)}.tool-box-title{margin:0;font-weight:700}.tool-box-note{margin:0;color:var(--muted);font-size:.85rem}.tool-box .btn{align-self:stretch}.rg-add{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.rg-add .btn{min-width:0;padding:0 8px;white-space:normal;text-align:center;line-height:1.15}.rg-soon{flex-direction:column;gap:0;border-color:var(--border);background:var(--surface-2);color:var(--muted)}.rg-soon:disabled{cursor:default}.rg-soon span{font-size:.75rem;font-weight:400}.rg-empty{margin:0;color:var(--muted)}.rg-list{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}.rg-item{padding:6px;border:2px solid var(--border);border-radius:10px;background:var(--bg, #000)}.rg-item[data-selected=true]{border-color:var(--accent);background:var(--surface-2)}.rg-item[data-hidden=true] .rg-name{opacity:.55;text-decoration:line-through}.rg-line{display:flex;align-items:center;gap:4px}.rg-actions{margin-top:4px;flex-wrap:wrap}.rg-select{flex:1 1 0;min-width:0;min-height:var(--tap, 44px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:0 8px;border:0;border-radius:8px;background:transparent;text-align:left;cursor:pointer;touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.rg-name{max-width:100%;overflow:hidden;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.rg-kind{color:var(--muted);font-size:.8rem}.rg-rename{flex:1 1 0;min-width:0;min-height:var(--tap, 44px);padding:0 8px;border:2px solid var(--accent);border-radius:8px;background:var(--bg, #000);color:var(--text);font:inherit}.rg-delete{color:var(--danger)}.rg-effects{margin-left:auto}:root{--bg: #000;--surface: #14141a;--surface-2: #22222c;--border: #6e6e84;--text: #fff;--muted: #c4c4d0;--accent: #ffd54a;--accent-text: #000;--danger: #ff8a80;--tap: 44px;--sidebar-w: 360px}*{box-sizing:border-box}html,body,#app{height:100%;margin:0;overflow:hidden;background:var(--bg);color:var(--text);font:1rem/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--text);outline-offset:2px}.app{display:flex;flex-direction:column;height:100%;height:100dvh;min-width:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.app-main{display:contents}.topbar{position:relative;z-index:20;flex:0 0 auto;display:flex;align-items:center;gap:3px;padding:4px;background:var(--surface);border-bottom:1px solid var(--border)}.title-block{flex:1 1 0;min-width:0;padding-left:4px;line-height:1.15}.app-name{display:none;color:var(--muted);font-size:.7rem}.title{margin:0;font-size:.95rem;font-weight:600;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}@media(min-width:600px){.app-name{display:block}}.iconbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:var(--tap);min-width:var(--tap);height:var(--tap);min-height:var(--tap);padding:0;border:2px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation}.iconbtn:hover:not(:disabled){border-color:var(--text)}.iconbtn:disabled{opacity:.4;cursor:default}.iconbtn[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.iconbtn-solid{width:auto;padding:0 12px;font-weight:700}.iconbtn:focus-within{outline:3px solid var(--text);outline-offset:2px}.icon{display:block;width:24px;height:24px}.iconbtn input,.btn input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:0 0 auto;min-height:var(--tap);min-width:var(--tap);padding:0 16px;border:2px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--accent-text);font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation}.btn:focus-within{outline:3px solid var(--text);outline-offset:2px}.btn:disabled{opacity:.45;cursor:default}.btn-secondary{border-color:var(--border);background:var(--surface-2);color:var(--text)}.test-picker select{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;font-size:16px}.test-picker:focus-within{outline:3px solid var(--text);outline-offset:2px}.link-btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);padding:0 8px;border:0;background:none;color:var(--accent);text-decoration:underline;cursor:pointer}.menu-root{position:relative;flex:0 0 auto}.menu{position:absolute;top:calc(100% + 6px);right:0;z-index:30;min-width:220px;padding:10px;border:2px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:0 6px 24px #000c}.menu-label{display:block;margin-bottom:6px;color:var(--muted);font-size:.85rem}.menu-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.menu-sep{height:1px;margin:10px 0;background:var(--border)}.menu-item,.test-picker-menu{position:relative;display:flex;align-items:center;width:100%;min-height:var(--tap);margin-top:4px;padding:0 12px;border:2px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);text-align:left;font-weight:600;text-decoration:none;cursor:pointer;touch-action:manipulation}.menu-item:hover,.test-picker-menu:hover{border-color:var(--text)}.menu-perf{margin:0;color:var(--muted);font-size:.85rem;font-variant-numeric:tabular-nums}.menu-value{min-width:3.5em;text-align:center;font-weight:600}.workspace{flex:1 1 0;min-height:0;min-width:0;display:flex;flex-direction:column}.stage{position:relative;flex:1 1 0;min-height:0;min-width:0;overflow:hidden}.viewport{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#0a0a0e;touch-action:none;user-select:none;-webkit-user-select:none}.viewport[data-zoomed=true]{cursor:grab}.viewport-content{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}.viewport-canvas,.viewport-preview{width:100%;height:100%}.viewport-preview{position:absolute;left:0;top:0}.viewport-canvas{display:block}.viewport-overlay{position:absolute;left:0;top:0;overflow:hidden;pointer-events:none}.badge{position:absolute;top:8px;left:8px;padding:4px 10px;border-radius:999px;background:var(--accent);color:var(--accent-text);font-size:.85rem;font-weight:700;pointer-events:none}.empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;gap:16px;padding:16px;overflow-y:auto}.empty>:first-child{margin-top:auto}.empty>:last-child{margin-bottom:auto}.empty-eye{width:min(100%,320px)}.empty-eye .radio-group{margin:0}.empty-eye .radio-legend{text-align:center}.cta-row{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.btn-cta{min-height:52px;padding:0 20px;font-size:1.05rem}.hint{margin:0;color:var(--muted);text-align:center}.error{position:absolute;left:8px;right:8px;bottom:60px;z-index:7;margin:0;padding:8px 12px;border:2px solid var(--danger);border-radius:8px;background:var(--surface);color:var(--danger);text-align:center}.notice{position:absolute;left:8px;right:8px;top:8px;margin:0;padding:8px 12px;border:2px solid var(--accent);border-radius:8px;background:var(--surface);color:var(--text);text-align:center;pointer-events:none}.sheet{flex:0 0 auto;display:flex;flex-direction:column;min-height:0;min-width:0;border-top:2px solid var(--border);border-radius:14px 14px 0 0;background:var(--surface);transition:height .18s ease}.sheet[data-snap=collapsed]{height:auto}.sheet[data-snap=half]{height:38vh;height:38dvh}.sheet[data-snap=full]{height:72vh;height:72dvh}.sheet[data-snap=collapsed] .tabpanel{display:none}.sheet-head{flex:0 0 auto;display:flex;align-items:center;gap:3px;padding:4px;touch-action:none}.tabs{flex:1 1 0;min-width:0;display:flex;flex-wrap:wrap;gap:3px}.tab{flex:1 1 auto;min-width:max-content;min-height:var(--tap);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:2px 4px;border:2px solid transparent;border-radius:8px;background:transparent;color:var(--muted);font-size:.72rem;line-height:1.1;font-weight:600;white-space:nowrap;cursor:pointer;touch-action:manipulation}.tab-icon{display:block;flex:0 0 auto;width:20px;height:20px}.tab-label{display:block}@media(min-width:900px){.tab{font-size:.8rem}}.tab[aria-selected=true]{border-color:var(--accent);background:var(--surface-2);color:var(--text)}.sheet-toggle-icon{display:inline-flex;transition:transform .18s ease}.sheet-toggle-icon[data-snap=full]{transform:rotate(180deg)}.tabpanel{flex:1 1 0;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:8px 12px 12px}.panel-placeholder{margin:0;color:var(--muted)}.export-panel{display:flex;flex-direction:column;gap:10px}.export-btn{width:100%}.export-help,.export-status{margin:0;color:var(--muted);font-size:.9rem}.export-status{color:var(--text)}.export-error{color:var(--danger)}@media(min-width:900px){.workspace{flex-direction:row}.sheet,.sheet[data-snap]{flex:0 0 var(--sidebar-w);width:var(--sidebar-w);height:auto;border-top:0;border-left:2px solid var(--border);border-radius:0;transition:none}.sheet[data-snap=collapsed] .tabpanel{display:block}.sheet-toggle{display:none}}.footer{flex:0 0 auto;padding:6px 12px;border-top:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:.8rem;text-align:center}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.quickbar{position:absolute;left:0;right:0;bottom:8px;z-index:6;display:flex;justify-content:center;gap:8px;pointer-events:none}.quickbar .iconbtn{pointer-events:auto;background:var(--surface);box-shadow:0 2px 10px #000000b3}.quickbar .iconbtn[aria-pressed=true]{background:var(--accent)}.toast{position:absolute;left:8px;right:8px;top:8px;z-index:7;margin:0;padding:8px 12px;border:2px solid var(--accent);border-radius:8px;background:var(--surface);color:var(--text);text-align:center;pointer-events:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
