/* Área do assinante — Machina Investimentos. Mesmos tokens do site público. */
:root{
  --ground:#F2F5F8; --surface:#FFFFFF; --surface-2:#E9EEF4; --bone:#ECE8E0;
  --ink:#0E151E; --ink-2:#3A4755; --muted:#65727F;
  --line:#D8E0E8; --line-strong:#B8C5D2;
  --navy:#16355C; --navy-soft:#E3EAF3; --steel:#48729F;
  --good:#1C6A4E; --bad:#9B3B2E; --warn:#8A5A00; --on-navy:#F4F7FB;
  --shadow:0 1px 2px rgba(14,21,30,.05), 0 10px 28px -16px rgba(14,21,30,.35);
  --r:4px;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:#0C1118; --surface:#121A23; --surface-2:#18222D; --bone:#1A212C;
    --ink:#E9EEF4; --ink-2:#BCC8D4; --muted:#8C9AA8;
    --line:#233040; --line-strong:#35465C;
    --navy:#9CBCE4; --navy-soft:#16222F; --steel:#78A2CF;
    --good:#61BE95; --bad:#E08A7C; --warn:#E0B45C; --on-navy:#0A1018;
    --shadow:0 1px 2px rgba(0,0,0,.45), 0 10px 28px -16px rgba(0,0,0,.8);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --ground:#0C1118; --surface:#121A23; --surface-2:#18222D; --bone:#1A212C;
  --ink:#E9EEF4; --ink-2:#BCC8D4; --muted:#8C9AA8;
  --line:#233040; --line-strong:#35465C;
  --navy:#9CBCE4; --navy-soft:#16222F; --steel:#78A2CF;
  --good:#61BE95; --bad:#E08A7C; --warn:#E0B45C; --on-navy:#0A1018;
  --shadow:0 1px 2px rgba(0,0,0,.45), 0 10px 28px -16px rgba(0,0,0,.8);
  color-scheme:dark;
}

*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--ground); color:var(--ink); font-family:"IBM Plex Sans","Segoe UI",system-ui,sans-serif; font-size:15px; line-height:1.55; -webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:"Source Serif 4",Georgia,serif; font-weight:600; margin:0; letter-spacing:-.01em; text-wrap:balance}
p{margin:0}
a{color:var(--navy)}
button{font:inherit; color:inherit}
[hidden]{display:none !important}
.mono,.num{font-family:"IBM Plex Mono",ui-monospace,monospace; font-variant-numeric:tabular-nums}
.eyebrow{font-family:"IBM Plex Mono",monospace; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted)}
.muted{color:var(--muted)}
.small{font-size:.84rem}
.up{color:var(--good)} .dn{color:var(--bad)}
:focus-visible{outline:2px solid var(--steel); outline-offset:2px; border-radius:2px}
.sr-only{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap}

/* ---------- botões e campos ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:10px 18px; border-radius:var(--r); font-size:.88rem; font-weight:500; text-decoration:none; border:1px solid transparent; cursor:pointer; line-height:1.2; background:none; transition:background .15s,border-color .15s,color .15s}
.btn-primary{background:var(--navy); color:var(--on-navy)}
.btn-primary:hover{background:color-mix(in srgb,var(--navy) 85%,var(--ink))}
.btn-ghost{border-color:var(--line-strong); color:var(--ink)}
.btn-ghost:hover{border-color:var(--navy); color:var(--navy)}
.btn-sm{padding:6px 12px; font-size:.8rem}
.btn[disabled]{opacity:.5; cursor:not-allowed}
.icon-btn{border:1px solid var(--line-strong); background:transparent; color:var(--muted); width:34px; height:34px; border-radius:var(--r); cursor:pointer; display:grid; place-items:center; padding:0; flex:none}
.icon-btn:hover{color:var(--navy); border-color:var(--navy)}
.linkish{background:none; border:0; padding:0; color:var(--navy); cursor:pointer; text-decoration:underline; text-underline-offset:2px; font-size:.86rem}
.field{display:flex; flex-direction:column; gap:6px}
.field label{font-family:"IBM Plex Mono",monospace; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted)}
input[type=text],input[type=email],input[type=password],input[type=search],select{
  font:inherit; font-size:.92rem; color:var(--ink); background:var(--surface); border:1px solid var(--line-strong); border-radius:var(--r); padding:9px 11px; width:100%}
input::placeholder{color:var(--muted)}
select{padding-right:28px}
.seg{display:inline-flex; border:1px solid var(--line-strong); border-radius:var(--r); padding:2px; gap:2px; background:var(--surface); flex-wrap:wrap}
.seg button{border:0; background:transparent; padding:6px 11px; border-radius:3px; font-size:.8rem; cursor:pointer; color:var(--ink-2); white-space:nowrap}
.seg button[aria-pressed="true"]{background:var(--navy); color:var(--on-navy)}
.chip{display:inline-flex; align-items:center; gap:5px; font-family:"IBM Plex Mono",monospace; font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; border:1px solid var(--line-strong); border-radius:2px; padding:2px 7px; color:var(--muted); white-space:nowrap}
.chip.plano{color:var(--navy); border-color:var(--navy)}
.msg{font-size:.86rem; border-radius:var(--r); padding:10px 12px; border:1px solid var(--line); background:var(--surface-2); color:var(--ink-2)}
.msg.erro{border-color:var(--bad); color:var(--bad); background:transparent}
.msg.ok{border-color:var(--good); color:var(--good); background:transparent}

/* ---------- login ---------- */
.login{min-height:100vh; display:grid; place-items:center; padding:24px 16px;
  background:radial-gradient(900px 420px at 85% -10%, color-mix(in srgb,var(--steel) 14%,transparent), transparent 70%), var(--ground)}
