/* Terminal COIN-M — design do protocolo (ref/painel-v0.html): tokens em :root, tema escuro por
   prefers-color-scheme e [data-theme], Archivo nos títulos, IBM Plex Sans no texto, IBM Plex Mono
   em todos os números. Instrumento de medição, não ecrã de trading. */
:root{
  --bg:#F5F7F9; --surf:#FFFFFF; --raise:#EDF1F5; --line:#D9E0E7; --line2:#C3CDD7;
  --tx:#16202B; --tx2:#4E5F70; --tx3:#7C8B9B;
  --acc:#2F6C92; --acc-w:#E3EDF4;
  --ok:#2F7D5F; --ok-w:#E0F0E8; --warn:#9A6B12; --warn-w:#F6EBD5; --bad:#A8402F; --bad-w:#F7E3DF;
  --shadow:0 1px 2px rgba(22,32,43,.06),0 4px 16px rgba(22,32,43,.05);
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --sans:"IBM Plex Sans",system-ui,-apple-system,sans-serif;
  --disp:"Archivo","IBM Plex Sans",system-ui,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0F141A; --surf:#161D26; --raise:#1D2731; --line:#26313D; --line2:#36434F;
  --tx:#E6EBF1; --tx2:#A2B0BF; --tx3:#7A8998;
  --acc:#6FA6CE; --acc-w:#182634;
  --ok:#5FB891; --ok-w:#14261F; --warn:#D9A441; --warn-w:#2A2214; --bad:#DD7161; --bad-w:#2B1917;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 4px 20px rgba(0,0,0,.28);
  color-scheme:dark;
}}
:root[data-theme="dark"]{
  --bg:#0F141A; --surf:#161D26; --raise:#1D2731; --line:#26313D; --line2:#36434F;
  --tx:#E6EBF1; --tx2:#A2B0BF; --tx3:#7A8998;
  --acc:#6FA6CE; --acc-w:#182634;
  --ok:#5FB891; --ok-w:#14261F; --warn:#D9A441; --warn-w:#2A2214; --bad:#DD7161; --bad-w:#2B1917;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 4px 20px rgba(0,0,0,.28);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--tx);font-family:var(--sans);font-size:15px;line-height:1.55;
 -webkit-font-smoothing:antialiased}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px 96px}
h1,h2,h3{font-family:var(--disp);text-wrap:balance;margin:0}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--tx3)}
.muted{color:var(--tx3)}

/* cabeçalho */
header{padding:40px 0 24px;border-bottom:1px solid var(--line)}
header h1{font-size:clamp(28px,5vw,42px);font-weight:700;letter-spacing:-.022em;line-height:1.05}
header .sub{color:var(--tx2);margin-top:10px;max-width:62ch}
.stamp{display:flex;gap:10px 20px;flex-wrap:wrap;align-items:center;margin-top:16px;font-family:var(--mono);font-size:12px;color:var(--tx3)}
.stamp b{color:var(--tx2);font-weight:500}

/* secções */
section{padding-top:40px}
.shead{display:flex;align-items:baseline;gap:14px;margin-bottom:16px;border-bottom:1px solid var(--line);padding-bottom:10px}
.shead h2{font-size:20px;font-weight:600;letter-spacing:-.01em}
.shead .n{font-family:var(--mono);font-size:12px;color:var(--acc);font-weight:600}
.lede{color:var(--tx2);max-width:70ch;margin:0 0 16px}

/* cartões */
.card{background:var(--surf);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}
.pad{padding:20px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:820px){.grid2{grid-template-columns:1fr}}
.grid2>*,.verdict>*,.decision>*{min-width:0}

/* chips: estado na forma e na cor */
.chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;font-weight:600;
 letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:5px;white-space:nowrap}
