:root{--bg: #131210;--bg2: #1a1916;--bg3: #221f1b;--line: #2c2922;--line2: #383429;--text: #f0ede7;--text2: #cac4b9;--muted: #948b7d;--faint: #685f53;--accent: #2e6be6;--accent2: #5286f0;--accent-soft: color-mix(in srgb, var(--accent) 16%, transparent);--pass: #34c777;--warn: #e8a13c;--fail: #ef5350;--vp: #ece8e1;--ease: cubic-bezier(.32, .72, .24, 1);--font-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}html{overflow:hidden}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);overflow:hidden;font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-optical-sizing:auto;font-feature-settings:"liga" 1,"calt" 1}button{font-family:inherit;color:inherit}button:active{transform:scale(.98)}button:focus-visible,.switch:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent2);outline-offset:2px}.field input:focus-visible,.save-name:focus-visible,.pw-redeem input:focus-visible{outline-offset:1px}input[type=range]:focus-visible{outline:none}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 5px #2e6be63d}input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 5px #2e6be63d}.icn svg,.sec-icon svg,.seg svg,#viewtabs svg,#actions svg,.check-icon svg,#statuschip svg,.tool-toggle svg,#mobileClose svg{width:16px;height:16px;display:block}#app{display:flex}#leftshell{display:flex;height:100%;min-width:0}#rail{position:relative;z-index:12;width:62px;min-width:62px;height:100%;background:var(--bg);border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;padding:13px 0 12px}#railBrand{display:grid;place-items:center;width:38px;height:38px;margin-bottom:14px;color:var(--accent);border-radius:11px;transition:background .18s}#railBrand:hover{background:var(--bg2)}#railBrand svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}#railTabs{display:flex;flex-direction:column;gap:5px;width:100%;align-items:center}#railFoot{margin-top:auto;width:100%;display:flex;flex-direction:column;align-items:center;gap:5px;padding-top:8px}.rail-tab{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;width:50px;padding:9px 0 7px;background:none;border:1px solid transparent;border-radius:11px;color:var(--muted);cursor:pointer;transition:color .16s,background .16s,border-color .16s}.rail-dot{position:absolute;top:6px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--accent2);box-shadow:0 0 0 2px var(--bg);opacity:0;transform:scale(.5);transition:opacity .18s,transform .18s var(--ease)}.rail-tab.has-unsaved .rail-dot{opacity:1;transform:none;animation:dotBreath 2.4s var(--ease) infinite}@keyframes dotBreath{0%,to{box-shadow:0 0 0 2px var(--bg),0 0 0 4px transparent}50%{box-shadow:0 0 0 2px var(--bg),0 0 0 6px color-mix(in srgb,var(--accent2) 30%,transparent)}}.rail-tab svg{width:20px;height:20px}.rail-tab span{font-size:9px;font-weight:600;letter-spacing:.01em;line-height:1;text-align:center}.rail-tab:hover{color:var(--text);background:var(--bg2)}.rail-tab.active{color:var(--accent2);background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 32%,transparent)}#railFoot .rail-tab{color:var(--faint)}#railFoot .rail-tab:hover{color:var(--text2);background:var(--bg2)}#railCollapse svg{transition:transform .3s var(--ease)}#app.panel-collapsed #railCollapse svg{transform:rotate(180deg)}#sidebar{width:298px;min-width:298px;height:100%;background:var(--bg);border-right:1px solid var(--line);display:flex;flex-direction:column;transition:margin-left .34s var(--ease)}#app.panel-collapsed #sidebar{margin-left:-298px}#panelhead{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:18px 18px 13px;border-bottom:1px solid var(--line)}.ph-text{min-width:0}#panelTitle{font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--text)}#panelDesc{font-size:11.5px;color:var(--muted);margin-top:5px;line-height:1.5}#mobileClose{display:none;flex:none;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:var(--bg2);color:var(--muted);cursor:pointer}#mobileClose:hover{color:var(--text);border-color:var(--line2)}#mobileClose svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round}.ph-actions{display:flex;align-items:center;gap:8px;flex:none}#headSave{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:9px;background:var(--bg3);color:var(--text2);border:1px solid var(--line2);font-size:12px;font-weight:600;cursor:pointer;transition:color .16s,border-color .16s,background .16s}#headSave svg{width:14px;height:14px}#headSave:hover{color:var(--text);border-color:var(--faint)}#headSave.is-update{background:var(--accent);border-color:var(--accent);color:#fff}#headSave.is-update:hover{background:var(--accent2);border-color:var(--accent2)}#headSave.saved{animation:savedFlash .85s var(--ease)}@keyframes savedFlash{0%,35%{background:var(--pass);border-color:var(--pass);color:#fff}to{background:var(--bg3);border-color:var(--line2);color:var(--text2)}}.save-card.pulse{animation:cardPulse .9s var(--ease)}@keyframes cardPulse{0%{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 24%,transparent)}to{border-color:var(--line);box-shadow:none}}#panel{flex:1;overflow-y:auto;padding:14px 16px 40px;scrollbar-width:thin;scrollbar-color:var(--line2) transparent}.view{display:none}.view.active{display:block;animation:viewIn .22s var(--ease)}@keyframes viewIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.section{border-bottom:1px solid var(--line)}.section:first-child{margin-top:-2px}.section:last-child{border-bottom:none}.sec-head{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;padding:13px 0;text-align:left;cursor:pointer}.sec-icon{color:var(--muted);display:flex;transition:color .2s}.sec-head:hover .sec-icon{color:var(--accent2)}.sec-title{flex:1;font-size:12.5px;font-weight:600;letter-spacing:.005em;color:var(--text2)}.sec-head:hover .sec-title{color:var(--text)}.sec-chev{color:var(--faint);display:flex;transition:transform .3s var(--ease)}.section.open .sec-chev{transform:rotate(90deg)}.sec-body{display:grid;grid-template-rows:1fr;transition:grid-template-rows .34s var(--ease)}.section.collapsible:not(.open) .sec-body{grid-template-rows:0fr}.sec-inner{overflow:hidden;min-height:0}.section.collapsible.open .sec-inner{padding-bottom:13px}.sec-desc{font-size:11px;color:var(--muted);margin:0 0 12px;line-height:1.5}.presets{display:flex;flex-direction:column;gap:8px}.preset{display:grid;grid-template-columns:76px 1fr;gap:13px;align-items:center;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:12px 13px;cursor:pointer;text-align:left;transition:border-color .18s,background .18s,transform .18s var(--ease),box-shadow .18s}.preset:hover{border-color:var(--line2);transform:translateY(-1px);box-shadow:0 6px 18px #00000052}.preset.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg2));box-shadow:0 0 0 1px var(--accent) inset}.preset .thumb{display:grid;place-items:center;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 6px;color:var(--muted);transition:color .18s,border-color .18s}.preset:hover .thumb,.preset.active .thumb{color:var(--accent2);border-color:var(--line2)}.preset .ptxt{min-width:0}.preset b{display:block;font-size:12.5px;font-weight:600;letter-spacing:.01em}.preset .ptype{display:inline-block;font-style:normal;margin-top:4px;font-size:8.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);transition:color .18s}.preset.active .ptype{color:var(--accent2)}.preset .pblurb{display:block;font-size:11px;color:var(--muted);margin-top:5px;line-height:1.45}.preset .thumb svg{width:100%;height:30px}.save-card{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:12px 13px}.save-card-label{font-size:11.5px;font-weight:600;color:var(--text2);margin-bottom:9px}.save-row{display:flex;gap:7px}.save-name{flex:1;min-width:0;background:var(--bg3);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:8px 10px;font:inherit;font-size:12px}.save-name::placeholder{color:var(--faint)}.save-name:focus{outline:none;border-color:var(--accent)}.save-btn{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:#fff;border:none;border-radius:9px;padding:0 14px;font-size:12px;font-weight:600;cursor:pointer;transition:filter .18s}.save-btn:hover{filter:brightness(1.08)}.save-btn svg{width:15px;height:15px}.update-btn{width:100%;margin-top:9px;justify-content:center;background:transparent;color:var(--accent);border:1px solid var(--accent);padding:8px 12px}.update-btn:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);filter:none}.saved-head{display:flex;align-items:baseline;gap:8px;margin:20px 2px 10px;font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--faint)}.saved-count{font-size:10.5px;font-weight:700;letter-spacing:0;min-width:18px;height:18px;padding:0 6px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg3);color:var(--muted)}.saved-designs{display:flex;flex-direction:column;gap:8px}.saved-empty{margin:2px 0;padding:16px 14px;background:var(--bg2);border:1px dashed var(--line2);border-radius:12px;font-size:11.5px;color:var(--muted);line-height:1.55;text-align:center}.saved-card{position:relative}.saved-card .preset{width:100%;grid-template-columns:44px 1fr;gap:12px;padding:11px 12px}.saved-card .preset .thumb{padding:7px}.saved-card .preset .thumb svg{width:22px;height:22px}.saved-card .preset b{padding-right:52px}.saved-actions{position:absolute;top:50%;right:10px;transform:translateY(-50%);display:flex;gap:4px;opacity:0;transition:opacity .15s}.saved-card:hover .saved-actions,.saved-card:focus-within .saved-actions{opacity:1}.saved-act{display:grid;place-items:center;width:26px;height:26px;background:var(--bg3);color:var(--muted);border:1px solid var(--line);border-radius:7px;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.saved-act svg{width:14px;height:14px}.saved-act:hover{color:var(--text);border-color:var(--line2)}.saved-act.danger:hover{color:var(--fail);border-color:var(--fail)}.seg{display:flex;gap:2px;background:var(--bg2);border:1px solid var(--line);border-radius:9px;padding:2px}.seg button{flex:1;padding:6px 2px;background:none;border:none;color:var(--muted);font-size:11.5px;font-weight:600;cursor:pointer;border-radius:7px;transition:background .18s,color .18s;white-space:nowrap}.seg button:hover{color:var(--text)}.seg button.active{background:var(--accent);color:#fff}.field{margin-bottom:13px}.field .frow{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:5px}.field label,.toggle label{font-size:12.5px;color:var(--text2)}.field label[title],.toggle label[title]{cursor:help}.field .val{display:flex;align-items:baseline;gap:4px}.field input[type=number]{width:64px;background:var(--bg3);color:var(--text);border:1px solid var(--line);border-radius:7px;padding:3px 7px;font-size:12px;text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;transition:border-color .15s}.field input[type=number]:focus{outline:none;border-color:var(--accent)}.field .unit{font-size:10px;color:var(--faint);min-width:18px}input[type=range]{width:100%;-moz-appearance:none;appearance:none;-webkit-appearance:none;height:4px;border-radius:2px;background:linear-gradient(to right,var(--accent) var(--p, 50%),var(--bg3) var(--p, 50%));outline:none}input[type=range]::-webkit-slider-thumb{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:15px;height:15px;border-radius:50%;background:#fff;border:3.5px solid var(--accent);cursor:grab;transition:transform .15s var(--ease),box-shadow .15s}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.18);box-shadow:0 0 0 5px #2e6be629}input[type=range]:active::-webkit-slider-thumb{cursor:grabbing;transform:scale(1.05)}.toggle{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.switch{position:relative;width:38px;height:22px;flex:none;background:var(--bg3);border:1px solid var(--line);border-radius:12px;cursor:pointer;transition:background .22s var(--ease),border-color .22s}.switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--muted);transition:left .22s var(--ease),background .22s}.switch.on{background:var(--accent);border-color:var(--accent)}.switch.on:after{left:18px;background:#fff}.switch:active{transform:none}#dock{position:absolute;left:16px;bottom:16px;z-index:5;width:304px;max-width:calc(100% - 32px);display:flex;flex-direction:column;background:color-mix(in srgb,var(--bg2) 90%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);border:1px solid var(--line2);border-radius:14px;box-shadow:0 18px 48px #080c126b,0 2px 8px #080c1247;overflow:hidden}.dock-head{display:flex;align-items:center;gap:9px;width:100%;padding:11px 13px;background:none;border:none;text-align:left;cursor:pointer}.dock-status{flex:1;min-width:0;display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.01em;color:var(--text2)}.dock-status svg{width:16px;height:16px;flex:none}.dock-status span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dock-status.pass{color:var(--pass)}.dock-status.warn{color:var(--warn)}.dock-status.fail{color:var(--fail)}.dock-status.pop{animation:pop .34s var(--ease)}.dock-chev{color:var(--faint);display:flex;flex:none;transition:transform .3s var(--ease);transform:rotate(90deg)}#dock.collapsed .dock-chev{transform:rotate(-90deg)}.dock-head:hover .dock-chev{color:var(--muted)}.dock-body{display:grid;grid-template-rows:1fr;transition:grid-template-rows .3s var(--ease);border-top:1px solid var(--line)}#dock.collapsed .dock-body{grid-template-rows:0fr;border-top-color:transparent}.dock-inner{overflow:hidden;min-height:0}.dock-scroll{max-height:min(54vh,460px);overflow-y:auto;padding:13px;scrollbar-width:thin;scrollbar-color:var(--line2) transparent}.dock-label{display:flex;align-items:center;gap:7px;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text2)}.dock-label-icon{color:var(--muted);display:flex}.dock-label-icon svg{width:15px;height:15px}.dock-note{font-size:10.5px;color:var(--faint);margin:5px 0 10px;line-height:1.45}.summary{margin-bottom:15px}.summary .headline{display:flex;align-items:baseline;gap:8px;padding-bottom:11px;border-bottom:1px solid var(--line)}.summary .headline b{font-size:20px;font-weight:600;letter-spacing:-.02em;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.summary .headline span{font-size:10px;color:var(--muted)}.summary .metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px 14px;padding-top:11px}.summary .metric{display:flex;flex-direction:column;gap:1px}.summary .metric span{font-size:9.5px;color:var(--muted);letter-spacing:.03em;text-transform:uppercase}.summary .metric b{font-size:12.5px;font-weight:500;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.checks{display:flex;flex-direction:column;gap:6px}.check{display:flex;gap:10px;padding:9px 11px;border-radius:10px;background:var(--bg3);border:1px solid var(--line);animation:rise .3s var(--ease) backwards}.check:nth-child(2){animation-delay:.02s}.check:nth-child(3){animation-delay:.04s}.check:nth-child(4){animation-delay:.06s}.check-icon{flex:none;margin-top:1px}.check.pass .check-icon{color:var(--pass)}.check.warn .check-icon{color:var(--warn)}.check.fail .check-icon{color:var(--fail)}.check.fail{border-color:#ef535066;background:#ef53500d}.check.warn{border-color:#e8a13c52}.check b{font-size:12px;font-weight:600;display:block}.check b em{font-style:normal;float:right;color:var(--muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:500}.check.fail b em{color:var(--fail)}.check.warn b em{color:var(--warn)}.check p{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.45}.check small{font-size:9px;color:var(--faint);display:block;margin-top:4px;letter-spacing:.04em;text-transform:uppercase}@keyframes rise{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}#main{flex:1;display:flex;flex-direction:column;min-width:0}#topbar{height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--line);background:var(--bg)}#viewtools{display:flex;align-items:center;gap:10px}.tool-toggle{display:flex;align-items:center;gap:7px;padding:7px 11px;background:none;border:1px solid transparent;border-radius:9px;color:var(--muted);font-size:12px;font-weight:600;cursor:pointer;transition:color .18s,background .18s}.tool-toggle:hover{color:var(--text);background:var(--bg2)}.tool-toggle svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round}#sidebarToggle{display:none}#viewtabs{display:flex;gap:2px;background:var(--bg2);padding:3px;border-radius:11px;border:1px solid var(--line)}#viewtabs button{display:flex;align-items:center;gap:7px;padding:7px 15px;border:none;background:none;color:var(--muted);font-size:12.5px;font-weight:600;border-radius:8px;cursor:pointer;transition:background .2s var(--ease),color .2s}#viewtabs button:hover{color:var(--text)}#viewtabs button.active{background:var(--accent);color:#fff}#actions{display:flex;gap:7px}#actions button{display:flex;align-items:center;gap:7px;padding:7px 13px;font-size:12px;font-weight:600;cursor:pointer;background:var(--bg2);color:var(--text2);border:1px solid var(--line);border-radius:9px;white-space:nowrap;transition:border-color .18s,color .18s,background .18s}#actions button:hover{border-color:var(--line2);color:var(--text)}#actions button.primary{background:var(--accent);border-color:var(--accent);color:#fff}#actions button.primary:hover{background:var(--accent2);border-color:var(--accent2)}#actions svg{width:15px;height:15px}#viewport{flex:1;position:relative;background:var(--vp);min-height:0}#stage3d,#stage2d{position:absolute;top:0;right:0;bottom:0;left:0;transition:opacity .26s var(--ease),transform .26s var(--ease)}#stage3d canvas{display:block}#stage2d{display:flex;align-items:center;justify-content:center;padding:20px;overflow:auto}#stage2d svg,#stage2d img.sheet{max-width:100%;max-height:100%;height:auto;box-shadow:0 18px 50px #141e2d29,0 3px 10px #141e2d14;border-radius:4px;background:#fff}#stage2d.fresh svg,#stage2d.fresh img.sheet{animation:sheetIn .4s var(--ease)}.hidden{opacity:0;pointer-events:none;transform:scale(.992)}@keyframes sheetIn{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}@keyframes pop{0%{transform:scale(.86);opacity:.5}60%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}#actions button.pro-badge{color:var(--pass);border-color:#34c77766}#actions button.pro-badge:hover{border-color:var(--pass)}#paywall{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:18px;background:#080b109e;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:rise .22s var(--ease)}.pw-card{position:relative;width:min(420px,100%);max-height:calc(100dvh - 36px);overflow-y:auto;background:var(--bg2);border:1px solid var(--line2);border-radius:16px;padding:26px 26px 20px;box-shadow:0 24px 70px #00000080}.pw-close{position:absolute;top:12px;right:12px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;border-radius:8px;color:var(--muted);cursor:pointer}.pw-close:hover{color:var(--text);background:var(--bg3)}.pw-close svg{width:18px;height:18px}.pw-card h2{font-size:17px;font-weight:700;letter-spacing:-.01em;padding-right:28px}.pw-sub{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.5}.pw-list{list-style:none;margin:16px 0 4px}.pw-list li{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--text2);padding:5px 0}.pw-list li svg{width:15px;height:15px;color:var(--pass);flex:none}.pw-price{display:flex;align-items:baseline;gap:9px;margin-top:12px;padding:12px 14px;background:var(--bg3);border:1px solid var(--line);border-radius:10px}.pw-price b{font-size:19px;font-weight:600;font-family:var(--font-mono);letter-spacing:-.01em}.pw-price span{font-size:11px;color:var(--muted)}.pw-buy{width:100%;margin-top:12px;padding:11px;background:var(--accent);color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;transition:background .18s}.pw-buy:hover{background:var(--accent2)}.pw-buy.danger{background:var(--bg3);color:var(--fail);border:1px solid var(--line2)}.pw-buy.danger:hover{border-color:var(--fail);background:var(--bg3)}.pw-divider{display:flex;align-items:center;gap:10px;margin:16px 0 10px;color:var(--faint);font-size:11px}.pw-divider:before,.pw-divider:after{content:"";flex:1;height:1px;background:var(--line)}.pw-redeem{display:flex;gap:8px}.pw-redeem input{flex:1;min-width:0;background:var(--bg3);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-size:12px;font-family:var(--font-mono)}.pw-redeem input:focus{outline:none;border-color:var(--accent)}.pw-redeem button{padding:9px 14px;flex:none;background:var(--bg3);color:var(--text2);border:1px solid var(--line2);border-radius:9px;font-size:12px;font-weight:600;cursor:pointer}.pw-redeem button:hover:not(:disabled){color:var(--text);border-color:var(--accent)}.pw-redeem button:disabled{opacity:.6;cursor:wait}.pw-msg{font-size:11.5px;color:var(--fail);margin-top:8px;min-height:16px}.pw-fine{font-size:10.5px;color:var(--faint);margin-top:12px;line-height:1.5}@media(max-width:760px){html,body,#app{height:100dvh}#app{position:relative;overflow:hidden}#app:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#080b107a;opacity:1;pointer-events:auto;transition:opacity .28s var(--ease)}#app.panel-collapsed:after{opacity:0;pointer-events:none}#leftshell{position:fixed;inset:0 auto 0 0;z-index:30;width:min(360px,94vw);max-width:94vw;height:100dvh;box-shadow:18px 0 42px #00000057;transform:translate(0);transition:transform .34s var(--ease)}#app.panel-collapsed #leftshell{transform:translate(-100%);box-shadow:none}#sidebar{flex:1;min-width:0;margin-left:0;border-right-color:var(--line2)}#app.panel-collapsed #sidebar{margin-left:0}#panelhead{padding:16px 16px 12px}#mobileClose{display:flex}#panel{padding:12px 14px max(36px,env(safe-area-inset-bottom))}#main{width:100%;height:100dvh}#topbar{height:auto;min-height:0;flex-direction:column;align-items:stretch;gap:8px;padding:max(8px,env(safe-area-inset-top)) 10px 9px}#viewtools{width:100%;min-width:0;gap:7px}#sidebarToggle{display:flex}.tool-toggle{flex:none;padding:8px 10px}#viewtabs{flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}#viewtabs::-webkit-scrollbar,#actions::-webkit-scrollbar{display:none}#viewtabs button{flex:0 0 auto;padding:8px 11px}#actions{width:100%;justify-content:flex-end;overflow-x:auto;padding-bottom:1px}#actions button{flex:0 0 auto;min-height:36px;padding:8px 11px}#viewport{min-height:0}#stage2d{align-items:flex-start;justify-content:flex-start;padding:12px}#stage2d svg,#stage2d img.sheet{width:100%;max-width:1260px;max-height:none}#dock{left:10px;right:10px;bottom:10px;width:auto;max-width:none}.dock-scroll{max-height:42vh}}@media(max-width:430px){.tool-toggle span,#viewtabs button span,#actions button span{display:none}.tool-toggle,#viewtabs button,#actions button{min-width:38px;justify-content:center}#viewtabs{justify-content:space-between}#viewtabs button{flex:1 1 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
