:root{--bg-app: #0e0e10;--bg-panel: #16161a;--bg-elev: #1d1d22;--bg-hover: #25252b;--line: #2a2a31;--line-strong: #3b3b45;--ink: #e8e8ee;--ink-mute: #9a9aa6;--ink-dim: #6c6c79;--accent: #ff5a5f;--accent-2: #4ea8ff;--warn: #ffd34e;--ok: #57d18a;--radius-s: 6px;--radius-m: 10px;--shadow: 0 12px 40px rgba(0, 0, 0, .5);--topbar-h: 52px;--timeline-h: 200px;--side-w: 52px;--inspector-w: 300px}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%;background:var(--bg-app);color:var(--ink);font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;overflow:hidden}body{-webkit-user-select:none;user-select:none}input,textarea,[contenteditable=true],.a-msg,.a-empty{-webkit-user-select:text;user-select:text}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{background:transparent;border:none;cursor:pointer}button:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}input,select,textarea{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-s);padding:6px 8px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent-2)}.app{display:grid;grid-template-rows:auto auto 1fr 4px var(--timeline-h);grid-template-columns:var(--side-w) 4px 1fr 4px var(--inspector-w);grid-template-areas:"topbar topbar topbar topbar topbar" "statusbar statusbar statusbar statusbar statusbar" "layers split-l stage split-r inspector" "split-t split-t split-t split-t split-t" "timeline timeline timeline timeline timeline";height:100%;width:100%}.app.inspector-collapsed{grid-template-columns:var(--side-w) 4px 1fr 0 0}.app.inspector-collapsed .split-r,.app.inspector-collapsed .inspector{display:none}.split{background:var(--line);user-select:none;position:relative;z-index:5;transition:background .12s ease}.split:hover,.split.dragging{background:var(--accent-2)}.split.split-l,.split.split-r{cursor:col-resize}.split.split-l{grid-area:split-l}.split.split-r{grid-area:split-r}.split.split-t{grid-area:split-t;cursor:row-resize}.statusbar{grid-area:statusbar;display:flex;align-items:center;gap:8px;padding:4px 12px;background:var(--bg-elev);border-bottom:1px solid var(--line);font-size:12px;color:var(--ink-mute);flex-wrap:wrap;row-gap:4px;overflow-x:auto;scrollbar-width:thin}.statusbar>*{flex-shrink:0}.statusbar .group{display:flex;gap:4px;align-items:center}.statusbar .label{color:var(--ink-dim);font-size:11px}.statusbar select,.statusbar input{height:26px;background:var(--bg-panel);border:1px solid var(--line);font-size:12px;padding:2px 6px}.statusbar .btn{height:26px;padding:0 8px;border-radius:4px;background:var(--bg-panel);border:1px solid var(--line);color:var(--ink)}.statusbar .btn:hover{background:var(--bg-hover)}.statusbar .btn.ghost{background:transparent;border-color:transparent;color:var(--ink-mute)}.statusbar .btn.ghost:hover{background:var(--bg-hover);color:var(--ink)}.statusbar .zoom-label{font-variant-numeric:tabular-nums;min-width:40px;text-align:center;color:var(--ink-mute);font-size:12px;cursor:pointer;padding:0 4px}.inspector-toggle{position:fixed;top:50%;right:calc(var(--inspector-w) + 2px);transform:translateY(-50%);width:22px;height:48px;border-radius:6px 0 0 6px;background:var(--bg-elev);border:1px solid var(--line);border-right:0;color:var(--ink-mute);z-index:25;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:right .18s ease,background .12s}.inspector-toggle:hover{background:var(--bg-hover);color:var(--ink)}.app.inspector-collapsed .inspector-toggle{right:0;border-right:1px solid var(--line);border-radius:6px 0 0 6px}.popout{position:fixed;top:var(--topbar-h);bottom:var(--timeline-h);width:360px;background:var(--bg-panel);border:1px solid var(--line);border-left:0;box-shadow:12px 0 32px #00000073;z-index:30;display:flex;flex-direction:column;transform:translate(-12px);opacity:0;pointer-events:none;transition:transform .18s ease,opacity .18s ease;overflow:hidden}.popout.show{transform:translate(0);opacity:1;pointer-events:auto}.popout-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--bg-elev)}.popout-header h3{font-size:14px;letter-spacing:-.01em}.popout-header .a-close{color:var(--ink-mute);width:28px;height:28px;border-radius:6px}.popout-header .a-close:hover{background:var(--bg-hover);color:var(--ink)}.popout-body{flex:1;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:10px}.popover{background:var(--bg-panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:12px;width:240px;display:flex;flex-direction:column;gap:10px;z-index:50}.popover-title{font-size:11px;color:var(--ink-mute);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.popover-field{display:flex;flex-direction:column;gap:4px}.popover-label{font-size:11px;color:var(--ink-mute)}.popover-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px}.popover-row .btn{height:28px;font-size:12px}.popover-row .btn.active{background:var(--accent);color:#fff}.popover-exit{margin-top:4px;font-size:12px}.popover input,.popover select,.popover textarea{width:100%;min-width:0;box-sizing:border-box}.history-popover{width:360px}.history-list{max-height:50vh;overflow-y:auto;display:flex;flex-direction:column;gap:1px;background:var(--bg-elev);border:1px solid var(--line);border-radius:6px;padding:4px;font-size:12px}.history-empty{text-align:center;color:var(--ink-dim);padding:16px 0;font-size:12px}.history-item{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;cursor:default}.history-item:hover{background:var(--bg-hover)}.history-arrow{font-size:12px;color:var(--ink-mute);text-align:center}.history-item--undo .history-arrow{color:var(--accent-2)}.history-item--redo .history-arrow,.history-item--redo .history-label{color:var(--ink-dim);opacity:.6}.history-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}.history-time{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:var(--ink-dim)}.history-cursor{text-align:center;font-size:10px;color:var(--accent);letter-spacing:.1em;padding:6px 0;font-weight:700;border-top:1px dashed rgba(255,90,95,.3);border-bottom:1px dashed rgba(255,90,95,.3);background:#ff5a5f0d;margin:4px 0}.history-footer{margin-top:8px;display:flex;justify-content:stretch}.history-footer .btn{flex:1;height:30px;font-size:12px}.history-footer .btn:disabled{opacity:.4;cursor:not-allowed}.topbar{grid-area:topbar;display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-panel);border-bottom:1px solid var(--line);flex-wrap:wrap;row-gap:6px;min-height:var(--topbar-h);height:auto;overflow:visible}.topbar>*{flex-shrink:0}.layers,.inspector,.timeline{min-width:0;min-height:0}.inspector .row input,.inspector .row select,.inspector .row textarea,.inspector .row>div{min-width:0}.inspector .kf-auto{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-mute);cursor:pointer}.inspector .kf-list{margin-top:6px;font-size:11px;color:var(--ink-mute);word-break:break-all;line-height:1.5}.topbar .brand{font-weight:800;letter-spacing:-.02em;color:var(--ink);margin-right:8px}.topbar .brand .dot{color:var(--accent)}.topbar .group{display:flex;gap:6px;align-items:center}.topbar .spacer{flex:1}.topbar .label{color:var(--ink-mute);font-size:12px;margin-right:4px}.topbar select,.topbar input{height:30px;background:var(--bg-elev);border:1px solid var(--line)}.topbar .btn{height:30px;padding:0 12px;border-radius:var(--radius-s);background:var(--bg-elev);border:1px solid var(--line);color:var(--ink);display:inline-flex;align-items:center;gap:6px;transition:background .12s ease,border-color .12s ease}.topbar .btn:hover{background:var(--bg-hover)}.topbar .btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.topbar .btn.primary:hover{filter:brightness(1.08)}.topbar .btn.ghost{background:transparent}.topbar .save-status{font-size:11px;color:var(--ink-dim);display:inline-flex;align-items:center;gap:6px;min-height:20px}.modal-title-with-logo{display:inline-flex;align-items:center;gap:8px}.modal-title-logo{width:22px;height:22px;object-fit:contain;flex-shrink:0}.topbar .about-btn{display:none}.topbar .btn .icon{vertical-align:middle}.topbar .btn .btn-label{margin-left:4px}@media (max-width: 720px){.topbar .about-btn{display:inline-flex}.topbar .btn .btn-label{display:none}}.topbar .save-status.saving:before{content:"";width:12px;height:12px;border:2px solid rgba(255,255,255,.18);border-top-color:var(--accent-2);border-radius:50%;animation:tb-spinner .8s linear infinite}.topbar .save-status.record{color:var(--accent)}@keyframes tb-spinner{to{transform:rotate(360deg)}}.privacy-notice{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--ink-dim);white-space:nowrap;margin-left:auto}.privacy-notice .privacy-star{color:var(--accent)}.privacy-notice .privacy-help{width:18px;height:18px;border-radius:50%;border:1px solid var(--line-strong);background:transparent;color:var(--ink-mute);font-size:10px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}.privacy-notice .privacy-help:hover{color:var(--ink);border-color:var(--ink);background:var(--bg-hover)}@media (max-width: 720px){.privacy-notice{display:none}}.layers{grid-area:layers;background:var(--bg-panel);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;overflow-y:auto;overflow-x:hidden;container-type:inline-size;container-name:layers;scrollbar-width:thin}.side-section{display:flex;flex-direction:column;border-bottom:1px solid var(--line);background:#ffffff06}.side-section+.side-section{background:#ffffff0a}.side-section+.side-section+.side-section{background:#ffffff0f}.side-section.dragging{opacity:.4}.side-section.drag-over{box-shadow:inset 0 2px 0 var(--accent-2)}.side-section-title{font-size:9px;font-weight:700;letter-spacing:.06em;color:var(--ink-dim);padding:6px 8px 2px;text-transform:uppercase;user-select:none;cursor:grab}.ai-top-row{padding:8px 6px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px}.ai-btn{background:linear-gradient(120deg,#8b5cf6,#ec4899,#f97316,#ec4899,#8b5cf6)!important;background-size:300% 300%!important;animation:ai-gradient-shift 6s ease-in-out infinite;border:0!important;color:#fff!important}.ai-btn:hover{filter:brightness(1.1) saturate(1.2);animation-duration:3s}@keyframes ai-gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.assistant-fab-group{display:none!important}.layers.layers-md .add-icon{width:100%;justify-content:flex-start;padding:0 10px;gap:8px}.layers.layers-md .add-icon-label{display:inline-block}.layers.layers-md .side-section-title{font-size:11px;padding:8px 12px 4px}.layers.layers-lg .side-section-title{font-size:12px}.add-icon-label{display:none;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;text-align:left}.layers .add-row{display:flex;flex-direction:column;gap:4px;padding:8px 6px;border-bottom:1px solid var(--line)}.layers .layers-toolbar{display:flex;flex-direction:column;gap:4px;padding:8px 6px;margin-top:auto;border-top:1px solid var(--line)}.layers .add-icon{width:38px;height:38px;margin:0 auto;border-radius:8px;background:var(--bg-elev);border:1px solid var(--line);color:var(--ink-mute);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.layers .add-icon:hover{background:var(--bg-hover);color:var(--ink);border-color:var(--line-strong)}.layers .add-icon.active{background:#ff5a5f2e;color:var(--accent);border-color:var(--accent)}.layers .list{flex:1;overflow-y:auto;padding:6px}.layers .item{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius-s);cursor:pointer;user-select:none}.layers .item:hover{background:var(--bg-hover)}.layers .item.selected{background:#ff5a5f26;outline:1px solid var(--accent)}.layers .item .kind{font-size:11px;color:var(--ink-dim)}.layers .item .name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layers .item .actions{display:flex;gap:4px;opacity:.7}.layers .item .actions button{color:var(--ink-mute);width:22px;height:22px;border-radius:4px}.layers .item .actions button:hover{background:var(--bg-elev);color:var(--ink)}.stage{grid-area:stage;background:#0a0a0c;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.stage .frame-wrap{position:relative}.stage .canvas-ruler{position:absolute;background:#14141c;pointer-events:none;z-index:1}.stage .canvas-ruler.ruler-corner{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}body.record-mode .stage .canvas-ruler,body.record-mode .stage .safe,body.record-mode .stage .safe-label,body.record-mode .stage .canvas-guide{display:none!important}body.record-mode.cap-region .stage .frame{outline:2px solid #ff5a5f;outline-offset:0}body.record-mode.cap-clip .stage .frame{overflow:hidden}body.record-mode.cap-timeline .timeline{display:grid!important;position:fixed;left:0;right:0;bottom:0;height:var(--timeline-h);z-index:90;box-shadow:0 -8px 24px #0000008c}.stage.tool-pan{cursor:grab}.stage.tool-pan:active{cursor:grabbing}.stage.tool-lasso{cursor:crosshair}.stage .canvas-guide{position:absolute;pointer-events:auto;z-index:8;cursor:pointer}.stage .canvas-guide-vertical{border-left:1px solid #5cd0ff;cursor:ew-resize}.stage .canvas-guide-horizontal{border-top:1px solid #5cd0ff;cursor:ns-resize}.stage .canvas-guide:before{content:"";position:absolute;inset:0}.stage .canvas-guide-vertical:before{left:-4px;width:9px;top:0;bottom:0}.stage .canvas-guide-horizontal:before{top:-4px;height:9px;left:0;right:0}.stage .canvas-guide.dragging{border-color:#ffd95c}.stage .canvas-guide.selected{filter:drop-shadow(0 0 4px currentColor)}.stage .canvas-guide.selected.canvas-guide-vertical{border-left-style:dashed}.stage .canvas-guide.selected.canvas-guide-horizontal{border-top-style:dashed}.stage .lasso-box{position:absolute;border:1px dashed var(--accent-2);background:#4ea8ff1f;pointer-events:none;z-index:30}.stage .layer.multi-selected{outline:2px solid var(--accent-2);outline-offset:1px}.layers .tool-row{display:flex;flex-direction:column;gap:4px;padding:8px 6px;border-bottom:1px solid var(--line)}.layer-color-picker{display:flex;flex-direction:column;gap:6px;width:100%}.layer-color-picker.cpk-details:not([open])>.lcp-row,.layer-color-picker.cpk-details:not([open])>.cpk-hsv{display:none}.layer-color-picker .cpk-summary-sw.empty{background:linear-gradient(45deg,transparent 45%,var(--ink-dim) 45%,var(--ink-dim) 55%,transparent 55%),var(--bg-elev)}.lcp-row{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.lcp-sw{width:18px;height:18px;border-radius:4px;border:1px solid rgba(255,255,255,.15);cursor:pointer;padding:0}.lcp-sw.active{outline:2px solid var(--ink);outline-offset:1px}.lcp-sw:hover{transform:scale(1.1)}.lcp-custom{width:26px;height:26px;padding:0;border:1px solid var(--line);border-radius:4px;background:transparent;cursor:pointer}.lcp-clear{height:24px;padding:0 8px;font-size:11px;background:var(--bg-elev);border:1px solid var(--line);border-radius:4px;color:var(--ink-mute);cursor:pointer}.lcp-clear:hover{color:var(--ink);background:var(--bg-hover)}.audio-scrubber{display:flex;flex-direction:column;gap:6px;width:100%;margin:4px 0}.audio-scrubber-len{font-size:11px;color:var(--ink-mute);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.audio-scrubber-lane{position:relative;height:28px;background:var(--bg-elev);border:1px solid var(--line);border-radius:4px;cursor:pointer;overflow:visible}.audio-scrubber-range{position:absolute;top:0;height:100%;background:#4ea8ff40;border-left:1px solid var(--accent-2);border-right:1px solid var(--accent-2)}.audio-scrubber-handle{position:absolute;top:-3px;width:12px;height:34px;margin-left:-6px;background:var(--accent-2);border-radius:3px;cursor:ew-resize;box-shadow:0 1px 3px #00000080;z-index:2}.audio-scrubber-handle.start{background:#4ea8ff}.audio-scrubber-handle.end{background:#5cd0ff}.audio-scrubber-tip{font-size:11px;color:var(--ink-mute);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-align:center}.timeline .tl-row-audio.selected{background:#4ea8ff2e;color:var(--accent-2)}.timeline .tl-bar-audio.selected{outline:2px solid var(--accent-2)}.color-picker-rich{display:flex;flex-direction:column;gap:6px;width:100%}.cpk-summary{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;background:var(--bg-elev);border:1px solid var(--line);border-radius:6px;list-style:none;user-select:none}.cpk-summary::-webkit-details-marker{display:none}.cpk-summary:after{content:"▾";margin-left:auto;color:var(--ink-dim);font-size:10px;transition:transform .15s}.color-picker-rich[open] .cpk-summary:after{transform:rotate(180deg)}.cpk-summary-sw{width:18px;height:18px;border-radius:4px;border:1px solid var(--line);flex-shrink:0}.cpk-summary-hex{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--ink-mute)}.color-picker-rich[open] .cpk-summary{margin-bottom:4px}.cpk-top{display:flex;gap:4px;align-items:center}.cpk-native{width:28px;height:28px;padding:0;border:1px solid var(--line);border-radius:4px;cursor:pointer}.cpk-hex{flex:1;height:28px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.cpk-eyedropper{width:28px;height:28px;border:1px solid var(--line);border-radius:4px;background:var(--bg-elev);color:var(--ink-mute);font-size:14px;cursor:pointer}.cpk-eyedropper:hover{color:var(--ink);background:var(--bg-hover)}.cpk-hsv{display:flex;flex-direction:column;gap:4px;width:100%}.cpk-sv{position:relative;width:100%;height:100px;border-radius:4px;cursor:crosshair;border:1px solid var(--line);touch-action:none}.cpk-pin{position:absolute;width:10px;height:10px;border:2px solid #fff;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 0 0 1px #0009}.cpk-hue{position:relative;width:100%;height:12px;border-radius:4px;cursor:ew-resize;border:1px solid var(--line);background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red);touch-action:none}.cpk-hue-pin{position:absolute;top:-2px;bottom:-2px;width:4px;background:#fff;border:1px solid #000;border-radius:2px;transform:translate(-50%);pointer-events:none}.cpk-presets{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.cpk-add-preset{width:18px;height:18px;border-radius:4px;border:1px dashed var(--line-strong);background:transparent;color:var(--ink-mute);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.cpk-add-preset:hover{color:var(--ink);border-color:var(--ink)}.modal.import-review{width:min(960px,calc(100vw - 40px));max-height:calc(100vh - 60px);display:flex;flex-direction:column;gap:12px}.import-review .review-head h3{margin-bottom:4px}.import-review .review-head p{color:var(--ink-mute);font-size:13px;line-height:1.6}.import-review .review-body{flex:1;min-height:200px;max-height:60vh;overflow-y:auto;padding-right:6px;display:flex;flex-direction:column;gap:16px}.import-review .review-section{display:flex;flex-direction:column;gap:6px}.import-review .review-section h4{font-size:13px;letter-spacing:-.01em;color:var(--ink);margin-bottom:4px}.review-risk-scroll{max-height:220px;overflow-y:auto;border:1px solid var(--line);border-radius:8px;padding:8px;background:var(--bg-elev);display:flex;flex-direction:column;gap:6px}.review-risk-card{border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:var(--bg-panel);font-size:12px;line-height:1.55}.review-risk-title{font-weight:700;margin-bottom:4px}.review-risk-detail{color:var(--ink-mute)}.review-card{border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--bg-elev)}.review-card.sev-high{border-color:var(--accent)}.review-sev{font-size:10px;padding:2px 6px;border-radius:4px;font-weight:700}.review-sev.sev-high{background:var(--accent);color:#fff}.review-sev.sev-medium{background:var(--warn);color:#2a2a31}.review-why{color:var(--ink-mute);font-size:12px;margin-bottom:6px;line-height:1.5}.review-instances{padding-left:16px;font-size:11px;line-height:1.5}.review-instances code{background:var(--bg-panel);padding:1px 4px;border-radius:3px}.review-src{color:var(--ink-dim);margin-right:6px}.review-ok{padding:12px;background:#57d18a1f;border:1px solid #57d18a;border-radius:6px;color:#57d18a}.review-prompt-text{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;background:var(--bg-elev);border:1px solid var(--line);border-radius:6px;padding:8px;color:var(--ink);resize:vertical}.review-ai-status{margin-top:8px;padding:10px;border:1px dashed var(--line);border-radius:6px;font-size:12px;color:var(--ink-mute);white-space:pre-wrap;line-height:1.55;min-height:28px}.review-ai-status.running{color:var(--accent-2)}.review-ai-status.error{color:var(--accent);border-color:var(--accent);border-style:solid}.review-ai-status.verdict-safe{color:#57d18a;border-color:#57d18a;border-style:solid}.review-ai-status.verdict-unsafe{color:var(--accent);border-color:var(--accent);border-style:solid}.review-ai-status.verdict-unknown{color:var(--warn);border-color:var(--warn);border-style:solid}.review-verdict-tag{display:inline-block;font-weight:700;margin-bottom:6px}.review-verdict-body{color:var(--ink);font-size:12px}.review-json{max-height:220px;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;background:var(--bg-elev);border:1px solid var(--line);border-radius:6px;padding:8px;white-space:pre}.review-disclaimer{margin-top:8px;padding:10px 12px;background:#ff5a5f14;border:1px solid rgba(255,90,95,.4);border-radius:6px;color:var(--accent);font-size:12px;line-height:1.55}.review-agree{display:flex;gap:8px;align-items:flex-start;font-size:12px;cursor:pointer;padding:6px 0}.review-agree input{margin-top:2px}.review-actions{justify-content:flex-end}.stage .frame{position:relative;background:#000;overflow:visible;box-shadow:var(--shadow)}.stage .frame>.bg-host{overflow:hidden}body.draw-mode .stage,body.draw-mode .stage .frame,body.draw-mode .stage .layer{cursor:crosshair!important}.stage .safe{position:absolute;border:1px dashed rgba(78,168,255,.5);pointer-events:none}.stage .safe-label{position:absolute;top:-22px;left:0;font-size:11px;color:#4ea8ffb3}.stage .layer{position:absolute;cursor:move}.stage .layer.selected{outline:2px solid var(--accent-2)}.stage .handle{position:absolute;width:14px;height:14px;background:var(--accent-2);border:2px solid white;border-radius:50%;box-shadow:0 2px 6px #00000080;z-index:10}.stage .handle:hover{transform:scale(1.2);background:var(--accent)}.stage .handle.nw{left:-7px;top:-7px;cursor:nwse-resize}.stage .handle.ne{right:-7px;top:-7px;cursor:nesw-resize}.stage .handle.sw{left:-7px;bottom:-7px;cursor:nesw-resize}.stage .handle.se{right:-7px;bottom:-7px;cursor:nwse-resize}.stage .handle.n{left:50%;margin-left:-7px;top:-7px;cursor:ns-resize}.stage .handle.s{left:50%;margin-left:-7px;bottom:-7px;cursor:ns-resize}.stage .handle.e{right:-7px;top:50%;margin-top:-7px;cursor:ew-resize}.stage .handle.w{left:-7px;top:50%;margin-top:-7px;cursor:ew-resize}.inspector{grid-area:inspector;background:var(--bg-panel);border-left:1px solid var(--line);overflow-y:auto}.inspector .empty{padding:24px 16px;color:var(--ink-dim);text-align:center}.inspector .section{border-bottom:1px solid var(--line);padding:12px 14px}.inspector .section .section-title{font-size:11px;font-weight:700;color:var(--ink-mute);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;cursor:pointer;user-select:none;list-style:none;display:flex;align-items:center;gap:6px}.inspector .section .section-title::-webkit-details-marker{display:none}.inspector .section .section-title:before{content:"▾";font-size:9px;color:var(--ink-dim);width:10px;display:inline-block;text-align:center;transition:transform .15s ease}.inspector .section:not([open]) .section-title:before{transform:rotate(-90deg)}.inspector .section:not([open]) .section-title{margin-bottom:0}.inspector .section .section-title:hover{color:var(--ink)}.inspector .section h4{font-size:11px;font-weight:700;color:var(--ink-mute);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}.inspector .row{display:grid;grid-template-columns:80px 1fr;align-items:center;gap:8px;margin-bottom:8px}.inspector .row label{color:var(--ink-mute);font-size:12px}.inspector .row input,.inspector .row select,.inspector .row textarea{width:100%}.inspector .row.split2{grid-template-columns:80px 1fr 1fr;gap:8px}.inspector textarea{resize:vertical;min-height:60px;font-family:inherit}.timeline{grid-area:timeline;background:var(--bg-panel);border-top:1px solid var(--line);display:grid;grid-template-rows:32px 1fr;grid-template-columns:240px 1fr;grid-template-areas:"tl-toolbar tl-toolbar" "tl-side    tl-tracks";min-height:0}.timeline .tl-toolbar{grid-area:tl-toolbar;display:flex;align-items:center;gap:6px;padding:0 10px;background:var(--bg-elev);border-bottom:1px solid var(--line);font-size:12px;color:var(--ink-mute)}.timeline .tl-tb-btn{height:24px;min-width:24px;padding:0 6px;border-radius:4px;background:transparent;border:1px solid transparent;color:var(--ink-mute);cursor:pointer;display:inline-flex;align-items:center;gap:4px}.timeline .tl-tb-btn:hover{background:var(--bg-hover);color:var(--ink)}.timeline .tl-tb-toggle.on{background:#ff5a5f2e;border-color:var(--accent);color:var(--accent)}.timeline .tl-tb-zoom{width:110px;height:4px;accent-color:var(--accent-2)}.timeline .tl-tb-info{min-width:38px;text-align:right;color:var(--ink-dim);font-variant-numeric:tabular-nums}.timeline .tl-tb-label{color:var(--ink-dim)}.timeline .tl-tb-sel{height:24px;padding:0 4px;background:var(--bg-panel);border:1px solid var(--line);border-radius:4px;font-size:12px}.timeline .tl-tb-sep{width:1px;height:16px;background:var(--line);margin:0 4px}.timeline .tl-tb-hint{font-size:10px;color:var(--ink-dim);white-space:nowrap}@media (max-width: 720px){.timeline .tl-tb-hint{display:none}}.timeline .tl-jog{display:inline-flex;align-items:center;gap:6px}.timeline .tl-jog-track{position:relative;width:130px;height:14px;background:linear-gradient(to right,#ff5a5f66,#ff5a5f1a 35%,#ffffff0a,#4ea8ff1a 65%,#4ea8ff66);border:1px solid var(--line);border-radius:8px;cursor:ew-resize;touch-action:none}.timeline .tl-jog-center{position:absolute;left:50%;top:-1px;bottom:-1px;width:1px;background:var(--ink-mute)}.timeline .tl-jog-knob{position:absolute;top:50%;left:50%;width:12px;height:12px;margin:-6px 0 0 -6px;background:#fff;border-radius:50%;pointer-events:none;box-shadow:0 1px 4px #0009}.timeline .tl-jog-label{font-size:10px;color:var(--ink-mute);font-variant-numeric:tabular-nums;min-width:42px}.timeline .tl-jog-input{width:56px;height:22px;padding:0 4px;background:var(--bg-elev);border:1px solid var(--line);border-radius:4px;color:var(--ink);text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.timeline .tl-jog-input:focus{outline:none;border-color:var(--accent-2)}.timeline .tl-side{grid-area:tl-side;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow-y:auto}.timeline .tl-side .tl-row-label{height:28px;display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:8px;padding:0 8px 0 10px;font-size:12px;color:var(--ink);cursor:pointer;user-select:none;border-bottom:1px solid rgba(255,255,255,.04)}.timeline .tl-side .tl-row-label:hover{background:var(--bg-hover)}.timeline .tl-side .tl-row-label.selected{background:#ff5a5f26;color:var(--accent)}.timeline .tl-side .tl-row-label.hidden-layer .tl-row-name{opacity:.45;text-decoration:line-through}.timeline .tl-side .tl-row-label.dragging{opacity:.4}.timeline .tl-side .tl-row-label.drag-over{box-shadow:inset 0 2px 0 var(--accent-2)}.timeline .tl-row-group{background:#4ea8ff14;font-weight:700}.timeline .tl-side .tl-row-label.tl-row-group{grid-template-columns:14px 1fr auto;gap:6px}.timeline .tl-group-caret{color:var(--accent-2);font-size:10px;text-align:center;user-select:none}.timeline .tl-bar.in-collapsed-group{opacity:.85;mix-blend-mode:lighten}.timeline .tl-row-kind{font-size:10px;color:var(--ink-dim);font-weight:700;text-align:center}.timeline .tl-row-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.timeline .tl-row-actions{display:flex;gap:2px;opacity:.4;transition:opacity .12s}.timeline .tl-row-label:hover .tl-row-actions,.timeline .tl-row-label.selected .tl-row-actions{opacity:1}.timeline .tl-row-act{width:22px;height:22px;border-radius:4px;background:transparent;border:0;color:var(--ink-mute);font-size:12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.timeline .tl-row-act:hover{background:var(--bg-hover);color:var(--ink)}.timeline .tl-row-act.danger:hover{background:#c0353a;color:#fff}.timeline .tl-row-kind .icon{display:block;margin:0 auto;color:var(--ink-mute)}.timeline .tl-row-color-chip{background:transparent;border:0;padding:0;cursor:pointer;border-radius:4px;transition:background .12s ease,transform .12s ease}.timeline .tl-row-color-chip:hover{background:var(--bg-hover);transform:scale(1.08)}.layer-edit-popover{width:260px}.layer-edit-popover .lcp-row{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.layer-edit-popover .lcp-sw{width:18px;height:18px;border-radius:4px;border:1px solid rgba(255,255,255,.15);cursor:pointer;padding:0}.layer-edit-popover .lcp-sw.active{outline:2px solid var(--ink);outline-offset:1px}.layer-edit-popover .lcp-sw:hover{transform:scale(1.1)}.layer-edit-popover .lcp-custom{width:26px;height:26px;padding:0;border:1px solid var(--line);border-radius:4px;background:transparent;cursor:pointer}.layer-edit-popover .lcp-clear{height:24px;padding:0 8px;font-size:11px;background:var(--bg-elev);border:1px solid var(--line);border-radius:4px;color:var(--ink-mute);cursor:pointer}.icon{display:inline-block;vertical-align:middle;flex-shrink:0}.timeline .tl-tracks{grid-area:tl-tracks;position:relative;overflow:auto;user-select:none}.timeline .tl-side:before{content:"";display:block;height:24px;border-bottom:1px solid var(--line);background:var(--bg-elev);flex-shrink:0;position:sticky;top:0;z-index:1}.timeline .tl-ruler{position:sticky;top:0;z-index:4;height:24px;border-bottom:1px solid var(--line);background:var(--bg-elev);font-size:10px;color:var(--ink-dim)}.timeline .tl-ruler .tick{position:absolute;top:0;bottom:0;pointer-events:none}.timeline .tl-ruler .tick.major{border-left:1px solid var(--line-strong);padding-left:4px;display:flex;align-items:center;color:var(--ink-mute)}.timeline .tl-ruler .tick.half{border-left:1px solid var(--line);padding-left:3px;display:flex;align-items:center;color:var(--ink-dim);font-size:9px}.timeline .tl-ruler .tick.minor{border-left:1px solid rgba(255,255,255,.06);height:6px;top:auto;bottom:0}.timeline .tl-tracks-inner{position:relative}.timeline .tl-frame-grid,.timeline .tl-second-grid{position:absolute;top:0;left:0;bottom:0;pointer-events:none;z-index:0}.timeline .tl-second-grid{z-index:0}.timeline .tl-row{position:relative;z-index:1}.timeline .tl-row{position:relative;height:28px;border-bottom:1px solid rgba(255,255,255,.04)}.timeline .tl-bar{position:absolute;top:4px;bottom:4px;background:#4ea8ff66;border:1px solid var(--accent-2);border-radius:4px;cursor:grab;display:flex;align-items:center;padding:0 8px;font-size:11px;color:#fff;white-space:nowrap;overflow:hidden}.timeline .tl-bar.selected{background:#ff5a5f80;border-color:var(--accent)}.timeline .tl-bar .resize{position:absolute;top:0;bottom:0;width:6px;cursor:ew-resize;background:#fff0}.timeline .tl-bar .resize.l{left:0}.timeline .tl-bar .resize.r{right:0}.timeline .tl-bar:hover .resize{background:#fff3}.timeline .tl-bar-label{pointer-events:none;overflow:hidden;text-overflow:ellipsis;flex:1}.timeline .tl-kf{position:absolute;top:50%;width:10px;height:10px;margin-left:-5px;margin-top:-5px;background:#ffd45a;border:1px solid rgba(0,0,0,.6);transform:rotate(45deg);z-index:2;cursor:pointer;box-shadow:0 0 0 1px #ffffff26}.timeline .tl-kf:hover{background:#fff}.timeline .tl-kf.outside{background:#ffd45a59}.timeline .tl-kf.dragging{background:#fff;box-shadow:0 0 0 2px var(--accent)}.timeline .tl-playhead{position:absolute;top:0;width:2px;background:var(--accent);z-index:5;pointer-events:none}.timeline .tl-playhead-head{position:absolute;top:0;left:-7px;width:16px;height:18px;background:var(--accent);pointer-events:auto;cursor:ew-resize;z-index:6;clip-path:polygon(0 0,100% 0,100% 60%,50% 100%,0 60%);box-shadow:0 1px 3px #0006}.timeline .tl-playhead-head:hover{background:#ff7a7e}body.viewer-mode .topbar,body.viewer-mode .layers,body.viewer-mode .inspector,body.viewer-mode .timeline,body.viewer-mode .split,body.viewer-mode .assistant-fab-group,body.viewer-mode .modal-bg{display:none!important}body.viewer-mode .app{grid-template-rows:1fr!important;grid-template-columns:1fr!important;grid-template-areas:"stage"!important}body.viewer-mode .stage{background:#000;cursor:pointer}body.viewer-mode .stage .layer.selected{outline:none}body.viewer-mode .stage .handle{display:none}body.viewer-mode .stage .safe,body.viewer-mode .stage .safe-label,.record-mode .topbar,.record-mode .statusbar,.record-mode .layers,.record-mode .inspector,.record-mode .inspector-toggle,.record-mode .split,.record-mode .timeline{display:none!important}.record-mode .app{grid-template-rows:1fr!important;grid-template-columns:1fr!important;grid-template-areas:"stage"!important}.record-mode .stage{background:#000}.record-mode .stage .layer.selected{outline:none}.record-mode .stage .safe,.record-mode .stage .safe-label{display:none!important}.record-mode .stage .handle{display:none}.record-mode .record-overlay{display:flex!important}.record-overlay{position:fixed;z-index:100;right:24px;top:50%;transform:translateY(-50%);display:none;flex-direction:column;gap:10px;padding:12px;background:#0000008c;backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.08);border-radius:16px}.record-overlay .btn{height:36px;padding:0 16px;border-radius:999px;background:var(--accent);color:#fff;border:none;white-space:nowrap;font-weight:700}.record-overlay .btn.ghost{background:#ffffff14}.countdown{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#000000c7;z-index:80;opacity:0;pointer-events:none;transition:opacity .2s ease}.countdown.show{opacity:1}.countdown .num{font-size:22vh;font-weight:900;color:#fff;letter-spacing:-.05em;text-shadow:0 0 60px rgba(255,90,95,.5)}.assistant-fab-group{position:fixed;right:24px;bottom:24px;display:flex;flex-direction:column;align-items:center;gap:6px;z-index:90;transition:opacity .18s ease,transform .18s ease}.assistant-fab-group.hide{opacity:0;pointer-events:none;transform:translateY(8px)}.assistant-fab-label{font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--ink);background:#000000b3;border:1px solid rgba(255,255,255,.08);padding:4px 10px;border-radius:999px;backdrop-filter:blur(8px);white-space:nowrap;pointer-events:none}.assistant-fab{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#ff8a8e);color:#fff;font-size:22px;box-shadow:0 12px 32px #ff5a5f80;transition:transform .18s ease}.assistant-fab:hover{transform:translateY(-2px) scale(1.04)}.assistant-panel{position:fixed;top:0;right:0;width:380px;height:100vh;background:var(--bg-panel);border-left:1px solid var(--line);box-shadow:-16px 0 40px #00000073;display:flex;flex-direction:column;transform:translate(100%);transition:transform .25s ease;z-index:95}.assistant-panel.open{transform:translate(0)}.a-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--bg-elev)}.a-title{font-weight:800;letter-spacing:-.02em}.a-close{color:var(--ink-mute);width:28px;height:28px;border-radius:6px}.a-close:hover{background:var(--bg-hover);color:var(--ink)}.a-settings{padding:12px 16px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.a-notice{background:#4ea8ff14;border:1px solid rgba(78,168,255,.3);border-radius:8px;padding:10px 12px;color:var(--ink-mute);font-size:11.5px;line-height:1.55;white-space:pre-wrap}.a-external{position:relative;overflow:hidden}.a-external:before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 0%,transparent 35%,rgba(78,168,255,.18) 50%,transparent 65%,transparent 100%);background-size:250% 100%;animation:a-shimmer 3.6s ease-in-out infinite;pointer-events:none;border-radius:inherit}@keyframes a-shimmer{0%{background-position:200% 0}to{background-position:-100% 0}}.a-external>summary,.a-external-body{position:relative;z-index:1}.a-external{background:#4ea8ff0f;border:1px solid rgba(78,168,255,.25);border-radius:8px;padding:8px 12px;font-size:12px;color:var(--ink-mute)}.a-external>summary{cursor:pointer;list-style:none;font-weight:700;color:var(--ink);padding:2px 0}.a-external>summary::-webkit-details-marker{display:none}.a-external[open]>summary{margin-bottom:8px}.a-external-body{line-height:1.55;display:flex;flex-direction:column;gap:6px}.a-ways{padding-left:14px}.a-ways li{margin:3px 0}.a-method-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:6px;padding:8px 10px;margin-top:6px}.a-method-title{font-weight:700;margin-bottom:4px;font-size:12px}.a-method-body{font-size:11.5px;line-height:1.55;color:var(--ink-mute)}.a-method-body a{color:var(--accent-2);text-decoration:underline}.a-prompt{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;background:var(--bg-elev);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:8px;resize:vertical}.a-copy{align-self:flex-start;height:28px;padding:0 12px}.a-row{display:grid;grid-template-columns:80px 1fr;gap:8px;align-items:center}.a-label{color:var(--ink-mute);font-size:12px}.a-row input,.a-row select{width:100%}.a-hint{color:var(--ink-dim);font-size:11px}.a-remember{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-mute)}.a-remember-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:var(--ink-mute);cursor:pointer;padding:2px 0}.a-remember-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.a-remember-cb{width:16px;height:16px;flex-shrink:0;margin:0}.a-powered-by{margin-top:8px;text-align:center;font-size:11px;color:var(--ink-dim)}.a-powered-by a{color:var(--accent-2);text-decoration:none}.a-powered-by a:hover{text-decoration:underline}.a-chat{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.a-empty{color:var(--ink-dim);font-size:12.5px;line-height:1.7;white-space:pre-wrap}.a-msg{padding:10px 12px;border-radius:10px;white-space:pre-wrap;line-height:1.5;font-size:13px}.a-user{align-self:flex-end;background:var(--accent);color:#fff;max-width:80%}.a-assistant{align-self:flex-start;background:var(--bg-elev);border:1px solid var(--line);max-width:92%}.a-status{padding:6px 16px;font-size:11px;color:var(--ink-dim);min-height:22px}.a-status.error{color:var(--accent)}.a-input{display:grid;grid-template-columns:1fr auto;gap:8px;padding:10px 14px 14px;border-top:1px solid var(--line);background:var(--bg-panel)}.a-input textarea{resize:vertical;min-height:44px;max-height:200px;font-family:inherit}.a-send{background:var(--accent);color:#fff;border-radius:8px;padding:0 14px;font-weight:700;align-self:stretch}.a-send:hover{filter:brightness(1.08)}.tab-bar{display:flex;gap:4px;background:var(--bg-elev);padding:4px;border-radius:999px;margin-top:12px}.tab-bar button{flex:1;height:30px;background:transparent;border-radius:999px;color:var(--ink-mute);font-weight:600;border:none}.tab-bar button.active{background:var(--accent);color:#fff}.tab-bar button:hover:not(.active){background:var(--bg-hover);color:var(--ink)}.modal-lg{width:min(640px,95vw)}.font-body{display:flex;flex-direction:column;gap:8px;margin-top:12px;max-height:60vh;overflow:hidden}.font-body input[type=text]{width:100%}.font-list{display:flex;flex-direction:column;gap:6px;overflow-y:auto;max-height:50vh;padding-right:4px}.font-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:12px;background:var(--bg-elev);border:1px solid var(--line);border-radius:8px}.font-row .font-preview{font-size:22px;letter-spacing:-.02em;color:var(--ink);line-height:1.1}.font-row .font-sub{grid-column:1;grid-row:2;font-size:11px;color:var(--ink-dim)}.font-row .btn{grid-row:1 / span 2;align-self:center}.add-form{background:var(--bg-elev);border:1px solid var(--line);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:8px}.add-form .form-title{font-size:12px;color:var(--ink-mute);text-transform:uppercase;letter-spacing:.06em;margin:0}.add-form .btn{align-self:flex-end}.export-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-top:12px}.export-card h4{font-size:14px;margin-bottom:4px}.export-card p{color:var(--ink-mute);font-size:12.5px;margin-bottom:10px}.export-options{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin:8px 0 10px}.export-toggle{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--ink)}.export-vol{grid-column:1 / -1;display:flex;gap:8px;align-items:center;font-size:12px;color:var(--ink-mute)}.export-vol input{flex:1}.import-review{max-width:720px}.review-head h3{letter-spacing:-.01em}.review-head p{color:var(--ink-mute);font-size:12.5px;margin-top:6px}.review-issues,.review-prompt-section,.review-json-section{background:var(--bg-elev);border:1px solid var(--line);border-radius:10px;padding:12px;margin-top:12px}.review-issues h4,.review-prompt-section h4,.review-json-section h4{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-mute);margin-bottom:10px}.review-ok{color:var(--ok);font-size:13px}.review-card{border-left:3px solid var(--ink-dim);background:var(--bg-app);border-radius:6px;padding:10px 12px;margin-top:8px}.review-card.sev-high{border-left-color:var(--accent)}.review-card.sev-medium{border-left-color:var(--warn)}.review-card-head{display:flex;gap:8px;align-items:center;margin-bottom:4px}.review-sev{font-size:10px;font-weight:800;letter-spacing:.06em;padding:2px 6px;border-radius:999px;color:#fff}.review-sev.sev-high{background:var(--accent)}.review-sev.sev-medium{background:var(--warn);color:#000}.review-cat{font-weight:700}.review-why{font-size:12px;color:var(--ink-mute);margin-bottom:6px}.review-instances{list-style:none;font-size:11px;color:var(--ink-mute)}.review-instances li{margin:2px 0;word-break:break-all}.review-src{display:inline-block;font-weight:700;color:var(--ink);margin-right:6px}.review-instances code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--bg-elev);padding:1px 4px;border-radius:3px}.review-prompt-text{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;background:var(--bg-app);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:8px 10px;margin-bottom:8px;resize:vertical}.review-json{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;background:var(--bg-app);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:8px 10px;max-height:280px;overflow:auto;margin-top:8px;white-space:pre}.review-actions{margin-top:14px}.script-split{display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;gap:12px;margin-top:12px;min-height:380px}.script-list{display:flex;flex-direction:column;gap:4px;background:var(--bg-elev);border:1px solid var(--line);border-radius:8px;padding:6px;max-height:30vh;overflow-y:auto}.script-add-row{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:6px}.script-add-row .btn{height:28px;font-size:12px}.script-empty{color:var(--ink-dim);font-size:12px;padding:12px;text-align:center}.script-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:6px;align-items:center;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:12px}.script-row:hover{background:var(--bg-hover)}.script-row.active{background:#ff5a5f26;outline:1px solid var(--accent)}.script-tag{font-size:9px;font-weight:800;letter-spacing:.05em;padding:2px 6px;border-radius:999px;color:#fff}.script-tag.css{background:var(--accent-2)}.script-tag.js{background:var(--warn);color:#000}.script-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}.script-del{width:22px;height:22px;border-radius:4px;color:var(--ink-mute);background:transparent;border:none}.script-del:hover{background:var(--bg-app);color:var(--accent)}.script-editor{display:flex;flex-direction:column;gap:8px}.script-editor-head input[type=text]{width:100%}.asset-section{margin-bottom:16px}.asset-section-head{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-mute);margin:8px 0}.asset-empty{grid-column:1 / -1;color:var(--ink-dim);font-size:12px;padding:24px;text-align:center;border:1px dashed var(--line);border-radius:8px}.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.asset-tile{background:var(--bg-elev);border:1px solid var(--line);border-radius:10px;overflow:hidden;display:flex;flex-direction:column}.asset-tile.current{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.asset-preview{position:relative;width:100%;aspect-ratio:1 / 1;background:#000;cursor:pointer;overflow:hidden}.asset-preview img,.asset-preview video{width:100%;height:100%;object-fit:cover;display:block}.asset-meta{padding:8px 10px 4px}.asset-name{font-size:12px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.asset-tags{display:flex;gap:4px;flex-wrap:wrap}.asset-tags .tag{font-size:10px;color:var(--ink-mute);background:var(--bg-app);border:1px solid var(--line);border-radius:999px;padding:2px 6px}.asset-actions{display:flex;gap:4px;padding:6px 8px 8px;border-top:1px solid var(--line)}.asset-actions .btn{flex:1;height:26px;font-size:11px;padding:0 6px}.asset-actions .btn.ghost{flex:0 0 auto;padding:0 8px}.modal-bg.as-popout{background:transparent;align-items:stretch;justify-content:flex-start;pointer-events:none}.modal-bg.as-popout .modal{margin:var(--topbar-h) 0 var(--timeline-h);margin-left:calc(var(--side-w) + 4px);width:min(420px,90vw);max-height:calc(100vh - var(--topbar-h) - var(--timeline-h));height:auto;overflow:auto;pointer-events:auto;border-radius:0 14px 14px 0;box-shadow:12px 0 32px #00000073;border-left:0;animation:popout-in .18s ease}@keyframes popout-in{0%{transform:translate(-12px);opacity:0}to{transform:translate(0);opacity:1}}.modal-bg{position:fixed;inset:0;background:#0009;display:none;align-items:center;justify-content:center;z-index:110}.modal-bg.show{display:flex}.modal{background:var(--bg-panel);border:1px solid var(--line);border-radius:14px;width:min(520px,92vw);padding:24px 26px;line-height:1.6;color:var(--ink);box-shadow:var(--shadow)}.modal h3{margin-bottom:8px;letter-spacing:-.01em}.modal p{color:var(--ink-mute);margin-bottom:8px;font-size:13px}.modal a{color:var(--accent-2)}.modal .row-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.drop-hint{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:#4ea8ff26;border:4px dashed var(--accent-2);z-index:200;font-size:18px;font-weight:700;color:var(--accent-2);pointer-events:none}.drop-hint.show{display:flex}.ctx-menu{position:fixed;z-index:1000;min-width:220px;background:var(--bg-elev);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 32px #00000080;padding:4px;font-size:12px;color:var(--ink);user-select:none;animation:ctx-pop 80ms ease-out}@keyframes ctx-pop{0%{opacity:0;transform:translateY(-2px) scale(.98)}to{opacity:1;transform:none}}.ctx-menu .ctx-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 12px;background:transparent;border:0;border-radius:4px;text-align:left;color:var(--ink);cursor:pointer;font-size:12px;font-family:inherit}.ctx-menu .ctx-item:hover{background:var(--accent-2);color:#fff}.ctx-menu .ctx-item.disabled{color:var(--ink-mute);cursor:default;pointer-events:none;opacity:.55}.ctx-menu .ctx-item.danger{color:#ff7a7e}.ctx-menu .ctx-item.danger:hover{background:#c0353a;color:#fff}.ctx-menu .ctx-shortcut{color:var(--ink-mute);font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ctx-menu .ctx-item:hover .ctx-shortcut{color:#fffc}.ctx-menu .ctx-sep{height:1px;background:var(--line);margin:4px 6px}