.chip::before{font-size:10px}
.c-ok{background:var(--ok-w);color:var(--ok)} .c-ok::before{content:"●"}
.c-warn{background:var(--warn-w);color:var(--warn)} .c-warn::before{content:"▲"}
.c-bad{background:var(--bad-w);color:var(--bad)} .c-bad::before{content:"■"}
.c-acc{background:var(--acc-w);color:var(--acc)}
.c-mute{background:var(--raise);color:var(--tx3)} .c-mute::before{content:"○"}

/* tabelas */
.scroll{overflow-x:auto;border-radius:10px;border:1px solid var(--line);background:var(--surf)}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--tx3);
 text-align:right;padding:10px 12px;border-bottom:1px solid var(--line);font-weight:500;white-space:nowrap;background:var(--raise)}
th:first-child{text-align:left}
td{padding:9px 12px;border-bottom:1px solid var(--line);text-align:right;
 font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}
td:first-child{text-align:left;font-family:var(--sans)}
td small{display:block;font-family:var(--mono);font-size:11px;color:var(--tx3)}
tbody tr:last-child td{border-bottom:none}
tbody tr.off td{color:var(--tx3)}
caption{caption-side:bottom;padding:10px 12px;font-size:12px;color:var(--tx3);text-align:left;line-height:1.5}

/* decisão */
.decision{display:grid;grid-template-columns:repeat(3,1fr)}
@media(max-width:820px){.decision{grid-template-columns:1fr}}
.gauge{padding:20px 22px}
.gauge+.gauge{border-left:1px solid var(--line)}
@media(max-width:820px){.gauge+.gauge{border-left:none;border-top:1px solid var(--line)}}
.gauge .val{font-family:var(--mono);font-size:36px;font-weight:600;letter-spacing:-.03em;line-height:1.1}
.gauge .of{font-family:var(--mono);font-size:13px;color:var(--tx3)}
.gauge .what{color:var(--tx2);font-size:13.5px;margin-top:6px}
.track{height:8px;background:var(--raise);border-radius:99px;position:relative;margin-top:12px;overflow:hidden}
.track i{position:absolute;inset:0 auto 0 0;border-radius:99px}
.call{padding:20px 22px;border-top:1px solid var(--line)}
.call .big{font-family:var(--disp);font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1.15}
.call p{margin:8px 0 0;color:var(--tx2);font-size:14px}

/* avisos */
.note{border-left:3px solid var(--acc);background:var(--acc-w);padding:13px 16px;border-radius:0 8px 8px 0;margin:14px 0}
.note.bad{border-color:var(--bad);background:var(--bad-w)}
.note.warn{border-color:var(--warn);background:var(--warn-w)}
.note h4{margin:0 0 4px;font-size:14px;font-weight:600}
.note p{margin:0;font-size:13.5px;line-height:1.5}

/* entradas */
.rows{display:flex;flex-direction:column}
.row{display:grid;grid-template-columns:1fr 110px;gap:12px;align-items:center;padding:9px 16px;border-bottom:1px solid var(--line)}
.row:last-child{border-bottom:none}
.row .nm{font-size:13.5px}
.row .nm small{display:block;color:var(--tx3);font-size:11.5px;font-family:var(--mono)}
input[type=number]{width:100%;padding:7px 9px;border:1px solid var(--line2);border-radius:6px;
 background:var(--bg);color:var(--tx);font-family:var(--mono);font-size:14px;text-align:right;font-variant-numeric:tabular-nums}
input:focus-visible,button:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
button{font-family:var(--sans);font-size:13.5px;font-weight:500;padding:8px 15px;border-radius:7px;
 border:1px solid var(--line2);background:var(--surf);color:var(--tx);cursor:pointer}