.login-card{width:100%; max-width:400px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--shadow); padding:30px 28px; display:flex; flex-direction:column; gap:16px}
.login-card h1{font-size:1.6rem}
.login-card form{display:flex; flex-direction:column; gap:14px}
.login-links{display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap}
.login-foot{font-size:.78rem; color:var(--muted); text-align:center}
.login-foot a{color:var(--muted)}
.dev-box{border:1px dashed var(--line-strong); border-radius:var(--r); padding:12px; display:flex; flex-direction:column; gap:8px}
.dev-box .row{display:flex; gap:6px; flex-wrap:wrap}

/* ---------- marca ---------- */
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink)}
.brand .mark{width:26px; height:26px; border-radius:4px; background:var(--navy); color:var(--on-navy); display:grid; place-items:center; flex:none}
.brand b{font-family:"IBM Plex Mono",monospace; font-weight:500; font-size:.92rem; letter-spacing:.24em; text-transform:uppercase}
.brand span{font-size:.66rem; color:var(--muted); letter-spacing:.1em; text-transform:uppercase}

/* ---------- app ---------- */
.top{position:sticky; top:0; z-index:40; background:color-mix(in srgb,var(--ground) 90%,transparent); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-bottom:1px solid var(--line)}
.top-in{max-width:1280px; margin:0 auto; padding:0 20px; height:58px; display:flex; align-items:center; gap:16px}
.tabs{display:flex; gap:4px; margin-left:6px}
.tabs a{text-decoration:none; color:var(--ink-2); font-size:.9rem; padding:6px 12px; border-radius:var(--r)}
.tabs a:hover{color:var(--navy)}
.tabs a[aria-current="page"]{background:var(--navy-soft); color:var(--navy); font-weight:500}
.top-right{margin-left:auto; display:flex; align-items:center; gap:10px}
.top-right .email{font-size:.8rem; color:var(--muted); max-width:200px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
/* seletor de idioma PT/EN (mesmo desenho do site público) */
.lang{display:inline-flex; flex:none; border:1px solid var(--line-strong); border-radius:var(--r); overflow:hidden}
.lang a{display:grid; place-items:center; height:34px; padding:0 9px; font-family:"IBM Plex Mono",monospace; font-size:.72rem; font-weight:500; letter-spacing:.08em; text-decoration:none; color:var(--muted); transition:color .15s, background .15s}
.lang a + a{border-left:1px solid var(--line-strong)}
.lang a:hover{color:var(--navy)}
.lang a[aria-current="true"]{background:var(--navy); color:var(--on-navy)}
.lang-login{align-self:flex-start}
/* seletor de mercado Brasil/EUA: fica ao lado da marca, antes das abas */
.mkt{display:inline-flex; flex:none; border:1px solid var(--line-strong); border-radius:var(--r); padding:2px; gap:2px; background:var(--surface)}
.mkt button{display:inline-flex; align-items:center; gap:6px; height:28px; padding:0 10px; border:0; border-radius:3px; background:transparent; color:var(--ink-2); font-size:.82rem; cursor:pointer; transition:color .15s, background .15s}
.mkt button:hover{color:var(--navy)}
.mkt .mkt-cod{font-family:"IBM Plex Mono",monospace; font-size:.64rem; letter-spacing:.08em; color:var(--muted)}
.mkt button[aria-pressed="true"]{background:var(--navy); color:var(--on-navy); font-weight:500}
.mkt button[aria-pressed="true"] .mkt-cod{color:inherit; opacity:.75}
.lang-login a{height:28px; padding:0 8px}
.theme .sun{display:none}
:root[data-theme="dark"] .theme .sun{display:block}
:root[data-theme="dark"] .theme .moon{display:none}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .theme .sun{display:block}
  :root:not([data-theme="light"]) .theme .moon{display:none}
}
.wrap{max-width:1280px; margin:0 auto; padding:24px 20px 48px}
.page-head{display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:20px}
.page-head h1{font-size:1.7rem}
.page-head p{color:var(--ink-2); font-size:.92rem; max-width:70ch; margin-top:6px}
.toolbar{display:flex; align-items:center; gap:10px 14px; flex-wrap:wrap; margin-bottom:16px}
.toolbar .grow{flex:1 1 220px; max-width:340px}
.card{background:var(--surface); border:1px solid var(--line); border-radius:var(--r)}
.foot{border-top:1px solid var(--line); padding:18px 20px 28px; font-size:.76rem; color:var(--muted); max-width:1280px; margin:0 auto; line-height:1.6}
.loading{padding:40px 0; color:var(--muted); font-size:.9rem}
.upsell{border:1px solid var(--line); border-left:3px solid var(--steel); background:var(--surface); border-radius:var(--r); padding:18px 20px; display:flex; gap:16px; align-items:center; justify-content:space-between; flex-wrap:wrap}
.upsell p{color:var(--ink-2); font-size:.9rem; max-width:70ch}

