:root{color-scheme:dark;--bg-0: #0d0e11;--bg-1: #14161b;--bg-2: #1b1e25;--bg-3: #242833;--bg-hover: #2b303c;--border: #2a2e38;--border-strong: #3a404d;--text-1: #eceef3;--text-2: #a9afbd;--text-3: #8a91a0;--accent: #7c9cff;--accent-strong: #5b7cf5;--accent-button: #4a6ae6;--accent-button-hover: #3f5fd9;--accent-soft: rgb(124 156 255 / .14);--success: #4ccf8c;--danger: #ff6b6b;--warning: #ffc857;--radius-sm: 6px;--radius: 9px;--radius-lg: 14px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;--text-xs: 11px;--text-sm: 12px;--text-md: 13px;--text-lg: 15px;--sidebar-left: 300px;--sidebar-right: 320px;--topbar: 56px;--shadow: 0 10px 30px rgb(0 0 0 / .35);--ease: cubic-bezier(.2, .7, .2, 1)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-0);color:var(--text-1);font:400 var(--text-md) / 1.45 var(--font);-webkit-font-smoothing:antialiased;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3,h4,p{margin:0}kbd{font:500 10px var(--font-mono);padding:1px 5px;border-radius:4px;background:var(--bg-0);border:1px solid var(--border);color:var(--text-3);margin-left:auto}.muted{color:var(--text-2)}.hint{color:var(--text-3);font-size:var(--text-sm)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-thumb{background:var(--bg-3);border-radius:10px;border:3px solid var(--bg-1)}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.crash{max-width:520px;margin:12vh auto 0;padding:0 var(--space-4)}.crash h1{font-size:24px;margin:24px 0 8px}.crash p{color:var(--text-2)}.crash a{color:var(--accent)}.crash__help{font-size:var(--text-sm)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.link-button{padding:0;border:0;background:none;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer}.app{height:100%;display:grid;grid-template-columns:var(--sidebar-left) minmax(0,1fr) var(--sidebar-right);grid-template-rows:var(--topbar) minmax(0,1fr);grid-template-areas:"top top top" "left stage right"}.topbar{grid-area:top;display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-4);background:var(--bg-1);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:var(--space-2);width:calc(var(--sidebar-left) - var(--space-4) * 2);flex-shrink:0}.brand a{display:flex}.brand__logo{display:block;height:30px;width:auto}.topbar__actions{display:flex;gap:var(--space-2);flex:1;justify-content:center}.account{display:flex;align-items:center;gap:var(--space-2);margin-left:auto;min-height:34px;flex-shrink:0}.account__menu{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px}.account__name{color:var(--text-2)}.plan-pill{border:0;cursor:pointer;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:var(--accent-soft);padding:3px 8px;border-radius:999px}.plan-pill:hover{background:#7c9cff3d}.account--loading{width:140px;height:34px;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--bg-2),var(--bg-3),var(--bg-2));background-size:200% 100%;animation:shimmer 1.2s linear infinite}@keyframes shimmer{to{background-position:-200% 0}}.sidebar{display:flex;flex-direction:column;min-height:0;background:var(--bg-1)}.sidebar--left{grid-area:left;border-right:1px solid var(--border)}.sidebar--right{grid-area:right;border-left:1px solid var(--border)}.sidebar__scroll{flex:1;overflow-y:auto;overscroll-behavior:contain}.sidebar__legal{display:flex;gap:var(--space-3);padding:10px var(--space-4);border-top:1px solid var(--border);font-size:var(--text-xs)}.sidebar__legal a{color:var(--text-3);text-decoration:none}.sidebar__legal a:hover{color:var(--text-1);text-decoration:underline}.plans__footer a{color:var(--accent)}.stage{grid-area:stage;position:relative;min-width:0;min-height:0}.tabs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);border-bottom:1px solid var(--border)}.tab{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 4px 9px;background:none;border:0;border-bottom:2px solid transparent;color:var(--text-3);font-size:var(--text-xs);font-weight:550}.tab:hover{color:var(--text-1)}.tab.is-active{color:var(--text-1);border-bottom-color:var(--accent)}.toasts{position:fixed;right:var(--space-4);bottom:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);z-index:50;max-width:380px}.toast{display:flex;align-items:flex-start;gap:var(--space-2);padding:10px 12px;background:var(--bg-2);border:1px solid var(--border-strong);border-left:3px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow);animation:toast-in .25s var(--ease)}.toast span{flex:1;word-break:break-word}.toast button{background:none;border:0;color:var(--text-3);padding:2px}.toast--success{border-left-color:var(--success)}.toast--success>svg{color:var(--success)}.toast--error{border-left-color:var(--danger)}.toast--error>svg{color:var(--danger)}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}}.export-menu{position:relative}.export-menu__button{min-width:132px;justify-content:center}.export-menu--block .export-menu__button,.export-menu--block .export-menu__list{width:100%}.export-menu__chevron{margin-left:2px;transition:transform .15s var(--ease)}.export-menu__button[aria-expanded=true] .export-menu__chevron{transform:rotate(180deg)}.export-menu__list{position:absolute;z-index:30;left:50%;translate:-50% 0;width:min(max(100%,350px),calc(100vw - 24px));display:grid;gap:2px;padding:var(--space-1);background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow)}.export-menu--down .export-menu__list{top:calc(100% + 6px)}.export-menu--up .export-menu__list{bottom:calc(100% + 6px)}.export-menu__item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius-sm);background:none;color:var(--text-1);font:inherit;text-align:left;cursor:pointer}.export-menu__item>svg{flex-shrink:0;color:var(--accent)}.export-menu__item:hover,.export-menu__item:focus-visible{background:var(--bg-hover);outline:none}.export-menu__text{display:grid;flex:1;min-width:0}.export-menu__label{font-weight:500}.export-menu__description{color:var(--text-3);font-size:var(--text-sm)}.export-menu__allowance{margin:2px 0 0;padding:var(--space-2) var(--space-3) var(--space-1);border-top:1px solid var(--border);color:var(--text-3);font-size:var(--text-sm);text-align:center}.export-menu__item kbd{flex-shrink:0;color:var(--text-3);font:500 var(--text-xs) var(--font-mono)}.export-menu--block .export-menu__item kbd:not(.export-menu__pro){display:none}.export-menu__item kbd.export-menu__pro{padding:1px 6px;border-radius:999px;color:var(--accent);background:var(--accent-soft);font-family:var(--font);font-weight:600}@media(max-width:1200px){:root{--sidebar-left: 260px;--sidebar-right: 290px}}@media(max-width:900px){.app{height:100dvh;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(200px,42dvh) minmax(0,1fr);grid-template-areas:"top" "stage" "right"}.topbar{flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2) var(--space-3)}.brand{width:auto}.brand a{display:flex}.brand__logo{height:24px;width:115px}.account .btn{padding-inline:10px}.topbar__actions{order:3;flex-basis:100%}.topbar__actions .btn{flex:1;justify-content:center;min-width:0;padding-inline:var(--space-2)}.topbar__actions .export-menu{flex:1}.topbar__actions .export-menu__button{width:100%}.export-menu__item kbd:not(.export-menu__pro){display:none}.sidebar--right{border-left:0;border-top:1px solid var(--border)}.tab{padding:8px 0 7px;font-size:11px}.sidebar__legal{border-top:1px solid var(--border)}.toasts{left:var(--space-3);right:var(--space-3);max-width:none}}.section{border-bottom:1px solid var(--border)}.section__header{display:flex;align-items:center;padding-right:var(--space-4)}.section__toggle{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:var(--space-2);padding:12px var(--space-4);background:none;border:0;font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);text-align:left}.section__toggle:hover{color:var(--text-1)}.chevron{width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .15s var(--ease)}.chevron--open{transform:rotate(45deg)}.section__body{display:flex;flex-direction:column;gap:var(--space-3);padding:0 var(--space-4) var(--space-4)}.field{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;border:0;min-width:0}.field label,.field legend{color:var(--text-2);font-size:var(--text-sm);padding:0}.field__row{display:flex;justify-content:space-between;align-items:baseline}.field__row output{font:500 var(--text-xs) var(--font-mono);color:var(--text-1)}.field__hint{display:block;color:var(--text-3);font-size:var(--text-xs);margin-top:2px}.field.is-disabled{opacity:.45}.slider input[type=range]{appearance:none;width:100%;height:18px;background:transparent;margin:0}.slider input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(to right,var(--accent) var(--fill),var(--bg-3) var(--fill))}.slider input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:linear-gradient(to right,var(--accent) var(--fill),var(--bg-3) var(--fill))}.slider input[type=range]::-webkit-slider-thumb{appearance:none;width:14px;height:14px;margin-top:-5px;border-radius:50%;background:var(--text-1);border:2px solid var(--accent);box-shadow:0 1px 4px #0006}.slider input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--text-1);border:2px solid var(--accent)}.color-field{flex-direction:row;align-items:center;justify-content:space-between}.color-field__control{display:flex;align-items:center;gap:var(--space-2)}.color-field__hex{font:500 var(--text-xs) var(--font-mono);color:var(--text-2)}.color-field input[type=color]{width:30px;height:22px;padding:0;border:1px solid var(--border-strong);border-radius:5px;background:none;cursor:pointer}.color-field input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.color-field input[type=color]::-webkit-color-swatch{border:0;border-radius:3px}.toggle{flex-direction:row;align-items:center;justify-content:space-between;gap:var(--space-3)}.toggle input{appearance:none;flex-shrink:0;width:32px;height:18px;border-radius:999px;background:var(--bg-3);position:relative;cursor:pointer;transition:background .15s}.toggle input:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--text-2);transition:transform .15s var(--ease),background .15s}.toggle input:checked{background:var(--accent-strong)}.toggle input:checked:after{transform:translate(14px);background:#fff}.segmented__track{display:flex;background:var(--bg-0);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px}.segmented__track label{flex:1;text-align:center;padding:5px 4px;border-radius:4px;font-size:var(--text-sm);color:var(--text-2);cursor:pointer;white-space:nowrap;transition:background .12s,color .12s}.segmented__track label:hover{color:var(--text-1)}.segmented__track label.is-active{background:var(--bg-3);color:var(--text-1);box-shadow:0 1px 2px #0000004d}.segmented__track label:has(input:focus-visible){outline:2px solid var(--accent)}.segmented__track input{position:absolute;opacity:0;pointer-events:none}.select-field select,.text-field input,.inline-form input{width:100%;padding:7px 9px;background:var(--bg-0);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-1)}.select-field select:hover,.text-field input:hover{border-color:var(--border-strong)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid transparent;font-weight:550;font-size:var(--text-md);white-space:nowrap;transition:background .12s,border-color .12s,opacity .12s}.btn:disabled{opacity:.45}.btn--primary{background:var(--accent-button);color:#fff}.btn--primary:not(:disabled):hover{background:var(--accent-button-hover)}.btn--secondary{background:var(--bg-3);border-color:var(--border-strong)}.btn--secondary:not(:disabled):hover{background:var(--bg-hover)}.btn--ghost{background:transparent;color:var(--text-2)}.btn--ghost:not(:disabled):hover{background:var(--bg-3);color:var(--text-1)}.btn--danger{background:transparent;color:var(--danger);border-color:#ff6b6b66}.btn--block{width:100%}.btn--sm{height:30px;padding:0 10px}.btn kbd{margin-left:6px}.icon-btn{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-sm);background:transparent;border:0;color:var(--text-2)}.icon-btn:hover{background:var(--bg-3);color:var(--text-1)}.icon-btn.is-active{color:var(--accent);background:var(--accent-soft)}.link-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:0;padding:0;color:var(--accent);font-size:var(--text-sm)}.link-btn:hover{text-decoration:underline}.section__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2)}.header-btn{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-3);color:var(--text-1);font-size:var(--text-sm);font-weight:550;white-space:nowrap;transition:background .12s}.header-btn:hover{background:var(--bg-hover)}.header-btn[aria-expanded=true]{border-color:var(--accent-strong)}.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-2);color:var(--text-2);font-size:var(--text-sm);white-space:nowrap}.chip:hover{color:var(--text-1);border-color:var(--border-strong);background:var(--bg-3)}.chip.is-active{color:var(--text-1);border-color:var(--accent);background:var(--accent-soft)}.angle-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--space-2)}.filaments__label{display:flex;justify-content:space-between;color:var(--text-2);font-size:var(--text-sm)}.filaments__label em{color:var(--text-3);font-style:normal}.filaments{display:grid;grid-template-columns:repeat(auto-fill,minmax(30px,1fr));gap:6px;margin-top:var(--space-2)}.filament{aspect-ratio:1;padding:0;border:1px solid rgb(255 255 255 / .18);border-radius:50%;cursor:pointer}.filament:hover{border-color:var(--text-2)}.filament[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:2px}.filament--silk{background-image:linear-gradient(135deg,rgb(255 255 255 / .5),transparent 45%,rgb(0 0 0 / .28))}.chip--block{width:100%;justify-content:flex-start}.button-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.button-grid--4{grid-template-columns:repeat(2,1fr)}.inline-form{display:flex;gap:var(--space-2)}.tag-experimental{flex-shrink:0;padding:2px 8px;border:1px solid rgb(255 200 87 / .45);border-radius:999px;background:#ffc8571f;color:var(--warning);font-size:var(--text-xs);font-weight:600;letter-spacing:.02em}.model-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.model-row{border-radius:var(--radius);border:1px solid transparent;background:var(--bg-2)}.model-row.is-selected{border-color:var(--accent);background:var(--accent-soft)}.model-row.is-hidden .model-row__select{opacity:.45}.model-row__main{display:flex;align-items:center;padding-right:4px}.model-row__select{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:6px;background:none;border:0;text-align:left}.model-row__thumb{flex-shrink:0;display:grid;place-items:center;width:40px;height:40px;border-radius:6px;background:var(--bg-0);object-fit:cover;color:var(--text-3)}.model-row__text{display:flex;flex-direction:column;min-width:0}.model-row__name{font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-row__meta{font-size:var(--text-xs);color:var(--text-3)}.model-row__actions{display:flex;opacity:.6}.model-row:hover .model-row__actions,.model-row.is-selected .model-row__actions,.model-row__actions:focus-within{opacity:1}.model-row__details{padding:4px 10px 10px;font-size:var(--text-sm)}.model-row__details dl{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin:0 0 8px}.model-row__details dt{color:var(--text-3)}.model-row__details dd{margin:0;font-family:var(--font-mono);font-size:var(--text-xs);align-self:center}.model-row__badge{display:inline-block;margin-left:6px;padding:0 5px;border-radius:4px;background:var(--accent-soft);color:var(--accent);font-family:var(--font)}.model-row__rotate{display:flex;align-items:center;gap:6px;color:var(--text-3)}.model-row__rotate span{margin-right:auto}.preset-group h4{font-size:var(--text-xs);font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.preset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.preset-card{position:relative}.preset-card__button{width:100%;display:flex;flex-direction:column;gap:5px;padding:0;background:none;border:0;text-align:left}.preset-card__swatch{position:relative;display:grid;place-items:center;aspect-ratio:16 / 10;width:100%;border-radius:var(--radius);border:2px solid transparent;outline:1px solid var(--border);transition:border-color .12s,transform .12s var(--ease)}.preset-card__button:hover .preset-card__swatch{transform:translateY(-1px);outline-color:var(--border-strong)}.preset-card.is-active .preset-card__swatch{border-color:var(--accent)}.preset-card__orb{width:34%;aspect-ratio:1;border-radius:50%}.preset-card__orb--wireframe{border-radius:6px}.preset-card__orb--normals{background:conic-gradient(#8080ff,#ff8080,#80ff80,#8080ff)!important}.preset-card__name{font-size:var(--text-sm);color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preset-card.is-active .preset-card__name{color:var(--text-1)}.preset-card__name em{color:var(--warning);font-style:normal}.preset-card__delete{position:absolute;top:4px;right:4px;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;border:0;background:#0000008c;color:#fff;opacity:0}.preset-card:hover .preset-card__delete,.preset-card__delete:focus-visible{opacity:1}.export-actions{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);position:sticky;bottom:0;background:linear-gradient(transparent,var(--bg-1) 18%);padding-top:var(--space-5)}.doctor__plan{margin:var(--space-2) 0}.doctor__summary{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);font-weight:600}.doctor__summary.is-pass,.doctor-model.is-pass .doctor-model__score{color:var(--success)}.doctor__summary.is-fail,.doctor-model.is-fail .doctor-model__score,.doctor__error{color:var(--warning)}.doctor__list,.doctor-findings,.doctor-rules ul{display:flex;flex-direction:column;gap:var(--space-2);margin:0 0 var(--space-3);padding:0;list-style:none}.doctor-model{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2)}.doctor-model__head{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border:0;background:none;color:inherit;font:inherit;text-align:left}.doctor-model__score{min-width:2.2em;font-weight:700;font-variant-numeric:tabular-nums}.doctor-model__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doctor-model__verdict,.doctor-model__stats,.doctor-finding__source{color:var(--text-3);font-size:var(--text-sm)}.doctor-model__body{padding:0 var(--space-3) var(--space-3)}.doctor-finding{display:flex;gap:var(--space-2);line-height:1.45}.doctor-finding>svg{flex-shrink:0;margin-top:2px}.doctor-finding--error>svg{color:var(--danger)}.doctor-finding--warning>svg{color:var(--warning)}.doctor-finding--info>svg,.doctor-finding--ok>svg{color:var(--text-3)}.doctor-finding p+p{margin-top:2px;color:var(--text-2)}.doctor-finding blockquote{margin:var(--space-1) 0;padding-left:var(--space-2);border-left:2px solid var(--border-strong);color:var(--text-2);font-style:italic}.doctor-rules summary{cursor:pointer;color:var(--text-2);font-size:var(--text-sm)}.doctor-rules ul{margin-top:var(--space-2);font-size:var(--text-sm)}.doctor-rules li.is-pass>span:first-child{color:var(--success)}.doctor-rules li.is-fail>span:first-child{color:var(--danger)}.panel-loading{padding:var(--space-4)}.recipe-list,.variant-list{display:flex;flex-direction:column;gap:var(--space-2);margin:0 0 var(--space-3);padding:0;list-style:none}.recipe-row,.variant-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2)}.recipe-row__text{display:flex;flex:1;flex-direction:column;min-width:0}.recipe-row__name{overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.recipe-row__actions,.recipe-buttons{display:flex;flex-wrap:wrap;gap:var(--space-1)}.recipe-buttons{margin-bottom:var(--space-3)}.recipe-form{display:flex;flex-direction:column;gap:var(--space-2)}.recipe-form .check{display:flex;align-items:center;gap:var(--space-2);margin:2px 0}.variant-row input[type=color]{width:32px;height:28px;padding:0;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:none}.variant-row input[type=text]{flex:1;min-width:0;padding:5px 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-0);color:var(--text-1);font:inherit}.viewport{position:absolute;inset:0;overflow:hidden;background:#2a2d33}.viewport--transparent{background:repeating-conic-gradient(#3a3d44 0% 25%,#2c2f35 0% 50%) 50% / 24px 24px}.viewport__canvas{position:absolute;inset:0}.studio-canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}.safe-frame{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #08090c73;outline:1px dashed rgb(255 255 255 / .4);pointer-events:none}.safe-frame__label{position:absolute;top:8px;left:10px;font-size:var(--text-xs);color:#ffffffbf;background:#00000059;padding:2px 7px;border-radius:4px}.viewport-toolbar{position:absolute;left:50%;bottom:var(--space-4);transform:translate(-50%);display:flex;align-items:center;gap:4px;max-width:calc(100% - var(--space-5));padding:5px;background:#14161bd1;backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.viewport-toolbar__views{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}.viewport-toolbar .chip{background:transparent;border-color:transparent}.viewport-toolbar .chip:hover{background:var(--bg-3)}.viewport-toolbar__divider{width:1px;align-self:stretch;background:var(--border);margin:0 4px}.empty-state{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);text-align:center;padding:var(--space-5);pointer-events:none}.empty-state>*{pointer-events:auto}.empty-state__card{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);width:min(560px,100%);max-height:100%;overflow-y:auto;padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg);background:#0d0e11c7;backdrop-filter:blur(10px)}.empty-state{isolation:isolate}.empty-state__icon{display:grid;place-items:center;width:72px;height:72px;border-radius:20px;background:#7c9cff1f;color:var(--accent);margin-bottom:var(--space-2)}.empty-state h2{font-size:20px;font-weight:650}.empty-state p{color:var(--text-2);max-width:420px}.empty-state__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);margin-top:var(--space-2)}.empty-state__actions .btn{max-width:100%}.empty-state__actions .btn span{overflow:hidden;text-overflow:ellipsis}.drop-overlay{position:absolute;inset:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);border:2px dashed var(--accent);border-radius:var(--radius-lg);background:#5b7cf524;color:var(--text-1);font-weight:600;pointer-events:none}.viewport__status{position:absolute;top:var(--space-3);left:50%;transform:translate(-50%);margin:0;padding:4px 12px;border-radius:999px;background:#0d0e11b3;color:var(--text-2);font-size:var(--text-xs)}@media(max-width:900px){.empty-state{gap:var(--space-2);padding:var(--space-3)}.empty-state__card{gap:var(--space-2);padding:var(--space-4)}.empty-state__icon{display:none}.empty-state h2{font-size:17px}.empty-state p{font-size:13px;max-width:300px}}.dialog{position:fixed;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-1);color:var(--text-1);padding:var(--space-5);box-shadow:var(--shadow);width:min(420px,calc(100vw - 32px))}.dialog::backdrop{background:#05060899;backdrop-filter:blur(3px)}.dialog[open]{animation:dialog-in .2s var(--ease)}@keyframes dialog-in{0%{opacity:0;transform:translateY(6px) scale(.98)}}.dialog h2{font-size:18px;font-weight:650;margin-bottom:6px}.dialog__close{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:28px;height:28px;border-radius:6px;border:0;background:none;color:var(--text-3)}.dialog__close:hover{background:var(--bg-3);color:var(--text-1)}.job{display:flex;flex-direction:column;gap:var(--space-3)}.progress{height:8px;border-radius:999px;background:var(--bg-3);overflow:hidden}.progress__bar{height:100%;background:linear-gradient(90deg,var(--accent-strong),#a77cff);transition:width .2s var(--ease)}.job__meta{display:flex;justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-2);font-variant-numeric:tabular-nums}.job__detail{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job .btn{align-self:flex-end}.dialog--plans{width:min(880px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow-y:auto}.plan-change{margin-top:var(--space-4);padding:var(--space-4);border:1px solid var(--accent-strong);border-radius:var(--radius-lg);background:var(--accent-soft)}.plan-change h3{margin:0 0 var(--space-2);font-size:var(--text-lg)}.plan-change p{margin:0 0 6px;line-height:1.5}.check{display:flex;gap:var(--space-2);margin-top:var(--space-2);line-height:1.45;cursor:pointer}.check input{flex-shrink:0;width:16px;height:16px;margin:2px 0 0}.dialog--prompt{width:min(440px,calc(100vw - 32px))}.dialog--prompt h2{margin:0 0 var(--space-2);font-size:var(--text-lg)}.dialog--prompt p{line-height:1.5}.dialog--prompt .field{margin-top:var(--space-3)}.plan-change__actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-3)}.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin:var(--space-4) 0}.plan-card{position:relative;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-2)}.plan-card.is-featured{border-color:var(--accent-strong);box-shadow:0 0 0 1px var(--accent-strong),0 12px 30px #5b7cf51f}.plan-card.is-current{background:var(--accent-soft)}.plan-card__ribbon{position:absolute;top:-10px;right:var(--space-4);padding:2px 9px;border-radius:999px;background:linear-gradient(135deg,var(--accent-strong),#a77cff);color:#fff;font-size:var(--text-xs);font-weight:600}.plan-card__ribbon--offer{background:linear-gradient(135deg,#f5a524,#ef6f6c)}.plan-card__offer{margin:0;padding:8px 10px;border-radius:var(--radius-sm);background:#f5a5241f;color:var(--text-1);font-size:var(--text-sm);line-height:1.4}.plan-card h3{margin:0;font-size:var(--text-lg)}.plan-card__price{display:flex;align-items:baseline;gap:4px}.plan-card__price strong{font-size:28px;letter-spacing:-.02em}.plan-card__price span,.plan-card__tagline{color:var(--text-2);font-size:var(--text-sm)}.plan-card ul{list-style:none;margin:var(--space-2) 0;padding:0;display:flex;flex-direction:column;gap:7px;font-size:var(--text-sm);flex:1}.plan-card li{display:flex;gap:8px;align-items:flex-start}.plan-card li svg{flex-shrink:0;margin-top:3px;color:var(--success)}.plan-card__action{min-height:34px;display:flex;align-items:center}.plan-card__action .btn{width:100%}.plan-card__current{width:100%;text-align:center;font-size:var(--text-sm);font-weight:600;color:var(--accent)}.billing-status{display:flex;gap:8px;align-items:center;margin-top:var(--space-3);padding:10px 12px;border-radius:var(--radius-sm);background:#4ccf8c1a;font-size:var(--text-sm)}.billing-status svg{color:var(--success);flex-shrink:0}.billing-status--warn{background:#ffc8571f}.billing-status--warn svg{color:var(--warning)}.plans__footer{display:flex;align-items:center;gap:6px}@media(max-width:720px){.plan-grid{grid-template-columns:1fr}}.dialog--projects{width:min(620px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow-y:auto}.dialog--projects p{line-height:1.5}.projects__current{margin:var(--space-4) 0 var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2)}.projects__current svg{vertical-align:-3px}.projects__save label{display:block;margin-bottom:var(--space-2);font-size:var(--text-sm);color:var(--text-2)}.projects__save-row{display:flex;gap:var(--space-2)}.projects__save-row input,.project-row__text input{flex:1;min-width:0;width:100%;padding:7px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-0);color:var(--text-1);font:inherit}.projects__error{margin-top:var(--space-2);color:var(--warning)}.projects__confirm{margin-bottom:var(--space-3);padding:var(--space-3);border:1px solid var(--warning);border-radius:var(--radius)}.projects__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.projects__actions--start{justify-content:flex-start}.projects__heading{margin:var(--space-5) 0 var(--space-2);font-size:var(--text-lg);font-weight:600}.projects__list{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none}.project-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2)}.project-row.is-current{border-color:var(--accent-strong)}.project-row__thumb{display:grid;flex-shrink:0;place-items:center;width:48px;height:48px;border-radius:var(--radius-sm);background:var(--bg-3);object-fit:cover;color:var(--text-3)}.project-row__text{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.project-row__name{overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.project-row__badge{margin-left:var(--space-2);padding:1px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:var(--text-xs);font-weight:600}.project-row__meta,.project-row__ask{color:var(--text-3);font-size:var(--text-sm)}.project-row__actions{display:flex;flex-shrink:0;align-items:center;gap:var(--space-1)}.projects__footer{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-4);font-size:var(--text-sm)}@media(max-width:560px){.project-row{flex-wrap:wrap}.project-row__actions{width:100%;justify-content:flex-end}.projects__save-row{flex-direction:column}}.project-button{max-width:280px;min-width:0}.project-button>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-button__status{color:var(--text-3);font-size:var(--text-sm)}.dialog--library{width:min(860px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow-y:auto}.library__search{width:100%;margin:var(--space-3) 0;padding:8px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-0);color:var(--text-1);font:inherit}.library-pack{margin-top:var(--space-4)}.library-pack h3{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-lg);font-weight:600}.library-pack__badge{padding:1px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:var(--text-xs);font-weight:600}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-3);margin:var(--space-2) 0 0;padding:0;list-style:none}.library-card{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2)}.library-card img{width:100%;height:auto;aspect-ratio:1;border-radius:var(--radius-sm);object-fit:cover}.library-card__name{font-weight:600}.library-card__actions{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-top:auto;padding-top:var(--space-1)}.library-pack.is-locked img{opacity:.85}.dialog--reels{width:min(1400px,calc(100vw - 16px));height:min(920px,calc(100dvh - 16px));max-height:none;padding:0;overflow:hidden}.reels{display:flex;flex-direction:column;height:100%}.reels__header{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-3) 52px var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.reels__header h2{margin:0 var(--space-2) 0 0}.reels__name,.reels__picker,.reels__text textarea{padding:6px 9px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-0);color:var(--text-1);font:inherit}.reels__name{flex:1;min-width:140px;max-width:320px}.reels__picker{max-width:220px}.reels__header .dialog__close{top:12px}.reels__body{display:grid;flex:1;grid-template-columns:280px minmax(0,1fr) 320px;min-height:0}.reels__left,.reels__right{min-height:0;overflow-y:auto;padding:var(--space-3)}.reels__left{border-right:1px solid var(--border)}.reels__right{display:flex;flex-direction:column;padding:0;border-left:1px solid var(--border)}.reels__panel{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);overflow-y:auto}.reels h3{margin:var(--space-3) 0 var(--space-2);font-size:var(--text-md);font-weight:600}.reels__templates{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.reels__template{display:flex;flex-direction:column;gap:2px;padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-2);color:var(--text-1);font:inherit;text-align:left}.reels__template span{display:-webkit-box;overflow:hidden;color:var(--text-3);font-size:var(--text-xs);-webkit-box-orient:vertical;-webkit-line-clamp:2}.reels__template:hover{border-color:var(--accent-strong)}.reels__scenes{display:flex;flex-direction:column;gap:4px;margin:0 0 var(--space-2);padding:0;list-style:none}.reels__scenes li{display:flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-2)}.reels__scenes li.is-selected{border-color:var(--accent-strong);background:var(--accent-soft)}.reels__scene{display:flex;flex:1;align-items:center;gap:var(--space-2);min-width:0;padding:6px 8px;border:0;background:none;color:inherit;font:inherit;text-align:left}.reels__scene-kind{padding:0 5px;border-radius:4px;background:var(--bg-3);color:var(--text-2);font-size:var(--text-xs)}.reels__scene-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reels__scene-actions{display:flex;flex-shrink:0}.reels__scene-actions button{width:24px;height:26px;border:0;background:none;color:var(--text-2)}.reels__scene-actions button:hover:not(:disabled){color:var(--text-1)}.reels__scene-actions button:disabled{opacity:.3}.reels__add{display:flex;flex-wrap:wrap;gap:var(--space-2)}.reels__centre{display:flex;min-height:0;padding:var(--space-3);background:var(--bg-0)}.reels__preview{display:flex;flex:1;flex-direction:column;align-items:center;gap:var(--space-2);min-height:0}.reels__stage{display:grid;flex:1;place-items:center;width:100%;min-height:0;container-type:size}.reels__screen{width:min(100cqw,calc(100cqh * var(--ratio)));aspect-ratio:var(--ratio);overflow:hidden;border-radius:var(--radius);background:#000;box-shadow:var(--shadow)}.reels__screen canvas{display:block;width:100%;height:100%;object-fit:contain}.reels__transport{display:flex;align-items:center;gap:var(--space-2);width:min(100%,560px)}.reels__transport input[type=range]{flex:1}.reels__time{color:var(--text-2);font-size:var(--text-sm);font-variant-numeric:tabular-nums;white-space:nowrap}.reels__text{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-2)}.reels__text summary{overflow:hidden;padding:8px 10px;cursor:pointer;text-overflow:ellipsis;white-space:nowrap}.reels__text[open]{display:flex;flex-direction:column;gap:var(--space-2);padding-bottom:var(--space-2)}.reels__text>:not(summary){margin:0 var(--space-2)}.reels__logo{max-width:160px;max-height:90px;object-fit:contain;align-self:flex-start;border-radius:var(--radius-sm);background:repeating-conic-gradient(#2a2e38 0% 25%,#1b1e25 0% 50%) 0 0 / 16px 16px}@media(max-width:900px){.dialog--reels{width:100vw;height:100dvh;border-radius:0}.reels__body{display:flex;flex-direction:column;overflow-y:auto}.reels__centre{order:-1;flex:none;height:52dvh}.reels__left,.reels__right{flex:none;overflow:visible;border:0}.reels__panel{overflow:visible}}
