:root{--green-900:#003d22;--green-700:#00693c;--green-500:#00a04b;--green-100:#e3f3e8;--green-50:#f2f9f4;--bg:var(--green-50);--surface:#fff;--text:#13261b;--muted:#5b6e62;--border:#d4e4d9;--danger:#b3261e;--bubble-user:var(--green-700);--bubble-user-text:#fff;--bubble-bot:var(--green-100);--bubble-bot-text:var(--text);--chart-1:#00693c;--chart-2:#4fb477;--chart-3:#d98a1c;--chart-4:#9db3a5;--heat-0:#e3f3e8;--radius:16px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#0d1a12;--surface:#15261b;--text:#e6f2ea;--muted:#9db3a5;--border:#24402e;--danger:#f2b8b5;--bubble-bot:#1e3627;--bubble-bot-text:var(--text);--chart-1:#4fd18b;--chart-2:#2e8f5a;--chart-3:#f0b45a;--chart-4:#5b6e62;--heat-0:#1e3627}}*{box-sizing:border-box}body{background:var(--bg);margin:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{background:var(--bg);flex-direction:column;max-width:640px;height:100dvh;margin:0 auto;display:flex}.topbar{background:linear-gradient(160deg, var(--green-700), var(--green-900));color:#fff;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.brand{white-space:nowrap;align-items:center;gap:8px;font-weight:600;display:flex}.brand-mark{background:var(--green-500);border-radius:50%;place-items:center;width:28px;height:28px;font-weight:700;display:grid}.persona{gap:6px;min-width:0;display:flex}.persona select{min-width:0;max-width:170px;font:inherit;color:#fff;background:#ffffff1f;border:1px solid #ffffff59;border-radius:8px;padding:6px 8px;font-size:.875rem}.persona select option{color:#13261b}@media (width<=440px){.brand-name{display:none}.persona select{max-width:none}}.ghost-btn{font:inherit;color:inherit;cursor:pointer;background:0 0;border:1px solid #ffffff59;border-radius:8px;padding:6px 10px;font-size:.875rem}.dashboard{flex-direction:column;flex:1;gap:12px;min-height:0;padding:12px 16px 24px;display:flex;overflow-y:auto}.intro{margin:0}.reset{color:var(--muted);border-color:var(--border);align-self:center}.block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 14px 10px;box-shadow:0 4px 14px #003d220f}.block-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.block-head h3{margin:0 0 4px;font-size:1rem}.badge{background:var(--bubble-bot);color:var(--text);border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-block}.badge-peer{background:color-mix(in srgb, var(--chart-4) 35%, transparent)}.badge-estimate{background:color-mix(in srgb, var(--chart-3) 25%, transparent)}.icon-btn{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;font-size:1.3rem;line-height:1}.icon-btn:hover{background:var(--bubble-bot)}.controls{flex-wrap:wrap;gap:8px;margin:10px 0 4px;display:flex}.control select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:6px 8px;font-size:.85rem}.control.slider{flex-direction:column;flex:160px;gap:2px;font-size:.85rem;display:flex}.control.slider input{accent-color:var(--green-500);width:100%}.block-figure{margin:8px 0 0;font-size:1.4rem}.block-error{color:var(--danger)}.load-error{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.load-error .ghost-btn{color:var(--text);border-color:var(--border)}.block-body.updating{opacity:.5;pointer-events:none;transition:opacity .2s .15s}.vega{width:100%;margin-top:6px}.vega svg{max-width:100%}.small{font-size:.8rem}.muted{color:var(--muted)}.stat-value{font:inherit;color:var(--green-700);cursor:pointer;background:0 0;border:none;margin-top:6px;padding:0;font-size:2.2rem;font-weight:700}@media (prefers-color-scheme:dark){.stat-value{color:var(--chart-1)}}.stat-caption{color:var(--muted);margin:2px 0 8px}.stat-terms{margin:0;padding:0;font-size:.85rem;list-style:none}.stat-terms li{border-top:1px solid var(--border);justify-content:space-between;gap:12px;padding:4px 0;display:flex}.stat-terms li:last-child{font-weight:600}.neg{color:var(--muted)}.list{border-collapse:collapse;width:100%;font-size:.875rem}.list th{text-align:left;color:var(--muted);padding:4px 0;font-weight:500}.list td{border-top:1px solid var(--border);padding:7px 0}.list tbody tr{cursor:pointer}.list .num{text-align:right}.how{margin-top:8px;font-size:.85rem}.how summary{cursor:pointer;color:var(--muted);padding:4px 0}.how pre{background:var(--bg);border-radius:8px;max-height:200px;padding:8px;font-size:.72rem;overflow-x:auto}.chat{background:var(--surface);border-top:1px solid var(--border);flex-direction:column;max-height:36dvh;display:flex;box-shadow:0 -6px 20px #003d2214}.chat-log{flex-direction:column;gap:8px;min-height:0;padding:12px 16px 4px;display:flex;overflow-y:auto}.bubble{overflow-wrap:anywhere;border-radius:18px;max-width:88%;padding:9px 13px;font-size:.95rem;line-height:1.45}.bubble-assistant{background:var(--bubble-bot);color:var(--bubble-bot-text);border-bottom-left-radius:4px;align-self:flex-start}.bubble-user{background:var(--bubble-user);color:var(--bubble-user-text);border-bottom-right-radius:4px;align-self:flex-end}.suggestions{scrollbar-width:none;gap:8px;padding:12px 16px 2px;display:flex;overflow-x:auto}.chip{font:inherit;border:1px solid var(--green-500);color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;padding:8px 12px;font-size:.85rem}.chip:hover{background:var(--bubble-bot)}.chat-input{gap:8px;padding:10px 16px 4px;display:flex}.chat-input input{min-width:0;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:999px;flex:1;padding:11px 14px;font-size:1rem}.chat-input input:focus{outline:2px solid var(--green-500);outline-offset:1px}.chat-input button{font:inherit;background:var(--green-700);color:#fff;cursor:pointer;border:none;border-radius:999px;padding:0 18px;font-weight:600}.chat-input button:disabled{opacity:.45;cursor:default}.chat-note{padding:2px 16px calc(8px + env(safe-area-inset-bottom));color:var(--muted);text-align:center;margin:0;font-size:.7rem}.sheet-backdrop{z-index:10;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);border-radius:20px 20px 0 0;flex-direction:column;width:100%;max-width:640px;max-height:80dvh;display:flex}.sheet-head{border-bottom:1px solid var(--border);justify-content:space-between;gap:8px;padding:16px 16px 8px;display:flex}.sheet-head h2{margin:0;font-size:1.05rem}.sheet-head p{margin:4px 0 0}.sheet-status{margin:0;padding:12px 16px 16px}.tx-list{margin:0;padding:0 16px 16px;list-style:none;overflow-y:auto}.tx-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:9px 0;display:flex}.tx-list li>div{flex-direction:column;min-width:0;display:flex}.tx-list .pos{color:var(--green-500);font-weight:600}.frame{color-scheme:normal;background:0 0;border:0;width:100%;margin-top:6px;display:block}.ghost-btn.on{background:#ffffff38}.dev-section{flex-direction:column;gap:10px;display:flex}.dev-section h2{margin:12px 0 0;font-size:1.05rem}.dev-section>p{margin:0}.dev-prompts h3{margin:6px 0 0;font-size:.9rem}.dev-prompts p{margin:2px 0 6px}.dev-chips{flex-wrap:wrap;gap:6px;display:flex}.dev-chips .chip{white-space:normal;text-align:left}.dev-item{flex-direction:column;gap:4px;display:flex}.dev-item-bar{flex-wrap:wrap;align-items:center;gap:6px;font-size:.75rem;display:flex}.dev-item-bar code{background:var(--bubble-bot);color:var(--muted);border-radius:6px;padding:2px 6px}.dev-add{font:inherit;border:1px solid var(--green-500);color:var(--text);cursor:pointer;background:0 0;border-radius:6px;margin-left:auto;padding:3px 8px}.dev-section>.dev-item-bar .dev-add:first-child{margin-left:0}.dev-json{border:1px solid var(--border);background:var(--surface);width:100%;min-height:220px;color:var(--text);resize:vertical;border-radius:10px;padding:10px;font:.75rem/1.4 ui-monospace,Menlo,Consolas,monospace}.block-actions{flex:none;align-items:center;gap:4px;display:flex}.pin-btn{font:inherit;border:1px solid var(--green-500);color:var(--text);cursor:pointer;background:0 0;border-radius:999px;padding:3px 9px;font-size:.75rem}.pin-btn.on{background:var(--green-700);border-color:var(--green-700);color:#fff}