/* ---------- macro ---------- */
.macro{display:grid; grid-template-columns:280px minmax(0,1fr); gap:22px; align-items:start}
.cat{position:sticky; top:74px; max-height:calc(100vh - 92px); overflow:auto; padding:14px}
.cat h2{font-family:"IBM Plex Mono",monospace; font-size:.66rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin:14px 0 6px}
.cat ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:1px}
.cat li button{width:100%; text-align:left; border:0; background:transparent; padding:6px 8px; border-radius:3px; cursor:pointer; display:flex; align-items:center; gap:8px; font-size:.86rem; color:var(--ink-2)}
.cat li button:hover{background:var(--surface-2)}
.cat li button .box{width:14px; height:14px; border:1.5px solid var(--line-strong); border-radius:3px; flex:none; display:grid; place-items:center}
.cat li button[aria-pressed="true"]{color:var(--ink); font-weight:500}
.cat li button[aria-pressed="true"] .box{background:var(--navy); border-color:var(--navy)}
.cat li button[aria-pressed="true"] .box::after{content:""; width:7px; height:4px; border:2px solid var(--on-navy); border-top:0; border-right:0; transform:rotate(-45deg) translate(1px,-1px)}
.cat li button.lock{color:var(--muted)}
.cat li button.lock .box{border-style:dashed}
.cat .count{font-size:.76rem; color:var(--muted)}
.cat-sel{display:flex; align-items:center; justify-content:space-between; gap:8px; margin:10px 2px 2px}
.cat-sel .lnk{border:0; background:transparent; padding:2px 0; font:inherit; font-size:.76rem; color:var(--navy); text-decoration:underline; text-underline-offset:2px; cursor:pointer}
.cat-sel .lnk:hover{color:var(--ink)}
.cat-sel .lnk:disabled{color:var(--muted); text-decoration:none; cursor:default}
.grid-series{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px}
.serie{padding:16px 16px 12px; display:flex; flex-direction:column; gap:8px; min-width:0}
.serie-head{display:flex; justify-content:space-between; gap:12px; align-items:flex-start}
.serie-head h3{font-size:1rem; line-height:1.3}
.serie-head .unit{font-size:.76rem; color:var(--muted); margin-top:2px}
.serie-val{text-align:right; flex:none}
.serie-val b{display:block; font-family:"Source Serif 4",Georgia,serif; font-size:1.45rem; font-weight:600; line-height:1.1; font-variant-numeric:tabular-nums}
.serie-val span{font-size:.74rem; color:var(--muted)}
.serie-foot{display:flex; justify-content:space-between; gap:12px; font-size:.74rem; color:var(--muted); border-top:1px solid var(--line); padding-top:8px; flex-wrap:wrap}
.serie details summary{cursor:pointer; color:var(--navy)}
.serie table{margin-top:6px}
.empty{padding:40px 20px; text-align:center; color:var(--muted); border:1px dashed var(--line-strong); border-radius:var(--r)}

