:root{--bg: #f4f5f7;--card: #ffffff;--text: #16181d;--muted: #6b7280;--border: #e3e5ea;--accent: #1f5eff;--good-bg: #e3f6ea;--good-fg: #137a3a;--warn-bg: #fff3d6;--warn-fg: #8a5a00;--bad-bg: #fde4e4;--bad-fg: #a01919;--neutral-bg: #eceef2;--neutral-fg: #4b5563;--spot: #1f5eff;--futures: #b45309;--equity: #0f766e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #111318;--card: #1a1d24;--text: #e7e9ee;--muted: #9aa1ad;--border: #2a2e37;--good-bg: #123523;--good-fg: #6fd39a;--warn-bg: #3a2c08;--warn-fg: #f3c565;--bad-bg: #3d1616;--bad-fg: #ff8a8a;--neutral-bg: #262a33;--neutral-fg: #b6bcc6}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}h1{font-size:1.25rem;margin:0;letter-spacing:.02em}h2{font-size:1.1rem;margin:0}p{margin:.25rem 0}a{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:.85rem}.spacer{flex:1}.app{max-width:960px;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:14px}.topbar{display:flex;align-items:center;gap:12px}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px}button,.button{font:inherit;border-radius:8px;padding:8px 14px;cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:#fff;text-decoration:none;display:inline-block}button:disabled{opacity:.5;cursor:default}button.ghost{background:transparent;color:var(--text);border-color:var(--border)}button.link{background:none;border:none;color:var(--accent);padding:0;font-size:.9rem}label{display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:var(--muted)}input{font:inherit;font-size:1rem;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px}input:focus{outline:2px solid var(--accent);outline-offset:1px}.banner{padding:10px 14px;border-radius:8px;font-size:.95rem}.banner.ok{background:var(--good-bg);color:var(--good-fg)}.banner.warn{background:var(--warn-bg);color:var(--warn-fg)}.banner.error{background:var(--bad-bg);color:var(--bad-fg)}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.8rem;font-weight:600;white-space:nowrap}.badge.good{background:var(--good-bg);color:var(--good-fg)}.badge.warn{background:var(--warn-bg);color:var(--warn-fg)}.badge.bad{background:var(--bad-bg);color:var(--bad-fg)}.badge.neutral{background:var(--neutral-bg);color:var(--neutral-fg)}.statusbar{display:flex;flex-direction:column;gap:10px}.status-item{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.status-label{width:150px;color:var(--muted);font-size:.9rem}.status-detail{color:var(--muted);font-size:.9rem;flex:1;min-width:160px}.status-note{margin-left:162px;color:var(--warn-fg);font-size:.9rem}.prices{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.price-card{border-top:4px solid var(--border);display:flex;flex-direction:column;gap:6px}.price-card.spot{border-top-color:var(--spot)}.price-card.futures{border-top-color:var(--futures)}.price-card.equity{border-top-color:var(--equity)}.price-card.placeholder{display:flex;align-items:center;justify-content:center;text-align:center}.price-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.price-value{font-size:2.4rem;font-weight:600;font-variant-numeric:tabular-nums;margin:6px 0 0}.search{display:flex;flex-direction:column;gap:10px}.results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.result{width:100%;display:grid;grid-template-columns:160px 1fr auto;gap:12px;align-items:baseline;text-align:left;background:transparent;color:var(--text);border:1px solid var(--border);padding:10px 12px}.result:hover{border-color:var(--accent)}.result-symbol{font-weight:600}.result-name{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-meta{color:var(--muted);font-size:.85rem;white-space:nowrap}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login-card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:14px}@media(max-width:600px){.status-label{width:100%}.status-note{margin-left:0}.result{grid-template-columns:1fr;gap:2px}}
