:root{--bg:#0f1115;--surface:#171a21;--surface-2:#1e222b;--line:#2a2f3a;--line-soft:#21252e;--ink:#e8eaed;--ink-2:#a4abb8;--ink-3:#6b7280;--accent:#4f9dde;--accent-soft:#4f9dde24;--up:#f0544f;--down:#35b06a;--flat:#8b93a1;--radius:10px;--sans:"Inter", "Noto Sans TC", system-ui, -apple-system, sans-serif;--mono:"SF Mono", "Roboto Mono", ui-monospace, monospace}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{background:var(--bg);min-height:100%;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--accent);text-decoration:none}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.up{color:var(--up)}.down{color:var(--down)}.flat{color:var(--flat)}.app{max-width:1080px;margin:0 auto;padding:0 16px 96px}.topbar{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#0f1115d9;align-items:center;gap:12px;margin:0 -16px 20px;padding:14px 16px;display:flex;position:sticky;top:0}.brand{letter-spacing:.02em;font-size:17px;font-weight:700}.brand span{color:var(--accent)}.brand small{color:var(--ink-3);margin-left:8px;font-size:11px;font-weight:400}.stamp{color:var(--ink-3);margin-left:auto;font-size:11.5px}.tabs{border-bottom:1px solid var(--line);gap:4px;margin:0 -16px 20px;padding:0 16px;display:flex;overflow-x:auto}.tab{cursor:pointer;color:var(--ink-2);font:500 14px var(--sans);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex:none;padding:12px 14px}.tab.on{color:var(--ink);border-bottom-color:var(--accent)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px;padding:16px}.card-title{margin:0 0 4px;font-size:15px;font-weight:600}.card-sub{color:var(--ink-3);margin:0 0 14px;font-size:12px}.grid{gap:12px;display:grid}@media (width>=640px){.grid-2{grid-template-columns:1fr 1fr}}.stat-row{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex:1;min-width:140px;padding:14px 16px}.stat .k{color:var(--ink-3);letter-spacing:.04em;font-size:11.5px}.stat .v{margin-top:6px;font-size:22px;font-weight:600}.stat .v.num{font-size:24px}.table-wrap{margin:0 -16px;padding:0 16px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13.5px}thead th{text-align:right;color:var(--ink-3);letter-spacing:.03em;border-bottom:1px solid var(--line);background:var(--bg);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;padding:9px 10px;font-size:11.5px;font-weight:500;position:sticky;top:0}thead th.l{text-align:left}thead th.on{color:var(--accent)}tbody td{border-bottom:1px solid var(--line-soft);text-align:right;white-space:nowrap;padding:11px 10px}tbody td.l{text-align:left}tbody tr{cursor:pointer}tbody tr:hover{background:var(--surface-2)}.tick{color:var(--ink-3);font-size:11.5px}.name{font-weight:500}.code{color:var(--ink-3);font-family:var(--mono);margin-right:8px;font-size:12px}.wbar{background:var(--accent);vertical-align:middle;border-radius:2px;height:4px;display:inline-block}.chips{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.chip{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);font:500 13px var(--sans);cursor:pointer;border-radius:999px;padding:7px 14px}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.search{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;color:var(--ink);font:400 14px var(--sans);margin-bottom:14px;padding:12px 14px}.search:focus{border-color:var(--accent);outline:none}.pill{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);border-radius:6px;padding:2px 8px;font-size:11px;display:inline-block}.empty{color:var(--ink-3);text-align:center;padding:40px 0}.err{color:var(--up);padding:16px}.field{margin-bottom:14px}.field label{color:var(--ink-2);margin-bottom:6px;font-size:13px;display:block}.field input,.field select{background:var(--surface-2);border:1px solid var(--line);width:100%;color:var(--ink);font:400 15px var(--mono);border-radius:8px;padding:11px 12px}.field input:focus{border-color:var(--accent);outline:none}.result-big{font-size:30px;font-weight:700}.foot{color:var(--ink-3);text-align:center;margin-top:32px;font-size:11.5px;line-height:1.7}
