.app{background:var(--bg);height:100%;position:relative;overflow:hidden}.app-bar{top:var(--sp-3);left:var(--sp-3);right:var(--sp-3);z-index:40;align-items:center;gap:var(--sp-3);pointer-events:none;background:0 0;display:flex;position:absolute}.app-island{align-items:center;gap:var(--sp-3);min-height:56px;padding:0 var(--sp-3);border:var(--bw) solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-md);pointer-events:auto;display:flex}.app-island-load{flex:auto;min-width:0;max-width:940px}.app-island-menu{gap:var(--sp-1);margin-left:auto}.app-source-link{color:var(--text-dim);text-decoration:none}.app-source-link:hover{color:var(--text)}.app-source-link.has-stars{width:auto;padding:0 var(--sp-3) 0 var(--sp-2);gap:var(--sp-1)}.app-source-stars{height:16px;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--fs-sm);color:var(--text);animation:app-stars-in var(--dur-slow) var(--ease-out);align-items:center;gap:4px;line-height:16px;display:inline-flex}.app-source-star-wrap{width:16px;height:16px;color:var(--warn);flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.app-source-star-glyph{flex:none}.app-source-link.has-stars{position:relative;overflow:hidden}.app-source-link.has-stars:after{content:"";background:linear-gradient(90deg, transparent, var(--sheen), transparent);pointer-events:none;width:28px;transition:transform var(--dur-slow) var(--ease-out);position:absolute;top:0;bottom:0;left:-60%;transform:translate(0)skew(-20deg)}.app-source-link.has-stars:hover:after{transform:translate(190px)skew(-20deg)}@keyframes app-stars-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.app-source-stars{animation:none}}.app-brand{gap:var(--sp-1);flex-direction:column;flex:none;min-width:0;display:flex}.app-title{font-size:var(--fs-base);line-height:var(--lh-label);font-weight:var(--fw-num);letter-spacing:var(--tr-base);color:var(--text);white-space:nowrap;margin:0}.app-tagline{font-size:var(--fs-sm);line-height:var(--lh-label);font-weight:var(--fw-body);letter-spacing:var(--tr-sm);color:var(--text-dim);white-space:nowrap;margin:0}.app-saved{align-items:center;gap:var(--sp-1);width:56px;font-size:var(--fs-label);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--text-faint);flex:none;margin:0;display:flex}.app-saved-dot{background:var(--ok-mark);width:6px;height:6px;transition:background-color var(--dur-base) var(--ease);border-radius:50%}.app-saved.is-saving .app-saved-dot{background:var(--warn-mark)}@media (max-width:1620px){.app-saved{display:none}}.app-island-load>.traffic{flex:auto;min-width:0}.app-glossary{flex:none}.app-menu-wrap{flex:none;position:relative}.app-menu-btn{flex:none}.app-menu-btn[aria-expanded=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.app-glossary-key{margin-left:var(--sp-1);color:var(--text-faint);font-family:var(--mono);font-size:var(--fs-label);font-weight:var(--fw-med);font-variant-numeric:tabular-nums;line-height:1}@media (max-width:1900px){.app-glossary-key{display:none}.app-bar{gap:var(--sp-5)}}@media (max-width:1700px){.app-glossary-label{display:none}}@media (max-width:1620px){.app-tagline{display:none}}.app-glossary[aria-expanded=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.app-glossary[aria-expanded=true] .app-glossary-key{color:var(--accent-ink)}.app-body{--bar-clear:80px;--rail-w:224px;--ins-w:320px;--strip-h:clamp(196px, 26dvh, 260px);min-height:0;display:flex;position:absolute;inset:0;overflow:hidden}.app-slot{min-width:0;min-height:0;display:flex}.app-slot-left{top:var(--bar-clear);bottom:var(--sp-3);left:var(--sp-3);width:var(--rail-w);z-index:10;position:absolute}.app-slot-left>.pal{border:var(--bw) solid var(--border);border-radius:var(--r-lg);background:var(--surface);min-width:0;box-shadow:var(--shadow-sm);flex:auto;overflow:hidden}.app-slot-right{top:var(--bar-clear);bottom:var(--sp-3);right:var(--sp-3);width:var(--ins-w);z-index:10;position:absolute}.app-slot-right>.ins{border:var(--bw) solid var(--border);border-radius:var(--r-lg);min-width:0;box-shadow:var(--shadow-sm);flex:auto;overflow:hidden}.app-stage{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.stage-canvas{flex:auto;min-height:0;position:relative}.stage-toggle{z-index:5;color:var(--text-dim);transition:left var(--dur-base) var(--ease), right var(--dur-base) var(--ease), bottom var(--dur-base) var(--ease), background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);position:absolute}.stage-toggle:hover:not(:disabled){color:var(--text)}.stage-toggle-library{top:var(--bar-clear);left:var(--sp-3)}.stage-toggle-inspector{top:var(--bar-clear);right:var(--sp-3)}.stage-toggle-metrics{bottom:var(--sp-3);left:var(--sp-3)}.app-body.has-library .stage-toggle-library{left:calc(var(--rail-w) + var(--sp-3) * 2)}.app-body.has-inspector .stage-toggle-inspector{right:calc(var(--ins-w) + var(--sp-3) * 2)}.app-body.has-library .stage-toggle-metrics{left:calc(var(--rail-w) + var(--sp-3) * 2)}.app-body.has-metrics .stage-toggle-metrics{bottom:calc(var(--strip-h) + var(--sp-3) * 2)}.app-body.has-library .cv-ledger{left:calc(var(--rail-w) + var(--sp-3) * 2 + 32px + var(--sp-3))}.app-body.has-metrics .cv-ledger,.app-body.has-metrics .cv-zoom{bottom:calc(var(--strip-h) + var(--sp-3) * 2)}.app-body.has-metrics .cv-format{bottom:calc(var(--strip-h) + var(--sp-3) * 2 + 32px + var(--sp-3))}.app-body.has-inspector .cv-zoom,.app-body.has-inspector .mm{right:calc(var(--ins-w) + var(--sp-3) * 2)}.app-body .mm{top:calc(var(--bar-clear) + 32px + var(--sp-2))}.cv-ledger,.cv-zoom{transition:left var(--dur-base) var(--ease), right var(--dur-base) var(--ease), bottom var(--dur-base) var(--ease)}.stage-safe{visibility:hidden;pointer-events:none;position:absolute;inset:0}.app-body.has-library .stage-safe{left:var(--rail-w)}.app-body.has-inspector .stage-safe{right:var(--ins-w)}.app-body.has-metrics .stage-safe{bottom:var(--strip-h)}.app-slot-bottom{left:var(--sp-3);right:var(--sp-3);bottom:var(--sp-3);height:var(--strip-h);z-index:9;flex-direction:column;position:absolute;container:stage/inline-size}.app-body.has-library .app-slot-bottom{left:calc(var(--rail-w) + var(--sp-3) * 2)}.app-body.has-inspector .app-slot-bottom{right:calc(var(--ins-w) + var(--sp-3) * 2)}.app-slot-bottom{border:var(--bw) solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);background:var(--surface);overflow:hidden}.app-slot-bottom>.mx{scrollbar-width:thin;scrollbar-color:var(--line) transparent;overscroll-behavior:contain;background:var(--surface);flex:auto;min-height:0;overflow-y:auto}.app-slot-bottom>.mx::-webkit-scrollbar{width:12px}.app-slot-bottom>.mx::-webkit-scrollbar-track{background:0 0}.app-slot-bottom>.mx::-webkit-scrollbar-thumb{border-radius:var(--r-pill);background:var(--line);background-clip:content-box;border:4px solid #0000}.app-slot-bottom>.mx::-webkit-scrollbar-thumb:hover{background:var(--line-2);background-clip:content-box}@keyframes app-slot-in-left{0%{transform:translate(-100%)}}@keyframes app-slot-out-left{to{transform:translate(-100%)}}@keyframes app-slot-in-right{0%{transform:translate(100%)}}@keyframes app-slot-out-right{to{transform:translate(100%)}}@keyframes app-slot-in-bottom{0%{transform:translateY(100%)}}@keyframes app-slot-out-bottom{to{transform:translateY(100%)}}.app-slot-left.is-entering{animation:app-slot-in-left var(--dur-base) var(--ease-out)}.app-slot-right.is-entering{animation:app-slot-in-right var(--dur-base) var(--ease-out)}.app-slot-bottom.is-entering{animation:app-slot-in-bottom var(--dur-base) var(--ease-out)}.app-slot-left.is-closing{animation:app-slot-out-left var(--dur-base) var(--ease) forwards}.app-slot-right.is-closing{animation:app-slot-out-right var(--dur-base) var(--ease) forwards}.app-slot-bottom.is-closing{animation:app-slot-out-bottom var(--dur-base) var(--ease) forwards}@media (max-width:1360px){.app-slot-left{width:min(var(--rail-w), 200px)}.app-slot-right{width:min(var(--ins-w), 288px)}.app-bar{padding:var(--sp-3) var(--sp-4)}}@media (max-width:1000px){.app-bar{gap:var(--sp-3);padding:var(--sp-3) var(--sp-3)}}@media (max-height:720px){.app-slot-bottom{height:min(var(--strip-h), clamp(150px, 24vh, 196px))}}.app-history{gap:var(--sp-1);flex:none;display:flex}.app-toast{bottom:var(--sp-5);z-index:300;padding:var(--sp-2) var(--sp-4);border:var(--bw) solid var(--border-strong);border-radius:var(--r-btn);background:var(--surface);color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-med);line-height:var(--lh-label);box-shadow:var(--shadow-sm);animation:app-toast-in .16s var(--ease-out);position:fixed;left:50%;transform:translate(-50%)}@keyframes app-toast-in{0%{opacity:0;transform:translate(-50%)translateY(4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.app-toast-error{max-width:min(46ch, calc(100vw - var(--sp-6)));border-color:var(--danger);background:var(--danger-soft);color:var(--danger);text-align:center;text-wrap:balance}@media (prefers-reduced-motion:reduce){.app-toast{animation:none}}.app-file-input{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.app-slot-left.is-entering,.app-slot-right.is-entering,.app-slot-bottom.is-entering,.app-slot-left.is-closing,.app-slot-right.is-closing,.app-slot-bottom.is-closing{animation-duration:.01ms}}@media (max-width:720px){.app-bar{background:var(--surface);border-bottom:var(--bw) solid var(--border);pointer-events:auto;flex-wrap:wrap;gap:0;padding:0;position:fixed;top:0;left:0;right:0}.app-island{gap:var(--sp-2);min-height:0;padding:var(--sp-2) var(--sp-3);box-shadow:none;background:0 0;border:0;border-radius:0}.app-island-brand{flex:auto;order:1}.app-island-menu{order:2;margin-left:0;padding-left:0}.app-island-load{border-top:var(--bw) solid var(--border);flex:100%;order:3;max-width:none}.app-tagline,.app-saved{display:none}.app-history{gap:var(--sp-2);margin-left:auto}.app-history .btn{border-color:var(--border-strong);background:var(--surface)}.app-body{top:0}.app-stage{padding-top:var(--bar-clear);padding-bottom:var(--tabbar-h)}.app-slot-left,.app-slot-right,.app-slot-bottom{top:auto;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px));width:auto;height:auto;max-height:min(62vh, calc(100vh - var(--bar-clear) - var(--tabbar-h) - var(--sp-3)));max-height:min(62dvh, calc(100dvh - var(--bar-clear) - var(--tabbar-h) - var(--sp-3)));max-height:min(62dvh, calc(100dvh - var(--bar-clear) - var(--tabbar-h) - var(--sp-3)), calc(100dvh - var(--tabbar-h) - 96px));position:fixed;left:0;right:0}.app-slot-left>.pal,.app-slot-right>.ins,.app-slot-bottom>.met{border-radius:var(--r-lg) var(--r-lg) 0 0;border-bottom:0}.app-slot-left.is-entering,.app-slot-right.is-entering{animation-name:app-sheet-in}.app-slot-left.is-closing,.app-slot-right.is-closing{animation-name:app-sheet-out}.pr,.cv-zoom,.cv-ledger,.stage-toggle{display:none}}@keyframes app-sheet-in{0%{transform:translateY(100%)}}@keyframes app-sheet-out{to{transform:translateY(100%)}}.app-tabbar{display:none}@media (max-width:720px){.app-tabbar{z-index:45;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface);border-top:var(--bw) solid var(--border);align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0}.app-tab{min-width:0;color:var(--text-dim);font-size:var(--fs-xs);font-weight:var(--fw-med);letter-spacing:var(--tr-label);cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:2px;padding:0;display:flex}.app-tab[aria-expanded=true]{color:var(--accent-ink);background:var(--accent-soft)}.app-tab:disabled{opacity:.4;cursor:default}.app-tab svg{flex:none}}.app-scrim,.app-grabber{display:none}@media (max-width:720px){.app-scrim{z-index:9;background:var(--scrim);animation:app-scrim-in var(--dur-base) var(--ease-out);display:block;position:fixed;inset:0}.app-scrim.is-closing{animation:app-scrim-out var(--dur-base) var(--ease) forwards}.app-grabber{touch-action:none;cursor:grab;flex:none;justify-content:center;align-items:center;height:28px;padding:12px 0;display:flex}.app-grabber-bar{background:var(--border-strong);border-radius:2px;width:36px;height:4px}.app-grabber:active .app-grabber-bar{background:var(--text-dim)}.app-slot-left:not([style*=translateY]),.app-slot-right:not([style*=translateY]),.app-slot-bottom:not([style*=translateY]){transition:transform var(--dur-base) var(--ease-out)}.app-slot.is-entering,.app-slot.is-closing{transition:none}.app-slot-left>.pal,.app-slot-right>.ins,.app-slot-bottom>.met{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.app-slot-left,.app-slot-right,.app-slot-bottom{border:var(--bw) solid var(--border);border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--surface);border-bottom:0;flex-direction:column;display:flex;overflow:hidden}}@keyframes app-scrim-in{0%{opacity:0}}@keyframes app-scrim-out{to{opacity:0}}
