*{box-sizing:border-box;margin:0;padding:0}:root{font-family:Plus Jakarta Sans,system-ui,sans-serif}[role=button]:focus-visible,[tabindex]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent,#7C5CFF);outline-offset:2px}body{overflow:hidden;background:#0a0b0e}#app,.root{height:100vh}.root{--bg:#0E1014;--panel:#15181F;--panel2:#1C2029;--line:#262B35;--text:#EEF1F5;--sub:#8A92A0;--chip:#21262F;--chip-on:#2C323D;display:flex;flex-direction:column;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.root[data-ui=light]{--bg:#EEF0F4;--panel:#FFFFFF;--panel2:#F4F5F8;--line:#E5E7EE;--text:#1A1D24;--sub:#6B7280;--chip:#EFF1F5;--chip-on:#E3E6EE}.topbar{min-height:56px;flex:0 0 auto;flex-wrap:wrap;gap:var(--space-4) var(--space-2);padding:var(--space-2) var(--space-4);background:var(--panel);border-bottom:1px solid var(--line)}.brand,.topbar{display:flex;align-items:center}.brand{gap:var(--space-2)}.logo{width:30px;height:30px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff}.brand-name{font-weight:800;font-size:var(--text-lg);letter-spacing:-.3px}.mode-toggle{display:flex;gap:3px;padding:3px;border-radius:calc(var(--radius-sm) + 3px);background:var(--chip);border:1px solid var(--line)}.mode-tab{display:flex;align-items:center;gap:var(--space-2);border:none;background:none;color:var(--sub);font:inherit;font-weight:700;font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;transition:background-color .12s,color .12s}.mode-tab.on{background:var(--accent);color:#fff}.mode-tab:not(.on):hover{color:var(--text)}.app-name{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--chip);border:1px solid var(--line)}.app-name .dot{width:7px;height:7px;border-radius:50%;background:var(--sub);opacity:.5;transition:background-color .2s,opacity .2s}.app-name .dot-idle,.app-name .dot-saved{background:var(--success);opacity:1}.app-name .dot-saving{background:var(--warning);opacity:1;animation:app-name-dot-pulse 1s ease-in-out infinite}.app-name .dot-error{background:var(--danger);opacity:1}@keyframes app-name-dot-pulse{0%,to{opacity:1}50%{opacity:.4}}.app-name input{background:none;border:none;color:var(--text);font:inherit;font-weight:700;font-size:var(--text-base);width:120px;outline:none}.spacer{flex:1}.plat-toggle{display:flex;gap:3px;padding:3px;border-radius:calc(var(--radius-sm) + 3px);background:var(--chip);border:1px solid var(--line)}.plat{border:none;background:none;color:var(--sub);font:inherit;font-weight:700;font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer}.plat.on{background:var(--panel);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.18)}.root[data-ui=light] .plat.on{box-shadow:0 1px 3px rgba(0,0,0,.08)}.btn{display:inline-flex;align-items:center;gap:var(--space-2);font:inherit;font-weight:var(--weight-bold);font-size:var(--text-base);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;border:1px solid var(--line)}.btn:disabled{opacity:.6;cursor:default}.btn.ghost{background:var(--chip);color:var(--text)}.btn.ghost.on{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--chip))}.btn.primary{background:var(--accent);color:#fff;border-color:transparent}.btn.danger{background:var(--chip);color:var(--danger);border-color:var(--line)}.btn.danger:hover{background:color-mix(in srgb,var(--danger) 14%,var(--chip));border-color:var(--danger)}.btn.sm{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);border-radius:var(--radius-sm)}.btn.md{padding:var(--space-2) var(--space-4);font-size:var(--text-base)}.btn.stacked{width:100%;flex-direction:column;align-items:flex-start;gap:3px;justify-content:flex-start;padding:var(--space-3) var(--space-4);text-align:left}.body{flex:1}.body,.rail{display:flex;min-height:0}.rail{width:var(--rail-w);flex:0 0 var(--rail-w);background:var(--panel);border-right:1px solid var(--line);flex-direction:row;transition:width var(--motion-base) var(--ease-out),flex-basis var(--motion-base) var(--ease-out);position:relative}.rail,.rail.collapsed{overflow:hidden}.rail-collapse-btn{position:absolute;top:var(--space-4);right:calc(-1 * var(--space-3) - 1px);width:26px;height:26px;border-radius:var(--radius-full);border:1px solid var(--line);background:var(--panel);color:var(--sub);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;transition:background var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out)}.rail-collapse-btn:hover{background:var(--chip-on);color:var(--text)}.rail-collapse-btn.flipped svg{transform:rotate(180deg)}.rail-expand-btn{position:fixed;top:72px;left:0;width:26px;height:26px;border-radius:0 var(--radius-full) var(--radius-full) 0;border:1px solid var(--line);border-left:none;background:var(--panel);color:var(--sub);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:6;transition:background var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out)}.rail-expand-btn:hover{background:var(--chip-on);color:var(--text)}.rail-title{font-size:var(--text-base);font-weight:800;letter-spacing:-.2px}.rail-sub{font-size:var(--text-xs);color:var(--sub);margin-top:2px;margin-bottom:var(--space-4)}.rail-cat-nav{flex:0 0 60px;width:60px;align-items:stretch;gap:var(--space-1);padding:var(--space-3) var(--space-2);border-right:1px solid var(--line);overflow-y:auto}.rail-cat-btn,.rail-cat-nav{display:flex;flex-direction:column}.rail-cat-btn{align-items:center;justify-content:center;gap:3px;background:none;border:none;border-radius:var(--radius-md);padding:var(--space-2) var(--space-1);color:var(--sub);cursor:pointer;transition:background-color var(--motion-fast) ease,color var(--motion-fast) ease}.rail-cat-btn:hover{color:var(--text);background:var(--chip)}.rail-cat-btn.on{color:#fff;background:var(--accent)}.rail-cat-label{font-size:9.5px;font-weight:700;line-height:1.2;text-align:center;letter-spacing:.1px}.rail-cat-body{flex:1;min-width:0;overflow-y:auto;overflow-x:hidden;padding:var(--space-5) var(--space-5)}.tpl-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.tpl-card{background:none;border:none;cursor:pointer;padding:0;display:flex;flex-direction:column;gap:var(--space-1);align-items:center}.tpl-thumb{width:100%;border-radius:var(--radius-md);overflow:hidden;border:2px solid transparent;box-shadow:0 4px 14px rgba(0,0,0,.28);display:flex;justify-content:center;background:#000;transition:transform .14s}.tpl-card:hover .tpl-thumb{transform:translateY(-2px)}.tpl-card.on .tpl-thumb{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent),0 14px 40px rgba(0,0,0,.45)}.tpl-name{font-size:var(--text-xs);font-weight:700;color:var(--sub)}.tpl-card.on .tpl-name{color:var(--text);font-weight:800}.upload-zone{margin:0 0 var(--space-4);border:1.5px dashed var(--line);border-radius:var(--radius-md);padding:var(--space-3);display:flex;flex-direction:column;align-items:center;gap:var(--space-2);cursor:pointer;background:var(--panel2);transition:border-color .15s}.upload-zone:hover{border-color:var(--accent)}.upload-zone svg{opacity:.5}.upload-zone span{font-size:var(--text-xs);font-weight:700;color:var(--sub);text-align:center;line-height:1.4}.stage{flex:1;min-width:0;display:flex;flex-direction:column;position:relative}.patt-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2)}.patt-card{background:none;border:none;padding:0;cursor:pointer;display:flex;flex-direction:column;gap:var(--space-1);align-items:center}.patt-sw{width:100%;height:34px;border-radius:var(--radius-sm);border:2px solid var(--line);overflow:hidden;background:#1b1f27;position:relative;transition:border-color .12s}.patt-card.on .patt-sw{border-color:var(--accent)}.patt-lbl{font-size:var(--text-xs);font-weight:700;color:var(--sub);letter-spacing:.2px}.patt-card.on .patt-lbl{color:var(--accent)}.stage-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6) var(--space-2)}.stage-title{font-size:var(--text-md);font-weight:800;letter-spacing:-.3px}.stage-sub{margin-top:2px}.stage-hint,.stage-sub{font-size:var(--text-sm);color:var(--sub)}.filmstrip{flex:1;display:flex;gap:var(--space-6);align-items:flex-start;overflow-x:auto;overflow-y:hidden;padding:var(--space-2) var(--space-6) var(--space-7)}.film-item{flex:0 0 auto;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.film-frame{border-radius:var(--radius-lg);overflow:hidden;border:2px solid transparent;box-shadow:0 10px 34px rgba(0,0,0,.4);transition:transform .15s,border-color .15s,box-shadow .15s}.film-item:hover .film-frame{transform:translateY(-3px)}.film-item.sel .film-frame{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent),0 14px 40px rgba(0,0,0,.45)}.film-cap{font-size:var(--text-xs);font-weight:700;color:var(--sub)}.film-item.sel .film-cap{color:var(--accent)}.storyboard-strip{display:flex;gap:var(--space-2);align-items:flex-start;overflow-x:auto;overflow-y:visible;padding:var(--space-3) var(--space-6) var(--space-2);border-bottom:1px solid var(--line)}.storyboard-item{flex:0 0 auto;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:var(--space-1);width:52px}.storyboard-swatch{position:relative;width:52px;height:52px;border-radius:var(--radius-sm);border:2px solid var(--line);display:flex;align-items:flex-start;justify-content:flex-start;transition:border-color .12s,transform .12s;overflow:visible}.storyboard-item:hover .storyboard-swatch{transform:translateY(-2px)}.storyboard-item.sel .storyboard-swatch{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.storyboard-item.drag-over .storyboard-swatch{border-color:var(--accent);border-style:dashed}.storyboard-item.dragging .storyboard-swatch{opacity:.4}.storyboard-idx{font-size:var(--text-xs);font-weight:800;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);background:rgba(0,0,0,.32);border-radius:var(--radius-sm);padding:1px var(--space-1);margin:3px}.storyboard-label{font-size:var(--text-xs);font-weight:600;color:var(--sub);text-align:center;line-height:1.3;max-width:56px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storyboard-item.sel .storyboard-label{color:var(--text)}.storyboard-badge{position:absolute;right:2px;bottom:2px;border:none;cursor:pointer;background:var(--chip);color:var(--accent);font:inherit;font-weight:800;font-size:var(--text-xs);letter-spacing:.2px;padding:2px var(--space-1);border-radius:var(--radius-sm);line-height:1.2;max-width:44px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storyboard-badge:hover{background:var(--chip-on)}.storyboard-role-menu{position:absolute;top:calc(100% + 4px);left:50%;transform:translateX(-50%);z-index:20;width:120px;box-shadow:0 10px 28px rgba(0,0,0,.35)}.storyboard-role-menu .seg-btn{text-align:left;padding:var(--space-2) var(--space-2)}.inspector{width:var(--insp-w);flex:0 0 var(--insp-w);background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0;position:relative;transition:width var(--motion-base) var(--ease-out),flex-basis var(--motion-base) var(--ease-out)}.inspector.collapsed{overflow:hidden;border-left:none}.insp-collapse-btn{position:absolute;top:var(--space-4);left:calc(-1 * var(--space-3) - 1px);width:26px;height:26px;border-radius:var(--radius-full);border:1px solid var(--line);background:var(--panel);color:var(--sub);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;transition:background var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out)}.insp-collapse-btn:hover{background:var(--chip-on);color:var(--text)}.insp-collapse-btn.flipped svg{transform:rotate(180deg)}.insp-expand-btn{position:fixed;top:72px;right:0;width:26px;height:26px;border-radius:var(--radius-full) 0 0 var(--radius-full);border:1px solid var(--line);border-right:none;background:var(--panel);color:var(--sub);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:6;transition:background var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out)}.insp-expand-btn:hover{background:var(--chip-on);color:var(--text)}.insp-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--line);font-weight:800;font-size:var(--text-md);flex-shrink:0;white-space:nowrap}.insp-badge{font-size:var(--text-xs);font-weight:700;color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full)}.insp-body{flex:1;min-width:0;overflow-y:auto;padding:var(--space-4) var(--space-5) var(--space-7)}@keyframes panel-fade-in{0%{opacity:0}to{opacity:1}}.insp-panel-content{animation:panel-fade-in var(--motion-fast) var(--ease-out)}.field{margin-bottom:var(--space-4);border-radius:var(--radius-md);transition:box-shadow .25s ease,background-color .25s ease}.field-highlight{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.acc{border:none;box-shadow:0 0 0 1px rgba(255,255,255,.08);border-radius:var(--radius-md);margin-bottom:var(--space-2);overflow:hidden;background:var(--chip);transition:box-shadow .25s ease}.root[data-ui=light] .acc{box-shadow:0 0 0 1px rgba(0,0,0,.06),0 1px 2px -1px rgba(0,0,0,.06),0 2px 4px rgba(0,0,0,.04)}.acc.open{background:var(--panel)}.acc-highlight{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 55%,transparent)}.acc-head{width:100%;display:flex;align-items:center;justify-content:space-between;background:none;border:none;cursor:pointer;padding:var(--space-3);color:var(--text)}.acc-head:hover{background:rgba(255,255,255,.03)}.acc-title{font-size:var(--text-sm);font-weight:800;letter-spacing:.2px;display:flex;align-items:baseline;gap:var(--space-2)}.acc-sub{font-size:var(--text-xs);font-weight:600;color:var(--sub);letter-spacing:0;text-transform:none}.acc-chev{color:var(--sub);transition:transform .18s ease}.acc.open .acc-chev{transform:rotate(180deg);color:var(--accent)}.acc-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--motion-base) var(--ease-out)}.acc-body-open{grid-template-rows:1fr}.acc-body-inner{overflow:hidden;min-height:0;padding:var(--space-1) var(--space-3) var(--space-4);border-top:1px solid var(--line)}.acc-body-inner .field:last-child{margin-bottom:0}.field-label{font-size:var(--text-sm);font-weight:700;color:var(--sub);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.4px}.inp,.ta{width:100%;background:var(--chip);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--text);font:inherit;font-size:var(--text-base);font-weight:600;padding:var(--space-2) var(--space-3);outline:none;resize:none}.inp:focus,.ta:focus{border-color:var(--accent)}.field-title .ta{font-size:var(--text-lg);font-weight:800}.field-subtitle .inp{font-size:var(--text-base);font-weight:600;color:var(--sub)}.seg{display:flex;gap:3px;padding:3px;background:var(--chip);border:1px solid var(--line);border-radius:calc(var(--radius-sm) + 3px)}.seg-btn{flex:1;border:none;background:none;color:var(--sub);font:inherit;font-weight:700;font-size:var(--text-sm);padding:var(--space-2) var(--space-1);border-radius:var(--radius-sm);cursor:pointer}.seg-btn.on{background:var(--panel);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.2)}.screen-pills{display:flex;flex-wrap:wrap;gap:var(--space-2)}.pill{border:1px solid var(--line);background:var(--chip);color:var(--sub);font:inherit;font-weight:600;font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);cursor:pointer}.pill.on{background:var(--accent);color:#fff;border-color:transparent}.font-picker{position:relative}.font-picker-combo{position:relative;display:flex;align-items:center}.font-picker-search{margin-bottom:0;width:100%;padding-right:44px}.font-picker-current-prev{position:absolute;right:var(--space-3);font-size:16px;color:var(--sub);pointer-events:none}.font-picker-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;max-height:320px;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:calc(var(--radius-sm) + var(--space-2));box-shadow:0 16px 40px rgba(0,0,0,.35);padding:var(--space-2)}.font-picker-empty{font-size:var(--text-sm);color:var(--sub);padding:var(--space-2)}.font-picker-group{display:flex;flex-direction:column}.font-picker-group-label{font-size:var(--text-xs);font-weight:700;color:var(--sub);text-transform:uppercase;letter-spacing:.4px;padding:var(--space-2) var(--space-2) 4px}.font-picker-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:none;background:none;color:var(--text);font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer}.font-picker-item.active,.font-picker-item:hover{background:var(--chip)}.font-picker-item.on{color:var(--accent);font-weight:700}.font-picker-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.font-picker-item-prev{font-size:16px;color:var(--sub);flex-shrink:0}.font-picker-item.on .font-picker-item-prev{color:var(--accent)}.pal-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-2)}.pal{aspect-ratio:1;border-radius:var(--radius-sm);border:2px solid transparent;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}.pal.on{border-color:var(--text)}.mini-link{margin-top:var(--space-2);background:none;border:none;color:var(--accent);font:inherit;font-weight:700;font-size:var(--text-sm);cursor:pointer;padding:0}.slider-row{display:flex;align-items:center;gap:var(--space-2)}.slider-row input[type=range]{flex:1;accent-color:var(--accent)}.img-adj-row{display:flex;align-items:center;gap:var(--space-2)}.img-adj-row .slider-row{flex:1}.slider-val{font-size:var(--text-sm);font-weight:700;color:var(--sub);min-width:46px;text-align:right;font-variant-numeric:tabular-nums}.slider-val-edit{background:none;border:none;padding:2px 3px;margin:-2px -3px;border-radius:var(--radius-sm);cursor:text;font:inherit;transition:background-color var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out)}.slider-val-edit:hover{background:var(--chip);color:var(--text)}.slider-val-input{width:52px;min-width:52px;font-size:var(--text-sm);font-weight:700;color:var(--text);text-align:right;font-variant-numeric:tabular-nums;background:var(--panel2);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:2px 5px;font-family:inherit}.slider-reset{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;margin:-2px;flex-shrink:0;background:none;border:none;border-radius:var(--radius-sm);color:var(--sub);cursor:pointer;position:relative;transition:background-color var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out)}.slider-reset:before{content:"";position:absolute;inset:-6px}.slider-reset:hover{background:var(--chip);color:var(--accent)}.apply-all{width:100%;margin-top:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);border:1px dashed var(--line);background:var(--chip);color:var(--text);font:inherit;font-weight:700;font-size:var(--text-sm);cursor:pointer}.apply-all:hover{border-color:var(--accent);color:var(--accent)}.apply-all.compact{width:auto;display:inline-flex;align-items:center;gap:var(--space-2);margin-top:0;padding:var(--space-1) var(--space-2);border-style:solid;border-radius:var(--radius-sm);font-size:var(--text-xs);background:color-mix(in srgb,var(--accent) 10%,var(--chip));border-color:color-mix(in srgb,var(--accent) 30%,var(--line));color:var(--accent)}.apply-all.compact:hover{background:color-mix(in srgb,var(--accent) 18%,var(--chip));border-color:var(--accent)}.apply-all-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.continuous-bg-hint{margin:var(--space-2) 0 0;font-size:var(--text-xs);font-weight:500;color:var(--sub);line-height:1.4}.export-stage{position:fixed;left:-20000px;top:0;pointer-events:none}.zoom-overlay{gap:var(--space-5)}.zoom-stage{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.zoom-card-wrap{border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 40px 110px rgba(0,0,0,.62);animation:modal-in var(--motion-base) var(--ease-out)}.zoom-card-wrap.leaving{animation:modal-out var(--motion-base) var(--ease-out)}.zoom-cap{font-size:var(--text-base);font-weight:800;color:#fff;letter-spacing:.3px}.zoom-cap span{color:rgba(255,255,255,.5);font-weight:600}.zoom-nav{width:52px;height:52px;border-radius:50%;flex-shrink:0;cursor:pointer;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px);transition:background .12s,transform .08s}.zoom-nav:hover:not(:disabled){background:rgba(255,255,255,.18)}.zoom-nav:active:not(:disabled){transform:scale(.96)}.zoom-nav:disabled{opacity:.28;cursor:default}.zoom-close{position:fixed;top:22px;right:26px;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;cursor:pointer;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;transition:background-color .12s,transform .08s}.zoom-close:hover{background:rgba(255,255,255,.18)}.zoom-close:active{transform:scale(.96)}.zoom-download{padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;font:inherit;font-weight:700;font-size:var(--text-sm);cursor:pointer;backdrop-filter:blur(8px);transition:background-color .12s,transform .08s}.zoom-download:hover:not(:disabled){background:rgba(255,255,255,.18)}.zoom-download:active:not(:disabled){transform:scale(.96)}.zoom-download:disabled{opacity:.5;cursor:default}.expprev-frame{position:relative;background:#0b0b0f;display:flex;align-items:center;justify-content:center}.expprev-img{display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.expprev-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:var(--text-base);font-weight:700;color:rgba(255,255,255,.72);letter-spacing:.3px}.expprev-err{color:#ff8080;padding:0 var(--space-6);text-align:center}.expprev-badge{font-size:var(--text-xs);font-weight:800;letter-spacing:.4px;color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,transparent);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full)}.expprev-actions{display:flex;gap:var(--space-3)}.expprev-primary{background:var(--accent);border-color:transparent}.expprev-primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 85%,#fff)}.exp-preview-item strong{color:var(--accent)}.card-count{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);background:var(--chip);border:1px solid var(--line);margin-right:var(--space-1)}.cc-label{font-size:var(--text-sm);font-weight:700;color:var(--sub)}.cc-btn{position:relative;background:none;border:none;color:var(--text);font-size:var(--text-md);font-weight:700;cursor:pointer;width:22px;height:22px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.cc-btn:before{content:"";position:absolute;inset:-11px}.cc-btn:hover{background:var(--panel2)}.cc-num{font-size:var(--text-md);font-weight:800;color:var(--text);min-width:16px;text-align:center;font-variant-numeric:tabular-nums}.film-item{transition:opacity .15s,transform .15s;cursor:grab}.film-item.dragging{opacity:.35;cursor:grabbing}.film-item.drag-over .film-frame{outline:2px dashed var(--accent);outline-offset:3px}.versions-bar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--line);flex-wrap:wrap;background:var(--panel2)}.ver-label{font-size:var(--text-xs);font-weight:800;color:var(--sub);text-transform:uppercase;letter-spacing:.4px;flex-shrink:0}.ver-chip{display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.ver-load{background:none;border:none;color:var(--text);font:inherit;font-size:var(--text-xs);font-weight:600;padding:var(--space-1) var(--space-2);cursor:pointer}.ver-load:hover{background:var(--panel)}.ver-del{background:none;border:none;border-left:1px solid var(--line);color:var(--sub);font-size:var(--text-xs);padding:var(--space-1) var(--space-2);cursor:pointer}.edit-tpl-btn,.save-ver-btn,.undo-btn{padding:var(--space-1) var(--space-2);font-size:var(--text-base)}.icon-upload-row{display:flex;align-items:center;gap:var(--space-3)}.app-icon-prev{width:44px;height:44px;border-radius:var(--radius-md);-o-object-fit:cover;object-fit:cover;border:1px solid var(--line);flex-shrink:0}.icon-upload-lbl{flex:1;display:block;cursor:pointer;text-align:center;font-size:var(--text-sm);font-weight:700;padding:var(--space-2);background:var(--chip);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--text)}.store-modal{width:min(90vw,820px);background:var(--panel);border-radius:var(--radius-lg);border:1px solid var(--line);box-shadow:0 32px 80px rgba(0,0,0,.55);overflow:hidden;animation:modal-in var(--motion-base) var(--ease-out)}.store-modal.leaving{animation:modal-out var(--motion-base) var(--ease-out)}.store-head{justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--line)}.store-app-row,.store-head{display:flex;align-items:center}.store-app-row{gap:var(--space-4)}.store-icon{-o-object-fit:cover;object-fit:cover;box-shadow:0 4px 12px rgba(0,0,0,.25)}.store-icon,.store-icon-ph{width:56px;height:56px;border-radius:var(--radius-md)}.store-icon-ph{background:linear-gradient(135deg,var(--accent),#FF7A59)}.store-appname{font-size:var(--text-lg);font-weight:800}.store-stars{font-size:var(--text-sm);color:var(--sub);margin-top:3px}.store-plat-tag{font-size:var(--text-xs);font-weight:700;color:var(--accent);margin-top:var(--space-1)}.store-shots{display:flex;gap:var(--space-3);padding:var(--space-5) var(--space-5);overflow-x:auto}.store-shots::-webkit-scrollbar{height:6px}.store-shot-wrap{flex-shrink:0;border-radius:var(--radius-md);overflow:hidden;box-shadow:0 6px 20px rgba(0,0,0,.3)}.store-foot{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);border-top:1px solid var(--line)}.store-install-btn{background:var(--accent);color:#fff;font-weight:800;font-size:var(--text-md);padding:var(--space-3) var(--space-7);border-radius:var(--radius-md);border:none;cursor:pointer}.store-hint{font-size:var(--text-xs);color:var(--sub)}.export-wrap{position:relative}.export-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:300;width:230px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 16px 48px rgba(0,0,0,.5);padding:var(--space-2)}.export-menu button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;background:none;border:none;color:var(--text);font:inherit;text-align:left;padding:var(--space-3);border-radius:var(--radius-md);cursor:pointer}.export-menu button:hover{background:var(--panel2)}.export-menu button strong{font-size:var(--text-base);font-weight:700}.export-menu button span{font-size:var(--text-xs);color:var(--sub)}.tpl-groups{display:flex;flex-direction:column;gap:var(--space-4)}.tpl-group-label{font-size:var(--text-xs);font-weight:800;color:var(--sub);text-transform:uppercase;letter-spacing:.6px;margin-bottom:var(--space-2)}.film-frame{position:relative}.film-actions{position:absolute;top:8px;right:8px;display:flex;gap:var(--space-1);opacity:.35;transition:opacity .15s;z-index:10}.film-actions:focus-within,.film-item:hover .film-actions{opacity:1}.film-act{position:relative;width:28px;height:28px;border-radius:var(--radius-sm);border:none;cursor:pointer;background:rgba(0,0,0,.65);backdrop-filter:blur(8px);color:#fff;display:flex;align-items:center;justify-content:center}.film-act:before{content:"";position:absolute;top:-8px;bottom:-8px;left:0;right:0}.film-act:hover{background:rgba(0,0,0,.85)}.film-act.danger:hover{background:#DC2626}.film-act:disabled{opacity:.3;cursor:default}.film-act:disabled:hover{background:rgba(0,0,0,.65)}.film-add{flex:0 0 auto;align-self:flex-start;margin:2px 0 var(--space-6);border:1.5px dashed var(--line);border-radius:var(--radius-lg);background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);color:var(--sub);font:inherit;font-size:var(--text-sm);font-weight:700;transition:border-color .15s,color .15s,background-color .15s}.film-add:hover{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,transparent)}.insp-panel{flex:1;display:flex;min-height:0;overflow:hidden}.insp-rail{flex:0 0 60px;width:60px;align-items:stretch;gap:var(--space-1);padding:var(--space-3) var(--space-2);border-right:1px solid var(--line);overflow-y:auto}.insp-rail,.insp-rail-btn{display:flex;flex-direction:column}.insp-rail-btn{align-items:center;justify-content:center;gap:3px;background:none;border:none;border-radius:var(--radius-md);padding:var(--space-2) var(--space-1);color:var(--sub);cursor:pointer;transition:background-color var(--motion-fast) ease,color var(--motion-fast) ease}.insp-rail-btn:hover{color:var(--text);background:var(--chip)}.insp-rail-btn.on{color:#fff;background:var(--accent)}.insp-rail-label{font-size:9.5px;font-weight:700;line-height:1.2;text-align:center;letter-spacing:.1px}.img-gallery{margin-top:var(--space-4)}.gallery-label{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);font-weight:800;color:var(--sub);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-2)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.img-thumb{position:relative;aspect-ratio:9/19.5;border-radius:var(--radius-sm);overflow:hidden;cursor:grab;border:1.5px solid var(--line);transition:transform .12s,border-color .12s}.img-thumb:hover{transform:scale(1.04);border-color:var(--accent)}.img-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;pointer-events:none;outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}.root[data-ui=light] .img-thumb img{outline-color:rgba(0,0,0,.1)}.root:not([data-ui=light]) .img-thumb img{outline-color:rgba(255,255,255,.1)}.img-thumb-rm{position:absolute;top:3px;right:3px;width:18px;height:18px;border-radius:50%;background:rgba(0,0,0,.72);color:#fff;border:none;font-size:var(--text-xs);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.35;transition:opacity .12s}.img-thumb-rm:before{content:"";position:absolute;inset:-13px}.img-thumb-rm:focus-visible,.img-thumb:hover .img-thumb-rm{opacity:1}.asl-add{display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;margin-bottom:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);border:1.5px dashed var(--line);background:var(--panel2);color:var(--sub);font:inherit;font-weight:700;font-size:var(--text-sm);cursor:pointer;transition:border-color .15s,color .15s}.asl-add:hover{border-color:var(--accent);color:var(--accent)}.asl-add-row{display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}.asl-add-row .asl-add{width:auto;flex:1;margin-bottom:0}.asl-empty{font-size:var(--text-sm);color:var(--sub);text-align:center;padding:var(--space-5) var(--space-2);line-height:1.5;text-wrap:pretty}.asl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.asl-card{display:flex;flex-direction:column;gap:var(--space-1);cursor:pointer}.asl-thumb{position:relative;aspect-ratio:3/4;border-radius:var(--radius-sm);overflow:hidden;border:1.5px solid var(--line);background:var(--chip);transition:border-color .12s,transform .12s}.asl-card:hover .asl-thumb{border-color:var(--accent);transform:translateY(-1px)}.asl-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;pointer-events:none;outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}.root[data-ui=light] .asl-thumb img{outline-color:rgba(0,0,0,.1)}.root:not([data-ui=light]) .asl-thumb img{outline-color:rgba(255,255,255,.1)}.asl-badge{left:4px;bottom:4px;font-size:var(--text-xs);font-weight:700;padding:2px var(--space-2);border-radius:var(--radius-full);letter-spacing:.2px}.asl-badge,.asl-rm{position:absolute;background:rgba(0,0,0,.72);color:#fff}.asl-rm{top:3px;right:3px;width:18px;height:18px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.35;transition:opacity .12s}.asl-rm:before{content:"";position:absolute;inset:-7px}.asl-card:hover .asl-rm,.asl-rm:focus-visible{opacity:1}.asl-zoom{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:rgba(0,0,0,.72);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.35;transition:opacity .12s}.asl-zoom:before{content:"";position:absolute;inset:-7px}.asl-card:hover .asl-zoom,.asl-zoom:focus-visible{opacity:1}.asl-preview-img{max-width:100%;max-height:70vh;display:block;margin:0 auto;border-radius:var(--radius-md)}.asl-meta{display:flex;flex-direction:column;gap:1px}.asl-name{font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asl-dim,.asl-name{font-size:var(--text-xs)}.asl-dim{font-weight:600;color:var(--sub)}.ai-asset-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-2)}.ai-asset-thumb{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;border:1.5px solid var(--line);background:var(--chip);transition:border-color .12s,transform .12s}.ai-asset-thumb:hover{border-color:var(--accent);transform:translateY(-1px)}.ai-asset-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;pointer-events:none}.ai-asset-thumb.on{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.ai-asset-check{position:absolute;top:3px;right:3px;width:16px;height:16px;border-radius:50%;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.6);color:#fff;display:flex;align-items:center;justify-content:center}.ai-asset-thumb.on .ai-asset-check{background:var(--accent);border-color:var(--accent)}.film-item.img-drop .film-frame{outline:2px solid var(--success);outline-offset:3px;box-shadow:0 0 0 6px rgba(34,197,94,.18)}.img-card-editor{background:var(--panel2);border:1px solid var(--line);border-radius:calc(var(--radius-sm) + var(--space-3));padding:var(--space-3);margin-bottom:var(--space-4);flex-direction:column}.img-card-editor,.img-card-top{display:flex;gap:var(--space-3)}.img-card-top{align-items:center}.img-card-preview{width:48px;height:86px;-o-object-fit:cover;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--line);flex-shrink:0}.img-card-title{font-size:var(--text-sm);font-weight:800;color:var(--text);margin-bottom:var(--space-1)}.img-card-meta{flex:1}.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);z-index:2000;background:var(--panel);color:var(--text);border-left:1px solid var(--line);border:1px solid var(--line);border-left-width:3px;border-radius:var(--radius-md);padding:var(--space-3) var(--space-5);font-size:var(--text-base);font-weight:700;box-shadow:0 12px 36px rgba(0,0,0,.45);animation:toast-in .22s cubic-bezier(.2,.9,.3,1.2)}.toast.leaving{animation:toast-out var(--motion-base,.2s) var(--ease-out,cubic-bezier(.16,1,.3,1)) forwards}.toast.success{border-left-color:var(--success)}.toast.error{border-left-color:var(--danger)}.toast.warning{border-left-color:var(--warning)}@keyframes toast-in{0%{opacity:0;transform:translateX(-50%) translateY(12px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@keyframes toast-out{0%{opacity:1;transform:translateX(-50%) translateY(0)}to{opacity:0;transform:translateX(-50%) translateY(12px)}}.btn{transition:opacity .12s,transform .08s}.btn:active{transform:scale(.96)}.pill,.seg-btn{transition:background-color .12s,color .12s,border-color .12s}.pal,.tpl-card{transition:border-color .12s}.inp:focus-visible,.ta:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}.ai-btn{background:linear-gradient(135deg,var(--accent),#C026D3);color:#fff;border-color:transparent;box-shadow:0 2px 12px rgba(124,92,255,.35)}.ai-btn:hover{opacity:.9}@keyframes modal-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}@keyframes backdrop-out{0%{opacity:1}to{opacity:0}}.ai-overlay{position:fixed;inset:0;background:var(--backdrop);backdrop-filter:blur(var(--backdrop-blur));display:flex;align-items:center;justify-content:center;z-index:1000;animation:backdrop-in var(--motion-base) var(--ease-out)}.ai-overlay.leaving{animation:backdrop-out var(--motion-base) var(--ease-out)}.ai-modal{width:500px;background:var(--panel);border-radius:var(--radius-lg);border:1px solid var(--line);box-shadow:0 32px 80px rgba(0,0,0,.55);overflow:hidden;animation:modal-in var(--motion-base) var(--ease-out)}.ai-modal.leaving{animation:modal-out var(--motion-base) var(--ease-out)}.ai-modal-head{justify-content:space-between;padding:var(--space-5) var(--space-6) var(--space-4);border-bottom:1px solid var(--line)}.ai-modal-head,.ai-modal-title{display:flex;align-items:center}.ai-modal-title{gap:var(--space-2);font-size:var(--text-md);font-weight:800;background:linear-gradient(135deg,#A78BFA,#F472B6);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.ai-close{background:none;border:none;color:var(--sub);font-size:var(--text-lg);cursor:pointer;line-height:1}.ai-modal-body{padding:var(--space-5) var(--space-6) var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);max-height:78vh;overflow-y:auto}.ai-ta{min-height:120px}.ai-hint{color:var(--sub);line-height:1.5;text-wrap:pretty}.ai-hint,.ai-prov .seg-btn{font-size:var(--text-sm)}.ai-key-row{display:flex;gap:var(--space-2)}.ai-key-row .inp{flex:1;font-family:ui-monospace,Menlo,monospace;font-size:var(--text-sm)}.ai-test{white-space:nowrap}.ai-status-ok{color:var(--success);font-weight:700}.ai-status-bad{color:var(--danger);font-weight:700}.ai-model-search{margin-bottom:var(--space-2)}.ai-model-list{max-height:190px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--chip)}.ai-model-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);cursor:pointer;border-bottom:1px solid var(--line)}.ai-model-item:last-child{border-bottom:none}.ai-model-item:hover{background:var(--panel2)}.ai-model-item.on{background:color-mix(in srgb,var(--accent) 16%,var(--panel));box-shadow:inset 2px 0 0 var(--accent)}.ai-model-name{font-size:var(--text-sm);font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-model-cost{font-size:var(--text-xs);font-weight:600;color:var(--sub);white-space:nowrap;flex-shrink:0}.ai-free{color:var(--success);font-weight:800}.ai-gen-btn{width:100%;justify-content:center;padding:var(--space-3);font-size:var(--text-md);gap:var(--space-2)}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.crop-overlay{position:fixed;inset:0;background:var(--backdrop);backdrop-filter:blur(var(--backdrop-blur));display:flex;align-items:center;justify-content:center;z-index:1000;animation:backdrop-in var(--motion-base) var(--ease-out)}.crop-overlay.leaving{animation:backdrop-out var(--motion-base) var(--ease-out)}.crop-modal{width:min(92vw,460px);background:var(--panel);border-radius:var(--radius-lg);border:1px solid var(--line);box-shadow:0 32px 80px rgba(0,0,0,.55);overflow:hidden;animation:modal-in var(--motion-base) var(--ease-out)}.crop-modal.leaving{animation:modal-out var(--motion-base) var(--ease-out)}.crop-modal-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6) var(--space-4);border-bottom:1px solid var(--line)}.crop-modal-title{font-size:var(--text-md);font-weight:800}.crop-modal-body{padding:var(--space-5) var(--space-6) var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);max-height:78vh;overflow-y:auto}.crop-area{position:relative;width:100%;max-height:56vh;margin:0 auto;overflow:hidden;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--chip)}.crop-warning{font-size:var(--text-sm);color:var(--warning);font-weight:600;line-height:1.4}.crop-zoom-row{display:flex;align-items:center;justify-content:center;gap:var(--space-3)}.crop-zoom-btn{width:34px;height:34px;padding:0;justify-content:center;font-size:var(--text-lg);font-weight:800}.crop-zoom-val{font-size:var(--text-base);font-weight:700;color:var(--sub);min-width:52px;text-align:center;font-variant-numeric:tabular-nums}.crop-quick-row{display:flex;gap:var(--space-2)}.capture-img-modal{width:min(94vw,420px)}.capture-url-row{display:flex;gap:var(--space-2)}.capture-url-row .inp{flex:1}.capture-phone-frame{display:flex;justify-content:center;padding:var(--space-3) 0}.capture-phone-viewport{width:280px;height:600px;border-radius:32px;border:8px solid #1a1a1a;overflow:hidden;position:relative;background:#000;box-shadow:0 20px 50px rgba(0,0,0,.4)}.capture-phone-viewport iframe{width:100%;height:100%;border:0;background:#fff}.capture-actions-row{display:flex;align-items:center;justify-content:center;gap:var(--space-3)}.capture-shot-btn{min-width:180px;justify-content:center}.capture-saved-count{font-size:var(--text-sm);font-weight:700;color:var(--success)}.capture-hint{font-size:var(--text-xs);color:var(--sub);line-height:1.5;text-align:center;margin:0}.crop-quick-row .btn{flex:1;justify-content:center}.crop-modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--line)}.icon-wrap{position:relative;flex-shrink:0}.icon-inp{cursor:pointer;font-size:var(--text-lg);padding:var(--space-2) var(--space-1);text-align:center;width:44px;background:var(--chip)}.emoji-picker{position:absolute;top:calc(100% + 6px);left:0;z-index:200;width:272px;max-width:calc(100vw - 24px);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 12px 40px rgba(0,0,0,.45);overflow:hidden}.ov-add-row .emoji-picker{left:auto;right:0}.emoji-cats{display:flex;gap:2px;padding:var(--space-2) var(--space-2) 0;overflow-x:auto;flex-wrap:nowrap}.emoji-cats::-webkit-scrollbar{display:none}.emoji-cat{flex-shrink:0;font-size:var(--text-xs);font-weight:700;color:var(--sub);background:none;border:none;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap}.emoji-cat.on{background:var(--panel2);color:var(--text)}.emoji-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;padding:var(--space-2);max-height:160px;overflow-y:auto}.emoji-btn{background:none;border:none;font-size:var(--text-xl);padding:var(--space-2);border-radius:var(--radius-sm);cursor:pointer;transition:background .1s}.emoji-btn:hover{background:var(--panel2)}.fc-fields{flex:1;gap:var(--space-1)}.chips-editor,.fc-fields{display:flex;flex-direction:column}.chip-row,.chips-editor{gap:var(--space-2)}.chip-row{display:flex;align-items:center}.chip-row .inp{flex:1}.upload-screen-btn{display:flex;align-items:center;gap:var(--space-2);width:100%;cursor:pointer;justify-content:center;white-space:nowrap;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font:inherit;font-size:var(--text-base);font-weight:700;margin-bottom:var(--space-3);transition:opacity .12s}.upload-screen-btn:hover{opacity:.88}.upload-screen-thumb{width:28px;height:50px;-o-object-fit:cover;object-fit:cover;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.25);flex-shrink:0}.uploaded-thumbs{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-3)}.uploaded-th{width:44px;height:78px;padding:0;border:2.5px solid transparent;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;background:none;flex-shrink:0;transition:border-color .12s,transform .12s}.uploaded-th img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.uploaded-th:hover{transform:scale(1.06);border-color:var(--sub)}.uploaded-th.on{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 30%,transparent)}.screen-or{font-size:var(--text-xs);font-weight:700;color:var(--sub);text-align:center;padding:var(--space-2) 0 var(--space-2);display:flex;align-items:center;gap:var(--space-2)}.screen-or:after,.screen-or:before{content:"";flex:1;height:1px;background:var(--line)}.pat-row{display:flex;flex-wrap:wrap;gap:var(--space-1)}.pat-pill{background:var(--chip);border:1px solid var(--line);color:var(--sub);font:inherit;font-size:var(--text-sm);font-weight:700;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .12s,color .12s,background-color .12s}.pat-pill:hover{border-color:var(--accent);color:var(--text)}.pat-pill.on{background:var(--accent);color:#fff;border-color:transparent}.txc-row{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.txc-sw{position:relative;width:26px;height:26px;border-radius:var(--radius-sm);border:2px solid transparent;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(0,0,0,.18);transition:border-color .12s,transform .12s}.txc-sw:before{content:"";position:absolute;inset:-9px}.txc-sw.on{border-color:var(--accent);transform:scale(1.08)}.txc-auto{height:26px;padding:0 var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--chip);color:var(--sub);font:inherit;font-size:var(--text-xs);font-weight:800;cursor:pointer;transition:background-color .12s,color .12s,border-color .12s}.txc-auto.on{background:var(--accent);color:#fff;border-color:transparent}.txc-warn{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-2) var(--space-3);background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.35);border-radius:var(--radius-sm);color:var(--warning);font-size:var(--text-sm);font-weight:700;line-height:1.3}.txc-warn svg{flex-shrink:0}.badge-kind-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2)}.badge-kind-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:var(--space-2) 4px;border-radius:var(--radius-md);border:2px solid var(--line);background:var(--chip);cursor:pointer;transition:border-color .12s,background-color .12s}.badge-kind-btn.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel))}.badge-kind-prev{display:flex;align-items:center;justify-content:center;height:34px;width:100%;overflow:hidden;transform:scale(.42);transform-origin:center;pointer-events:none}.badge-kind-none{font-size:var(--text-sm);color:var(--sub);font-weight:700}.badge-kind-label{font-size:10px;font-weight:700;color:var(--sub)}.badge-kind-btn.on .badge-kind-label{color:var(--accent)}.info-note{display:flex;align-items:flex-start;gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-3);background:var(--chip);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--sub);font-size:var(--text-xs);font-weight:var(--weight-regular);line-height:1.5}.info-note svg{flex-shrink:0;margin-top:1px;color:var(--warning)}.kit-list{display:flex;flex-direction:column;gap:var(--space-2)}.kit-chip{gap:var(--space-1)}.kit-apply,.kit-chip{display:flex;align-items:center}.kit-apply{flex:1;gap:var(--space-2);background:var(--chip);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);cursor:pointer;transition:border-color .12s,transform .08s}.kit-apply:hover{border-color:var(--accent)}.kit-apply:active{transform:scale(.96)}.kit-sw{width:22px;height:22px;border-radius:var(--radius-sm);flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.18)}.kit-name{color:var(--text);font-weight:700}.kit-del,.kit-name{font-size:var(--text-sm)}.kit-del{position:relative;width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--chip);color:var(--sub);cursor:pointer;flex-shrink:0}.kit-del:before{content:"";position:absolute;inset:-8px}.kit-del:hover{color:var(--danger);border-color:var(--danger)}.sb-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.sb-cell{display:flex;flex-direction:column;gap:var(--space-1)}.sb-lbl{font-size:var(--text-xs);font-weight:700;color:var(--sub);letter-spacing:.2px}.sb-presets{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.sb-preset{flex:1;padding:var(--space-2) var(--space-1);border-radius:var(--radius-sm);background:var(--chip);border:1px solid var(--line);color:var(--sub);font-size:var(--text-sm);font-weight:700;cursor:pointer;transition:background-color .12s,border-color .12s,color .12s}.sb-preset:hover{border-color:var(--sub)}.sb-preset.on{background:color-mix(in srgb,var(--accent) 16%,var(--panel));border-color:var(--accent);color:var(--accent)}.pair-badge{display:inline-flex;align-items:center;gap:2px;margin-left:var(--space-2);padding:1px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:800;letter-spacing:.2px;vertical-align:middle}.pair-badge.a{background:rgba(124,92,255,.22);color:#B9A6FF}.pair-badge.b{background:rgba(45,212,191,.2);color:#6FE9D6}.theme-toggle-badge{display:inline-flex;align-items:center;justify-content:center;float:right;position:relative;width:20px;height:20px;margin-left:var(--space-2);padding:0;border:none;border-radius:var(--radius-full);background:color-mix(in srgb,var(--sub) 14%,transparent);color:var(--sub);cursor:pointer;transition:color .12s,background-color .12s}.theme-toggle-badge:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent)}.icon-swap{position:relative}.icon-swap-a,.icon-swap-b{transition:opacity .2s cubic-bezier(.2,0,0,1),transform .2s cubic-bezier(.2,0,0,1),filter .2s cubic-bezier(.2,0,0,1);opacity:0;transform:scale(.25);filter:blur(4px)}.icon-swap-a.on,.icon-swap-b.on{opacity:1;transform:scale(1);filter:blur(0)}.icon-swap-b{position:absolute;top:0;left:0}.feat-inline-edit{position:absolute;bottom:10px;left:10px;right:10px;z-index:10;display:flex;flex-direction:column;gap:var(--space-1);background:rgba(0,0,0,.72);backdrop-filter:blur(10px);border-radius:var(--radius-md);padding:var(--space-2)}.feat-inline-inp{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-sm);color:#fff;font:inherit;font-size:var(--text-sm);font-weight:600;padding:var(--space-2) var(--space-2);outline:none;width:100%;transition:border-color .12s}.feat-inline-inp:focus{border-color:var(--accent)}.feat-inline-inp::-moz-placeholder{color:rgba(255,255,255,.35)}.feat-inline-inp::placeholder{color:rgba(255,255,255,.35)}.text-drag{position:absolute;inset:0;z-index:9;cursor:move;display:flex;align-items:flex-start;justify-content:center;padding-top:var(--space-2);touch-action:none}.text-drag-badge{background:rgba(0,0,0,.72);color:#fff;font-size:var(--text-xs);font-weight:700;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.16);opacity:0;transition:opacity .14s;pointer-events:none;white-space:nowrap}.film-item.sel .text-drag:active .text-drag-badge,.film-item.sel .text-drag:hover .text-drag-badge{opacity:1}.film-feat .film-frame{border-radius:var(--radius-md)}.film-feat{cursor:pointer}.film-feat .film-cap{font-size:var(--text-sm);font-weight:800;letter-spacing:.3px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--sub) 40%,transparent);border-radius:var(--radius-full);border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-track{background:transparent}:not(.export-stage,.export-stage *){scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--sub) 40%,transparent) transparent}@media (max-width:1280px){.rail{width:var(--rail-w-md);flex:0 0 var(--rail-w-md)}.inspector{width:var(--insp-w-md);flex:0 0 var(--insp-w-md)}}@media (max-width:980px){.rail{width:var(--rail-w-sm);flex:0 0 var(--rail-w-sm)}.inspector{width:var(--insp-w-sm);flex:0 0 var(--insp-w-sm)}.topbar{flex-wrap:wrap;height:auto;row-gap:var(--space-2);padding-bottom:var(--space-3)}}.inspector.collapsed,.rail.collapsed{width:0!important;flex:0 0 0!important}.mk-stage{flex:1;min-width:0;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:var(--space-7)}.mk-checker{position:absolute;inset:0;background-color:#1a1d24;background-image:linear-gradient(45deg,#23262e 25%,transparent 0),linear-gradient(-45deg,#23262e 25%,transparent 0),linear-gradient(45deg,transparent 75%,#23262e 0),linear-gradient(-45deg,transparent 75%,#23262e 0);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0;opacity:.5}.mk-scene-wrap{position:relative;box-shadow:0 30px 90px rgba(0,0,0,.5)}.mk-scene{position:relative;overflow:hidden}.mk-device{position:absolute;cursor:grab;touch-action:none;will-change:transform}.mk-device.grabbing{cursor:grabbing}.mk-device.sel:after{border:2px solid var(--accent);border-radius:var(--radius-md);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 22%,transparent)}.mk-device.multi-sel:after,.mk-device.sel:after{content:"";position:absolute;inset:-10px;pointer-events:none}.mk-device.multi-sel:after{border:2px dashed var(--accent);border-radius:var(--radius-md);opacity:.75}.mk-handle{width:22px;height:22px;right:-22px;bottom:-22px;border-radius:50%;background:var(--accent);border:2px solid #fff;cursor:nwse-resize;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(0,0,0,.4)}.mk-dev-acts,.mk-handle{position:absolute;z-index:30;display:flex}.mk-dev-acts{top:-16px;left:50%;transform:translateX(-50%);gap:var(--space-1)}.mk-dev-act{width:28px;height:28px;border-radius:var(--radius-sm);border:none;cursor:pointer;background:rgba(0,0,0,.8);backdrop-filter:blur(8px);color:#fff;display:flex;align-items:center;justify-content:center}.mk-dev-act:hover{background:#000}.mk-dev-act.danger:hover{background:var(--danger)}.mk-add-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.mk-preset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.mk-preset{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-1);border-radius:var(--radius-md);background:var(--chip);border:1px solid var(--line);cursor:pointer;color:var(--text);transition:border-color .12s,background-color .12s,transform .12s}.mk-preset:hover{border-color:var(--accent);transform:translateY(-2px);background:color-mix(in srgb,var(--accent) 8%,var(--chip))}.mk-preset span{font-size:var(--text-xs);font-weight:700;color:var(--sub)}.mk-add-card,.mk-preset:hover span{color:var(--text)}.mk-add-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-2);border-radius:var(--radius-md);background:var(--chip);border:1px solid var(--line);cursor:pointer;transition:border-color .12s,background-color .12s,transform .12s}.mk-add-card:hover{border-color:var(--accent);transform:translateY(-2px);background:color-mix(in srgb,var(--accent) 8%,var(--chip))}.mk-add-card span{font-size:var(--text-sm);font-weight:700;color:var(--sub)}.mk-add-card:hover span{color:var(--text)}.mk-aspect-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.mk-aspect{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-1);border-radius:var(--radius-sm);background:var(--chip);border:2px solid var(--line);cursor:pointer;transition:border-color .12s,background-color .12s}.mk-aspect.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--chip))}.ov-edit-item{touch-action:none;transition:outline-color var(--motion-fast) var(--ease-out),background-color var(--motion-fast) var(--ease-out)}.ov-edit-item.sel{outline:1.5px dashed color-mix(in srgb,var(--accent) 75%,transparent);outline-offset:4px}.ov-handle{position:absolute;width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.4);pointer-events:auto;touch-action:none;z-index:2}.ov-handle-resize{right:-8px;bottom:-8px;cursor:nwse-resize}.ov-handle-resize-n{top:-8px}.ov-handle-resize-n,.ov-handle-resize-s{left:50%;transform:translateX(-50%);cursor:ns-resize}.ov-handle-resize-s{bottom:-8px}.ov-handle-resize-e{right:-8px}.ov-handle-resize-e,.ov-handle-resize-w{top:50%;transform:translateY(-50%);cursor:ew-resize}.ov-handle-resize-w{left:-8px}.ov-handle-resize-ne{right:-8px;top:-8px;cursor:nesw-resize}.ov-handle-resize-nw{left:-8px;top:-8px;cursor:nwse-resize}.ov-handle-resize-sw{left:-8px;bottom:-8px;cursor:nesw-resize}.ov-rotate-wrap{position:absolute;left:50%;top:-28px;transform:translateX(-50%);width:16px;height:28px;display:flex;flex-direction:column;align-items:center}.ov-rotate-line{width:1.5px;flex:1;background:color-mix(in srgb,var(--accent) 70%,transparent)}.ov-handle-rotate{position:static;cursor:grab}.ov-add-row{display:flex;gap:var(--space-2);margin-bottom:var(--space-3);position:relative}.ov-add-btn{flex:1;justify-content:center;padding:var(--space-2) var(--space-1);font-size:var(--text-sm);white-space:nowrap}.ov-list{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3);max-height:180px;overflow-y:auto}.ov-list-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);background:var(--chip);border:1px solid var(--line);cursor:pointer;transition:border-color .12s,background-color .12s}.ov-list-item:hover{border-color:var(--sub)}.ov-list-item.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--chip))}.ov-list-type{font-size:var(--text-xs);font-weight:800;color:var(--sub);text-transform:uppercase;letter-spacing:.3px;flex-shrink:0}.ov-list-prev{flex:1;font-size:var(--text-sm);font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ov-list-acts{display:flex;gap:2px;flex-shrink:0}.ov-list-acts button{position:relative;width:22px;height:22px;border-radius:var(--radius-sm);border:none;background:none;color:var(--sub);cursor:pointer;font-size:var(--text-xs);display:flex;align-items:center;justify-content:center}.ov-list-acts button:before{content:"";position:absolute;inset:-11px}.ov-list-acts button:hover{background:var(--panel2);color:var(--text)}.ov-editor{padding-top:var(--space-2);border-top:1px solid var(--line)}.ov-editor-acts{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-1)}.ov-editor-acts .btn{font-size:var(--text-xs);padding:var(--space-2) var(--space-2)}.mk-aspect-box{background:var(--sub);border-radius:var(--radius-sm);opacity:.5}.mk-aspect.on .mk-aspect-box{background:var(--accent);opacity:1}.mk-aspect-lbl{font-size:var(--text-xs);font-weight:700;color:var(--sub)}.mk-aspect.on .mk-aspect-lbl{color:var(--accent)}.mk-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);color:var(--sub);pointer-events:none}.mk-bgtype{display:flex;flex-wrap:wrap;gap:var(--space-1)}.mk-bgtype .seg-btn{flex:1 1 28%;min-width:62px}.mk-swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-2)}.mk-sw{aspect-ratio:1;border-radius:var(--radius-sm);border:2px solid transparent;cursor:pointer}.mk-sw.on{border-color:#fff;box-shadow:0 0 0 2px var(--accent)}.mk-tex-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.mk-tex{display:flex;flex-direction:column;gap:var(--space-1);align-items:center;padding:var(--space-2);border-radius:calc(var(--radius-sm) + var(--space-2));background:var(--chip);border:2px solid var(--line);cursor:pointer;transition:border-color .12s}.mk-tex:hover{border-color:var(--sub)}.mk-tex.on{border-color:var(--accent)}.mk-tex-prev{width:100%;height:34px;border-radius:var(--radius-sm)}.mk-tex-lbl{font-size:var(--text-xs);font-weight:700;color:var(--sub);letter-spacing:.2px}.mk-tex.on .mk-tex-lbl{color:var(--accent)}.mk-order-btns{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2)}.mk-order-btns button{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-1);border-radius:var(--radius-sm);background:var(--chip);border:1px solid var(--line);color:var(--text);font:inherit;font-size:var(--text-xs);font-weight:700;cursor:pointer;transition:border-color .12s,color .12s}.mk-order-btns button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.mk-order-btns button:disabled{opacity:.4;cursor:default}.mk-layer-pos{font-size:var(--text-xs);font-weight:700;color:var(--sub);margin-bottom:var(--space-2)}.mk-layer-pos b{color:var(--text)}@media (max-width:980px){body,html{overflow-y:auto;height:auto;min-height:100%}#app,.root{height:auto;min-height:100vh}.body{flex-direction:column;overflow-x:visible;overflow-y:visible}.inspector,.rail{width:100%;flex:1 1 auto;border:none;border-bottom:1px solid var(--line);max-height:none}.stage{min-width:0;order:-1}.topbar{position:sticky;top:0;z-index:30}}.tpl-group-label-user{display:flex;align-items:center;gap:var(--space-1);color:var(--accent)}.user-tpl-empty{font-size:var(--text-xs);color:var(--sub);line-height:1.5;background:var(--panel2);border:1px dashed var(--line);border-radius:var(--radius-md);padding:var(--space-3);text-wrap:pretty}.user-tpl-card{position:relative}.user-tpl-actions{position:absolute;top:6px;right:6px;display:flex;gap:var(--space-1);opacity:.35;transition:opacity .15s;z-index:5}.user-tpl-actions:focus-within,.user-tpl-card:hover .user-tpl-actions{opacity:1}.user-tpl-act{position:relative;width:22px;height:22px;border-radius:var(--radius-sm);border:none;cursor:pointer;background:rgba(0,0,0,.65);color:#fff;display:flex;align-items:center;justify-content:center}.user-tpl-act:before{content:"";position:absolute;top:-11px;bottom:-11px;left:0;right:0}.user-tpl-act:hover{background:rgba(0,0,0,.85)}.user-tpl-act.danger:hover{background:#DC2626}.user-tpl-io{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.user-tpl-import-lbl{display:inline-flex;align-items:center;cursor:pointer}.user-tpl-warn{margin-top:var(--space-3)}.tpl-ed-modal{width:min(94vw,920px);display:flex;flex-direction:column}.tpl-ed-body{display:flex;gap:var(--space-6);padding:var(--space-5) var(--space-6) var(--space-6);max-height:74vh;overflow-y:auto}.tpl-ed-canvas-wrap{display:flex;align-items:flex-start;justify-content:center;flex-shrink:0;position:sticky;top:0}.tpl-ed-canvas{border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.4);touch-action:none}.tpl-ed-layers{flex:1;min-width:260px;display:flex;flex-direction:column}.tpl-ed-layers-title{font-weight:800;text-transform:uppercase;letter-spacing:.4px;margin-bottom:var(--space-2)}.tpl-ed-layers-hint,.tpl-ed-layers-title{font-size:var(--text-xs);color:var(--sub)}.tpl-ed-layers-hint{line-height:1.5;margin-top:2px;margin-bottom:var(--space-3)}.tpl-ed-bg-hit,.tpl-ed-device-hit,.tpl-ed-text-hit{transition:outline-color var(--motion-fast) var(--ease-out),background-color var(--motion-fast) var(--ease-out)}.tpl-ed-bg-hit.sel{outline:1.5px dashed color-mix(in srgb,var(--accent) 60%,transparent);outline-offset:-3px}.tpl-ed-device-hit.sel{background:color-mix(in srgb,var(--accent) 6%,transparent)}.tpl-ed-text-hit:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}.tpl-ed-text-hit.sel{outline:1.5px dashed color-mix(in srgb,var(--accent) 70%,transparent);outline-offset:-2px;background:color-mix(in srgb,var(--accent) 8%,transparent)}.sys-layer-edit{touch-action:none}.tpl-ed-props{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--line);gap:var(--space-3)}.tpl-ed-add-row,.tpl-ed-props{display:flex;flex-direction:column}.tpl-ed-add-row{gap:var(--space-2)}.tpl-ed-foot{justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--line)}.tpl-ed-foot,.tpl-ed-saveas{display:flex;align-items:center;flex-wrap:wrap}.tpl-ed-foot-main,.tpl-ed-saveas{gap:var(--space-2)}.tpl-ed-foot-main{display:flex;align-items:center;margin-left:auto}[data-caption-role=heading],[data-caption-role=sub]{text-shadow:var(--cap-shadow,none);position:relative;z-index:var(--text-z,auto)}[data-system-role=device]{position:relative;z-index:var(--device-z,auto)}:root{--accent:#7c5cff}body,html{height:100%}.cloud-status{position:fixed;left:18px;bottom:18px;z-index:200;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--panel);border:1px solid var(--line);box-shadow:0 8px 24px rgba(0,0,0,.25);font-size:var(--text-sm);font-weight:600;color:var(--sub)}.cloud-status-dot{width:7px;height:7px;border-radius:50%;background:var(--sub);flex-shrink:0}.cloud-status-dot.on{background:var(--success)}.cloud-status-badge{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:2px var(--space-2);flex-shrink:0}.cloud-status-project{max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)!important}.save-indicator{display:flex;align-items:center;gap:var(--space-2);padding-right:var(--space-2);border-right:1px solid var(--line);font-size:var(--text-sm);font-weight:700;color:var(--sub);white-space:nowrap}.save-indicator.saved{color:var(--success)}.save-indicator.error{color:var(--danger)}.save-indicator-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:save-indicator-pulse 1s ease-in-out infinite}@keyframes save-indicator-pulse{0%,to{opacity:1}50%{opacity:.3}}.save-indicator-retry{background:none;border:none;padding:0;font:inherit;font-weight:700;color:var(--accent);cursor:pointer;text-decoration:underline}.resume-banner{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:210;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--panel);border:1px solid var(--accent);box-shadow:0 12px 36px rgba(0,0,0,.4)}.resume-banner-info{display:flex;flex-direction:column;gap:2px;min-width:0}.resume-banner-title{font-size:var(--text-base);font-weight:800;color:var(--text)}.resume-banner-meta{font-size:var(--text-sm);color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.resume-banner-go{padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);border:none;background:var(--accent);color:#fff}.resume-banner-dismiss,.resume-banner-go{font:inherit;font-weight:700;font-size:var(--text-sm);cursor:pointer;flex-shrink:0}.resume-banner-dismiss{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--line);background:none;color:var(--sub)}.resume-banner-dismiss:hover{color:var(--text);border-color:var(--sub)}.desktop-sync{position:fixed;right:18px;bottom:18px;z-index:200}.desktop-sync-toggle{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--panel);border:1px solid var(--line);box-shadow:0 8px 24px rgba(0,0,0,.25);font-size:var(--text-sm);font-weight:600;color:var(--sub);cursor:pointer}.desktop-sync-dot{width:7px;height:7px;border-radius:50%;background:var(--sub);flex-shrink:0}.desktop-sync-dot.on{background:var(--success)}.desktop-sync-panel{position:absolute;right:0;bottom:calc(100% + 8px);width:240px;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--panel);border:1px solid var(--line);box-shadow:0 8px 24px rgba(0,0,0,.35)}.desktop-sync-title{font-size:var(--text-sm);font-weight:700;color:var(--fg);word-break:break-all}.desktop-sync-panel input{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg);color:var(--fg)}.desktop-sync-panel button,.desktop-sync-panel input{padding:var(--space-2) var(--space-3);font-size:var(--text-base)}.desktop-sync-panel button{border-radius:var(--radius-sm);border:none;background:var(--accent);color:#fff;font-weight:600;cursor:pointer}.desktop-sync-panel button.ghost{background:transparent;border:1px solid var(--line);color:var(--sub)}.desktop-sync-panel button:disabled{opacity:.6;cursor:default}.desktop-sync-error{font-size:var(--text-xs);color:var(--danger)}.desktop-sync-ok{font-size:var(--text-xs);color:var(--success)}.cloud-status a,.cloud-status button{color:var(--accent);font:inherit;font-weight:700;text-decoration:none;background:none;border:none;cursor:pointer;padding:0}.myprojects-overlay{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.45);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:var(--space-6);animation:backdrop-in var(--motion-base) var(--ease-out)}.myprojects-overlay.leaving{animation:backdrop-out var(--motion-base) var(--ease-out)}.myprojects-panel{width:100%;max-width:480px;max-height:80vh;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 24px 64px rgba(0,0,0,.55);overflow:hidden;animation:modal-in var(--motion-base) var(--ease-out)}.myprojects-panel.leaving{animation:modal-out var(--motion-base) var(--ease-out)}.myprojects-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);font-weight:800;font-size:var(--text-md);color:var(--text);border-bottom:1px solid var(--line)}.myprojects-close{background:none;border:none;color:var(--sub);font-size:var(--text-md);cursor:pointer;padding:var(--space-1);line-height:1}.myprojects-close:hover{color:var(--text)}.myprojects-hint{padding:var(--space-3) var(--space-5) 0;font-size:var(--text-sm);color:var(--sub);line-height:1.5}.myprojects-hint a{color:var(--accent);font-weight:700;text-decoration:none}.myprojects-new{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin:var(--space-4) var(--space-5) var(--space-1);padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font:inherit;font-weight:700;font-size:var(--text-base);cursor:pointer}.myprojects-new:hover{background:color-mix(in srgb,var(--accent) 22%,transparent)}.myprojects-new:disabled{opacity:.5;cursor:default}.myprojects-body{padding:var(--space-3) var(--space-5) var(--space-5);overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-3)}.myprojects-empty,.myprojects-error{font-size:var(--text-sm);color:var(--sub);line-height:1.5;padding:var(--space-3) var(--space-1)}.myprojects-error{color:var(--danger)}.myprojects-item{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-2);padding:var(--space-3) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--line);background:var(--panel2,var(--chip))}.myprojects-item.active{border-color:var(--accent)}.myprojects-item-thumb{width:100%;aspect-ratio:9/16;border-radius:var(--radius-sm);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:var(--text-md);color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.45);overflow:hidden;-o-object-fit:cover;object-fit:cover}.myprojects-item-info{display:flex;flex-direction:column;gap:3px;min-width:0}.myprojects-item-name{display:flex;align-items:center;gap:var(--space-2);font-weight:700;font-size:var(--text-base);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.myprojects-badge{font-size:var(--text-xs);font-weight:800;letter-spacing:.3px;text-transform:uppercase;padding:2px var(--space-2);border-radius:var(--radius-full);background:var(--accent);color:#fff;flex-shrink:0}.myprojects-item-meta{font-size:var(--text-xs);color:var(--sub)}.myprojects-item-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.myprojects-item-actions button{flex:1 1 auto;font:inherit;font-weight:700;font-size:var(--text-sm);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer}.myprojects-item-actions button.ghost{background:none;border-color:var(--line);color:var(--sub)}.myprojects-item-actions button.ghost:hover{color:var(--text);border-color:var(--sub)}.myprojects-item-actions button.danger{background:none;border-color:var(--line);color:var(--danger)}.myprojects-item-actions button.danger:hover{border-color:var(--danger)}.tweaks-fab-wrap{position:fixed;right:18px;bottom:18px;z-index:200}.tweaks-fab{width:44px;height:44px;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:var(--text-xl);cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.35)}.tweaks-fab:hover{border-color:var(--accent)}.tweaks-panel{position:absolute;right:0;bottom:54px;width:260px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 18px 50px rgba(0,0,0,.5);overflow:hidden}.tweaks-panel-head{padding:var(--space-4) var(--space-4);font-weight:800;font-size:var(--text-md);border-bottom:1px solid var(--line)}.tweaks-panel-body{padding:var(--space-4) var(--space-4) var(--space-5)}.tweaks-section{font-size:var(--text-xs);font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--sub);margin:var(--space-1) 0 var(--space-3)}.tweaks-row{margin-bottom:var(--space-4)}.tweaks-label{font-size:var(--text-sm);font-weight:700;margin-bottom:var(--space-2)}.tweaks-seg{display:flex;gap:var(--space-1);padding:3px;border-radius:var(--radius-md);background:var(--chip);border:1px solid var(--line)}.tweaks-seg-btn{flex:1;border:none;background:none;color:var(--sub);font:inherit;font-weight:700;font-size:var(--text-sm);padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;text-transform:capitalize}.tweaks-seg-btn.on{background:var(--accent);color:#fff}.tweaks-colors{display:flex;gap:var(--space-2)}.tweaks-color{width:28px;height:28px;border-radius:var(--radius-sm);border:2px solid transparent;cursor:pointer}.tweaks-color.on{border-color:var(--text);box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--accent)}