/* ---------- gráfico ---------- */
.chart{position:relative; width:100%; outline:none; touch-action:pan-y}
.chart svg{display:block; width:100%; overflow:visible}
.chart .grid line{stroke:var(--line); stroke-width:1}
.chart .axis text{fill:var(--muted); font-family:"IBM Plex Mono",monospace; font-size:10px}
.chart .zero{stroke:var(--line-strong); stroke-width:1}
.chart .line{fill:none; stroke:var(--navy); stroke-width:2; stroke-linejoin:round; stroke-linecap:round}
.chart .area{fill:var(--navy); fill-opacity:.07}
.chart .rule{stroke:var(--muted); stroke-width:1; stroke-dasharray:3 3}
.chart .dot{fill:var(--navy); stroke:var(--surface); stroke-width:2}
.chart .tip{position:absolute; pointer-events:none; background:var(--ink); color:var(--ground); font-size:.74rem; line-height:1.35; padding:6px 9px; border-radius:3px; white-space:nowrap; transform:translate(-50%,-100%); margin-top:-10px; box-shadow:var(--shadow)}
.chart .tip b{font-family:"IBM Plex Mono",monospace; font-weight:500}

/* ---------- tabelas ---------- */
.table-wrap{overflow:auto; border:1px solid var(--line); border-radius:var(--r); background:var(--surface); max-width:100%}
table.t{border-collapse:collapse; width:100%; font-size:.84rem}
table.t th,table.t td{padding:8px 10px; border-bottom:1px solid var(--line); text-align:right; white-space:nowrap}
table.t th{position:sticky; top:0; background:var(--surface-2); font-weight:500; color:var(--ink-2); font-size:.76rem; z-index:1}
table.t th.l,table.t td.l{text-align:left}
table.t td{font-family:"IBM Plex Mono",monospace; font-variant-numeric:tabular-nums; font-size:.8rem}
table.t td.l{font-family:"IBM Plex Sans",sans-serif; font-size:.84rem}
table.t tbody tr:hover{background:var(--surface-2)}
table.t th button{all:unset; cursor:pointer; display:inline-flex; gap:4px; align-items:center}
table.t th button:focus-visible{outline:2px solid var(--steel)}
table.t th[aria-sort] button::after{content:"↕"; opacity:.35; font-size:.7rem}
table.t th[aria-sort="ascending"] button::after{content:"↑"; opacity:1}
table.t th[aria-sort="descending"] button::after{content:"↓"; opacity:1}
table.t tr.click{cursor:pointer}
table.t a.tk{font-family:"IBM Plex Mono",monospace; font-weight:500; text-decoration:none}
table.t a.tk:hover{text-decoration:underline}
.emp-nome{max-width:260px; overflow:hidden; text-overflow:ellipsis}
.table-wrap.tall{max-height:calc(100vh - 250px)}

/* ---------- empresa ---------- */
.back{font-size:.84rem; text-decoration:none; color:var(--muted)}
.back:hover{color:var(--navy)}
.emp-head{display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; align-items:flex-end; margin:10px 0 20px}
.emp-head h1{font-size:1.9rem}
.emp-head .sub{color:var(--muted); font-size:.86rem; margin-top:4px}
.emp-price{text-align:right}
.emp-price b{font-family:"Source Serif 4",Georgia,serif; font-size:2rem; font-weight:600; font-variant-numeric:tabular-nums}
.kpis{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin-bottom:20px}
.kpi{padding:14px 16px; border-right:1px solid var(--line); border-bottom:1px solid var(--line)}
.kpi:nth-child(4n){border-right:0}
.kpi:nth-last-child(-n+4){border-bottom:0}
.kpi span{display:block; font-size:.74rem; color:var(--muted)}
.kpi b{display:block; font-family:"Source Serif 4",Georgia,serif; font-size:1.3rem; font-weight:600; font-variant-numeric:tabular-nums; margin-top:2px}
.sec{margin-top:26px}
.sec-h{display:flex; justify-content:space-between; align-items:flex-end; gap:12px; flex-wrap:wrap; margin-bottom:10px}
.sec-h h2{font-size:1.15rem}
.pad{padding:16px}
.grid-3{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px}
.mini{padding:14px 14px 10px}
.mini h3{font-size:.92rem}
.mini .unit{font-size:.74rem; color:var(--muted)}

