/* ============================================================
   BITHOME.PRO · TERMINAL DESIGN SYSTEM (Institutional Quant)
   Deep navy / black · monospace · dense · zero whitespace waste
   ============================================================ */
:root{
  --bg:      #05070c;
  --bg2:     #080b12;
  --panel:   #0b1019;
  --panel2:  #0f1622;
  --panel3:  #131b2b;
  --line:    #18202e;
  --line2:   #24304a;
  --txt:     #c8d2e0;
  --dim:     #5f6c80;
  --faint:   #3a4557;
  --cyan:    #00c2ff;
  --btc:     #f7931a;
  --grn:     #26d07c;
  --red:     #ff5f5f;
  --yel:     #f5c542;
  --mag:     #f472b6;
  --mono:    ui-monospace,"Cascadia Mono",Consolas,"JetBrains Mono",monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  background:linear-gradient(180deg,var(--bg),var(--bg2));
  color:var(--txt);
  font:11.5px/1.45 var(--mono);
  display:flex;flex-direction:column;overflow:hidden;
  font-variant-numeric:tabular-nums;
}
/* ---------- command bar ---------- */
#cmdbar{
  display:flex;align-items:center;gap:14px;padding:0 14px;height:36px;
  background:#070a11;border-bottom:1px solid var(--line2);flex:0 0 auto;
}
.brand{font-size:13px;font-weight:700;letter-spacing:.14em;white-space:nowrap}
.brand .hl{color:var(--cyan)}
.brand small{
  display:inline-block;margin-left:10px;font-size:8.5px;color:var(--dim);
  letter-spacing:.34em;font-weight:400;vertical-align:2px;
}
.fkeys{display:flex;gap:2px}
.fk{
  background:transparent;border:1px solid transparent;color:var(--dim);
  font:8.5px/1 var(--mono);letter-spacing:.12em;padding:5px 7px;cursor:pointer;
}
.fk b{color:var(--btc);font-weight:700}
.fk:hover{color:var(--txt);border-color:var(--line2);background:var(--panel2)}
.fk.on{color:var(--cyan);border-color:rgba(0,194,255,.4);background:rgba(0,194,255,.06)}
#spacer{flex:1}
#authBox{display:flex;align-items:center;gap:8px}
#keyInput{
  width:230px;background:#05070c;border:1px solid var(--line2);color:var(--txt);
  padding:6px 10px;font:11px var(--mono);letter-spacing:.08em;outline:none;
}
#keyInput:focus{border-color:var(--cyan)}
#authBtn{
  background:linear-gradient(135deg,var(--cyan),#0077ff);border:none;color:#04121c;
  font:700 10.5px var(--mono);letter-spacing:.12em;padding:7px 14px;cursor:pointer;
}
#authBtn:hover{filter:brightness(1.15)}
#authBtn:disabled{opacity:.45;cursor:wait}
#authMsg{font-size:10px;min-width:120px}
#authMsg.ok{color:var(--grn)} #authMsg.err{color:var(--red)}
#clock{text-align:right;line-height:1.2;white-space:nowrap}
#clock .t{font-size:15px;font-weight:700;color:var(--txt);letter-spacing:.06em}
#clock .u{font-size:8.5px;color:var(--dim);letter-spacing:.24em}
/* ---------- main grid ---------- */
#grid{
  flex:1;min-height:0;display:grid;gap:6px;padding:6px;
  grid-template-columns:280px 1fr 330px;
  grid-template-rows:auto 1fr;
}
.panel{
  background:var(--panel);border:1px solid var(--line);display:flex;flex-direction:column;
  min-height:0;position:relative;
}
.panel.flash{
  box-shadow:0 0 0 1px rgba(0,194,255,.75),0 0 26px rgba(0,194,255,.28);
  animation:flashPanel 1s ease-out;
}
@keyframes flashPanel{
  0%{box-shadow:0 0 0 1px var(--cyan),0 0 42px rgba(0,194,255,.55)}
  100%{box-shadow:0 0 0 1px rgba(0,194,255,.75),0 0 26px rgba(0,194,255,.28)}
}
.panel::before{
  content:"";position:absolute;inset:0 0 auto 0;height:1px;
  background:linear-gradient(90deg,rgba(0,194,255,.55),transparent 60%);
}
.phead{
  display:flex;align-items:center;justify-content:space-between;
  padding:5px 9px;background:var(--panel2);border-bottom:1px solid var(--line);
  flex:0 0 auto;
}
.phead .t{font-size:9px;letter-spacing:.28em;color:var(--dim);font-weight:400;text-transform:uppercase}
.phead .t b{color:var(--cyan);font-weight:700}
.phead .tag{font-size:8.5px;color:var(--dim);letter-spacing:.1em}
.pbody{flex:1;min-height:0;overflow-y:auto;padding:7px 9px}
/* portfolio (top-left) */
#pfPanel{grid-column:1;grid-row:1/3}
.kv{display:flex;justify-content:space-between;align-items:baseline;padding:4px 0;border-bottom:1px dashed rgba(28,36,48,.55)}
.kv .k{font-size:9.5px;color:var(--dim);letter-spacing:.08em}
.kv .v{font-size:13px;font-weight:700;color:var(--txt)}
.kv.hl .v{color:var(--cyan);font-size:19px}
.kv .v.g{color:var(--grn)} .kv .v.r{color:var(--red)} .kv .v.y{color:var(--yel)} .kv .v.o{color:var(--btc)}
.kv.fee{border-bottom:none}
.pf-note{margin-top:8px;font-size:9px;color:var(--faint);line-height:1.6;border-top:1px solid var(--line);padding-top:6px}
/* positions (center top) */
#posPanel{grid-column:2;grid-row:1}
/* miner analytics & fee market (center bottom) */
#minerPanel{grid-column:2;grid-row:2}
table.tbl{width:100%;border-collapse:collapse;font-size:10.5px}
table.tbl th{
  text-align:left;font-weight:400;color:var(--dim);font-size:8.5px;
  letter-spacing:.12em;padding:3px 6px;border-bottom:1px solid var(--line2);
  position:sticky;top:0;background:var(--panel);
}
table.tbl td{padding:4px 6px;border-bottom:1px solid rgba(28,36,48,.4)}
table.tbl td.num{text-align:right}
table.tbl tr:hover td{background:var(--panel2)}
table.tbl .up{color:var(--grn)} table.tbl .dn{color:var(--red)}
table.tbl .empty{color:var(--faint);text-align:center;padding:16px 0}
.pos-total{
  display:flex;justify-content:space-between;padding:6px 9px;margin-top:auto;
  background:var(--panel2);border-top:1px solid var(--line);font-size:10px;color:var(--dim);
}
.pos-total b{color:var(--txt)}
/* miner analytics & fee market */
.meter{height:4px;background:var(--panel3);margin:4px 0 8px;position:relative}
.fee-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;margin-top:6px}
.fee-cell{
  display:flex;justify-content:space-between;align-items:baseline;gap:4px;
  padding:4px 6px;background:var(--panel3);border:1px solid var(--line);font-size:9.5px;
}
.fee-cell span{color:var(--dim);font-size:8px;letter-spacing:.04em;white-space:nowrap}
.fee-cell b{color:var(--btc);font-weight:700;font-variant-numeric:tabular-nums}
.fee-note{font-size:8px;color:var(--faint);letter-spacing:.14em;margin-top:6px}
/* network pulse (right) */
#pulsePanel{grid-column:3;grid-row:1}
#sigPanel{grid-column:3;grid-row:2}
.gate{
  display:flex;align-items:center;justify-content:space-between;
  margin:6px 0 10px;padding:8px 10px;border:1px solid var(--line2);background:var(--panel2);
}
.gate .glabel{font-size:8.5px;letter-spacing:.22em;color:var(--dim)}
.gate .gval{font-size:16px;font-weight:700;letter-spacing:.14em}
.gate.open{border-color:rgba(38,208,124,.45)}
.gate.open .gval{color:var(--grn);text-shadow:0 0 14px rgba(38,208,124,.4)}
.gate.closed{border-color:rgba(255,95,95,.45)}
.gate.closed .gval{color:var(--red);text-shadow:0 0 14px rgba(255,95,95,.4)}
.meter{height:4px;background:var(--panel3);margin:8px 0 2px;position:relative}
.meter .fill{height:100%;background:linear-gradient(90deg,var(--red),var(--yel),var(--grn));width:0%}
.meter .mark{
  position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--btc);
  box-shadow:0 0 6px var(--btc);
}
.meter .mlabels{display:flex;justify-content:space-between;font-size:8px;color:var(--faint)}
/* signals */
.sig{display:flex;align-items:center;gap:8px;padding:5px 8px;border-left:3px solid var(--line);margin-bottom:4px;background:var(--panel2);font-size:10.5px}
.sig.buy{border-color:var(--grn)} .sig.sell{border-color:var(--red)}
.sig .act{font-weight:700;letter-spacing:.1em}
.sig.buy .act{color:var(--grn)} .sig.sell .act{color:var(--red)}
.sig .when{color:var(--faint);font-size:9px}
.sig .px{margin-left:auto;font-weight:700}
.sig .why{color:var(--dim);font-size:9px}
/* ---------- ticker strip ---------- */
#ticker{
  flex:0 0 auto;display:flex;align-items:center;gap:10px;height:30px;
  border-top:1px solid var(--line2);background:#070a11;padding:0 12px;overflow:hidden;
}
#ticker .lbl{font-size:8.5px;letter-spacing:.26em;color:var(--btc);flex:0 0 auto}
#ticker .items{display:flex;gap:16px;overflow-x:auto;scrollbar-width:none}
#ticker .items::-webkit-scrollbar{display:none}
.tchip{font-size:10px;white-space:nowrap;color:var(--txt)}
.tchip b{color:var(--grn)} .tchip.s b{color:var(--red)}
/* ---------- status bar ---------- */
#statusbar{
  flex:0 0 auto;display:flex;align-items:center;gap:18px;height:24px;
  border-top:1px solid var(--line2);background:#06080d;padding:0 12px;
  font-size:9px;color:var(--dim);letter-spacing:.06em;
}
.st{display:flex;align-items:center;gap:5px}
.st .dot{width:7px;height:7px;border-radius:50%;background:var(--faint)}
.st.ok .dot{background:var(--grn);box-shadow:0 0 6px var(--grn)}
.st.err .dot{background:var(--red);box-shadow:0 0 6px var(--red)}
.st .v{color:var(--txt)}
#sbRight{margin-left:auto;display:flex;gap:18px}
/* offline placeholder */
.loading{color:var(--faint);font-size:10px;padding:12px 9px}
.errbox{color:var(--red);font-size:10px;padding:12px 9px;line-height:1.6}
/* ---------- legal modal (F4) ---------- */
.modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;background:rgba(4,6,11,.86)}
.modal.open{display:flex}
.modal-box{
  width:800px;max-width:95vw;height:76vh;max-height:660px;display:flex;flex-direction:column;
  background:var(--panel);border:1px solid var(--line2);
  box-shadow:0 0 60px rgba(0,194,255,.07),0 24px 70px rgba(0,0,0,.65);
}
.modal-box::before{
  content:"";position:absolute;inset:0 0 auto 0;height:1px;pointer-events:none;
  background:linear-gradient(90deg,rgba(0,194,255,.55),transparent 55%);
}
.modal-x{background:transparent;border:1px solid var(--line2);color:var(--dim);font:9px var(--mono);letter-spacing:.14em;padding:4px 8px;cursor:pointer}
.modal-x:hover{color:var(--red);border-color:rgba(255,95,95,.5)}
.modal-tabs{display:flex;gap:4px;padding:7px 9px 0;background:var(--panel2);border-bottom:1px solid var(--line);flex:0 0 auto}
.ltab{background:transparent;border:1px solid transparent;border-bottom:none;color:var(--dim);font:9px var(--mono);letter-spacing:.18em;padding:7px 12px;cursor:pointer}
.ltab:hover{color:var(--txt)}
.ltab.on{color:var(--cyan);border-color:var(--line2);background:var(--panel);box-shadow:inset 0 1px 0 rgba(0,194,255,.35)}
.modal-body{flex:1;min-height:0;overflow-y:auto;padding:12px 16px;font-size:10.5px;line-height:1.65}
.legal-ttl{font-size:10px;letter-spacing:.26em;color:var(--btc);margin-bottom:10px}
.legal-item{padding:5px 0;border-bottom:1px dashed rgba(28,36,48,.55)}
.legal-item b{color:var(--cyan);font-weight:700}
.legal-item .num{color:var(--btc)}
.modal-foot{flex:0 0 auto;padding:6px 14px;border-top:1px solid var(--line);background:var(--panel2);font-size:8.5px;color:var(--faint);letter-spacing:.14em;display:flex;justify-content:space-between}
/* ---------- system control modal (F5) ---------- */
.sys-sect{margin-bottom:16px}
.sys-h{display:flex;justify-content:space-between;align-items:baseline;font-size:9px;letter-spacing:.24em;color:var(--btc);margin-bottom:8px}
.sys-h .dim{color:var(--dim);letter-spacing:.1em}
.sys-row{display:flex;gap:8px;margin-bottom:8px}
.mono-in{flex:1;background:#05070c;border:1px solid var(--line2);color:var(--txt);padding:7px 10px;font:11px var(--mono);letter-spacing:.06em;outline:none;min-width:0}
.mono-in:focus{border-color:var(--cyan)}
.btn{background:transparent;border:1px solid var(--line2);color:var(--txt);font:10px var(--mono);letter-spacing:.14em;padding:8px 14px;cursor:pointer;white-space:nowrap}
.btn:hover{border-color:var(--cyan);color:var(--cyan)}
.btn.cy{background:linear-gradient(135deg,var(--cyan),#0077ff);border:none;color:#04121c;font-weight:700}
.btn.cy:hover{filter:brightness(1.15)}
.btn.red{border-color:rgba(255,95,95,.45);color:var(--red)}
.btn.red:hover{background:rgba(255,95,95,.08)}
.btn.dim{border-color:var(--line);color:var(--dim)}
.btn.dim:hover{border-color:var(--red);color:var(--red)}
.btn:disabled{opacity:.4;cursor:wait}
.mode-line{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.mode-dot{width:9px;height:9px;border-radius:50%}
.mode-line.paper .mode-dot{background:var(--yel);box-shadow:0 0 8px var(--yel)}
.mode-line.live .mode-dot{background:var(--grn);box-shadow:0 0 8px var(--grn)}
.mode-txt{font-size:12px;font-weight:700;letter-spacing:.12em}
.mode-line.paper .mode-txt{color:var(--yel)}
.mode-line.live .mode-txt{color:var(--grn)}
.sys-h2{display:flex;justify-content:space-between;align-items:baseline;font-size:8.5px;letter-spacing:.2em;color:var(--dim);margin:12px 0 6px}
.sys-h2 .dim{color:var(--faint);letter-spacing:.1em}
.sys-msg{font-size:10px;min-height:14px;margin-bottom:8px;letter-spacing:.04em}
.sys-msg.ok{color:var(--grn)} .sys-msg.err{color:var(--red)}
.sys-note{font-size:9px;color:var(--faint);line-height:1.7;border-top:1px solid var(--line);padding-top:7px;margin-top:6px}

/* ---------- F6 charts view (quant dashboard) ---------- */
.charts{position:fixed;inset:0;z-index:90;display:none;flex-direction:column;background:var(--bg)}
.charts.open{display:flex}
.charts-head{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--panel2);border-bottom:1px solid var(--line)}
.charts-head .t{font-size:11px;letter-spacing:.22em;color:var(--txt)}
.charts-head .tag{font-size:9px;letter-spacing:.18em;color:var(--dim)}
.charts-grid{flex:1;min-height:0;display:grid;grid-template-rows:2fr 1fr 1fr 1fr;gap:8px;padding:10px 16px}
.charts-pane{position:relative;min-height:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.pane-hint{position:absolute;top:8px;left:12px;z-index:5;font-size:9px;letter-spacing:.18em;color:var(--faint);pointer-events:none}
.miner-grid{position:absolute;inset:0;display:grid;grid-template-columns:150px 1fr 1.6fr;grid-template-rows:1fr 1fr;gap:8px;padding:10px}
.mg-block{background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:8px;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.mg-gauge{grid-row:1/3;grid-column:1;align-items:center;justify-content:center;gap:6px}
.mg-gauge svg{width:118px;height:118px;flex:0 0 auto}
.mg-read{font-size:10px;color:var(--cyan);letter-spacing:.04em;text-align:center;line-height:1.4}
.mg-info{grid-row:1;grid-column:2}
.mg-spark{grid-row:1;grid-column:3}
.mg-hist{grid-row:2;grid-column:2}
.mg-log{grid-row:2;grid-column:3}
.mg-title{font-size:8.5px;letter-spacing:.18em;color:var(--faint);margin-bottom:6px;flex:0 0 auto}
.mg-row{display:flex;justify-content:space-between;align-items:baseline;font-size:10.5px;padding:3px 0;border-bottom:1px dotted rgba(28,36,48,.6)}
.mg-row span{color:var(--dim)}
.mg-row b{color:var(--txt);font-weight:600}
.mg-spark svg{flex:1;min-height:0;width:100%;height:100%}
.mg-histbars{flex:1;display:flex;align-items:stretch;gap:3px;min-height:0}
.mh-bucket{flex:1;display:flex;flex-direction:column;align-items:center;min-width:0}
.mh-bars{position:relative;flex:1;width:100%;min-height:30px;display:flex;align-items:flex-end;justify-content:center}
.mh-obs{width:60%;background:linear-gradient(180deg,#00c2ff,rgba(0,194,255,.3));border-radius:2px 2px 0 0}
.mh-theo{position:absolute;left:2px;right:2px;bottom:0;border-top:1px dashed rgba(92,107,122,.75)}
.mh-lab{font-size:8px;color:var(--faint);margin-top:4px;flex:0 0 auto}
.mg-loglist{flex:1;min-height:0;overflow-y:auto;font-size:9.5px;line-height:1.6;color:var(--dim);white-space:pre-wrap;word-break:break-all}

/* ---------- F7 unlock · live api access ---------- */
.unlock-body{padding:16px 20px}
.unlock-desc{font-size:10px;color:var(--dim);line-height:1.75;margin:0 0 10px}
.unlock-promo{color:var(--cyan);text-decoration:none}
.unlock-promo:hover{text-decoration:underline}
.unlock-in{width:100%;box-sizing:border-box;margin-top:8px;padding:10px 12px;border-radius:8px;border:1px solid var(--line);background:rgba(13,19,29,.9);color:var(--txt);font:12px Consolas,monospace;outline:none}
.unlock-in:focus{border-color:var(--cyan)}
.unlock-msg{margin-top:10px;font-size:11px;min-height:16px;line-height:1.6}
.unlock-msg.ok{color:#4ade80}
.unlock-msg.err{color:#f87171}
.unlock-row{display:flex;gap:8px;margin-top:10px}
.unlock-btn{flex:1;padding:11px;border-radius:8px;border:none;cursor:pointer;font:700 12px Consolas,monospace;letter-spacing:.05em}
.unlock-btn.ghost{background:rgba(13,19,29,.9);color:var(--dim);border:1px solid var(--line)}
.unlock-btn.grad{background:linear-gradient(135deg,#00c2ff,#0077ff);color:#04131a}
.unlock-btn.btc{width:100%;margin-top:12px;background:linear-gradient(135deg,#f7931a,#ffb142);color:#1a0e00}
.unlock-btn:hover{filter:brightness(1.12)}
.unlock-sep{margin:16px 0 12px;padding-top:14px;border-top:1px dashed var(--line);font-size:9px;letter-spacing:.22em;color:var(--dim);text-transform:uppercase;text-align:center}
.unlock-trust{display:flex;flex-direction:column;gap:4px;margin-top:14px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:rgba(13,19,29,.6)}
.unlock-trust .ut-row{display:flex;justify-content:space-between;font-size:9px;color:var(--dim);letter-spacing:.1em;text-transform:uppercase}
.unlock-trust .ut-row b{color:var(--cyan);letter-spacing:.05em}
#modePill.live{color:#4ade80}
#modePill.demo{color:var(--faint)}


/* ---------- F1 TEMP TUNNEL chip (LIVE PORTFOLIO, 5 s) ---------- */
.tchip-tunnel{margin-left:8px;color:var(--cyan);border:1px solid rgba(0,194,255,.45);background:rgba(0,194,255,.08);padding:2px 8px;font-size:9px;letter-spacing:.12em;border-radius:3px;text-shadow:0 0 8px rgba(0,194,255,.6);animation:tunnelPulse 1s infinite;white-space:nowrap}
@keyframes tunnelPulse{50%{opacity:.5}}

/* ---- CYCLE breadcrumb (drill-down nav) ---- */
#crumbBar{display:none;align-items:center;gap:12px;padding:6px 14px;border-bottom:1px solid #1c2430;background:#0c1320;font:11px ui-monospace,Consolas,monospace;color:#8fa3b8;letter-spacing:.04em;}
#crumbBar.open{display:flex;}
#crumbBar.busy #crumbText{color:#00c2ff;}
.crumb-back{background:#12203a;border:1px solid #23406b;color:#7fd4ff;font:inherit;padding:3px 10px;cursor:pointer;border-radius:3px;}
.crumb-back:hover{background:#1a2c4d;color:#ffffff;}

/* ---- HERO · UNIFIED CHART ---- */
#heroSec{margin:10px 12px 0;border:1px solid #1c2430;background:#0a0f16;}
.hero-bar{display:flex;align-items:center;gap:14px;padding:8px 14px;border-bottom:1px solid #1c2430;}
.h-rhythm{display:flex;gap:6px;}
.rchip{background:#101a2b;border:1px solid #23406b;color:#7d93aa;font:11px ui-monospace,Consolas,monospace;letter-spacing:.05em;padding:4px 12px;cursor:pointer;border-radius:3px;}
.rchip:hover{color:#fff;border-color:#3a5f96;}
.rchip.on{background:#12203a;color:#7fd4ff;border-color:#2f6db5;}
.h-ind{display:flex;gap:6px;flex-wrap:wrap;}
.ichip{background:#0e1622;border:1px solid #1c2430;color:#8fa3b8;font:10px ui-monospace,Consolas,monospace;letter-spacing:.04em;padding:4px 9px;cursor:pointer;border-radius:3px;}
.ichip:hover{border-color:#2f4b70;color:#cfe3f7;}
.ichip.off{opacity:.35;text-decoration:line-through;}
.ichip.ind-price{border-color:#2a5f3f;color:#7fe0ae;}
#heroWrap{position:relative;height:460px;}
#heroChart{position:absolute;inset:0;}
#heroLock{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(7,11,18,.92);z-index:5;}
.hl-box{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;font:12px ui-monospace,Consolas,monospace;color:#8fa3b8;max-width:420px;padding:24px;}
.hl-box b{font-size:15px;color:#ff8080;letter-spacing:.08em;}
.hl-box button{margin-top:6px;background:#12203a;border:1px solid #2f6db5;color:#7fd4ff;font:inherit;font-weight:bold;padding:8px 22px;cursor:pointer;border-radius:3px;letter-spacing:.08em;}
.hl-box button:hover{background:#1a2c4d;color:#fff;}
.hl-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}
.hl-btn.prim{background:linear-gradient(135deg,#2f6db5,#1a4a8a);border-color:#3a7fd0;color:#fff;}
@media (max-width:1100px){#heroWrap{height:340px;}}
.pricing-wrap{display:flex;justify-content:center;padding:20px 0;}
.pricing-card{background:linear-gradient(135deg,#0e1622,#121e30);border:1px solid #23406b;border-radius:12px;padding:32px;max-width:400px;width:100%;}
.pricing-badge{display:inline-block;background:#1a2c4d;color:#7fd4ff;font:9px ui-monospace,Consolas,monospace;letter-spacing:.12em;padding:4px 12px;border-radius:3px;margin-bottom:12px;}
.pricing-title{font:700 18px ui-monospace,Consolas,monospace;color:#e2e8f0;letter-spacing:.04em;margin-bottom:8px;}
.pricing-desc{font:12px ui-monospace,Consolas,monospace;color:#8fa3b8;line-height:1.5;margin-bottom:20px;}
.pricing-price{font:700 36px ui-monospace,Consolas,monospace;color:#fff;margin-bottom:20px;}
.pricing-currency{font-size:20px;color:#7fd4ff;vertical-align:top;}
.pricing-period{font-size:14px;color:#5c6b7a;font-weight:400;}
.pricing-features{list-style:none;padding:0;margin:0 0 24px;}
.pricing-features li{font:12px ui-monospace,Consolas,monospace;color:#8fa3b8;padding:6px 0 6px 20px;position:relative;}
.pricing-features li::before{content:"✓";position:absolute;left:0;color:#4ade80;font-weight:bold;}
.pricing-btn{display:block;text-align:center;background:linear-gradient(135deg,#2f6db5,#1a4a8a);color:#fff;font:700 14px ui-monospace,Consolas,monospace;letter-spacing:.08em;padding:14px;border-radius:8px;text-decoration:none;cursor:pointer;border:none;width:100%;box-sizing:border-box;}
.pricing-btn:hover{background:linear-gradient(135deg,#3a7fd0,#2060a8);color:#fff;}
.pricing-note{font:10px ui-monospace,Consolas,monospace;color:#5c6b7a;text-align:center;margin-top:12px;letter-spacing:.04em;}

/* ============================================================
   MOBILE CALIBRATION · RESPONSIVE
   ============================================================ */

/* ---------- tablet / narrow desktop ---------- */
@media (max-width:1024px){
  #grid{
    grid-template-columns:minmax(240px,1fr) minmax(240px,1fr);
    grid-template-rows:auto auto auto;
  }
  #pfPanel{grid-column:1;grid-row:1}
  #posPanel{grid-column:2;grid-row:1}
  #minerPanel{grid-column:1;grid-row:2}
  #pulsePanel{grid-column:2;grid-row:2}
  #sigPanel{grid-column:1/3;grid-row:3}
  .fkeys{overflow-x:auto;scrollbar-width:none}
  .fkeys::-webkit-scrollbar{display:none}
  .fk{white-space:nowrap}
  #keyInput{width:170px}
  #clock{display:none}
}

/* ---------- phone ---------- */
@media (max-width:720px){
  html,body{height:auto;overflow:auto;-webkit-text-size-adjust:100%}
  body{display:block;font-size:12px}
  button,.fk,.rchip,.ichip,.btn,.hl-btn,.ltab,.modal-x,.unlock-btn,.pricing-btn{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
  button,a,.fk,.rchip,.ichip{-webkit-user-select:none;user-select:none}
  #cmdbar{
    position:sticky;top:0;z-index:60;
    flex-wrap:wrap;height:auto;gap:0;padding:0;
    background:#070a11;border-bottom:1px solid var(--line2);
  }
  #cmdbar .brand{
    width:100%;padding:8px 10px 6px;font-size:12px;
    display:flex;align-items:baseline;justify-content:space-between;gap:8px;
  }
  #cmdbar .brand small{display:block;margin:0;text-align:right}
  #cmdbar .fkeys{
    order:3;width:100%;display:flex;gap:2px;padding:6px 8px;
    overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  }
  #cmdbar .fkeys::-webkit-scrollbar{display:none}
  #cmdbar .fk{font-size:9px;padding:8px 10px}
  #cmdbar #authBox{
    order:2;width:100%;display:flex;flex-wrap:wrap;gap:6px;padding:6px 8px;
    border-top:1px dashed var(--line);
  }
  #cmdbar #keyInput{flex:1;min-width:0;width:auto;font-size:16px}
  #cmdbar #authBtn{font-size:12px;padding:9px 14px}
  #cmdbar #authMsg{width:100%;min-width:0;text-align:center}
  #cmdbar #spacer{display:none}
  #cmdbar #clock{display:none}

  #grid{display:flex;flex-direction:column;gap:8px;padding:8px;overflow:visible;flex:none}
  .panel{flex:0 0 auto;max-height:100vh}
  .panel .pbody{max-height:42vh;min-height:150px;overflow-y:auto;overflow-x:auto;-webkit-overflow-scrolling:touch}
  table.tbl{min-width:620px}
  .fee-grid{grid-template-columns:repeat(auto-fit,minmax(70px,1fr))}

  #heroSec{margin:8px 8px 0}
  #heroWrap{height:280px}
  .hero-bar{flex-wrap:wrap;gap:8px}
  .h-rhythm{order:1}
  .h-ind{order:2;width:100%}
  .hero-bar #spacer{display:none}
  .hero-bar .tag{display:none}
  .rchip,.ichip{font-size:11px;padding:6px 12px}
  .hl-box{padding:18px;max-width:100%}
  .hl-btn{min-height:44px;padding:10px 18px;font-size:13px}

  #ticker{height:32px;padding:0 8px}
  #statusbar{height:auto;flex-wrap:wrap;gap:8px 14px;padding:6px 8px}
  #sbRight{margin-left:0}

  .modal{background:rgba(4,6,11,.95)}
  .modal-box{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0}
  .modal-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:6px 8px 0}
  .modal-tabs::-webkit-scrollbar{display:none}
  .ltab{flex:0 0 auto;white-space:nowrap;padding:10px 14px}
  .modal-foot{flex-wrap:wrap;gap:4px;padding:8px 12px}
  .modal-x{padding:8px 10px;font-size:10px}
  .modal-body{padding:12px}
  .unlock-in{font-size:16px}
  .unlock-btn{font-size:14px;min-height:46px;padding:14px}
  .sys-row{flex-wrap:wrap}
  .mono-in{font-size:16px;padding:10px}
  .sys-row .btn{flex:1 1 auto;min-height:44px;font-size:11px;padding:10px 12px}
  .mode-line{flex-wrap:wrap}

  .charts-head{flex-wrap:wrap;gap:8px;padding:8px 10px}
  .charts-head .modal-x{flex:1 1 auto;text-align:center}
  .charts-grid{display:flex;flex-direction:column;gap:8px;padding:8px;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .charts-pane{flex:0 0 auto;height:280px}
  #pane4{height:auto;min-height:700px}
  .miner-grid{
    position:static;grid-template-columns:1fr;grid-template-rows:none;
    height:auto;overflow:visible;padding:8px;
  }
  .mg-block{min-height:140px}
  .mg-gauge svg{width:100px;height:100px}
  .mg-spark svg{height:120px}
  .mg-histbars{height:120px}
}

/* ---------- very small phones ---------- */
@media (max-width:380px){
  #cmdbar .fk{font-size:8.5px;padding:8px 8px}
  .panel .pbody{max-height:46vh}
  #heroWrap{height:240px}
  .charts-pane{height:260px}
}
