@font-face{font-family:inter;src:url(../media/InterVariable-s.p.2v4uvb3i5caxn.woff2)format("woff2");font-display:swap;font-weight:100 900;font-style:normal}@font-face{font-family:inter;src:url(../media/InterVariable_Italic-s.p.44o28jqvv04m6.woff2)format("woff2");font-display:swap;font-weight:100 900;font-style:italic}@font-face{font-family:inter Fallback;src:local(Arial);ascent-override:89.79%;descent-override:22.36%;line-gap-override:0.0%;size-adjust:107.89%}.T5x84q_className{font-family:inter,inter Fallback}.T5x84q_variable{--font-inter:"inter", "inter Fallback"}
:root{--ink:#17201b;--ink-soft:#5b665f;--line:#e2e6e3;--surface:#fff;--background:#f6f7f5;--accent:#2e9958;--accent-ink:#1f6f3f;--danger:#b4322f;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--background);color:var(--ink);font-family:var(--font-inter), system-ui, sans-serif;-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}h1,h2{letter-spacing:-.015em;margin:0;font-weight:650}a{color:var(--accent-ink)}code{overflow-wrap:anywhere;background:#eef1ee;border-radius:5px;padding:.1em .35em;font-size:.9em}.topbar{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 20px;display:flex}.brand{color:var(--ink);align-items:center;gap:8px;font-size:16px;font-weight:650;text-decoration:none;display:inline-flex}.topbar .spacer{flex:1}.page{max-width:880px;margin:0 auto;padding:28px 20px 60px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.muted{color:var(--ink-soft)}.center-screen{place-items:center;min-height:100dvh;padding:20px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;gap:14px;width:100%;max-width:380px;padding:26px;display:grid}.card h1{font-size:19px}.card p{margin:0}label{gap:5px;font-size:13px;font-weight:550;display:grid}input{font:inherit;color:inherit;background:#fff;border:1px solid #cfd5d1;border-radius:8px;padding:9px 11px;font-size:16px}input:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button{font:inherit;min-height:40px;color:var(--ink);cursor:pointer;background:#fff;border:1px solid #cfd5d1;border-radius:8px;padding:9px 14px;font-weight:550}button:hover{background:#f2f4f2}button.primary{background:var(--accent-ink);border-color:var(--accent-ink);color:#fff}button.primary:hover{background:#195c34}button:disabled{opacity:.6;cursor:default}.button-row{gap:10px;display:flex}.button-row>*{flex:1}.error{color:var(--danger);margin:0;font-size:14px}.list-controls{gap:8px;margin-bottom:12px;display:flex}.list-controls input{flex:1;min-width:0}select{font:inherit;color:inherit;background:#fff;border:1px solid #cfd5d1;border-radius:8px;padding:9px 10px}.tag-row{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.tag{border-radius:999px;min-height:32px;padding:4px 12px;font-size:13px;font-weight:500}.tag-active,.tag-active:hover{background:var(--accent-ink);border-color:var(--accent-ink);color:#fff}.map-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.map-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:inherit;gap:4px;padding:14px 16px;text-decoration:none;display:grid}.map-card:hover{border-color:#b9c2bc}.map-card-title{overflow-wrap:anywhere;font-weight:600}.map-card-meta{font-size:13px}.viewer{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.viewer-bar{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:6px;padding:8px 12px;display:flex}.viewer-bar .spacer,.version-banner .spacer{flex:1}.viewer-bar button{min-height:36px;padding:6px 11px;font-size:14px}.viewer-bar button.active:not(.primary){background:#e9ece9}.icon-button{width:36px;height:36px;color:var(--ink);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:#f2f4f2}.viewer-title{white-space:nowrap;text-overflow:ellipsis;flex-shrink:1;min-width:0;font-size:15px;font-weight:600;overflow:hidden}.count{text-align:center;font-variant-numeric:tabular-nums;background:#e9ece9;border-radius:999px;min-width:20px;padding:0 5px;font-size:12px;line-height:20px;display:inline-block}.count-warn{color:#7a4a00;background:#fbe7c6}.page-tabs{background:var(--surface);border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px;padding:6px 12px;display:flex;overflow-x:auto}.tab{white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;flex:none;max-width:220px;min-height:32px;padding:4px 12px;font-size:14px;font-weight:500;overflow:hidden}.tab-active,.tab-active:hover{color:var(--accent-ink);background:#e4efe8}.version-banner{background:#fff7e6;border-bottom:1px solid #f0e0bd;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;font-size:14px;display:flex}.version-banner button{min-height:34px;padding:4px 11px}.viewer-stage{flex:1;min-height:0;position:relative}.canvas{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#e8ebe8;position:absolute;inset:0;overflow:hidden}.canvas:active{cursor:grabbing}.canvas svg{display:block}.canvas text{font-family:var(--font-inter), sans-serif}.canvas [data-node]{cursor:pointer}.canvas .node-selected>:first-child{stroke:#111827;stroke-width:2.4px}.zoom-controls{gap:4px;display:flex;position:absolute;bottom:12px;left:12px}.zoom-controls button{min-width:40px;min-height:40px;padding:4px 10px;box-shadow:0 1px 3px #0000001f}.side-panel{background:var(--surface);border:1px solid var(--line);overscroll-behavior:contain;border-radius:12px;flex-direction:column;width:340px;padding:14px;display:flex;position:absolute;top:12px;bottom:12px;right:12px;overflow-y:auto;box-shadow:0 6px 24px #0000001f}.panel-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.panel-header h2{font-size:16px}.panel-header button{min-height:34px;padding:4px 10px;font-size:14px}.list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.list-button{text-align:left;overflow-wrap:anywhere;background:0 0;border:0;width:100%;height:auto;padding:8px 10px;font-size:14px;font-weight:400;line-height:1.4;display:block}.list-button-active,.list-button-active:hover{background:#e4efe8}.download-list{gap:6px;display:grid}.download-list a{border:1px solid var(--line);color:inherit;border-radius:8px;padding:12px;text-decoration:none;display:block}.download-list a:hover{background:#f2f4f2}.editor{z-index:10;background:var(--surface);border:1px solid var(--line);border-radius:12px;gap:10px;padding:14px;display:grid;position:fixed;box-shadow:0 8px 28px #0000002e}.editor textarea{font:inherit;resize:vertical;width:100%;color:inherit;border:1px solid #cfd5d1;border-radius:8px;padding:8px 10px;font-size:16px}.editor textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.editor input{width:100%}.editor .mono{font-family:ui-monospace,Consolas,monospace}.link-button{min-height:30px;color:var(--accent-ink);background:0 0;border:0;justify-self:start;padding:2px 0;font-size:14px;font-weight:500}.link-button:hover{background:0 0;text-decoration:underline}.formula-preview{background:#f6f7f5;border-radius:8px;justify-content:center;padding:10px;display:flex;overflow-x:auto}.editor-footer{align-items:center;gap:6px;display:flex}.save-state{flex:1;font-size:13px}.editor-footer button{min-height:36px;padding:4px 12px;font-size:14px}@media (max-width:640px){.hide-narrow{display:none}.viewer-bar{gap:4px;padding:6px 8px}.viewer-bar button{padding:6px 8px;font-size:13px}.viewer-title{max-width:24vw;font-size:14px}.side-panel{width:auto;max-height:62dvh;padding-bottom:calc(14px + env(safe-area-inset-bottom));border-width:1px 0 0;border-radius:14px 14px 0 0;inset:auto 0 0}.editor{max-height:70dvh;padding-bottom:calc(14px + env(safe-area-inset-bottom));border-width:1px 0 0;border-radius:14px 14px 0 0;bottom:0;left:0;right:0;overflow-y:auto}.zoom-controls{bottom:calc(12px + env(safe-area-inset-bottom))}}