/* ---------- proventos ---------- */
.stats{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-bottom:16px}
.stats > div{padding:14px 16px; border-right:1px solid var(--line)}
.stats > div:last-child{border-right:0}
.stats span{display:block; font-size:.74rem; color:var(--muted)}
.stats b{display:block; font-family:"Source Serif 4",Georgia,serif; font-size:1.3rem; font-weight:600; margin-top:2px}
.dia{margin-top:18px}
.dia h3{font-family:"IBM Plex Mono",monospace; font-size:.74rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-2); padding-bottom:6px; border-bottom:1px solid var(--line-strong); margin-bottom:0}
table.t tr.grupo th{position:static; background:var(--ground); text-align:left; font-family:"IBM Plex Mono",monospace; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-2); padding-top:14px; border-bottom:1px solid var(--line-strong)}
.tipo{font-family:"IBM Plex Mono",monospace; font-size:.66rem; letter-spacing:.06em; text-transform:uppercase; padding:1px 6px; border-radius:2px; background:var(--surface-2); color:var(--ink-2)}
.cal-nav{display:flex; align-items:center; gap:10px; margin-bottom:10px}
.cal-nav h3{font-size:1.1rem; min-width:170px; text-align:center}
.cal{display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line)}
.cal .dow{font-family:"IBM Plex Mono",monospace; font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); padding:6px 8px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--surface-2)}
.cal .d{min-height:92px; padding:6px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--surface); display:flex; flex-direction:column; gap:3px; min-width:0}
.cal .d.fora{background:var(--ground)}
.cal .d.hoje{box-shadow:inset 0 0 0 2px var(--navy)}
.cal .n{font-family:"IBM Plex Mono",monospace; font-size:.72rem; color:var(--muted)}
.cal .ev{font-family:"IBM Plex Mono",monospace; font-size:.68rem; background:var(--navy-soft); color:var(--navy); border-radius:2px; padding:1px 4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-decoration:none; border:0; cursor:pointer; text-align:left}
.cal .mais{font-size:.68rem; color:var(--muted)}

