/* btc-dashboard - mobile first, dark by default, light if the phone asks. */
:root { --bg:#0f1115; --card:#181b22; --line:#262b35; --text:#e6e8ec; --muted:#8a92a3;
        --ok:#3fb950; --warn:#d29922; --bad:#f85149; --accent:#58a6ff; }
@media (prefers-color-scheme: light) {
  :root { --bg:#f6f7f9; --card:#fff; --line:#e3e6eb; --text:#16181d; --muted:#5d6574;
          --ok:#1a7f37; --warn:#9a6700; --bad:#cf222e; --accent:#0969da; }
}
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--bg); color:var(--text);
       font:15px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
.wrap { max-width:640px; margin:0 auto; padding:12px 16px calc(84px + env(safe-area-inset-bottom)); }
h1 { font-size:20px; margin:0; } h1 small, h2 small { color:var(--muted); font-weight:400; font-size:13px; }
h2 { font-size:16px; margin:18px 0 8px; }
a { color:var(--accent); }
.muted { color:var(--muted); } .small { font-size:13px; }
.ok { color:var(--ok); } .badtext { color:var(--bad); } .warntext { color:var(--warn); }
.top { display:flex; align-items:center; justify-content:space-between; margin:4px 0 10px; }
.top .nav { width:40px; height:40px; display:flex; align-items:center; justify-content:center;
            font-size:26px; text-decoration:none; border-radius:10px; }
.top a.nav:active { background:var(--card); }
.verdict { margin:0 0 10px; } .verdict .bad { color:var(--bad); }
.card, .bubble { background:var(--card); border:1px solid var(--line); border-radius:14px;
                 padding:12px 14px; margin:0 0 10px; }
.card header, .bubble header { display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; margin-bottom:4px; }
.bubble p, .card p { margin:4px 0; overflow-wrap:anywhere; }
.bubble { border-left:4px solid var(--line); }
.bubble.failed { border-left-color:var(--bad); } .bubble.complaint { border-left-color:var(--warn); }
.bubble.achieved { border-left-color:var(--ok); } .bubble.idle { opacity:.85; }
.bubble footer { margin-top:6px; }
.mark { font-size:17px; }
.alert { border-radius:10px; padding:8px 12px; margin:6px 0; background:var(--card); border:1px solid var(--line); }
.alert.bad { border-color:var(--bad); color:var(--bad); }
.alert.warn { border-color:var(--warn); color:var(--warn); }
.alert.ok { border-color:var(--ok); color:var(--ok); }
details { margin-top:6px; } summary { color:var(--muted); cursor:pointer; font-size:13px; }
ul { padding-left:18px; margin:6px 0; } .items li { margin:6px 0; overflow-wrap:anywhere; }
.tag { display:inline-block; font-size:12px; padding:1px 6px; border-radius:6px; border:1px solid var(--line); }
.tag.bullish { color:var(--ok); } .tag.bearish { color:var(--bad); } .tag.unclear { color:var(--muted); }
dl.grid { display:grid; grid-template-columns:max-content 1fr; gap:6px 12px; margin:8px 0; }
dl.grid dt { color:var(--muted); } dl.grid dd { margin:0; }
table { width:100%; border-collapse:collapse; margin-top:6px; }
th, td { text-align:left; padding:5px 4px; border-bottom:1px solid var(--line); vertical-align:top; }
code { font-size:12px; }
.big { font-size:24px; margin:4px 0; }
meter { width:100%; height:12px; }
.login { margin-top:18vh; }
label { display:block; margin:12px 0 4px; color:var(--muted); font-size:13px; }
input[type=password] { width:100%; padding:12px; font-size:16px; border-radius:10px;
                       border:1px solid var(--line); background:var(--bg); color:var(--text); }
button { width:100%; margin-top:12px; padding:12px; font-size:16px; border:0; border-radius:10px;
         background:var(--accent); color:#fff; } button:disabled { opacity:.5; }
.foot { text-align:center; color:var(--muted); font-size:12px; margin-top:24px; }
.tabs { position:fixed; left:0; right:0; bottom:0; display:flex; background:var(--card);
        border-top:1px solid var(--line); padding-bottom:env(safe-area-inset-bottom); }
.tabs a { flex:1; display:flex; flex-direction:column; align-items:center; gap:2px; padding:8px 0 10px;
          color:var(--muted); text-decoration:none; font-size:11px; }
.tabs a span { font-size:20px; } .tabs a.on { color:var(--accent); }
.fakebar { position:sticky; top:0; z-index:5; text-align:center; font-weight:600; font-size:13px;
           padding:6px; background:#9a6700; color:#fff; }
.turn { border-left:3px solid var(--line); padding-left:10px; margin:8px 0; }
.cmd { margin-top:8px; } .cmd code { background:var(--bg); padding:2px 6px; border-radius:6px; }
ol.rank { padding-left:22px; } ol.rank li { margin:6px 0; overflow-wrap:anywhere; }
.strat { border-top:1px solid var(--line); padding:8px 0; } .strat header { display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; }
.strat p { margin:2px 0; }
/* Signals page: filter chips and the server-drawn SVG candle charts */
.chip { display:inline-block; margin:3px 4px 0 0; padding:3px 9px; border-radius:14px; border:1px solid var(--line);
        color:var(--text); text-decoration:none; font-size:13px; } .chip.on { border-color:var(--accent); color:var(--accent); }
.tag.long { color:var(--ok); border-color:var(--ok); } .tag.short { color:var(--bad); border-color:var(--bad); }
.sig header { display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; }
.out-target { color:var(--ok); } .out-stop { color:var(--bad); } .out-expired { color:var(--warn); } .out-open { color:var(--muted); }
svg.chart { display:block; width:100%; height:auto; margin:6px 0 2px; background:var(--bg); border-radius:8px; }
svg.chart .wick { stroke-width:1; } svg.chart .u { stroke:var(--ok); fill:var(--ok); } svg.chart .d { stroke:var(--bad); fill:var(--bad); }
svg.chart .lv { stroke-width:1; stroke-dasharray:4 3; fill:none; }
svg.chart .entry { stroke:var(--accent); fill:var(--accent); } svg.chart .stop { stroke:var(--bad); fill:var(--bad); }
svg.chart .target { stroke:var(--ok); fill:var(--ok); } svg.chart .expired { stroke:var(--warn); fill:var(--warn); }
svg.chart .lt, svg.chart .mt { font-size:10px; stroke:none; } svg.chart .mt { font-weight:600; paint-order:stroke; stroke:var(--bg); stroke-width:3px; stroke-linejoin:round; }
svg.chart .sigline { stroke:var(--muted); stroke-width:1; stroke-dasharray:1 3; }
svg.chart .mk { stroke:var(--text); stroke-width:1.5; }
svg.chart .ax { font-size:9px; fill:var(--muted); }
/* Paper wallet */
.virtual { margin:4px 0 10px; padding:8px 12px; border-radius:10px; border:2px dashed var(--warn);
           color:var(--warn); font-weight:700; text-align:center; }
svg.chart .walletline { fill:none; stroke:var(--accent); stroke-width:2; }
svg.chart .btcline { fill:none; stroke:var(--warn); stroke-width:1.5; }
svg.chart .walletlabel { fill:var(--accent); } svg.chart .btclabel { fill:var(--warn); }
.key { font-weight:700; } .walletkey { color:var(--accent); } .btckey { color:var(--warn); }
.virtual.small { font-size:12px; padding:3px 8px; margin:2px 0 8px; border-width:1px; }
h2.section { margin:18px 4px 4px; }
/* Signals: NEW badge and the result count */
.tag.newtag { color:var(--bg); background:var(--accent); border-color:var(--accent); font-weight:700; }
.count { margin:8px 0 2px; }
/* Signals summary box */
.summary .sumline { line-height:1.7; margin:0 0 6px; }
