:root{color-scheme:dark;--bg:#0a101c;--panel:#101827;--edge:#263247;--text:#e4ebf7;--muted:#91a2b9;--yellow:#f6cd63;--green:#62d7a7;--red:#ef7c80;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--yellow);text-decoration:none}button,input,select{font:inherit}button{cursor:pointer;background:#1d2a3f;color:var(--text);border:1px solid #35445d;border-radius:7px;padding:9px 12px;min-height:39px;white-space:normal}button:hover{background:#2a3c56}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--yellow);color:#141924;border-color:var(--yellow);font-weight:650}.primary:hover{background:#ffe39d}.quiet{background:none;border:0;color:var(--muted);font-size:13px;padding:8px 0;display:inline-block}input,select{width:100%;background:#0b1422;color:var(--text);border:1px solid #35445d;border-radius:6px;min-height:39px;padding:8px}label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}input:focus,select:focus,button:focus-visible,canvas:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}.masthead{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--edge);gap:12px}.brand{display:flex;align-items:center;gap:10px;font-weight:750;font-size:21px;letter-spacing:2px;color:var(--text)}.brand span{font-size:12px;letter-spacing:.3px;font-weight:400;color:var(--muted);border-left:1px solid var(--edge);padding-left:12px}.badge{font-size:12px;color:var(--muted);border:1px solid var(--edge);border-radius:20px;padding:7px 12px}.badge.live{color:var(--green)}.badge.warn{color:var(--yellow)}main{max-width:1800px;margin:0 auto;padding:18px 24px}.login-card{max-width:470px;margin:6vh auto;background:var(--panel);border:1px solid var(--edge);border-radius:15px;padding:32px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--yellow)}h1{font-size:34px;line-height:1.18;letter-spacing:-1px;margin:14px 0}h2{font-size:15px;font-weight:650;margin:0}.muted{color:var(--muted);font-size:13px;line-height:1.6}form{display:grid;gap:14px}.login-card form{margin:22px 0 10px}.login-card .quiet{margin-right:16px}.toolbar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px}.toolbar label{min-width:100px}#symbol{min-width:145px}.actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.toolbar .actions{margin-left:auto}.feed-line{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px;min-height:40px;padding:14px 0 10px}.stale{color:var(--red)!important}.charts{display:grid;grid-template-columns:1.85fr 1fr;grid-template-rows:repeat(2,minmax(180px,1fr));gap:12px;height:clamp(440px,62vh,780px)}.chart-card{min-width:0;min-height:0;background:#0d1523;border:1px solid var(--edge);border-radius:10px;overflow:hidden;display:flex;flex-direction:column}.price-card{grid-row:span 2}.chart-title{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid #1c293c;flex-shrink:0}.chart-title h2{display:flex;align-items:center;gap:8px}.chart-title>span{font-size:11px;color:var(--muted)}.dot{width:7px;height:7px;border-radius:50%;display:inline-block}.yellow{background:var(--yellow)}.green{background:var(--green)}.coral{background:var(--red)}canvas{display:block;width:100%;min-height:0;flex:1;touch-action:pan-y;cursor:crosshair}.hint{color:var(--muted);font-size:11px;line-height:1.6}.charts.stacked{grid-template-columns:1fr;grid-template-rows:360px 220px 220px;height:auto}.charts.stacked .price-card{grid-row:auto}.alert-card,.detail-card{background:var(--panel);border:1px solid var(--edge);border-radius:10px;padding:17px}.alert-card{margin:18px 0}.alert-card .muted{margin:5px 0 12px}.alert-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.check{flex-direction:row;align-items:center;font-size:13px}.check input{width:17px;min-height:17px;margin:0}.alert-controls>label:not(.check){min-width:140px}.details-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:12px}.event-list,.label-list{max-height:240px;overflow:auto;margin-top:12px}.event-row{padding:10px 0;border-bottom:1px solid var(--edge);font-size:12px;display:flex;justify-content:space-between;gap:12px}.event-row span{color:var(--muted)}.label-list p{font-size:12px;margin:8px 0;overflow-wrap:anywhere}#message{color:var(--yellow);font-size:13px;overflow-wrap:anywhere;min-height:20px}dialog{max-width:460px;width:calc(100% - 24px);border:1px solid var(--edge);border-radius:12px;padding:24px;background:var(--panel);color:var(--text)}dialog::backdrop{background:#0009}#account-message{color:var(--yellow);font-size:12px}footer{border-top:1px solid var(--edge);padding:18px 24px;font-size:11px;color:var(--muted);display:flex;justify-content:space-between;gap:12px}
@media(max-width:850px){.masthead{padding:12px 14px}main{padding:14px}.toolbar .actions{margin-left:0;width:100%}.charts{grid-template-columns:1fr;grid-template-rows:340px 205px 205px;height:auto}.price-card{grid-row:auto}.feed-line{flex-direction:column;gap:5px}.details-grid{grid-template-columns:1fr}.alert-controls{align-items:flex-end}.brand span{display:none}footer{flex-direction:column;padding:16px}.login-card{margin:3vh auto;padding:24px}h1{font-size:30px}.toolbar{gap:9px}.toolbar label{flex:1;min-width:90px}#symbol{min-width:120px}.chart-title>span{font-size:10px}.check{flex:1;min-width:145px}}
/* Overview keeps all three panes in a typical phone viewport; Stacked offers taller charts. */
@media(max-width:850px){.toolbar .actions{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.toolbar .actions button{flex-shrink:0}.charts:not(.stacked){height:clamp(470px,calc(100dvh - 255px),640px);grid-template-rows:minmax(220px,2fr) minmax(115px,1fr) minmax(115px,1fr)}}
