:root{--ecc-cyan:#00c2d4;--ecc-cyan-dim:#0891a0;--ecc-steel:#2a3544;--ecc-steel-2:#1a2330;--ecc-steel-3:#0f1620;--ecc-text:#e8eef5;--ecc-muted:#9aa8b8;--ecc-border:#00c2d459;--ecc-panel:#1a2330f5;--font:"Segoe UI", system-ui, -apple-system, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#app{width:100%;height:100dvh;font-family:var(--font);background:var(--ecc-steel-3);color:var(--ecc-text);overscroll-behavior:none;-webkit-text-size-adjust:100%;margin:0;overflow:hidden}#app{min-height:100dvh;padding-bottom:env(safe-area-inset-bottom,0);grid-template-rows:auto 1fr;display:grid;position:relative}.topbar{z-index:20;background:linear-gradient(180deg, var(--ecc-steel) 0%, var(--ecc-steel-2) 100%);border-bottom:1px solid var(--ecc-border);justify-content:space-between;align-items:center;gap:1rem;padding:.55rem .9rem;display:flex;box-shadow:0 2px 12px #00000059}.brand{align-items:center;gap:.7rem;min-width:0;display:flex}.brand-logo{object-fit:contain;flex-shrink:0;width:auto;max-width:120px;height:36px;display:block}.brand-text{flex-direction:column;min-width:0;line-height:1.15;display:flex}.brand-text strong{letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;overflow:hidden}.brand-sub{color:var(--ecc-cyan);letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;font-weight:500;overflow:hidden}.topbar-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.label-short{display:none}.btn{appearance:none;border:1px solid var(--ecc-border);color:var(--ecc-text);font:inherit;cursor:pointer;background:#00c2d41f;border-radius:6px;justify-content:center;align-items:center;padding:.4rem .75rem;font-size:.85rem;transition:background .15s,border-color .15s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--ecc-cyan);background:#00c2d438}.btn:disabled{opacity:.45;cursor:default}.btn.ghost{background:0 0}.btn.primary{background:var(--ecc-cyan-dim);border-color:var(--ecc-cyan);color:#041218;font-weight:600}.btn.slim{padding:.3rem .55rem;font-size:.78rem}.file-btn{align-items:center;display:inline-flex}.viewport{touch-action:none;-webkit-user-select:none;user-select:none;background:radial-gradient(at 40% 30%,#243246 0%,#0f1620 70%);outline:none;width:100%;height:100%;min-height:0;position:relative}.viewport canvas{touch-action:none;-webkit-user-select:none;user-select:none;display:block;width:100%!important;height:100%!important}.tools-panel{z-index:25;background:var(--ecc-panel);border:1px solid var(--ecc-border);border-radius:10px;flex-direction:column;width:min(260px,100vw - 1.5rem);max-height:calc(100% - 5.5rem);display:flex;position:absolute;top:3.6rem;left:.75rem;overflow:hidden;box-shadow:0 8px 28px #00000073}.tools-panel[hidden]{display:none!important}.tools-section{border-bottom:1px solid #ffffff14;flex-direction:column;flex:50%;min-height:0;display:flex}.tools-section:last-child{border-bottom:none}.tools-head{flex-shrink:0;justify-content:space-between;align-items:center;padding:.5rem .7rem .35rem;display:flex}.tools-head h2{color:var(--ecc-cyan);letter-spacing:.02em;margin:0;font-size:.82rem;font-weight:600}.tools-list{padding:.15rem .45rem .55rem;font-size:.8rem;overflow:auto}.tools-list .muted{padding:.35rem .25rem}.tools-item{appearance:none;width:100%;color:var(--ecc-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:space-between;align-items:center;gap:.4rem;padding:.35rem .45rem;font-size:.8rem;transition:background .12s,border-color .12s;display:flex}.tools-item:hover,.tools-item.active{border-color:var(--ecc-border);background:#00c2d424}.tools-item .count{color:var(--ecc-muted);flex-shrink:0;font-size:.72rem}.tools-section.collapsed{flex:none}.tools-section.collapsed .tools-body{display:none!important}.tools-body{flex-direction:column;flex:1;min-height:0;display:flex}.tools-head-toggle{appearance:none;color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;width:100%}.tools-head-toggle:hover{background:#00c2d414}.tools-head-left{align-items:center;gap:.35rem;min-width:0;display:inline-flex}.chevron{width:.85rem;color:var(--ecc-muted);font-size:.75rem;line-height:1;transition:transform .12s;display:inline-block}.tools-section:not(.collapsed) .chevron{transform:rotate(90deg)}.marks-search-wrap{flex-shrink:0;padding:0 .45rem .35rem}#marks-search{appearance:none;width:100%;color:var(--ecc-text);font:inherit;background:#00000040;border:1px solid #ffffff1f;border-radius:6px;padding:.35rem .5rem;font-size:.78rem}#marks-search:focus{border-color:var(--ecc-border);outline:none}#marks-search::placeholder{color:var(--ecc-muted)}.mark-row{align-items:stretch;gap:.1rem;width:100%;display:flex}.mark-toggle{appearance:none;width:1.45rem;color:var(--ecc-cyan);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;flex:0 0 1.45rem;padding:0;font-size:.85rem;font-weight:600;line-height:1}.mark-toggle:hover:not(:disabled){border-color:var(--ecc-border);background:#00c2d424}.mark-toggle:disabled,.mark-toggle.is-empty{opacity:.25;cursor:default;color:var(--ecc-muted)}.mark-label{flex:1;justify-content:flex-start;min-width:0}.mark-label span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mark-children{border-left:1px solid #ffffff14;margin-bottom:.15rem;margin-left:.55rem;padding-left:.7rem}.mark-node{margin:0}.props-panel{z-index:25;background:var(--ecc-panel);border:1px solid var(--ecc-border);border-radius:10px;flex-direction:column;width:min(320px,100vw - 1.5rem);max-height:calc(100% - 5.5rem);display:flex;position:absolute;top:3.6rem;right:.75rem;overflow:hidden;box-shadow:0 8px 28px #00000073}.props-panel[hidden]{display:none!important}.props-head{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:.55rem .75rem;display:flex}.props-head h2{color:var(--ecc-cyan);margin:0;font-size:.9rem;font-weight:600}.icon-btn{appearance:none;color:var(--ecc-muted);cursor:pointer;background:0 0;border:none;padding:.15rem .35rem;font-size:1.25rem;line-height:1}.icon-btn:hover{color:var(--ecc-text)}.props-body{flex:1;min-height:0;padding:.65rem .75rem .85rem;font-size:.82rem;overflow:auto}.props-body dl{grid-template-columns:minmax(5.5rem,38%) 1fr;gap:.35rem .55rem;margin:0;display:grid}.props-body dt{color:var(--ecc-muted);word-break:break-word}.props-body dd{word-break:break-word;margin:0}.props-body h3{text-transform:uppercase;letter-spacing:.04em;color:var(--ecc-cyan-dim);margin:.75rem 0 .35rem;font-size:.78rem}.props-body h3:first-child{margin-top:0}.props-actions{border-top:1px solid #ffffff14;flex-wrap:wrap;gap:.35rem;padding:.45rem .65rem .65rem;display:flex}.props-actions[hidden]{display:none!important}.muted{color:var(--ecc-muted);margin:0}.welcome{z-index:15;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0a0e148c;place-items:center;padding:1rem;display:grid;position:absolute;inset:3.4rem 0 0}.welcome[hidden]{display:none!important}.welcome-card{background:var(--ecc-panel);border:1px solid var(--ecc-border);border-radius:12px;width:min(420px,100%);padding:1.25rem 1.35rem 1.4rem;box-shadow:0 12px 40px #00000080}.welcome-card h1{color:var(--ecc-cyan);margin:0 0 .4rem;font-size:1.25rem}.welcome-card p{color:var(--ecc-muted);margin:0 0 .75rem;line-height:1.4}.welcome-card ul{color:var(--ecc-text);margin:0 0 .85rem;padding-left:1.1rem;font-size:.9rem;line-height:1.45}.welcome-card code{color:var(--ecc-cyan);font-size:.85em}.welcome-card .example a{color:var(--ecc-cyan)}.status{z-index:20;max-width:min(70vw,420px);color:var(--ecc-muted);pointer-events:none;background:#0f1620d9;border:1px solid #ffffff14;border-radius:6px;padding:.35rem .65rem;font-size:.75rem;position:absolute;bottom:.65rem;left:.75rem}.status:empty,.status[hidden]{display:none}.status.error{color:#ffb4b4;border-color:#ff787866}.status.busy{color:var(--ecc-cyan)}.legal-corner{z-index:20;appearance:none;font:inherit;color:var(--ecc-muted);opacity:.55;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;margin:0;padding:.2rem .35rem;font-size:.68rem;text-decoration:underline;transition:opacity .15s,color .15s;position:absolute;bottom:.65rem;right:.75rem}.legal-corner:hover,.legal-corner:focus-visible{opacity:.95;color:var(--ecc-cyan);outline:none}@media (width<=720px){.topbar{padding:.28rem .4rem;padding-left:max(.4rem, env(safe-area-inset-left,0));padding-right:max(.4rem, env(safe-area-inset-right,0));flex-wrap:nowrap;gap:.3rem;min-height:0}.brand{flex:0 auto;gap:.4rem;min-width:0}.brand-sub{display:none}.brand-logo{max-width:72px;height:22px}.brand-text strong{font-size:.72rem}.topbar-actions{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;flex:auto;justify-content:flex-end;gap:.18rem;width:auto;min-width:0;overflow-x:auto}.topbar-actions::-webkit-scrollbar{display:none}.label-full{display:none}.label-short{display:inline}.topbar-actions .btn{border-radius:5px;flex:none;min-width:36px;min-height:36px;padding:.15rem .38rem;font-size:.68rem;line-height:1}.tools-panel{top:auto;bottom:calc(2.6rem + env(safe-area-inset-bottom,0px));width:min(220px,100vw - 1rem);max-height:min(42vh,100% - 6rem);left:.5rem}.props-panel{top:auto;bottom:calc(2.6rem + env(safe-area-inset-bottom,0px));width:min(260px,100vw - 1rem);max-height:min(42vh,100% - 6rem);left:auto;right:.5rem}.status{left:.5rem;bottom:calc(.4rem + env(safe-area-inset-bottom,0px));max-width:calc(100vw - 1rem)}.legal-corner{right:max(.5rem, env(safe-area-inset-right,0px));bottom:calc(.4rem + env(safe-area-inset-bottom,0px))}}@media (width<=480px){.topbar{padding:.22rem .32rem;padding-left:max(.32rem, env(safe-area-inset-left,0));padding-right:max(.32rem, env(safe-area-inset-right,0));gap:.22rem}.brand-logo{max-width:60px;height:20px}.brand-text strong{max-width:5.5rem;font-size:.65rem}.topbar-actions{gap:.12rem}.topbar-actions .btn{min-width:34px;min-height:34px;padding:.12rem .3rem;font-size:.64rem}}.legal-panel{z-index:40;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#080c128c;place-items:center;padding:1rem;display:grid;position:absolute;inset:0}.legal-panel[hidden]{display:none!important}.legal-card{background:var(--ecc-panel);border:1px solid var(--ecc-border);border-radius:10px;flex-direction:column;width:min(92vw,560px);min-height:0;max-height:min(88vh,100dvh - 2rem);display:flex;overflow:hidden;box-shadow:0 12px 40px #00000080}.legal-head{z-index:1;background:var(--ecc-panel);border-bottom:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;gap:.5rem;padding:.65rem .75rem;display:flex;position:sticky;top:0}.legal-head h2{color:var(--ecc-text);margin:0;font-size:.95rem;font-weight:600}.legal-body{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:1.25rem;min-height:0;padding:.75rem .9rem 1.15rem;display:flex;overflow:auto}.legal-section{flex-direction:column;gap:.45rem;display:flex}.legal-section-title{letter-spacing:.03em;text-transform:uppercase;color:var(--ecc-cyan);margin:0;font-size:.8rem;font-weight:600}.legal-ecc-line,.legal-intro,.legal-lead,.legal-area{color:var(--ecc-muted);margin:0;font-size:.82rem;line-height:1.4}.legal-lead{color:var(--ecc-text);font-size:.85rem}.legal-area{font-size:.78rem}.legal-doc h4{color:var(--ecc-cyan-dim);letter-spacing:.02em;margin:.55rem 0 .15rem;font-size:.78rem;font-weight:600}.legal-doc h4:first-of-type{margin-top:.25rem}.legal-doc p{color:var(--ecc-muted);margin:0;font-size:.82rem;line-height:1.45}.legal-doc a{color:var(--ecc-cyan);text-decoration:none}.legal-doc a:hover{text-decoration:underline}.legal-doc a[href^=mailto\:]{color:var(--ecc-cyan)}.legal-doc-link{margin-top:.35rem!important;font-size:.78rem!important}.legal-list{color:var(--ecc-muted);flex-direction:column;gap:.65rem;margin:0;padding:0;font-size:.82rem;line-height:1.4;list-style:none;display:flex}.legal-ecc-links{gap:.35rem}.legal-ecc-links a{color:var(--ecc-cyan);font-size:.82rem;text-decoration:none}.legal-ecc-links a:hover{text-decoration:underline}.legal-list strong{color:var(--ecc-text);font-weight:600}.legal-links{margin-top:.15rem;font-size:.78rem;display:block}.legal-links a{color:var(--ecc-cyan);text-decoration:none}.legal-links a:hover{text-decoration:underline}@media (width<=720px){.legal-panel{padding:.5rem;padding-bottom:max(.5rem, env(safe-area-inset-bottom,0px));place-items:stretch center}.legal-card{width:min(100%,560px);max-height:min(92vh, calc(100dvh - 1rem - env(safe-area-inset-bottom,0px)));align-self:center}.legal-doc p{font-size:.8rem}}