button:hover{background:var(--raise);border-color:var(--acc)}
button.pri{background:var(--acc);border-color:var(--acc);color:#fff}
.btns{display:flex;gap:9px;flex-wrap:wrap;align-items:center;padding:12px 16px;border-top:1px solid var(--line);background:var(--raise);border-radius:0 0 10px 10px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- M3: secções completas ---------- */
.ticks{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--tx3);margin-top:5px}
.verdict{display:grid;grid-template-columns:1fr 1fr}
@media(max-width:820px){.verdict{grid-template-columns:1fr}}
.verdict .gauge+.gauge{border-left:1px solid var(--line)}
@media(max-width:820px){.verdict .gauge+.gauge{border-left:none;border-top:1px solid var(--line)}}
.call{display:flex;gap:10px 22px;align-items:center;flex-wrap:wrap}
.call .why{color:var(--tx2);font-size:14px;flex:1;min-width:240px;margin:0}
.small{font-size:13.5px;margin-top:12px}
code{font-family:var(--mono);font-size:12.5px;background:var(--raise);padding:1px 5px;border-radius:4px}

/* alocação */
.al{display:grid;grid-template-columns:48px 1fr 90px 150px;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}
.al.head{background:var(--raise);border-radius:10px 10px 0 0}
.al .r{text-align:right}
.al .tick{font-family:var(--mono);font-weight:600;font-size:13px}
.al .bar{height:22px;background:var(--raise);border-radius:5px;overflow:hidden;position:relative}
.al .bar i{position:absolute;inset:0 auto 0 0;background:var(--acc);opacity:.85}
.al .bar span{position:absolute;left:9px;top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:11px;color:var(--tx)}
.al .eur{font-size:16px;font-weight:600;text-align:right}
.al .lv{font-size:12px;color:var(--tx2);text-align:right}
@media(max-width:560px){
  .al{grid-template-columns:44px 1fr 84px;row-gap:4px}
  .al .lv{grid-column:2 / 4}
  .al.head .eyebrow:last-child{display:none}
}
.foot{padding:12px 16px;background:var(--raise);border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;
 font-family:var(--mono);font-size:12.5px;border-radius:0 0 10px 10px}
.foot b{font-size:19px;font-weight:600;white-space:nowrap}

/* regras */
.rule{display:grid;grid-template-columns:30px 1fr;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line)}
.rule:last-child{border-bottom:none}
.rule .k{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--acc);padding-top:2px}
.rule .rh{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.rule h4{margin:0 0 3px;font-size:14.5px;font-weight:600}
.rule p{margin:0;color:var(--tx2);font-size:13px;line-height:1.5;overflow-wrap:anywhere}

/* tabelas */
tfoot td{background:var(--raise);font-weight:600;border-top:1px solid var(--line);border-bottom:none}
tbody tr.hl td{background:var(--acc-w)}
td.liq{color:var(--bad);font-weight:600}
.scroll.flat{border:0;border-radius:0}
.empty{text-align:center!important;color:var(--tx3);padding:22px!important;font-family:var(--sans)!important}

/* dimensionamento */
.btns.top{border-top:0;border-bottom:1px solid var(--line);border-radius:10px 10px 0 0}
.row.wide{grid-template-columns:1fr 140px}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:10px 0 14px}
.kpi{font-size:24px;font-weight:600;letter-spacing:-.02em}
@media(max-width:420px){.kpis{grid-template-columns:1fr 1fr}.kpi{font-size:20px}}
#szOut .scroll{margin-top:4px}

/* botões */
button.mini{padding:3px 8px;font-size:11.5px}
.filebtn{position:relative;display:inline-flex;align-items:center;font-size:13.5px;font-weight:500;padding:8px 15px;border-radius:7px;
 border:1px solid var(--line2);background:var(--surf);cursor:pointer}
.filebtn:hover{background:var(--raise);border-color:var(--acc)}
.filebtn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.filebtn:focus-within{outline:2px solid var(--acc);outline-offset:2px}

/* telemóvel */
@media(max-width:560px){
  body{font-size:14.5px}
  .gauge,.call{padding:16px}
  .gauge .val{font-size:32px}
  .call .big{font-size:22px}
  .row.wide{grid-template-columns:1fr 120px}
  th,td{padding:8px 10px}
  .stamp button{padding:6px 10px}
}
.note-s{font-size:12px;color:var(--tx3);margin:10px 0 0;line-height:1.5}
