:root{--bg:#f4f6f8;--panel:#fff;--panel-2:#eef2f6;--border:#dde4ea;--text:#1d2833;--muted:#52657a;--accent:#2266ad;--green:#14663f;--red:#a02516;--amber:#7c5400;--purple:#6b4fa3;--green-tint:#e5f4eb;--red-tint:#fceceb;--amber-tint:#fbf1d9;--blue-tint:#e7f0fa;--purple-tint:#f0eaf9;--gray-tint:#eef1f4;--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font:15px/1.6 -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{transition:none!important;animation:none!important}}.env-banner{background:#fff6e2;border-bottom:1px solid #e5c76e;color:#6d4e00;padding:7px 20px;font-size:12.5px;display:flex;gap:16px;align-items:baseline;flex-wrap:wrap}.env-banner strong{color:#5c3f00;letter-spacing:.04em}.env-banner details{display:inline}.env-banner summary{cursor:pointer;display:inline;color:#5c3f00;text-decoration:underline}.env-banner ul{margin:6px 0 2px;padding-left:18px}.topbar{display:flex;align-items:center;gap:20px;padding:13px 20px;border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap}.topbar .brand{font-weight:700;font-size:16px;color:var(--text);letter-spacing:.02em}.topbar .brand span{color:var(--accent)}.topbar nav{display:flex;gap:16px;flex-wrap:wrap}.topbar nav a{color:var(--muted);font-size:13.5px}.topbar nav a:hover{color:var(--text);text-decoration:none}.topbar nav a.on{color:var(--text);font-weight:600;box-shadow:0 2px 0 var(--accent);padding-bottom:2px}.topbar .who{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--muted)}main{max-width:1120px;margin:0 auto;padding:26px 20px 80px}h1{font-size:22px;margin:0 0 4px}h2{font-size:16px;margin:28px 0 12px;color:var(--text)}.sub{color:var(--muted);font-size:14px;margin-bottom:20px;max-width:68ch}.grid{display:grid;grid-gap:16px;gap:16px}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}.grid.cols-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:16px 18px;overflow-x:auto}.card h3{margin:0 0 5px;font-size:14.5px}.card .meta{color:var(--muted);font-size:12.5px}.card p{max-width:68ch}.pill{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:999px;font-size:11.5px;font-weight:600;vertical-align:middle}.pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}.pill.green{color:var(--green);background:var(--green-tint)}.pill.red{color:var(--red);background:var(--red-tint)}.pill.amber{color:var(--amber);background:var(--amber-tint)}.pill.blue{color:var(--accent);background:var(--blue-tint)}.pill.purple{color:var(--purple);background:var(--purple-tint)}.pill.gray{color:var(--muted);background:var(--gray-tint)}table{width:100%;border-collapse:collapse;font-size:13.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.fit{width:auto;min-width:70%;max-width:100%}td,th{text-align:left;padding:8px 10px;border-bottom:1px solid #e8edf2;vertical-align:top}th{color:var(--muted);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em}td.num,th.num{text-align:right}tr:hover td{background:rgba(34,102,173,.035)}.mono,code,pre{font-family:var(--mono);font-size:12.5px}pre{background:#f6f8fa;border:1px solid var(--border);border-radius:6px;padding:12px;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.quote{border-left:3px solid var(--border);padding:8px 12px;margin:6px 0;background:var(--panel-2);border-radius:0 6px 6px 0;font-size:13.5px;max-width:74ch}.quote.before{border-left-color:var(--red)}.quote.after{border-left-color:var(--green)}.hash{font-family:var(--mono);font-size:11.5px;color:var(--muted);word-break:break-all}.btn,button{background:var(--panel);color:var(--text);border:1px solid #c6d0da;border-radius:6px;padding:6px 13px;font-size:13px;font-family:inherit;cursor:pointer}.btn:hover,button:hover{border-color:var(--accent);color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background:#1b568f;color:#fff}button.danger{border-color:#d8a29a;color:var(--red)}button.danger:hover{border-color:var(--red)}button.press{background:var(--amber-tint);border-color:#d9a93e;color:#5c3f00;font-weight:700}button.press:hover{border-color:#a87f18;color:#5c3f00}button:disabled{opacity:.45;cursor:not-allowed}input[type=text],select,textarea{background:#fff;color:var(--text);border:1px solid #c6d0da;border-radius:6px;padding:7px 10px;font-size:13.5px;font-family:inherit;width:100%}input[type=text]:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}input::placeholder,textarea::placeholder{color:#7b8a99}form.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}form.inline input[type=text]{width:auto;flex:1 1;min-width:140px}.actions-row{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;align-items:center}.actions-row form.inline input[type=text]{min-width:260px}.readonly-note{font-size:12.5px;color:var(--muted);font-style:italic}.tile{text-align:left}.tile:hover{border-color:var(--accent);text-decoration:none}.tile .num{font-size:30px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.15;color:var(--text)}.tile .lbl{color:var(--text);font-size:13.5px;margin-top:2px}.lane-note{border:1px dashed #c6d0da;border-radius:6px;padding:8px 12px;font-size:12.5px;color:var(--muted);margin:12px 0;max-width:74ch}.explainer{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:8px;background:var(--panel);padding:11px 16px;margin:0 0 22px;font-size:14px;max-width:78ch}.explainer summary{cursor:pointer;color:var(--accent);font-weight:600}.explainer dl{margin:10px 0 2px;max-width:66ch}.explainer dt{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.07em;margin-top:10px}.explainer dd{margin:2px 0 0}.house-term{color:#7b8a99;font-size:.85em;font-style:italic;font-weight:400}.hint{font-size:12.5px;color:var(--muted);margin-top:4px}.login-wrap{max-width:460px;margin:80px auto}.login-wrap .card{padding:24px}.login-wrap button{width:100%;margin-top:10px;padding:10px;font-size:14px}