/* ---------- empresas: subnavegação e série histórica ---------- */
.seg a{padding:6px 11px; border-radius:3px; font-size:.8rem; color:var(--ink-2); text-decoration:none; white-space:nowrap}
.seg a:hover{color:var(--navy)}
.seg a[aria-current="page"]{background:var(--navy); color:var(--on-navy)}
.seg-full{display:flex; width:100%; flex-wrap:nowrap}
.seg-full button{flex:1 1 auto; padding:6px 4px; font-size:.76rem}
.cat li button.radio .box{border-radius:50%}
.cat li button.radio[aria-pressed="true"] .box::after{width:6px; height:6px; border:0; border-radius:50%; background:var(--on-navy); transform:none}
.cat li button .u{margin-left:auto; font-family:"IBM Plex Mono",monospace; font-size:.64rem; color:var(--muted); white-space:nowrap}
.hist .toolbar .h-setor{flex:0 1 200px; min-width:150px}
/* busca de companhia por digitação (série histórica) */
.hist .toolbar .h-tk{position:relative; flex:1 1 100%}
.sugestoes{position:absolute; z-index:30; top:calc(100% + 4px); left:0; right:0; max-width:560px; margin:0; padding:4px; list-style:none; background:var(--surface); border:1px solid var(--line-strong); border-radius:var(--r); box-shadow:var(--shadow); max-height:320px; overflow:auto}
.sugestoes li{display:grid; grid-template-columns:72px minmax(0,1fr) auto; gap:10px; align-items:baseline; padding:7px 9px; border-radius:3px; cursor:pointer; font-size:.86rem}
.sugestoes li span:nth-child(2){overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.sugestoes li b{color:var(--navy); font-weight:500}
.sugestoes li[aria-selected="true"], .sugestoes li:hover{background:var(--navy-soft)}
.sugestoes li.vazio{display:block; color:var(--muted); cursor:default}
@media (max-width:760px){ .sugestoes li{grid-template-columns:64px minmax(0,1fr)} .sugestoes li span:last-child{display:none} }
.hist .toolbar .grow{flex:1 1 240px; max-width:360px}
.hist-card{padding:18px 18px 14px; display:flex; flex-direction:column; gap:12px; min-width:0}
.hist-head{display:flex; justify-content:space-between; gap:14px; align-items:flex-start; flex-wrap:wrap}
.hist-head h2{font-size:1.3rem; margin-top:2px}
.hist-head .small{margin-top:4px}
.hist-stats{grid-template-columns:repeat(4,minmax(0,1fr)); margin-bottom:0; background:var(--ground)}
.hist-stats span:last-child{margin-top:2px}
.hist-stats b{font-size:1.1rem}
.hist-dados summary{cursor:pointer; color:var(--navy); font-size:.84rem}
.hist-dados .table-wrap{max-height:340px; margin-top:8px}
@media (max-width:760px){
  .hist-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hist-stats > div{border-right:0; border-bottom:1px solid var(--line)}
  .page-head .subnav{width:100%}
}

/* ---------- responsivo ---------- */
@media (max-width:980px){
  .macro{grid-template-columns:1fr}
  .cat{position:static; max-height:none}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi:nth-child(4n){border-right:1px solid var(--line)}
  .kpi:nth-child(2n){border-right:0}
  .kpi:nth-last-child(-n+4){border-bottom:1px solid var(--line)}
  .kpi:nth-last-child(-n+2){border-bottom:0}
  .grid-3{grid-template-columns:1fr}
}
@media (max-width:760px){
  .grid-series{grid-template-columns:1fr}
  .top-in{height:auto; flex-wrap:wrap; padding:10px 16px; gap:10px}
  .tabs{order:4; flex:1 1 0; min-width:0; margin-left:0; overflow-x:auto}
  .mkt{order:3}
  .mkt .mkt-cod{display:none}
  .top-in > .brand{flex:1 1 auto}
  .top-right .email{display:none}
  .brand span{display:none}
  .wrap{padding:18px 16px 40px}
  .stats{grid-template-columns:1fr}
  .stats > div{border-right:0; border-bottom:1px solid var(--line)}
  .stats > div:last-child{border-bottom:0}
  .cal .d{min-height:64px; padding:3px}
  .cal .ev{font-size:.6rem}
  .emp-price{text-align:left}
}
@media (prefers-reduced-motion: reduce){ *{transition:none !important} }

/* ---------- assinatura */
.a-h2{font-size:1.15rem; margin:24px 0 8px}
.planos-area{display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:10px; max-width:760px}
.plano-op{display:flex; flex-direction:column; gap:4px; text-align:left; padding:14px 16px; border:1px solid var(--line-strong); border-radius:var(--r); background:var(--surface); color:var(--ink); cursor:pointer; font:inherit}
.plano-op b{font-family:"Source Serif 4",Georgia,serif; font-size:1.05rem}
.plano-op .num{font-family:"Source Serif 4",Georgia,serif; font-size:1.4rem; font-weight:600; font-variant-numeric:tabular-nums}
.plano-op:hover{border-color:var(--navy)}
.plano-op[aria-pressed="true"]{border-color:var(--navy); box-shadow:inset 0 0 0 1px var(--navy); background:var(--navy-soft)}
a.chip.plano{text-decoration:none}
a.chip.plano:hover{background:var(--navy-soft)}

/* ---------- [EXCL] exclusivas Machina (2026-10-03) ---------- */
.chip.excl{color:var(--warn); border-color:color-mix(in srgb,var(--warn) 55%,transparent); background:color-mix(in srgb,var(--warn) 8%,transparent); vertical-align:middle; letter-spacing:.06em}
.chip.excl.mini{font-size:.58rem; padding:1px 4px; margin-left:4px}
.serie-head .chip.excl{margin-bottom:5px}
.card.serie.excl{border-top:2px solid color-mix(in srgb,var(--warn) 70%,transparent)}
.excl-grupo{border:1px solid color-mix(in srgb,var(--warn) 35%,var(--line)); background:color-mix(in srgb,var(--warn) 4%,transparent); border-radius:var(--r); padding:2px 6px 8px; margin:8px 0 6px}
.excl-grupo h2{display:flex; align-items:center; gap:6px; flex-wrap:wrap; color:var(--ink-2)}
.cat li.sub{font-size:.72rem; color:var(--muted); padding:8px 8px 2px; font-style:italic}
.page-head p.cobertura{font-family:"IBM Plex Mono",monospace; font-size:.78rem; letter-spacing:.02em; color:var(--muted)}
.page-head p.cobertura b{color:var(--ink); font-weight:600}
.grid-2{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px}
.kpi .kpi-sub{display:block; font-size:.72rem; color:var(--muted); margin-top:2px}
.sec.sent .sec-h h2{display:flex; align-items:center; gap:8px; flex-wrap:wrap}
.sent-h3{font-size:.95rem; margin:22px 0 8px}
.eventos{list-style:none; margin:0; padding:0; border-top:1px solid var(--line)}
.eventos li{padding:10px 2px; border-bottom:1px solid var(--line)}
.ev-top{display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:.82rem}
.ev-data{font-family:"IBM Plex Mono",monospace; font-size:.76rem; color:var(--muted); font-variant-numeric:tabular-nums}
.ev-doc{font-weight:500}
.ev-link{margin-left:auto}
.ev-ass{font-size:.86rem; color:var(--ink-2); margin-top:3px}
.ev-just{font-size:.84rem; color:var(--muted); margin-top:3px; max-width:90ch}
.leit{font-size:.7rem; border-radius:2px; padding:1px 6px; border:1px solid currentColor; white-space:nowrap}
.leit.pos{color:var(--good)} .leit.neg{color:var(--bad)} .leit.neu{color:var(--muted)}
.tom{font-variant-numeric:tabular-nums; font-weight:500}
@media (max-width:980px){ .grid-2{grid-template-columns:1fr} .ev-link{margin-left:0} }
.seg.seg-full{flex-wrap:wrap}
.sec.sent table.t td,.sec.sent table.t th{white-space:nowrap} .sec.sent table.t td.l,.sec.sent table.t th.l{white-space:normal}

/* ---------- [RISCOS-SITE] balanço de riscos ---------- */
.rst{display:inline-block; font-size:.74rem; font-weight:500; border-radius:2px; padding:2px 8px; white-space:nowrap; border:1px solid currentColor}
.rst.r-alto{color:var(--on-navy); background:var(--bad); border-color:var(--bad)}
.rst.r-risco{color:var(--bad); background:color-mix(in srgb,var(--bad) 9%,transparent)}
.rst.r-eq{color:var(--ink-2); border-color:var(--line-strong)}
.rst.r-op{color:var(--good); background:color-mix(in srgb,var(--good) 9%,transparent)}
.rst.r-nada{color:var(--muted); border-color:var(--line)}
.rsaldo{display:inline-flex; align-items:center; gap:8px; white-space:nowrap}
.rbar{display:inline-flex; width:96px; height:8px; gap:2px}
.rbar .rneg,.rbar .rpos{flex:1; display:flex; background:var(--surface-2); border-radius:1px; overflow:hidden}
.rbar .rneg{justify-content:flex-end}
.rbar .rneg i{display:block; background:var(--bad)} .rbar .rpos i{display:block; background:var(--good)}
.rsaldo b{min-width:2.2em; text-align:right}
.rtab td.rtxt{max-width:340px}
.rprinc{display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:340px; font-size:.84rem; color:var(--ink-2)}
.rnovo{font-family:"IBM Plex Mono",monospace; font-size:.6rem; letter-spacing:.06em; text-transform:uppercase; color:var(--warn); border:1px solid color-mix(in srgb,var(--warn) 55%,transparent); border-radius:2px; padding:0 4px; vertical-align:middle}
.rminha{display:inline-flex; align-items:center; gap:6px; cursor:pointer}
.rresumo{display:flex; align-items:center; gap:10px 18px; flex-wrap:wrap; padding:14px 16px; margin-bottom:12px}
.rresumo .rst{font-size:.86rem; padding:4px 10px}
.rcart{margin:-2px 0 12px; font-size:.88rem; color:var(--ink-2)}
.rblocos{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px}
.rbloco{padding:14px 16px}
.rbloco-h{display:flex; justify-content:space-between; align-items:baseline; gap:10px}
.rbloco-h h3{font-size:1rem}
.rbloco .unit{font-size:.74rem; color:var(--muted); margin:2px 0 8px}
.ritens{list-style:none; margin:0; padding:0}
.ritens li{display:grid; grid-template-columns:32px 1fr; gap:8px; padding:8px 0; border-top:1px solid var(--line)}
.ritens li:first-child{border-top:0}
.rpeso{font-family:"IBM Plex Mono",monospace; font-size:.78rem; font-weight:500; text-align:center; border-radius:2px; padding:1px 0; height:fit-content}
.rpeso.neg{color:var(--bad); background:color-mix(in srgb,var(--bad) 10%,transparent)}
.rpeso.pos{color:var(--good); background:color-mix(in srgb,var(--good) 10%,transparent)}
.rpeso.neu{color:var(--muted)}
.rrot{font-size:.88rem; font-weight:500}
.rtexto{font-size:.84rem; color:var(--ink-2); margin-top:2px}
@media (max-width:760px){ .rblocos{grid-template-columns:1fr} .rprinc{max-width:220px} }
.rtab .emp-nome{display:inline-block; max-width:220px; vertical-align:bottom; white-space:nowrap}

/* [SEG] 2026-10-19: caixa do Turnstile (some enquanto vazia/invisível) */
.cap:empty{display:none}

/* [CARTEIRA-SITE] 2026-10-20: tabela da carteira no celular mostra só ação, peso, ranking e PDF */
@media (max-width:640px){ table.t.cart .c-opt{display:none} }

/* [CAIXAS] 2026-10-22: item informativo (sem peso) na caixa do balanço de riscos */
.ritens li.rctx .rrot{font-weight:400;color:var(--muted, #6b7280)}

/* ---------- [DEMONST] demonstrações financeiras (DRE, balanço, fluxo de caixa) ---------- */
.dem-nota{margin:-2px 0 4px; max-width:90ch}
.dem-bloco{margin-top:18px}
.dem-bloco h3{font-family:"IBM Plex Mono",monospace; font-size:.7rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-2); margin-bottom:8px}
.dem-bloco .table-wrap{max-height:none}
table.t.dem{width:auto; min-width:100%}
table.t.dem th.l,table.t.dem td.l{position:sticky; left:0; z-index:2; background:var(--surface); min-width:230px; max-width:300px; white-space:normal; border-right:1px solid var(--line)}
table.t.dem thead th.l{z-index:3; background:var(--surface-2)}
table.t.dem tbody tr:hover td.l{background:var(--surface-2)}
table.t.dem td.n1{padding-left:24px; color:var(--ink-2); font-size:.8rem}
table.t.dem tr.forte td{font-weight:600}
table.t.dem tr.forte td.l{color:var(--ink)}
table.t.dem tr.memo td{color:var(--ink-2)} table.t.dem tr.memo td.l{cursor:help} table.t.dem .dem-info{font-size:.7rem; color:var(--muted)}
table.t.dem tr.grupo th{position:sticky; left:0}
table.t.dem th{vertical-align:bottom; min-width:84px}
table.t.dem .dem-sub{display:block; font-size:.62rem; font-weight:400; color:var(--muted); letter-spacing:0}
table.t.dem .ah{display:block; font-size:.66rem; line-height:1.2; color:var(--muted)}
table.t.dem .ah.up{color:var(--good)} table.t.dem .ah.dn{color:var(--bad)}
@media (max-width:760px){ table.t.dem th.l,table.t.dem td.l{min-width:150px; max-width:170px} }

/* [LUCRO-NORM-SITE] 2026-10-24: nota do lucro ajustado dos bancos, logo abaixo dos KPIs */
.nota-aj{margin:-6px 0 0; line-height:1.5}

/* ---------- [MERCADOS] 2026-10-27: quadro no topo do painel macro ---------- */
.mercados{padding:14px 16px; margin-bottom:22px}
.mercados summary{cursor:pointer; display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; list-style:none}
.mercados summary::-webkit-details-marker{display:none}
.mercados summary::before{content:"▸"; color:var(--muted); font-size:.8rem; transition:transform .15s}
.mercados[open] summary::before{transform:rotate(90deg)}
.mercados summary h2{font-size:1.05rem}
.mercados[open] summary{margin-bottom:12px}
.mercados .table-wrap{max-height:none}
.mercados .mk-tk{font-family:"IBM Plex Mono",monospace; font-size:.7rem; color:var(--muted); margin-left:4px}
.mercados .mk-un{font-family:"IBM Plex Sans",sans-serif; font-size:.68rem; color:var(--muted)}
.mercados td.mk-dt{color:var(--muted); font-size:.74rem}
.mercados tr.on td.l{box-shadow:inset 3px 0 0 var(--navy)}
.mercados tr.on .mk-nome{font-weight:600; color:var(--navy)}
.mercados tr[data-mk]:focus-visible{outline:2px solid var(--steel); outline-offset:-2px}
@media (max-width:640px){ .mercados{padding:12px} .mercados .mk-un, .mercados td.mk-dt, .mercados th.mk-dt{display:none}
  .mercados td.l{white-space:normal; min-width:96px} .mercados .mk-tk{display:block; margin-left:0} .mercados table.t th, .mercados table.t td{padding:7px 6px} }
