/* Tio Dino — sistema de design (2026-10). Neutros tingidos pelo tom do tema (--h/--ns), um só destaque (--acc-*),
   verde/vermelho só para ganhos e perdas. Modo: automático, claro ou escuro (data-mode). Temas: data-theme (12). */
:root{
  --h:38;--ns:18%;--acc-l:#9A6214;--acc-d:#E2A63B;
  --fs:15px;
  --bg:hsl(var(--h) var(--ns) 97.5%);--card:hsl(var(--h) 30% 99.6%);--soft:hsl(var(--h) var(--ns) 93.5%);
  --line:hsl(var(--h) calc(var(--ns) - 4%) 81%);--line-2:hsl(var(--h) calc(var(--ns) - 6%) 88%);--field:hsl(var(--h) 8% 55%);
  --ink:hsl(var(--h) 14% 12%);--ink-2:hsl(var(--h) 9% 27%);--muted:hsl(var(--h) 8% 35%);
  --brand:var(--acc-l);--brand-ink:#fff;--accent:var(--acc-l);--accent-ink:#fff;
  --accent-soft:color-mix(in srgb,var(--acc-l) 13%,transparent);--focus:color-mix(in srgb,var(--acc-l) 45%,transparent);
  --side:hsl(var(--h) var(--ns) 95.2%);--side-ink:hsl(var(--h) 10% 24%);--side-hover:hsl(var(--h) var(--ns) 91%);
  --pos:#1D7A4C;--neg:#B9382D;--warn:#9A6400;
  --c-income:var(--acc-l);--c-expense:hsl(var(--h) 10% 38%);--c-line:#1D7A4C;--c-port:var(--acc-l);--c-sp:#2563C9;--c-ndx:#8A3FD1;
  --shadow:0 1px 0 hsl(var(--h) 20% 80% / .45),0 1px 2px hsl(var(--h) 30% 30% / .05);
  --r:10px;--r-s:7px;
}
@media (prefers-color-scheme:dark){:root:not([data-mode="light"]){
  --bg:hsl(var(--h) var(--ns) 7.5%);--card:hsl(var(--h) var(--ns) 10.5%);--soft:hsl(var(--h) var(--ns) 14%);
  --line:hsl(var(--h) var(--ns) 27%);--line-2:hsl(var(--h) var(--ns) 20%);--field:hsl(var(--h) 8% 46%);
  --ink:hsl(var(--h) 18% 94%);--ink-2:hsl(var(--h) 10% 82%);--muted:hsl(var(--h) 8% 71%);
  --brand:var(--acc-d);--brand-ink:hsl(var(--h) 30% 8%);--accent:var(--acc-d);--accent-ink:hsl(var(--h) 30% 8%);
  --accent-soft:color-mix(in srgb,var(--acc-d) 16%,transparent);--focus:color-mix(in srgb,var(--acc-d) 50%,transparent);
  --side:hsl(var(--h) var(--ns) 9%);--side-ink:hsl(var(--h) 10% 80%);--side-hover:hsl(var(--h) var(--ns) 13%);
  --pos:#4CC58A;--neg:#F0776B;--warn:#E7B04A;--c-income:var(--acc-d);--c-expense:hsl(var(--h) 10% 62%);--c-line:#4CC58A;--c-port:var(--acc-d);--c-sp:#6EA0FF;--c-ndx:#C08CFF;
  --shadow:none;color-scheme:dark}}
:root[data-mode="dark"]{
  --bg:hsl(var(--h) var(--ns) 7.5%);--card:hsl(var(--h) var(--ns) 10.5%);--soft:hsl(var(--h) var(--ns) 14%);
  --line:hsl(var(--h) var(--ns) 27%);--line-2:hsl(var(--h) var(--ns) 20%);--field:hsl(var(--h) 8% 46%);
  --ink:hsl(var(--h) 18% 94%);--ink-2:hsl(var(--h) 10% 82%);--muted:hsl(var(--h) 8% 71%);
  --brand:var(--acc-d);--brand-ink:hsl(var(--h) 30% 8%);--accent:var(--acc-d);--accent-ink:hsl(var(--h) 30% 8%);
  --accent-soft:color-mix(in srgb,var(--acc-d) 16%,transparent);--focus:color-mix(in srgb,var(--acc-d) 50%,transparent);
  --side:hsl(var(--h) var(--ns) 9%);--side-ink:hsl(var(--h) 10% 80%);--side-hover:hsl(var(--h) var(--ns) 13%);
  --pos:#4CC58A;--neg:#F0776B;--warn:#E7B04A;--c-income:var(--acc-d);--c-expense:hsl(var(--h) 10% 62%);--c-line:#4CC58A;--c-port:var(--acc-d);--c-sp:#6EA0FF;--c-ndx:#C08CFF;
  --shadow:none;color-scheme:dark}
:root[data-mode="light"]{color-scheme:light}
/* 12 temas: tom dos neutros + destaque em claro / escuro */
:root[data-theme="grafite"]{--h:220;--ns:6%;--acc-l:#2F3B4C;--acc-d:#C9D2DE}
:root[data-theme="marinho"]{--h:218;--ns:16%;--acc-l:#1F4E8C;--acc-d:#7FAAE8}
:root[data-theme="petroleo"]{--h:190;--ns:16%;--acc-l:#0F6B6B;--acc-d:#4FC2BE}
:root[data-theme="floresta"]{--h:140;--ns:12%;--acc-l:#2F6B45;--acc-d:#77C795}
:root[data-theme="salvia"]{--h:105;--ns:9%;--acc-l:#5B7553;--acc-d:#A9C79E}
:root[data-theme="vinho"]{--h:350;--ns:12%;--acc-l:#8A2D3B;--acc-d:#EA8C99}
:root[data-theme="cobre"]{--h:22;--ns:20%;--acc-l:#A4532B;--acc-d:#EE9B6E}
:root[data-theme="areia"]{--h:42;--ns:22%;--acc-l:#8C6A2F;--acc-d:#D9B878}
:root[data-theme="lavanda"]{--h:258;--ns:14%;--acc-l:#5B4B9A;--acc-d:#B4A6F0}
:root[data-theme="ardosia"]{--h:210;--ns:10%;--acc-l:#3F5F7A;--acc-d:#9CB8D2}
:root[data-theme="meianoite"]{--h:232;--ns:22%;--acc-l:#2C3A8C;--acc-d:#9AA8FF}
/* tamanho do texto (Definições → Aparência) */
:root[data-size="s"]{--fs:14px}:root[data-size="l"]{--fs:16.5px}:root[data-size="xl"]{--fs:18px}
html{font-size:var(--fs)}
*{box-sizing:border-box}
html,body{margin:0}
body{font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
h1{font-size:1.35rem;margin:0;letter-spacing:-.01em;font-weight:700}h2{font-size:1rem;margin:0 0 .6rem}h3{font-size:.95rem;margin:1rem 0 .4rem}
a{color:var(--brand)}
.muted{color:var(--muted)}.pos{color:var(--pos)}.neg{color:var(--neg)}.warn{color:var(--warn)}

/* estrutura */
.app{display:grid;grid-template-columns:232px 1fr;min-height:100vh}
.side{background:var(--side);color:var(--side-ink);padding:1rem .8rem;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:3px;overflow:auto}
.side a{color:var(--side-ink);text-decoration:none;padding:.6rem .8rem;border-radius:10px;display:flex;justify-content:space-between;align-items:center;font-weight:500}
.side a:hover{background:var(--side-hover)}
.side a.on{background:var(--accent);color:var(--accent-ink);font-weight:700}
.side a.brand{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.4rem .4rem 1.1rem;margin-bottom:.4rem;border-bottom:1px solid rgba(255,255,255,.18);border-radius:0}
.side a.brand:hover{background:none}
.brand-dino{width:40px;height:40px;border-radius:10px;background:#fff;padding:3px}
.brand-name{font-weight:700;font-size:1.1rem;line-height:1.1;text-align:left;letter-spacing:0}
.brand-name small{display:block;font-size:.72rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;opacity:.75;color:inherit}
.side-foot{margin-top:auto;font-size:.76rem;padding:.6rem;opacity:.8}
.badge{background:var(--accent);color:var(--accent-ink);border-radius:99px;font-size:.72rem;font-weight:700;padding:0 .45rem;min-width:1.2rem;text-align:center}
.side a.on .badge{background:var(--brand);color:var(--brand-ink)}
.badge.soft{background:var(--brand);color:var(--brand-ink)}
main{padding:1.2rem 1.5rem 3rem;min-width:0}
.top{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;margin-bottom:1rem}
.period{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.years{display:inline-flex;gap:3px;background:var(--card);border:1px solid var(--line);border-radius:99px;padding:3px}
.years button{font:inherit;font-weight:700;border:0;background:none;color:var(--muted);padding:.3rem .85rem;border-radius:99px;cursor:pointer}
.years button:hover{color:var(--ink);background:var(--soft)}
.years button.on{background:var(--brand);color:var(--brand-ink)}
.filters{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;padding:.7rem}
.tabs{display:flex;gap:.1rem;margin-bottom:1rem;border-bottom:2px solid var(--line);overflow-x:auto;scrollbar-width:thin}
.tabs a{white-space:nowrap;flex-shrink:0;padding:.5rem .75rem;text-decoration:none;color:var(--muted);font-weight:600;border-bottom:3px solid transparent;margin-bottom:-2px;display:flex;gap:.4rem;align-items:center}
.tabs a:hover{color:var(--ink)}.tabs a.on{color:var(--ink);border-bottom-color:var(--brand)}
.menu.btn{display:none}

/* controlos */
select,input,textarea{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.45rem .6rem;min-width:0}
select:focus,input:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
input[type=checkbox]{padding:0;accent-color:var(--brand)}
.btn{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink);padding:.45rem .85rem;border-radius:10px;cursor:pointer;text-decoration:none;display:inline-block}
.btn:hover{background:var(--soft)}
.btn.primary{background:var(--brand);color:var(--brand-ink);border-color:var(--brand);font-weight:700}
.btn.primary:hover{filter:brightness(1.06)}
.btn.danger{color:var(--neg)}.btn.small{padding:.25rem .6rem;font-size:.85rem}
.btn[disabled]{opacity:.5;cursor:default}

/* cartões e indicadores */
.grid{display:grid;gap:1rem}.kpis{grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));margin-bottom:1rem}
.charts{grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1.1rem;box-shadow:var(--shadow);min-width:0}
h2.sec{margin:.2rem 0 .6rem;font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}
.kpi .l{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.kpi .v{font-size:1.6rem;font-weight:700;letter-spacing:-.02em;margin:.2rem 0;font-variant-numeric:tabular-nums}
.kpi .s{font-size:.82rem;color:var(--muted)}.kpi .v.unk{font-size:1.15rem;color:var(--muted);font-weight:600}
.kpi.hero{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.kpi.hero .l,.kpi.hero .s{color:var(--brand-ink);opacity:.85}.kpi.hero .v{color:var(--brand-ink)}
.pill{display:inline-block;background:var(--accent);color:var(--accent-ink);border-radius:99px;padding:.05rem .55rem;font-size:.8rem;font-weight:700;margin-left:.3rem;vertical-align:middle}
.dash-main{grid-template-columns:minmax(0,2fr) minmax(0,1fr);margin-bottom:1rem}
.chart{position:relative;height:280px}
.cmp{display:flex;flex-direction:column;gap:.35rem;margin-top:.3rem}
.cmp div{display:flex;justify-content:space-between;gap:.5rem;font-size:.88rem}
.cmp b{font-variant-numeric:tabular-nums}

/* tabelas */
.tablewrap{overflow:auto;max-width:100%}
table{border-collapse:collapse;width:100%;font-size:.9rem}
th,td{padding:.5rem .6rem;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
th{font-weight:700;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0;background:var(--card);cursor:default}
th.sort{cursor:pointer}td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
tr.click{cursor:pointer}tr.click:hover td{background:var(--soft)}
td.wrap{white-space:normal;min-width:200px}
.tag{display:inline-block;border-radius:99px;padding:.05rem .55rem;font-size:.75rem;background:var(--soft);color:var(--muted)}
.tag.ok{background:#dcfce7;color:#166534}
a.cell{color:inherit;text-decoration:none}a.cell:hover{text-decoration:underline}
details summary{cursor:pointer}
.tag.pending{background:#fee2e2;color:#991b1b}.tag.review{background:#fef3c7;color:#92400e}
@media (prefers-color-scheme:dark){:root:not([data-mode="light"]) .tag.pending{background:#450a0a;color:#fca5a5}:root:not([data-mode="light"]) .tag.review{background:#422006;color:#fcd34d}:root:not([data-mode="light"]) .tag.ok{background:#052e16;color:#86efac}}
:root[data-mode="dark"] .tag.pending{background:#450a0a;color:#fca5a5}:root[data-mode="dark"] .tag.review{background:#422006;color:#fcd34d}:root[data-mode="dark"] .tag.ok{background:#052e16;color:#86efac}

/* avisos, formulários, janelas */
.alert{border:1px solid var(--line);border-left:5px solid var(--accent);background:var(--card);border-radius:12px;padding:.7rem .9rem;margin-bottom:1rem;font-size:.9rem}
.alert.info{border-left-color:var(--brand)}
.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.75rem}.row.end{justify-content:flex-end}.grow{flex:1}
.drop{border:2px dashed var(--accent);border-radius:16px;padding:2rem;text-align:center;color:var(--muted);background:var(--soft)}
.drop.over{border-color:var(--brand)}
.modal{position:fixed;inset:0;background:rgba(43,26,18,.5);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:20}
.modal[hidden],.toast[hidden],[hidden]{display:none!important}
.modal .card{width:min(520px,100%);max-height:90vh;overflow:auto}
.field{display:flex;flex-direction:column;gap:.2rem;margin-bottom:.7rem}.field label{font-size:.82rem;color:var(--muted)}
.toast{position:fixed;bottom:1rem;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:.6rem 1rem;border-radius:12px;z-index:30;max-width:90vw}
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}
.login .card{width:min(360px,100%);display:flex;flex-direction:column;gap:.7rem;text-align:center}
.login-dino{width:56px;height:56px;margin:0 auto;border-radius:14px}
.welcome-dino{width:120px;float:right;margin:0 0 .5rem 1rem}
.report{max-width:860px}.report table{margin:.4rem 0 1rem}.report td,.report th{white-space:normal}
.two{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
@media (max-width:1100px){.dash-main{grid-template-columns:1fr}}
@media (max-width:860px){
  .app{grid-template-columns:minmax(0,1fr)}main{min-width:0}
  .side{position:fixed;left:0;top:0;bottom:0;width:250px;z-index:15;transform:translateX(-100%);transition:transform .2s}
  .side.open{transform:none;box-shadow:0 0 40px rgba(0,0,0,.3)}
  .menu.btn{display:inline-block}main{padding:.8rem 1rem 3rem}.two{grid-template-columns:1fr}
  .chart{height:240px}.charts{grid-template-columns:1fr}
  .years{overflow-x:auto;max-width:100%}
  .kpi .v{font-size:1.45rem}.tablewrap{overflow-x:auto}
}
@media print{.side,.filters,.menu,.btn,.period,.tabs{display:none!important}.app{display:block}}

/* Tio Dino: necessidade, orçamentos, parecer e conversa */
.tag.nec-essencial{background:#dcfce7;color:#166534}.tag.nec-util{background:#fef3c7;color:#92400e}.tag.nec-dispensavel{background:#fee2e2;color:#991b1b}
.tag.st-ok{background:#dcfce7;color:#166534}.tag.st-atencao{background:#fef3c7;color:#92400e}.tag.st-excedido{background:#fee2e2;color:#991b1b}
@media (prefers-color-scheme:dark){:root:not([data-mode="light"]) .tag.nec-essencial,.tag.st-ok{background:#052e16;color:#86efac}:root:not([data-mode="light"]) .tag.nec-util,.tag.st-atencao{background:#422006;color:#fcd34d}:root:not([data-mode="light"]) .tag.nec-dispensavel,.tag.st-excedido{background:#450a0a;color:#fca5a5}}
:root[data-mode="dark"] .tag.nec-essencial,.tag.st-ok{background:#052e16;color:#86efac}:root[data-mode="dark"] .tag.nec-util,.tag.st-atencao{background:#422006;color:#fcd34d}:root[data-mode="dark"] .tag.nec-dispensavel,.tag.st-excedido{background:#450a0a;color:#fca5a5}
.bar{height:10px;background:var(--soft);border-radius:99px;overflow:hidden;min-width:80px}
.bar i{display:block;height:100%;background:var(--pos);border-radius:99px}
.bar.atencao i{background:var(--accent)}.bar.excedido i{background:var(--brand)}
.bar.nec-essencial i{background:var(--pos)}.bar.nec-util i{background:var(--accent)}.bar.nec-dispensavel i{background:var(--brand)}
.nec-row{display:grid;grid-template-columns:7rem 1fr auto;gap:.6rem;align-items:center;margin:.45rem 0}
.dino-head{display:flex;gap:1rem;align-items:center;margin-bottom:1rem}
.dino-head img{width:96px;flex:none}.dino-head h2{font-size:1.5rem;margin:.1rem 0}.dino-head p{margin:0}
.dino-head .l{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.dino-head.grade-excelente,.dino-head.grade-razoavel{border-left:6px solid var(--pos)}
.dino-head.grade-fraco{border-left:6px solid var(--accent)}.dino-head.grade-negativo{border-left:6px solid var(--brand)}
.insight{display:flex;gap:.6rem;padding:.55rem 0;border-bottom:1px solid var(--line)}.insight:last-child{border:0}
.dino-fab{position:fixed;right:1.2rem;bottom:1.2rem;width:52px;height:52px;border-radius:50%;border:0;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;padding:0;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.2);z-index:25}
.dino-fab img{width:100%;height:100%}
.dino-chat{position:fixed;right:1.2rem;bottom:1.2rem;width:min(380px,calc(100vw - 2rem));height:min(560px,calc(100vh - 2rem));background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 40px rgba(0,0,0,.25);display:flex;flex-direction:column;z-index:26;overflow:hidden}
.dino-chat header{display:flex;gap:.5rem;align-items:center;padding:.6rem .8rem;background:var(--brand);color:var(--brand-ink)}
.dino-chat header img{width:32px}.dino-chat header b{flex:1}.dino-chat header select{max-width:9rem;padding:.2rem .4rem}
.dino-chat header button{background:none;border:0;color:var(--brand-ink);font-size:1.4rem;cursor:pointer;line-height:1}
.dino-chat .msgs{flex:1;overflow:auto;padding:.8rem;display:flex;flex-direction:column;gap:.5rem}
.msg{max-width:88%;padding:.55rem .75rem;border-radius:14px;font-size:.9rem}.msg p{margin:0 0 .3rem}.msg ul{margin:.2rem 0 0;padding-left:1.1rem}
.msg.dino{background:var(--soft);align-self:flex-start;border-bottom-left-radius:4px}
.msg.me{background:var(--brand);color:var(--brand-ink);align-self:flex-end;border-bottom-right-radius:4px}
.dino-chat .qs{display:flex;flex-wrap:wrap;gap:.35rem;padding:.6rem;border-top:1px solid var(--line)}
@media print{.dino-fab,.dino-chat{display:none!important}}
/* Carteira: logótipos */
.logo-wrap{position:relative;display:inline-block;width:32px;height:32px;margin-right:.55rem;vertical-align:middle}
.logo{position:absolute;inset:0;width:32px;height:32px;border-radius:9px;object-fit:contain;background:#fff;border:1px solid var(--line)}
.logo.ini{display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.72rem;background:var(--soft);color:var(--ink)}
/* Carteira estilo getquin */
.perf .big{font-size:2.4rem;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.perf .pgain{font-size:1.05rem;font-weight:700;margin:.15rem 0}
.mover{display:flex;align-items:center;gap:.4rem;padding:.45rem 0;border-bottom:1px solid var(--line)}.mover:last-child{border:0}
.mover .n{text-align:right;font-variant-numeric:tabular-nums}
.asset-cell{white-space:normal;min-width:200px;max-width:280px}
.perf .years{flex-wrap:wrap}
.caret{display:inline-block;width:1rem;color:var(--muted)}
.hello{margin-top:auto;padding:.6rem .8rem;font-weight:700;color:var(--accent)}
.hello+.side-foot{margin-top:0}
/* Orçamentos simples */
.budget-sum{background:var(--brand);color:var(--brand-ink);border-radius:16px;padding:1rem 1.2rem;margin-bottom:1rem;font-size:1rem}
.budget-sum b{font-size:1.35rem}.budget-sum span{opacity:.9;font-size:.9rem}
.budget-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr));gap:.9rem}
.bcard{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1rem;cursor:pointer;box-shadow:var(--shadow);transition:transform .1s}
.bcard:hover,.bcard:focus{transform:translateY(-2px);outline:2px solid var(--accent)}
.bcard[aria-expanded=true]{outline:2px solid var(--brand)}
.bcard .be{font-size:2rem;line-height:1}.bcard .bn{font-weight:700;margin:.45rem 0 .1rem}
.bcard .bv{font-size:.85rem;color:var(--muted)}.bcard .bl{font-size:.85rem;font-weight:700;margin-top:.3rem}
.bcard .bar{margin-top:.55rem}
.bdetail{grid-column:1/-1;background:var(--soft);border-radius:16px;padding:1rem}
.chips{display:flex;flex-wrap:wrap;gap:.45rem}
.chip{font:inherit;background:var(--card);border:1px dashed var(--line);border-radius:99px;padding:.4rem .8rem;cursor:pointer;color:var(--ink)}
.chip:hover{border-color:var(--brand)}
.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:.3rem;max-height:13.5rem;overflow-y:auto;padding:2px}
.emoji-grid button{font-size:1.35rem;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.25rem;cursor:pointer}
.emoji-grid button.on{border-color:var(--brand);background:var(--soft);outline:2px solid var(--brand)}
.cat-filter{margin:.2rem 0 1rem}.chip.on{background:var(--brand);color:var(--brand-ink);border-style:solid;border-color:var(--brand)}
.goal{padding:.6rem 0;border-bottom:1px solid var(--line);cursor:pointer}.goal:last-child{border:0}.goal .ge{font-size:1.4rem}
/* Espaços Pessoal / Empresa */
.space-switch{display:flex;gap:3px;background:rgba(0,0,0,.18);border-radius:12px;padding:3px;margin:0 0 .6rem}
.space-switch button{flex:1;font:inherit;font-size:.82rem;font-weight:700;border:0;border-radius:9px;padding:.45rem .3rem;background:none;color:var(--side-ink);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.space-switch button.on{background:var(--accent);color:var(--accent-ink)}
body.space-empresa .side{filter:brightness(.82) saturate(1.1)}
body.space-empresa .brand-name small::after{content:" · Empresa";color:var(--side-ink)}
.vat-box{background:var(--soft);border-radius:12px;padding:.7rem .8rem;margin-bottom:.7rem}

.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem;margin:.4rem 0 .8rem}
.theme-opt{font:inherit;text-align:left;background:var(--card);border:2px solid var(--line);border-radius:14px;padding:.6rem;cursor:pointer;color:var(--ink)}
.theme-opt.on{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand)}.theme-opt b{display:block;margin-bottom:.35rem}
.swatch{display:flex;height:22px;border-radius:7px;overflow:hidden;border:1px solid rgba(0,0,0,.08)}.swatch i{flex:1}
/* telemóvel: pesquisa a toda a largura e tabela de movimentos só com data, descrição, valor e categoria */
@media (max-width:600px){
  #tq{flex-basis:100%}
  #tt th:nth-child(3),#tt td:nth-child(3),#tt th:nth-child(6),#tt td:nth-child(6),
  #tt th:nth-child(8),#tt td:nth-child(8),#tt th:nth-child(9),#tt td:nth-child(9){display:none}
  #tt td,#tt th{padding-left:.35rem;padding-right:.35rem}
}
#clt tr.done td{opacity:.55}#clt select{max-width:260px}
#tt tr.deleted-row td{opacity:.55}#tt tr.deleted-row td.n{text-decoration:line-through}#tt tr.deleted-row td:nth-child(6){opacity:1}
/* seleção de vários movimentos */
#tt .selc{width:1.6rem;padding-right:0}#tt tr.selected td{background:var(--soft)}
.bulkbar{position:sticky;top:0;z-index:2;background:var(--card);border:1px solid var(--brand);border-radius:12px;padding:.5rem .7rem;margin-bottom:.6rem;flex-wrap:wrap;gap:.4rem}
.bulkbar select{max-width:240px}
.selc{width:1.6rem;padding-right:0}

/* Letra (Definições → Aparência): do sistema ou incluídas na app (static/fonts/fonts.css) */
body{font-family:var(--font,-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",system-ui,sans-serif)}
:root[data-font="helvetica"]{--font:"Helvetica Neue",Helvetica,Arial,sans-serif}
:root[data-font="avenir"]{--font:"Avenir Next",Avenir,"Segoe UI",Calibri,sans-serif}
:root[data-font="georgia"]{--font:Georgia,"Iowan Old Style",Cambria,"Times New Roman",serif}
:root[data-font="palatino"]{--font:Palatino,"Palatino Linotype","Book Antiqua",serif}
:root[data-font="mono"]{--font:"SF Mono",Menlo,Consolas,"Liberation Mono",monospace}
:root[data-font="inter"]{--font:"Inter",system-ui,sans-serif}
:root[data-font="plex"]{--font:"IBM Plex Sans",system-ui,sans-serif}
:root[data-font="source"]{--font:"Source Sans 3",system-ui,sans-serif}
:root[data-font="manrope"]{--font:"Manrope",system-ui,sans-serif}
:root[data-font="dmsans"]{--font:"DM Sans",system-ui,sans-serif}
:root[data-font="figtree"]{--font:"Figtree",system-ui,sans-serif}
:root[data-font="worksans"]{--font:"Work Sans",system-ui,sans-serif}
:root[data-font="atkinson"]{--font:"Atkinson Hyperlegible",system-ui,sans-serif}
:root[data-font="lexend"]{--font:"Lexend",system-ui,sans-serif}
/* Modo privacidade: gráficos e números soltos desfocados (os montantes em € já aparecem como •••• €) */
html.privacy canvas,html.privacy td.n,html.privacy .kpi .v,html.privacy .nec-row b,html.privacy #tsum b{filter:blur(7px);user-select:none}
header.top #privBtn{margin-left:.4rem}
/* Quadro mês a mês: meses em colunas, primeira coluna fixa, mapa de calor nas categorias */
.mm{max-height:none}.mmtab{min-width:100%;font-size:.86rem}.mmtab td,.mmtab th{padding:.42rem .55rem}
.mmtab th.rowh{position:sticky;left:0;background:var(--card);z-index:1;text-align:left;font-weight:600;white-space:nowrap;text-transform:none;letter-spacing:0;color:var(--ink);font-size:.86rem}
.mmtab thead th{text-transform:capitalize;letter-spacing:0;font-size:.82rem}.mmtab thead th.click{cursor:pointer}.mmtab thead th.click:hover{color:var(--brand)}
.mmtab tr.strong td,.mmtab tr.strong th{font-weight:700}.mmtab tr.strong td{border-top:1px solid var(--line)}
.mmtab tr.muted-row td,.mmtab tr.muted-row th{color:var(--muted);font-size:.8rem}
.mmtab tr.sep th{background:var(--soft);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:.35rem .55rem}
.mmtab td.tot,.mmtab th.tot{font-weight:700;border-left:2px solid var(--line)}
.mmtab a.cell{color:inherit;text-decoration:none}.mmtab a.cell:hover{text-decoration:underline}
/* Definições compactas: cartões mais baixos, 3 colunas em ecrãs largos */
.settings-grid{grid-template-columns:repeat(auto-fill,minmax(min(330px,100%),1fr));gap:.8rem;align-items:start}
.settings-grid .card{padding:.85rem 1rem}.settings-grid h2{font-size:.95rem;margin-bottom:.45rem}
.settings-grid .field{margin-bottom:.45rem}.settings-grid p{margin:.35rem 0}.settings-grid .muted{font-size:.82rem}
.settings-grid input,.settings-grid select{padding:.32rem .55rem;font-size:.9rem}.settings-grid .btn{padding:.32rem .7rem;font-size:.88rem}
.settings-grid .theme-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:.4rem}
.settings-grid .theme-opt{padding:.35rem .45rem;font-size:.82rem}.settings-grid .theme-opt .swatch{height:10px}
/* Contas próprias: nome em cima, controlos por baixo (nunca saem do cartão) */
.acclist .accrow{padding:.45rem 0;border-bottom:1px solid var(--line)}.acclist .accname{font-weight:600;margin-bottom:.3rem}
.acclist .accctl{flex-wrap:wrap;gap:.4rem}.acclist .accctl select{flex:1 1 8rem}.acclist .accctl input{flex:0 0 5.5rem}

/* Conselhos do Tio Dino */
.coach-item { border-left: 4px solid var(--line, #ddd); padding: .55rem .8rem; margin: .5rem 0; border-radius: 6px; background: var(--bg2, transparent); }
.coach-item.lvl-alerta { border-left-color: var(--neg); }
.coach-item.lvl-aviso { border-left-color: var(--warn); }
.coach-item.lvl-bom { border-left-color: var(--pos); }
.coach-item.lvl-info { border-left-color: var(--muted); }
.coach-h { font-size: .92rem; }
.coach-t { font-size: .85rem; margin-top: .2rem; opacity: .9; }
.quiz { max-width: 760px; margin: 0 auto; }
.quiz-opts { display: grid; gap: .5rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.quiz-opts .btn { text-align: left; justify-content: flex-start; padding: .8rem 1rem; white-space: normal; }
.quiz-cta { margin-bottom: .9rem; border: 2px dashed var(--accent); }
.analysis { margin-bottom: .9rem; }
.analysis .pre { white-space: pre-wrap; margin-top: .2rem; font-size: .9rem; }
.analysis h3 { font-size: .9rem; margin: .7rem 0 .1rem; }
.an-more summary { cursor: pointer; font-weight: 600; margin: .4rem 0; }

.linkbtn{background:none;border:0;color:var(--muted,#777);text-decoration:underline;cursor:pointer;font:inherit;font-size:.85rem;padding:.2rem}
.rcode{font-family:ui-monospace,Menlo,monospace;font-size:1.35rem;letter-spacing:.08em;padding:.7rem;border:2px dashed var(--accent);border-radius:10px;text-align:center;user-select:all;margin:.5rem 0}
.login #rcDone,.login #recoverForm{width:min(380px,100%);display:flex;flex-direction:column;gap:.7rem;text-align:center}
.login #rcDone[hidden],.login #recoverForm[hidden]{display:none}
.login code{word-break:break-all}

/* Análises e materiais: grelha compacta com logótipo */
.an-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.7rem}
.an-tile{display:flex;gap:.7rem;align-items:flex-start;text-align:left;cursor:pointer;font:inherit;color:inherit;border:1px solid var(--line);padding:.8rem;margin:0}
.an-tile:hover{border-color:var(--brand)}
.an-tile[hidden]{display:none}
.an-tile-txt{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.an-tile-txt .muted{font-size:.75rem}
.an-tile-foot{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap;margin-top:.3rem;font-size:.78rem}
.an-tile-foot .tag{font-size:.72rem}
.lg{position:relative;display:inline-grid;place-items:center;flex:none;border-radius:10px;background:var(--soft);color:var(--ink);font-weight:700;overflow:hidden}
.lg img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;padding:3px;box-sizing:border-box;opacity:0;transition:opacity .2s}
.lg img.ok{opacity:1}
#modal .card.wide{max-width:860px;width:100%;max-height:88vh;overflow:auto}
.learn-body h3{margin:1rem 0 .3rem}.learn-body p,.learn-body li{line-height:1.5}
.clamp3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* Várias contas no ecrã de entrada */
.acct-list{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}
.acct{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem .6rem;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);font:inherit;font-size:.8rem;cursor:pointer;min-width:76px}
.acct.on{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand) inset}
.acct:hover{border-color:var(--brand)}

/* Voltar/avançar, pré-visualização, análises vistas, ficheiros dos créditos */
.histnav{display:flex;gap:.25rem;margin-right:.4rem}.histnav .btn{min-width:2rem;padding:.25rem .5rem}
#modal .card.preview{max-width:980px}
#pvmodal{z-index:30}
#pvmodal .card{width:100%;max-width:980px;max-height:92vh;overflow:auto}
.pv-frame{width:100%;height:72vh;border:1px solid var(--line);border-radius:8px;background:#fff;margin-top:.6rem}
.pv-img{display:block;max-width:100%;max-height:72vh;margin:.6rem auto 0;border-radius:8px}
.an-tile.seen{opacity:.6}
.loan-files{margin-top:.5rem;border-top:1px solid var(--line);padding-top:.4rem}
.lg img.on-dark,img.logo.on-dark{background:#1f2430!important}

/* Aspeto institucional: algarismos alinhados nas tabelas e marca discreta */
td.n,th.n,.n{font-variant-numeric:tabular-nums}
.brand{flex-direction:row!important;align-items:center;gap:.6rem}

/* Definições em lista: índice à esquerda, secções sem quadrados, campos em linha (nome — valor) */
.settings{display:grid;grid-template-columns:220px minmax(0,1fr);gap:2rem;align-items:start;max-width:1100px}
.set-nav{position:sticky;top:1rem;display:flex;flex-direction:column;gap:.15rem}
.set-nav button{text-align:left;background:none;border:0;border-left:2px solid var(--line);padding:.45rem .8rem;font:inherit;font-size:.9rem;color:var(--muted);cursor:pointer}
.set-nav button:hover{color:var(--ink);border-left-color:var(--brand)}
.set-group{margin-bottom:2rem;scroll-margin-top:1rem}
.set-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600;margin:0 0 .3rem;padding-bottom:.5rem;border-bottom:1px solid var(--line)}
.set-body .card{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;padding:1.1rem 0;margin:0}
.set-body .card h2{font-size:1rem;font-weight:600;margin-bottom:.4rem}
.set-body .card .muted{max-width:70ch}
@media (min-width:900px){
  .set-body .field{display:grid;grid-template-columns:minmax(180px,34%) minmax(0,1fr);align-items:center;gap:1rem;max-width:760px}
  .set-body .field label{margin:0}
  .set-body .two{display:block}
}
@media (max-width:899px){.settings{grid-template-columns:1fr}.set-nav{position:static;flex-direction:row;flex-wrap:wrap}.set-nav button{border-left:0;border-bottom:2px solid var(--line)}}
.btn.sug{margin-top:.25rem;font-size:.75rem;border-style:dashed}

/* Guia */
.guide-steps{padding-left:0;margin:0;list-style:none}.guide-steps li{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:.7rem 0;border-bottom:1px solid var(--line)}
.guide-steps li p{margin:.2rem 0 0;font-size:.88rem}
.task-list{list-style:none;padding:0;margin:0}.task-list li{display:flex;gap:.8rem;align-items:center;padding:.7rem 0;border-bottom:1px solid var(--line)}
.task-list .tick{width:1.4rem;height:1.4rem;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-size:.8rem;flex:none}
.task-list li.done .tick{background:var(--pos);border-color:var(--pos);color:#fff}
.task-list li.done b{color:var(--muted)}
.news-item{padding:.8rem 0;border-bottom:1px solid var(--line)}
.step-n{width:1.8rem;height:1.8rem;border-radius:50%;background:var(--soft);display:grid;place-items:center;font-weight:600;flex:none}

/* calendário */
.cal-h,.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-h span{font-size:.7rem;color:var(--muted);text-align:center;text-transform:uppercase}
.cal-d{min-height:64px;border:1px solid var(--line);border-radius:6px;padding:2px 3px;display:flex;flex-direction:column;gap:2px;overflow:hidden}
.cal-d.empty{border:none}.cal-d.past{opacity:.5}.cal-d.today{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.cal-n{font-size:.72rem;color:var(--muted)}
.cal-ev{font-size:.66rem;line-height:1.2;border-radius:3px;padding:1px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--soft)}
.cal-ev.t-rendimento,.cal-ev.t-dividendo{background:color-mix(in srgb,var(--pos) 18%,transparent)}
.cal-ev.t-credito,.cal-ev.t-fiscal{background:color-mix(in srgb,var(--neg) 16%,transparent)}
.cal-more{font-size:.65rem;color:var(--muted)}
@media (max-width:600px){.cal-d{min-height:44px}.cal-ev{font-size:.58rem}}
.news{padding:.45rem 0;border-bottom:1px solid var(--line)}.news:last-child{border-bottom:none}.news a{font-weight:600;color:var(--ink);text-decoration:none}.news a:hover{text-decoration:underline}
.pulse-grid{grid-template-columns:minmax(220px,1fr) 2fr;align-items:start}@media (max-width:860px){.pulse-grid{grid-template-columns:1fr}}
.xp{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:99px;width:18px;height:18px;font-size:.68rem;line-height:1;padding:0;cursor:pointer;vertical-align:middle;margin-left:.25rem;font-weight:700}
.xp:hover{color:var(--ink);border-color:var(--ink)}.kpi.hero .xp{background:transparent;color:var(--brand-ink);border-color:var(--brand-ink)}
.sres{display:flex;gap:.6rem;align-items:center;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--line);padding:.5rem .3rem;cursor:pointer;color:var(--ink);font:inherit}
.sres:hover{background:var(--soft)}#gsr h3{margin:.8rem 0 .2rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.checklist{list-style:none;padding:0;margin:0 0 .6rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.35rem 1rem}.checklist li{display:flex;gap:.45rem;align-items:center}.checklist input{margin:0;flex:none;width:auto}
.cal-one .cal-d{min-height:96px}.cal-one .cal-ev{font-size:.74rem}@media (max-width:600px){.cal-one .cal-d{min-height:52px}}
.lay{list-style:none;padding:0;margin:0}.lay>li{border-bottom:1px solid var(--line);padding:.35rem 0}.lay-row,.lay-tabs li{display:flex;align-items:center;gap:.45rem}
.lay-tabs{list-style:none;margin:.25rem 0 .2rem 1.6rem;padding:0}.lay-tabs li{font-size:.88rem;padding:.12rem 0}.lay input[type=checkbox]{width:auto;margin:0}
.lay .btn.small{padding:.1rem .45rem}.tabs-edit{order:99;margin-left:auto;color:var(--muted)!important;font-weight:400!important}
.tag.moat-wide{background:#dcfce7;color:#166534}.tag.moat-narrow{background:#fef3c7;color:#92400e}.tag.moat-none{background:#fee2e2;color:#991b1b}
@media (prefers-color-scheme:dark){:root:not([data-mode="light"]) .tag.moat-wide{background:#052e16;color:#86efac}:root:not([data-mode="light"]) .tag.moat-narrow{background:#422006;color:#fcd34d}:root:not([data-mode="light"]) .tag.moat-none{background:#450a0a;color:#fca5a5}}

/* balancete simplificado */
.bal-hero{padding:1.2rem 1.3rem}
.bal-eq{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.bal-big{flex:1 1 170px;display:flex;flex-direction:column;gap:.1rem}
.bal-big .l{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.bal-big b{font-size:1.7rem;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.bal-big small{color:var(--muted);font-size:.8rem}
.bal-eq .op{font-size:1.6rem;color:var(--muted);font-weight:300}
.bal-bars{display:grid;grid-template-columns:auto 1fr;gap:.45rem .8rem;align-items:center;margin-top:1.1rem}
.bal-lab{font-size:.78rem;color:var(--muted);white-space:nowrap}
.bal-bar{display:flex;height:34px;border-radius:9px;overflow:hidden;background:var(--soft)}
.bal-seg{height:100%;display:flex;align-items:center;padding:0 .5rem;min-width:3px;color:#fff;font-size:.74rem;white-space:nowrap;overflow:hidden;border-right:2px solid var(--card)}
.bal-seg:last-child{border-right:0}
.bal-seg span{overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.bal-legend{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin-top:.7rem;font-size:.78rem;color:var(--muted)}
.bal-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:.35rem;vertical-align:-1px}
.bal-grp{padding:.65rem 0;border-top:1px solid var(--line)}
.bal-grp:first-of-type{border-top:0}
.bal-item{font-size:.86rem;padding:.12rem 0 .12rem .7rem;font-variant-numeric:tabular-nums}
.bal-cap{border-top:2px solid var(--line)}
.bal-tot td{border-top:1px solid var(--line);padding-top:.35rem}
@media (max-width:640px){.bal-big b{font-size:1.35rem}.bal-eq .op{display:none}}
@media print{.bal-bar{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.gauge{position:relative;height:8px;border-radius:5px;background:var(--soft);margin:.5rem 0 .35rem;overflow:visible}
.gauge>div{height:100%;border-radius:5px}
.gauge>i{position:absolute;top:-3px;width:2px;height:14px;background:var(--muted);border-radius:1px}
.sal-net{display:flex;flex-direction:column;padding:.7rem .9rem;border-radius:10px;background:var(--soft)}
.sal-net span{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.sal-net b{font-size:1.8rem;letter-spacing:-.02em}
.sal-net small{color:var(--muted);font-size:.78rem}
.cb-verdict{display:flex;align-items:center;gap:.6rem;padding:.7rem .9rem;border-radius:10px;background:var(--soft);font-size:1.1rem;margin-top:.4rem}
.cb-verdict span{font-size:1.6rem}
.be-track{position:relative;height:14px;border-radius:8px;background:var(--soft);margin:.6rem 0 0}
.be-fill{height:100%;border-radius:8px}
.be-mark{position:absolute;top:-6px;width:2px;height:26px;background:var(--ink)}
.be-mark span{position:absolute;top:28px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:.75rem;color:var(--muted)}
/* boas-vindas */
.welcome{max-width:560px}
.wl-top{display:flex;gap:1rem;align-items:center}
.wl-dino{position:relative;border:0;background:var(--soft);border-radius:50%;width:76px;height:76px;padding:8px;cursor:pointer;flex:0 0 auto;animation:wl-bob 2.4s ease-in-out infinite}
.wl-dino img{width:100%;height:100%}
.wl-dino.jump{animation:wl-jump .45s ease-out}
@keyframes wl-bob{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-5px) rotate(3deg)}}
@keyframes wl-jump{0%{transform:translateY(0) scale(1)}40%{transform:translateY(-22px) scale(1.08) rotate(-8deg)}100%{transform:translateY(0) scale(1)}}
.wl-coin{position:absolute;top:0;font-size:1.1rem;pointer-events:none;animation:wl-coin 1.1s ease-out forwards}
@keyframes wl-coin{0%{transform:translateY(0);opacity:1}100%{transform:translateY(-70px) rotate(200deg);opacity:0}}
.wl-bubble{position:relative;margin:1rem 0 .8rem;padding:.75rem .9rem;border-radius:12px;background:var(--soft);font-size:.92rem}
.wl-bubble::before{content:"";position:absolute;top:-8px;left:30px;border:8px solid transparent;border-top:0;border-bottom-color:var(--soft)}
.wl-week{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.wl-week>div{display:flex;flex-direction:column;padding:.6rem .7rem;border:1px solid var(--line);border-radius:10px}
.wl-week span{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.wl-week b{font-size:1.2rem}
.wl-week small{color:var(--muted);font-size:.75rem}
@media (max-width:560px){.wl-week{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.wl-dino,.wl-dino.jump,.wl-coin{animation:none}}
/* avisos do Tio Dino (lista única) */
.feed-row{display:flex;gap:.7rem;align-items:flex-start;padding:.55rem 0;border-top:1px solid var(--line)}
.feed-row:first-of-type{border-top:0}
.feed-ic{font-size:1rem;line-height:1.4}
.feed-row a{color:inherit;text-decoration:none}
.feed-row a:hover b{text-decoration:underline}
.feed-act{display:flex;gap:.3rem;flex:0 0 auto}
@media (max-width:640px){.feed-row{flex-wrap:wrap}.feed-act{width:100%;justify-content:flex-end}}
.task-list.steps{padding-left:0}
.task-list.steps li.current{background:var(--soft);border-radius:10px}
.task-list.steps .tick{font-size:.8rem;font-weight:700}
.task-do:empty{display:none}
.task-do{margin-top:.2rem}
#helpBtn{position:relative;font-weight:700;min-width:2rem;justify-content:center;text-decoration:none}
#helpBtn .badge{position:absolute;top:-7px;right:-10px;font-size:.6rem;padding:.05rem .3rem}
.fat-issue{font-size:.75rem;color:var(--warn);text-align:left;padding:0;margin-top:.15rem}
.fat-issue.erro{color:var(--neg);font-weight:600}
.imp-tips{margin-bottom:.9rem}
.imp-tips summary{cursor:pointer}
.imp-tips ol{margin:.6rem 0 .5rem 1.2rem;padding:0;font-size:.9rem;line-height:1.5}
.imp-legend{margin-top:.4rem;font-size:.82rem}
.imp-legend ul{margin:.3rem 0 0 1.1rem;padding:0}
.iv-search{display:inline-flex;gap:.35rem;align-items:center;flex:1 1 320px;max-width:480px}
.iv-search input{flex:1;min-width:0}
.pdf-help{margin:.8rem 0;padding-top:.8rem;border-top:1px solid var(--line)}
.pdf-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.8rem}
.pdf-opt{border:1px solid var(--line);border-radius:10px;padding:.8rem .9rem;font-size:.88rem}
.pdf-opt ol{margin:.4rem 0 .5rem 1.1rem;padding:0}
.prompt{white-space:pre-wrap;font-size:.75rem;max-height:180px;overflow:auto;background:var(--soft);border-radius:8px;padding:.6rem .7rem;margin:.3rem 0 .5rem}
/* Números incompletos (padrão único): «parcial» = faltam dados; «desatualizado» = dados antigos. Clica-se para ver porquê. */
.flag{display:inline-block;margin:.2rem .3rem 0 0;font-size:.78rem;vertical-align:middle}
.flag summary{cursor:pointer;list-style:none;display:inline-block;padding:.05rem .5rem;border-radius:999px;font-weight:600;white-space:nowrap}
.flag summary::-webkit-details-marker{display:none}
.flag.partial summary{background:#FDECC8;color:#7A4E00}
.flag.stale summary{background:#E9E4DE;color:#4F4338}
.flag[open] summary{outline:1px solid currentColor}
.flag-d{margin-top:.35rem;font-size:.8rem;color:var(--ink);line-height:1.4}
.flag-d ul{margin:.2rem 0 0;padding-left:1.1rem}
@media (prefers-color-scheme:dark){:root:not([data-mode="light"]) .flag.partial summary{background:#4A3410;color:#FCD889}:root:not([data-mode="light"]) .flag.stale summary{background:#3A322C;color:#D9CBBE}}
:root[data-mode="dark"] .flag.partial summary{background:#4A3410;color:#FCD889}:root[data-mode="dark"] .flag.stale summary{background:#3A322C;color:#D9CBBE}

/* Valor intrínseco: estado em cores neutras (informação, não sinal de compra ou venda) */
.tag.iv-subvalorizada{background:#DCE8F7;color:#1F4A80}.tag.iv-perto{background:#ECEAE6;color:#5A4E44}.tag.iv-sobrevalorizada{background:#E4E1F0;color:#4A3F73}
@media (prefers-color-scheme:dark){:root:not([data-mode="light"]) .tag.iv-subvalorizada{background:#1E3350;color:#BFD6F5}:root:not([data-mode="light"]) .tag.iv-perto{background:#3A332D;color:#DDD2C7}:root:not([data-mode="light"]) .tag.iv-sobrevalorizada{background:#332D4A;color:#D2CBEF}}
:root[data-mode="dark"] .tag.iv-subvalorizada{background:#1E3350;color:#BFD6F5}:root[data-mode="dark"] .tag.iv-perto{background:#3A332D;color:#DDD2C7}:root[data-mode="dark"] .tag.iv-sobrevalorizada{background:#332D4A;color:#D2CBEF}

/* Aviso permanente nas páginas de análise (passo 7) */
.advice-note{margin:1.2rem 0 .4rem;font-size:.76rem;color:var(--muted);text-align:center;line-height:1.45}
.cal-ev.t-empresa,.cal-ev.t-tese{background:color-mix(in srgb,var(--accent) 22%,transparent)}

/* Ficha da empresa e outras janelas altas: nunca cortam, deslocam-se por dentro */
#modal .card{max-height:calc(100vh - 2.5rem);overflow-y:auto;overscroll-behavior:contain}
/* Critérios de investimento em valor: ponto verde/amarelo/vermelho junto ao indicador */
.vdot{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;margin-right:.3rem;vertical-align:middle}
.vdot.g{background:#2E9D5B}.vdot.y{background:#E0A800}.vdot.r{background:#D2301F}

/* ============================================================================================================
   REDESIGN 2026-10 — camada de componentes (sobrepõe-se às regras antigas acima). Ver docs/design.md.
   ============================================================================================================ */
body{font-size:1rem;line-height:1.5;background:var(--bg);color:var(--ink)}
h1{font-size:1.25rem;font-weight:650;letter-spacing:-.015em}
h2{font-size:.95rem;font-weight:600;letter-spacing:-.005em}
h3{font-size:.88rem;font-weight:600}
a{color:var(--brand)}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.pos{color:var(--pos)}.neg{color:var(--neg)}.warn{color:var(--warn)}

/* estrutura e barra lateral clara */
.app{grid-template-columns:228px minmax(0,1fr)}
.side{background:var(--side);color:var(--side-ink);border-right:1px solid var(--line);padding:.9rem .6rem;gap:1px}
.side a{color:var(--side-ink);padding:.42rem .6rem;border-radius:var(--r-s);font-weight:500;font-size:.9rem;gap:.55rem;justify-content:flex-start}
.side a .ico{flex:none;width:16px;height:16px;opacity:.7}
.side a:hover{background:var(--side-hover);color:var(--ink)}
.side a.on{background:var(--card);color:var(--ink);font-weight:600;box-shadow:var(--shadow)}
.side a.on .ico{opacity:1;color:var(--brand)}
.side a .badge{margin-left:auto}
.side .nav-g{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:.85rem .6rem .25rem}
.side a.brand{flex-direction:row!important;align-items:center;gap:.6rem;padding:.2rem .4rem .8rem;margin-bottom:.4rem;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;background:none}
.brand-dino{width:30px;height:30px;border-radius:8px;background:var(--card);padding:2px;border:1px solid var(--line)}
.brand-name{font-size:.98rem;font-weight:650;letter-spacing:-.01em;color:var(--ink)}
.brand-name small{font-size:.68rem;letter-spacing:.04em;text-transform:none;opacity:1;color:var(--muted);font-weight:500}
.side-foot{font-size:.72rem;color:var(--muted);opacity:1;padding:.6rem}
.space-switch{background:var(--soft);border-radius:var(--r-s);padding:3px;margin:0 0 .3rem}
.space-switch button{color:var(--side-ink);font-weight:500;border-radius:5px;padding:.32rem .3rem}
.space-switch button.on{background:var(--card);color:var(--ink);font-weight:600;box-shadow:var(--shadow)}
body.space-empresa .side{filter:none}
.hello{color:var(--muted)}
.badge{background:var(--accent-soft);color:var(--brand);font-weight:650;font-size:.7rem}
.side a.on .badge{background:var(--accent-soft);color:var(--brand)}
.badge.soft{background:var(--soft);color:var(--ink-2)}
main{padding:1.1rem 1.6rem 3rem}
.top{border-bottom:1px solid var(--line);padding-bottom:.8rem;margin-bottom:1.1rem}

/* controlos */
select,input,textarea{border-radius:var(--r-s);border-color:var(--field);background:var(--card);padding:.42rem .6rem}
select:focus,input:focus,textarea:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus)}
input[type=checkbox],input[type=radio]{accent-color:var(--brand)}
input[type=number],td.n,th.n,.n,.num{font-variant-numeric:tabular-nums}
.btn{border-radius:var(--r-s);border-color:var(--line);background:var(--card);padding:.4rem .8rem;font-weight:500;box-shadow:var(--shadow);font-size:.9rem;line-height:1.35}
.btn:hover{background:var(--card);border-color:var(--muted)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);font-weight:600}
.btn.primary:hover{filter:brightness(1.05);background:var(--brand)}
.btn.ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--ink-2)}
.btn.ghost:hover{background:var(--soft)}
.btn.small{padding:.22rem .55rem;font-size:.82rem}
.years{background:var(--soft);border:0;border-radius:var(--r-s);padding:2px}
.years button{font-weight:500;color:var(--ink-2);border-radius:5px;padding:.25rem .7rem;font-size:.86rem}
.years button:hover{background:transparent;color:var(--ink)}
.years button.on{background:var(--card);color:var(--ink);font-weight:600;box-shadow:var(--shadow)}
.tabs{border-bottom:1px solid var(--line);gap:.2rem}
.tabs a{font-weight:500;color:var(--muted);padding:.5rem .6rem;border-bottom-width:2px;font-size:.9rem}
.tabs a.on{color:var(--ink);font-weight:600;border-bottom-color:var(--brand)}

/* superfícies */
.card{border-radius:var(--r);padding:1rem 1.1rem;box-shadow:none;border-color:var(--line)}
.card h2{font-size:.92rem}
h2.sec{font-size:.7rem;letter-spacing:.08em}
.kpi .l{text-transform:none;letter-spacing:0;font-size:.78rem;font-weight:500;color:var(--muted)}
.kpi .v{font-size:1.45rem;font-weight:650;letter-spacing:-.015em}
.kpi .s{font-size:.78rem}
.kpi.hero{background:var(--card);border-color:var(--line);color:var(--ink);box-shadow:inset 3px 0 0 var(--brand)}
.kpi.hero .l,.kpi.hero .s{color:var(--muted);opacity:1}.kpi.hero .v{color:var(--ink);font-size:1.75rem}
.pill{background:var(--accent-soft);color:var(--brand);font-weight:650}
.chart{height:260px}

/* tabelas */
table{font-size:.88rem}
th{font-size:.7rem;font-weight:600;letter-spacing:.06em;color:var(--muted);background:var(--card);border-bottom:1px solid var(--line);padding:.5rem .6rem}
td{border-bottom:1px solid var(--line-2);padding:.5rem .6rem}
tr.click:hover td,tbody tr:hover td{background:color-mix(in srgb,var(--soft) 55%,transparent)}
.tag{background:var(--soft);color:var(--ink-2);font-size:.72rem;padding:.08rem .5rem}
.tag.ok{background:color-mix(in srgb,var(--pos) 13%,transparent);color:var(--pos)}
.tag.pending{background:color-mix(in srgb,var(--neg) 12%,transparent);color:var(--neg)}
.tag.review{background:color-mix(in srgb,var(--warn) 14%,transparent);color:var(--warn)}
:root[data-mode="dark"] .tag.ok,:root[data-mode="dark"] .tag.pending,:root[data-mode="dark"] .tag.review{background:color-mix(in srgb,currentColor 14%,transparent)}
@media (prefers-color-scheme:dark){:root:not([data-mode="light"]) .tag.ok,:root:not([data-mode="light"]) .tag.pending,:root:not([data-mode="light"]) .tag.review{background:color-mix(in srgb,currentColor 14%,transparent)}}

/* avisos e janelas */
.alert{border-radius:var(--r);border-left-width:3px;border-left-color:var(--warn);font-size:.88rem}
.alert.info{border-left-color:var(--brand)}
.modal{background:color-mix(in srgb,hsl(var(--h) 20% 8%) 45%,transparent);backdrop-filter:blur(2px)}
.modal .card,#modal .card{border-radius:12px;box-shadow:0 20px 50px hsl(var(--h) 30% 10% / .25)}
.drop{border-radius:var(--r);border-color:var(--line);background:var(--card)}
.drop.over{border-color:var(--brand);background:var(--accent-soft)}
.toast{border-radius:var(--r-s)}
.theme-opt{border-radius:var(--r);border-width:1px}
.theme-opt.on{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}

/* telemóvel e tablet */
@media (max-width:900px){
  .app{grid-template-columns:1fr}
  main{padding:.9rem 1rem 2.5rem}
}
.side .hello{font-size:.78rem;color:var(--muted);padding:.4rem .6rem 0;font-weight:500}
.side #switchAcct,.side #logout{font-size:.82rem;color:var(--muted);padding:.32rem .6rem}
.side #switchAcct{margin-top:.6rem;border-top:1px solid var(--line);border-radius:0;padding-top:.6rem}
.font-prev{margin:.4rem 0 .2rem;padding:.6rem .8rem;border:1px solid var(--line-2);border-radius:var(--r-s);background:var(--bg)}

/* Redesign fase 3: cabeçalho e Painel */
.top{justify-content:flex-start;gap:.6rem;flex-wrap:wrap}
.top h1{font-size:1.15rem;margin-right:.4rem;text-align:left}
.top #period{margin-right:auto}
.top .histnav .btn{box-shadow:none;border-color:transparent;background:transparent;color:var(--muted)}
.top .histnav .btn:hover{background:var(--soft);color:var(--ink)}
.top #helpBtn,.top #searchBtn,.top #privBtn{box-shadow:none}
.card h2 .more,.card h3 .more{margin-left:auto;font-weight:500;font-size:.78rem;color:var(--brand);text-decoration:none}
.card h2:has(.more){display:flex;align-items:center;gap:.5rem}
.status-band{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(4,minmax(0,1fr));gap:0;padding:1.1rem 1.2rem;margin-bottom:1rem}
.status-band>div{padding:0 1.1rem;border-left:1px solid var(--line-2);min-width:0}
.status-band>div:first-child{padding-left:0;border-left:0}
.st-l{font-size:.76rem;color:var(--muted);font-weight:500;display:flex;align-items:center;gap:.3rem}
.st-v{font-size:1.9rem;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.2;margin:.15rem 0}
.st-v.sm{font-size:1.3rem}.st-v.xs{font-size:1.15rem}
.st-s{font-size:.76rem;color:var(--muted);line-height:1.4}
.dash-two{grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));margin-bottom:1rem}
.mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem 1rem}
.mini-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.xp{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:50%;width:16px;height:16px;font-size:.62rem;line-height:1;padding:0;cursor:help}
@media (max-width:1100px){.status-band{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.status-band>div{border-left:0;padding:0}.status-band>div:first-child{grid-column:1/-1}}
@media (max-width:640px){.mini-grid{grid-template-columns:1fr 1fr}.st-v{font-size:1.6rem}}
.pulse-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:1rem;margin-bottom:1rem;align-items:start}
.pulse-row>div:empty{display:none}
.pulse-row .card{margin:0}

/* Redesign fase 4: dia a dia */
.top #period{margin-right:0}
.top #helpBtn{margin-left:auto}
.budget-sum{background:var(--card)!important;color:var(--ink)!important;border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:var(--r)!important;font-weight:500}
.budget-sum span{color:var(--muted)!important}
.chip{border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink-2);font-weight:500}
.chip.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}
tbody th,table th[scope="row"]{text-transform:none;letter-spacing:0;font-size:.86rem;color:var(--ink);font-weight:600;position:static;background:transparent}
.cal-d{border-color:var(--line-2);border-radius:var(--r-s);background:var(--card)}
.cal-d.today{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.cal-d.past{background:var(--bg)}
.cal-ev{border-radius:4px}
th.rowh{text-transform:none;letter-spacing:0;font-size:.85rem;color:var(--ink);font-weight:500;background:var(--card)}
tr.sec-row th,tr.section th{text-transform:uppercase;letter-spacing:.07em;font-size:.68rem;color:var(--muted)}

/* Redesign fase 5: escolhas lado a lado (sub-separadores dos simuladores, períodos dos gráficos) */
.seg{display:inline-flex;flex-wrap:wrap;gap:2px;background:var(--soft);border-radius:var(--r-s);padding:2px}
.seg .btn{box-shadow:none;border:0;background:transparent;color:var(--ink-2);font-weight:500;padding:.3rem .75rem}
.seg .btn:hover{background:color-mix(in srgb,var(--card) 60%,transparent);color:var(--ink)}
.seg .btn.primary{background:var(--card);color:var(--ink);font-weight:600;box-shadow:var(--shadow);filter:none}

/* REDESIGN — fase 6: página do ativo */
.asset-head{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-bottom:1rem}
.asset-head .grow{flex:1 1 220px}
.asset-px{text-align:right}
.st-v.sm{font-size:1.25rem}
.tag.held{background:var(--accent-soft);color:var(--ink);border-color:transparent;font-weight:600}
.asset-pos{grid-template-columns:repeat(4,minmax(0,1fr))}
.asset-main{display:flex;flex-direction:column;gap:1rem;min-width:0}
.asset-main .card{margin:0}
/* métricas da empresa em blocos lado a lado (por baixo do gráfico), não numa coluna estreita */
.af-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1rem 1.6rem}
.af-sec h3{margin:0 0 .45rem;font-size:.85rem;padding-bottom:.3rem;border-bottom:1px solid var(--line)}
.af-items{display:flex;flex-direction:column;gap:.15rem}
@media (max-width:600px){.asset-pos{grid-template-columns:1fr 1fr}.asset-px{text-align:left}}
/* tabela da carteira: escolher colunas */
.colpick{display:flex;flex-wrap:wrap;gap:.3rem .9rem;padding:.6rem .2rem;font-size:.82rem}
.colpick label{display:flex;gap:.3rem;align-items:center;cursor:pointer}
th.sortable{cursor:pointer;user-select:none}
th.sortable:hover{color:var(--ink)}
.asset-main h2{flex-wrap:wrap;row-gap:.5rem}
.seg{flex-wrap:nowrap}
/* Telemóvel: tabelas sem contentor próprio deslizam dentro do cartão (a página nunca fica mais larga que o ecrã) */
@media (max-width:600px){#view table:not(.tablewrap table){display:block;overflow-x:auto;max-width:100%}}
@media (max-width:899px){.settings{grid-template-columns:minmax(0,1fr)}.set-body,.set-nav{min-width:0}}
input[type=file]{max-width:100%}
@media (max-width:600px){.drop{padding:1.2rem .8rem}}
/* Subscrição: consentimento no formulário de nova conta */
.consent{display:flex;gap:.5rem;align-items:flex-start;text-align:left;font-size:.82rem;color:var(--muted)}
.consent input{margin-top:.15rem;flex:none;width:auto!important;min-width:0}
.consent a{color:var(--brand)}
/* Página do ativo: contas anuais em gráficos separados e grandes */
.hist-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:1.4rem 1.6rem}
.hist-t{font-size:.9rem;font-weight:600;margin:0 0 .4rem}
.hist-ch{height:300px}
@media (max-width:600px){.hist-ch{height:240px}}
/* planos da subscrição */
.planos{display:flex;flex-direction:column;gap:.5rem;margin:.4rem 0}
.plano-opt{display:flex;gap:.6rem;align-items:flex-start;border:1px solid var(--line);border-radius:var(--r-s);padding:.6rem .75rem;cursor:pointer;background:var(--card)}
.plano-opt input{margin-top:.25rem;width:auto}
.plano-opt:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
#spaceSw button.locked{opacity:.55}
#spaceSw button.locked::after{content:" 🔒";font-size:.75em}

/* organograma (Pessoas) */
.org ul{list-style:none;margin:0;padding-left:1.4rem;border-left:1px dashed var(--line)}
.org>ul{border-left:0;padding-left:0}
.org li{margin:.5rem 0;position:relative}
.org li::before{content:"";position:absolute;left:-1.4rem;top:1.1rem;width:1.2rem;border-top:1px dashed var(--line)}
.org>ul>li::before{display:none}
.org-box{display:inline-flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.45rem .8rem;min-width:12rem}
.org-box span{color:var(--muted);font-size:.8rem}

/* Perfil da empresa (questionário) */
.pef-steps{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.8rem}
.pef-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:.8rem;align-items:start}
@media (max-width:820px){.pef-grid{grid-template-columns:1fr}}
.pef-panel{position:sticky;top:.6rem}
.pef-q{margin:.9rem 0}
.pef-l{font-weight:600;margin-bottom:.3rem}
.pef-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.4rem}
.pef-opt{display:flex;gap:.55rem;align-items:flex-start;border:1px solid var(--line);border-radius:8px;padding:.5rem .65rem;cursor:pointer}
.pef-opt.on{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,transparent)}
.pef-opt small{display:block;color:var(--muted);font-size:.78rem;margin-top:.15rem}
.pef-opt input{margin-top:.2rem}
.pef-mods{list-style:none;padding:0;margin:0;display:grid;gap:.3rem;font-size:.88rem}
.pef-mods li{display:flex;gap:.45rem}
.pef-mods li.off{color:var(--muted)}
.pef-mods li.on span:first-child{color:var(--pos)}
.pef-tag{font-size:.7rem;border:1px solid var(--line);border-radius:4px;padding:0 .3rem;color:var(--muted)}
.pef-sum{display:grid;gap:.25rem}
.pef-sum.off{opacity:.65}

/* Contratos */
.ct-card .ct-lines{display:flex;flex-wrap:wrap;gap:.3rem .9rem;font-size:.85rem;margin-top:.35rem}

/* Obrigações do ano */
.ob-month{margin-bottom:.7rem}
.ob-st{display:inline-block;font-size:.75rem;padding:.05rem .45rem;border-radius:999px;border:1px solid var(--line)}
.ob-st.ob-feito{color:var(--pos);border-color:currentColor}
.ob-st.ob-confirmar{color:var(--brand);border-color:currentColor}
.ob-st.ob-proximo{font-weight:600;border-color:currentColor}
.ob-st.ob-nao_aplica{opacity:.6}

/* Feedback contínuo */
.fb-sum,.fb-kinds{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;margin-bottom:.4rem}
.fb-k{display:inline-flex;align-items:center;gap:.25rem;font-size:.78rem;padding:.12rem .5rem;border-radius:999px;border:1px solid var(--line)}
.fb-kinds .fb-k{cursor:pointer}
.fb-k.fb-positivo,.fb-k.fb-reconhecimento{color:var(--pos);border-color:currentColor}
.fb-k.fb-melhorar{color:var(--brand);border-color:currentColor}
.fb-k.fb-nota{opacity:.75}
.fb-item{padding:.4rem 0;border-top:1px solid var(--line-2)}

/* Organograma em árvore com arrastar */
.av{display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:50%;object-fit:cover;font-weight:700;font-size:.8rem;
  background:hsl(var(--th,220) 55% 88%);color:hsl(var(--th,220) 45% 28%)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .av{background:hsl(var(--th,220) 35% 28%);color:hsl(var(--th,220) 60% 85%)}}
:root[data-theme="dark"] .av{background:hsl(var(--th,220) 35% 28%);color:hsl(var(--th,220) 60% 85%)}
.orgc{overflow-x:auto;padding:.5rem 0 1rem}
.orgc ul{display:flex;justify-content:center;padding:1.2rem 0 0;margin:0;position:relative;list-style:none}
.orgc>ul{padding-top:0}
.orgc li{position:relative;padding:1.2rem .4rem 0;display:flex;flex-direction:column;align-items:center}
.orgc>ul>li{padding-top:0}
.orgc li::before,.orgc li::after{content:"";position:absolute;top:0;width:50%;height:1.2rem;border-top:1.5px solid var(--line)}
.orgc li::before{right:50%}
.orgc li::after{left:50%;border-left:1.5px solid var(--line)}
.orgc li:only-child::before,.orgc li:only-child::after{border-top:0}
.orgc li:only-child{padding-top:1.2rem}
.orgc li:first-child::before,.orgc li:last-child::after{border-top:0}
.orgc li:last-child::before{border-right:1.5px solid var(--line);border-radius:0 6px 0 0}
.orgc li:first-child::after{border-radius:6px 0 0 0}
.orgc>ul>li::before,.orgc>ul>li::after{display:none}
.orgc ul ul::before{content:"";position:absolute;top:0;left:50%;height:1.2rem;border-left:1.5px solid var(--line)}
.orgc-card{display:flex;align-items:center;gap:.55rem;background:var(--card);border:1px solid var(--line);border-left:4px solid hsl(var(--th,220) 55% 50%);
  border-radius:10px;padding:.45rem .6rem;min-width:11rem;max-width:15rem;cursor:grab;position:relative;text-align:left;color:inherit;text-decoration:none}
.orgc-card.over{outline:2px dashed var(--brand);outline-offset:2px}
.orgc-card.dragging{opacity:.4}
.orgc-txt{display:flex;flex-direction:column;min-width:0}
.orgc-txt b{font-size:.9rem}
.orgc-txt span{color:var(--muted);font-size:.76rem}
.orgc-team{color:hsl(var(--th,220) 50% 42%)!important}
.orgc-tg{position:absolute;bottom:-.7rem;left:50%;transform:translateX(-50%);font-size:.7rem;border:1px solid var(--line);background:var(--card);color:inherit;border-radius:999px;padding:0 .4rem;cursor:pointer;z-index:1}
.orgc-top{border:1.5px dashed var(--line);border-radius:10px;padding:.4rem;text-align:center;color:var(--muted);font-size:.82rem;margin:.6rem 0}
.orgc-top.over{border-color:var(--brand);color:var(--brand)}
.orgc-legend{display:flex;flex-wrap:wrap;gap:.6rem;font-size:.78rem;margin:.3rem 0}
.orgc-legend i{display:inline-block;width:.7rem;height:.7rem;border-radius:3px;background:hsl(var(--th) 55% 50%);margin-right:.3rem;vertical-align:-1px}
.orgc-vac{border-style:dashed;cursor:pointer}

/* Valor escrito com os milhares separados, por baixo do campo */
.amt-tip{position:absolute;z-index:60;font-size:.8rem;font-variant-numeric:tabular-nums;padding:.1rem .45rem;border-radius:6px;
  background:var(--card);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow);pointer-events:none}

.orgc-card.over-left{box-shadow:-5px 0 0 0 var(--brand)}
.orgc-card.over-right{box-shadow:5px 0 0 0 var(--brand)}

/* formulários em grelha: etiqueta sempre por cima do campo */
.fgrid>label{display:flex;flex-direction:column;gap:.25rem;min-width:0}
.fgrid>label>input,.fgrid>label>select{width:100%}

.ce-item{border-top:1px solid var(--line-2);padding:.6rem 0;margin-top:.5rem}

/* Assistente */
.as-wrap{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:.8rem;align-items:start}
@media (max-width:760px){.as-wrap{grid-template-columns:1fr}.as-side{order:2}}
.as-list{display:grid;gap:.2rem;margin-top:.6rem;max-height:60vh;overflow:auto}
.as-chat{display:flex;gap:.4rem;align-items:center;padding:.4rem .5rem;border-radius:8px;color:inherit;text-decoration:none;font-size:.88rem}
.as-chat.on,.as-chat:hover{background:var(--soft)}
.as-msgs{display:flex;flex-direction:column;gap:.6rem;min-height:40vh;max-height:60vh;overflow:auto;margin:.8rem 0;padding:.2rem}
.as-m{max-width:85%;padding:.6rem .8rem;border-radius:12px;line-height:1.5;font-size:.92rem;min-width:0;overflow-wrap:anywhere}
.as-m.user{align-self:flex-end;background:var(--accent-soft);border:1px solid var(--line)}
.as-m.assistant{align-self:flex-start;background:var(--soft)}
.as-m p{margin:.3rem 0}.as-m ul{margin:.3rem 0;padding-left:1.2rem}
.as-wait{color:var(--muted);font-style:italic}
.as-files,.as-tools{font-size:.75rem;color:var(--muted);margin-top:.3rem}
.as-empty{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.as-empty p{width:100%}
.as-att{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.3rem}
.as-input{display:flex;gap:.4rem;align-items:flex-end}
.as-input textarea{flex:1;min-width:0;resize:vertical}

/* Assistente na janela do canto */
.dino-chat.wide{width:min(720px,calc(100vw - 2rem));height:min(80vh,calc(100vh - 2rem))}
.dino-chat header select{max-width:11rem;padding:.2rem .4rem;font-size:.8rem}
.dino-chat .as-m{max-width:92%;font-size:.88rem}
.ap-input{padding:.4rem .6rem;border-top:1px solid var(--line)}
.ap-input textarea{max-height:8rem}
.ap-foot{display:flex;gap:.4rem;align-items:center;padding:0 .6rem .45rem;font-size:.72rem;color:var(--muted)}

/* Painel: cartões do topo da mesma altura; «Fora do normal» a toda a largura */
.pulse-row{align-items:stretch}
.pulse-row>div:not(.card){display:flex}
.pulse-row>div:not(.card)>.card,.pulse-row>.card{flex:1;height:100%}
.pulse-row>.pulse-wide{grid-column:1/-1;height:auto}
/* Orçamentos: categorias numa grelha arrumada (colunas iguais, texto cortado com reticências) */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr));gap:.4rem}
.cat-grid .chip{text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:10px;padding:.45rem .7rem}
.cat-grid .chip[data-fall]{font-weight:600}
.cat-grid .chip:has(.cn){display:flex;gap:.4rem;justify-content:space-between;align-items:center}
.cat-grid .chip .cn{overflow:hidden;text-overflow:ellipsis;min-width:0}
.cat-grid .chip b{flex:none;font-variant-numeric:tabular-nums}
/* saldo obrigatório das contas */
.ab-list{display:flex;flex-direction:column;gap:.5rem;max-height:55vh;overflow:auto}
.ab-row{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;padding:.55rem .7rem;border:1px solid var(--line);border-radius:10px}
/* o meu ano em números */
.yr-hero{display:flex;align-items:center;gap:1.2rem}
.yr-year{font-size:2.6rem;font-weight:800;color:var(--accent);line-height:1;font-variant-numeric:tabular-nums}
.yr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:.8rem;margin:1rem 0}
.yr-tile{border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem;background:var(--card,transparent)}
.yr-tile .l{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.yr-tile .v{font-size:1.35rem;font-weight:700;margin:.2rem 0;font-variant-numeric:tabular-nums}
.yr-tile .s{font-size:.8rem;color:var(--muted)}
.yr-bar{position:relative;isolation:isolate;display:flex;gap:.6rem;align-items:center;padding:.45rem .5rem;margin:.2rem 0;overflow:hidden;border-radius:8px}
.yr-bar i{position:absolute;left:0;top:0;bottom:0;background:var(--line);opacity:.55;z-index:-1;border-radius:8px}
.yr-share{white-space:pre-wrap;font-family:inherit;background:var(--line);padding:.8rem 1rem;border-radius:10px;margin:0 0 .6rem}
tr.row-warn td{background:color-mix(in srgb,var(--neg) 8%,transparent)}
/* rever fatura: a fatura ao lado dos campos */
#modal .card.inv-card{width:min(1180px,96vw);max-width:none}
.inv-rv{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:1.2rem;align-items:start}
.inv-pv{position:sticky;top:0;display:flex;flex-direction:column;gap:.3rem}
.inv-pv iframe,.inv-pv img{width:100%;height:min(78vh,900px);border:1px solid var(--line);border-radius:10px;background:#fff;object-fit:contain}
@media (max-width:900px){.inv-rv{grid-template-columns:1fr}.inv-pv{position:static}.inv-pv iframe,.inv-pv img{height:50vh}}
/* reconciliação mês a mês */
.rc-top h2{font-size:1.15rem}
.rc-bar{height:8px;border-radius:99px;background:var(--line);overflow:hidden;margin-top:.7rem}
.rc-bar i{display:block;height:100%;background:var(--pos,var(--accent));border-radius:99px}
.rc-chips{display:flex;gap:.35rem;flex-wrap:wrap}
.rq-h{font-size:.95rem;margin:.9rem 0 .35rem}
.rq-h:first-of-type{margin-top:.2rem}
.rq-item{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.6fr) auto;gap:.4rem .8rem;align-items:center;padding:.55rem 0;border-top:1px solid var(--line)}
.rq-q,.rq-b{min-width:0;overflow-wrap:anywhere}
.rq-b{font-size:.85rem}
.rq-a{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:800px){.rq-item{grid-template-columns:1fr}.rq-a{justify-content:flex-start}}
.rc-chip{border:1px solid var(--line);background:var(--card);color:var(--ink,inherit);border-radius:99px;padding:.2rem .65rem;font-size:.8rem;cursor:pointer}
.rc-chip b{color:var(--neg)}
.rc-chip.ok{color:var(--pos)}
.rc-chip.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;font-weight:600}
.rc-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;align-items:start}
.rc-cols .card{max-height:62vh;overflow:auto;margin:0}
.rc-cols h3{margin:0 0 .5rem;font-size:.9rem}
.rc-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .6rem;border:1px solid var(--line);border-radius:10px;margin:.3rem 0;cursor:pointer}
.rc-item.on{border-color:var(--accent);background:var(--soft)}
.rc-item.eq{border-color:var(--pos)}
.rc-linkbar{position:sticky;bottom:0;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.6rem 1rem;margin-top:.8rem}
.rc-opt{display:flex;align-items:center;gap:.6rem;padding:.45rem .2rem;border-bottom:1px solid var(--line)}
.rc-q{font-size:.92rem;margin:1rem 0 .4rem}
@media (max-width:820px){.rc-cols{grid-template-columns:1fr}}

/* carteira face aos índices */
#pbench{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.3rem}
.bench-chip{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--line);border-radius:99px;padding:.15rem .6rem;font-size:.82rem;color:var(--ink-2,inherit)}
.bench-chip i{width:14px;height:3px;border-radius:2px;display:inline-block}

/* mensagens depois de uma ação: salientes, com cor e ícone */
.toast{display:flex;align-items:center;gap:.7rem;bottom:1.4rem;padding:.85rem 1.2rem;font-size:1rem;font-weight:600;min-width:min(90vw,20rem);
  box-shadow:0 12px 32px rgba(0,0,0,.28);border:1px solid transparent;cursor:pointer;line-height:1.35}
.toast .toast-ic{display:inline-grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;font-size:1rem;flex:none;background:rgba(255,255,255,.22)}
:root{--toast-ok:#1D7A4C;--toast-bad:#B3362B}   /* fundo escuro nos dois temas: texto branco legível (≥ 5:1) */
.toast.ok{background:var(--toast-ok);color:#fff}
.toast.bad{background:var(--toast-bad);color:#fff}
.toast.info{background:var(--ink);color:var(--bg)}
.toast.in{animation:toastIn .28s cubic-bezier(.2,.9,.3,1.2)}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,14px) scale(.96)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@media (prefers-reduced-motion:reduce){.toast.in{animation:none}}

/* ficha da empresa: resumo em linhas, crescimento e grelha de gráficos */
.af-kv{display:flex;justify-content:space-between;align-items:baseline;gap:.8rem;padding:.28rem 0;border-bottom:1px dashed var(--line);font-size:.9rem}
.af-kv span{color:var(--muted)}
.af-kv b{text-align:right;font-variant-numeric:tabular-nums}
.af-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.growth-chips{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.2rem 0 .8rem}
.gchip{border-radius:99px;padding:.3rem .8rem;font-size:.9rem;font-variant-numeric:tabular-nums;border:1px solid var(--line)}
.gchip b{margin-right:.35rem}
.gchip.up{color:var(--pos);background:color-mix(in srgb,var(--pos) 10%,transparent)}
.gchip.down{color:var(--neg);background:color-mix(in srgb,var(--neg) 10%,transparent)}
.gchip.up b,.gchip.down b{color:var(--ink,inherit)}
.fin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:1rem}
.fin-card{border:1px solid var(--line);border-radius:12px;padding:.7rem .8rem;min-width:0}
.fin-card .hist-t{margin:0;font-size:.9rem}
.fin-card .hist-ch{height:210px}

.es-list{display:flex;flex-direction:column}
.es-item{display:flex;align-items:center;gap:.7rem;padding:.5rem .3rem;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.es-item:hover{background:var(--soft)}
.es-top{position:relative;margin:0 0 .8rem}
.es-top input{width:100%}
.es-drop{position:absolute;left:0;right:0;top:100%;z-index:20;background:var(--card);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.18);max-height:60vh;overflow:auto}
.es-drop:empty{display:none}

.fin-growth{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center;margin-top:.5rem}
.gchip.sm{font-size:.78rem;padding:.15rem .55rem}
#fin_bigg .fin-growth{margin-top:.8rem}
#fin_bigg .gchip.sm{font-size:.95rem;padding:.3rem .8rem}

/* pagamento da subscrição */
.paybox{border:1px solid var(--line);border-radius:12px;padding:.9rem 1rem;margin:.4rem 0 .8rem}
.pay-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:.8rem}
.pay-opt{border:1px solid var(--line);border-radius:10px;padding:.7rem .8rem}
.mbref{display:grid;grid-template-columns:repeat(3,auto);gap:.4rem 1.4rem;justify-content:start;margin:.6rem 0;padding:.7rem 1rem;border:1px dashed var(--line);border-radius:10px}
.mbref span{display:block;font-size:.75rem;color:var(--muted)}
.mbref b{font-size:1.15rem;font-variant-numeric:tabular-nums;user-select:all}

/* ajuda */
.faq{border-bottom:1px solid var(--line);padding:.55rem 0}
.faq summary{cursor:pointer;font-weight:600}
.faq p{margin:.4rem 0 0;color:var(--ink-2,inherit);line-height:1.55}

/* Calculadora DCF */
.dcf-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:1rem;align-items:start}
@media (max-width:1000px){.dcf-grid{grid-template-columns:1fr}}
.dcf-out{position:sticky;top:.5rem}
.dcf-in h3,.dcf-out h3{font-size:.95rem;margin:.9rem 0 .4rem}
.dcf-in h3:first-child{margin-top:0}
.dcf-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.6rem .9rem}
.dcf-f{display:flex;flex-direction:column;gap:.2rem;font-size:.84rem;min-width:0}
.dcf-f>span{color:var(--ink-2,var(--ink));font-weight:500}
.dcf-f input[type=range]{padding:0}
.dcf-series input:not([type=range]){width:100%;max-width:220px}
.dcf-ref{display:flex;flex-wrap:wrap;gap:.25rem;margin:.15rem 0}
.dcf-chip{border:1px solid var(--line);background:var(--bg);color:var(--muted);border-radius:999px;padding:.1rem .5rem;font-size:.72rem;cursor:pointer;font-variant-numeric:tabular-nums}
.dcf-chip:hover{border-color:var(--accent);color:var(--ink)}
.dcf-years{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:.35rem}
.dcf-years label{display:flex;flex-direction:column;font-size:.72rem;color:var(--muted)}
.dcf-years input{width:100%}
.dcf-hero{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}
.dcf-verdict{font-weight:600;margin:.6rem 0 .3rem}
.dcf-mos{display:flex;flex-wrap:wrap;gap:.3rem 1rem;font-size:.82rem;color:var(--muted)}
.dcf-rev{margin:.7rem 0;padding:.6rem .75rem;border-radius:var(--r-s,8px);background:var(--soft);font-size:.86rem}
.dcf-bar{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--soft)}
.dcf-kv{display:grid;gap:.15rem;margin-top:.45rem;font-size:.84rem}
.dcf-kv>div{display:flex;align-items:center;gap:.4rem}
.dcf-kv>div>b{margin-left:auto;font-variant-numeric:tabular-nums}
.dcf-kv i{width:10px;height:10px;border-radius:2px;display:inline-block}
.dcf-kv .muted{width:2.6rem;text-align:right}
.dcf-sens td,.dcf-sens th{font-size:.8rem;padding:.25rem .45rem;font-variant-numeric:tabular-nums}
.dcf-sens .dcf-c{outline:2px solid var(--accent);font-weight:700}

/* Gráfico técnico */
.tc-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem}
.tc-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.4rem}
.tc-bar .seg{display:inline-flex;flex-wrap:wrap;gap:.2rem}
.tc-ind{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.5rem}
.tc-chip{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:999px;padding:.15rem .6rem;font-size:.76rem;cursor:pointer}
.tc-chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--ink)}
.tc-wrap{position:relative;width:100%;touch-action:none;user-select:none}
.tc-wrap canvas{display:block;border-radius:var(--r-s,8px)}
.tc-legend{position:absolute;left:8px;top:8px;font-size:.76rem;line-height:1.45;background:color-mix(in srgb,var(--card) 82%,transparent);padding:.15rem .4rem;border-radius:6px;pointer-events:none;font-variant-numeric:tabular-nums;max-width:calc(100% - 90px)}
.tc-hint{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);background:var(--ink);color:var(--card);font-size:.78rem;padding:.25rem .6rem;border-radius:6px;pointer-events:none}
.tc-hint:empty{display:none}
.tc-side{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1rem;margin-top:1rem;align-items:start}
@media (max-width:900px){.tc-side{grid-template-columns:1fr}.dcf-hero{grid-template-columns:1fr 1fr}}
.tc-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.35rem}
.tc-mini{display:flex;flex-wrap:wrap;gap:.3rem .9rem;font-size:.82rem;margin:.4rem 0;font-variant-numeric:tabular-nums}
.tc-lbl{width:100%;min-width:7rem;font-size:.82rem;padding:.15rem .35rem}

/* Cenários do DCF */
.dcf-scg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}
@media (max-width:800px){.dcf-scg{grid-template-columns:1fr}}
.dcf-sc{border:1px solid var(--line);border-top:3px solid var(--sc);border-radius:var(--r-s,8px);padding:.6rem .7rem;display:flex;flex-direction:column;gap:.3rem;min-width:0}
.dcf-sch{font-weight:700;color:var(--sc)}
.dcf-scv{font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums}
.dcf-scd{font-size:.8rem;min-height:1.1em}
.dcf-scf{display:flex;justify-content:space-between;align-items:center;gap:.4rem;font-size:.8rem}
.dcf-scf input{width:4.6rem;text-align:right;padding:.2rem .35rem}
.dcf-sci{font-size:.72rem;line-height:1.35}
.dcf-scw{display:flex;align-items:flex-end;gap:1rem;margin:.8rem 0 .2rem;padding:.6rem .75rem;border-radius:var(--r-s,8px);background:var(--soft)}
.dcf-range{margin:1.6rem .4rem 1.4rem}
.dcf-rbar{position:relative;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--neg),var(--muted),var(--pos));opacity:.9}
.dcf-rm,.dcf-rp{position:absolute;top:-5px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center}
.dcf-rm i{width:14px;height:14px;border-radius:50%;background:var(--sc);border:2px solid var(--card)}
.dcf-rm b{font-size:.7rem;color:var(--sc);margin-top:.15rem;white-space:nowrap}
.dcf-rp{top:-14px}.dcf-rp i{width:2px;height:22px;background:var(--ink)}
.dcf-rp b{position:absolute;bottom:24px;font-size:.7rem;white-space:nowrap}

/* Rastreador */
.scr-regs,.scr-pills{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:.5rem}
.scr-pill{display:inline-flex;align-items:stretch;border-radius:8px;background:var(--ink);color:var(--card);overflow:hidden;font-size:.82rem}
.scr-pill button{background:none;border:0;color:inherit;padding:.35rem .6rem;cursor:pointer;font:inherit}
.scr-pill button+button{border-left:1px solid color-mix(in srgb,var(--card) 30%,transparent);padding:.35rem .5rem}
.scr-pill.on{outline:2px solid var(--accent)}
.scr-pills select{width:auto;font-size:.82rem}
.scr-ed{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.55rem .7rem;margin-bottom:.6rem;border:1px solid var(--line);border-radius:8px;background:var(--soft);font-size:.86rem}
.scr-ed input{width:7rem}
.scr-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.4rem 0 .6rem;border-top:1px solid var(--line);padding-top:.6rem}
.scr-bar .seg{display:inline-flex;flex-wrap:wrap;gap:.2rem}
.scr-t td,.scr-t th{font-size:.84rem;font-variant-numeric:tabular-nums}
.scr-sym{font-weight:700;border:1px solid var(--line);border-radius:6px;padding:.05rem .4rem;font-size:.78rem;white-space:nowrap}
.scr-nm{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Lista lateral */
.wl-panel{position:fixed;top:0;right:0;bottom:0;width:340px;max-width:100vw;background:var(--card);border-left:1px solid var(--line);z-index:20;display:flex;flex-direction:column;box-shadow:var(--shadow);padding-top:env(safe-area-inset-top,0px)}
@media (min-width:1300px){body.wlp-on main{margin-right:340px}.wl-panel{box-shadow:none}}
.wlp-head{display:flex;align-items:center;gap:.3rem;padding:.6rem .6rem .4rem}
.wlp-head #wlp_list{flex:1;font-weight:700;min-width:0}
.wlp-head #wlp_sort{width:auto;font-size:.78rem}
.wlp-cols,.wlp-row{display:grid;grid-template-columns:22px minmax(0,1fr) 5rem 4.2rem 4.6rem;align-items:center;gap:.35rem;padding:0 .6rem 0 .5rem}
.wlp-cols{grid-template-columns:minmax(0,1fr) 5rem 4.2rem 4.6rem;font-size:.74rem;color:var(--muted);padding:.25rem .6rem .35rem 2.4rem;border-bottom:1px solid var(--line)}
.wlp-cols span+span{text-align:right}
#wlp_body{overflow-y:auto;flex:1}
.wlp-row{position:relative;min-height:2.5rem;border-bottom:1px solid var(--line);cursor:pointer;font-size:.86rem;font-variant-numeric:tabular-nums}
.wlp-row:hover{background:var(--soft)}
.wlp-row .n{text-align:right}
.wlp-sym{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wlp-flag{position:absolute;left:0;top:50%;transform:translateY(-50%);width:7px;height:16px;border:0;padding:0;background:var(--flag);clip-path:polygon(0 0,100% 0,60% 50%,100% 100%,0 100%);cursor:pointer}
.wlp-row:hover .wlp-flag{background:var(--flag);outline:1px dashed var(--line)}
.wlp-del{position:absolute;right:.3rem;border:0;background:var(--card);cursor:pointer;opacity:0;font-size:.85rem}
.wlp-row:hover .wlp-del{opacity:1}
.wlp-menu{position:absolute;left:10px;top:100%;z-index:3;display:flex;gap:.25rem;padding:.3rem;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}
.wlp-menu button{width:18px;height:18px;border-radius:50%;border:1px solid var(--line);cursor:pointer;font-size:.6rem;background:var(--card);color:var(--muted)}
.wlp-foot{font-size:.7rem;padding:.45rem .6rem;border-top:1px solid var(--line)}

/* Faixa dos índices */
.ticker{display:flex;gap:.35rem;margin-left:auto}
.ticker .tick{display:flex;flex-direction:column;line-height:1.15;padding:.2rem .55rem;border:1px solid var(--line);border-radius:8px;font-size:.72rem;color:var(--muted);text-decoration:none}
.ticker .tick b{font-size:.8rem}
@media (max-width:1100px){.ticker{display:none}}

/* Entre em contacto */
.ct-card{max-width:760px}
.ct-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.25rem;padding:.25rem;border-radius:10px;background:var(--soft);margin-bottom:.8rem}
.ct-tabs button{border:0;background:none;padding:.5rem;border-radius:8px;cursor:pointer;font:inherit;color:var(--muted)}
.ct-tabs button.on{background:var(--card);color:var(--ink);font-weight:600;box-shadow:var(--shadow)}
.ct-form{display:flex;flex-direction:column;gap:.7rem}
.ct-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.86rem;font-weight:500}
.ct-stars{display:flex;gap:.2rem}
.ct-stars button{border:0;background:none;font-size:2rem;line-height:1;cursor:pointer;color:var(--muted);padding:0 .1rem}
.ct-stars button.on{color:#E2B203}

/* O meu algoritmo */
.alg-prog{height:8px;border-radius:4px;background:var(--soft);overflow:hidden;margin-top:.6rem}
.alg-prog span{display:block;height:100%;background:var(--accent);transition:width .4s}
.alg-news{margin-top:.6rem;font-size:.86rem}
.alg-news ul{margin:.3rem 0 0;padding-left:1.1rem;line-height:1.6}
.alg-tabs{display:flex;flex-wrap:wrap;gap:.3rem;margin:0 0 .8rem}
.alg-key{display:inline-block;margin-left:.6rem}
.alg-t td{vertical-align:middle;font-size:.86rem}
.alg-row{cursor:pointer}
.alg-row:hover,.alg-row.open{background:var(--soft)}
.alg-score{display:inline-grid;place-items:center;min-width:2.6rem;height:2rem;border-radius:8px;font-weight:800;color:var(--c);border:2px solid var(--c);font-variant-numeric:tabular-nums}
.alg-bars{display:flex;gap:3px;align-items:flex-end;height:26px}
.alg-bars span{width:12px;height:100%;background:var(--soft);border-radius:2px;display:flex;align-items:flex-end;overflow:hidden}
.alg-bars i{display:block;width:100%;border-radius:2px}
.alg-sig{font-size:.72rem}
.alg-det>td{background:var(--soft)}
.alg-d{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:1.2rem;padding:.4rem .2rem}
@media (max-width:800px){.alg-d{grid-template-columns:1fr}}
.alg-d h4{margin:.2rem 0 .4rem;font-size:.88rem}
.alg-gates{list-style:none;padding:0;margin:0 0 .6rem;font-size:.84rem;line-height:1.7}
.alg-part{margin-bottom:.55rem}
.alg-pbar{height:6px;border-radius:3px;background:var(--card);margin:.2rem 0;overflow:hidden}
.alg-pbar i{display:block;height:100%}
.alg-w{display:grid;grid-template-columns:9rem 1fr 2rem;align-items:center;gap:.6rem;font-size:.88rem;margin:.35rem 0}
.alg-w b{text-align:right;font-variant-numeric:tabular-nums}
.alg-rules{font-size:.86rem;line-height:1.6;padding-left:1.1rem}

/* Ficha da empresa · O negócio */
.biz-grid{display:flex;flex-direction:column;gap:.4rem}
.biz-lead{font-size:.98rem;line-height:1.55;margin:0 0 .5rem;max-width:80ch}
.biz-ai{border-left:3px solid var(--accent);padding-left:.8rem;margin:.4rem 0 .6rem}
.biz-cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.3rem 1rem}
.biz-cols h4{margin:.4rem 0 .2rem;font-size:.84rem}
.biz-cols ul{margin:0;padding-left:1.05rem;font-size:.85rem;line-height:1.5}
.biz-cols p{margin:0;font-size:.85rem}
.biz-desc summary{cursor:pointer;color:var(--muted);font-size:.85rem}
.biz-desc p{font-size:.86rem;line-height:1.55}
.biz-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:0 1.4rem;font-size:.86rem;border-top:1px solid var(--line);padding-top:.4rem}
.biz-f{display:flex;justify-content:space-between;gap:.8rem;padding:.28rem 0;border-bottom:1px dashed var(--line)}
.biz-f span{color:var(--muted)}
.biz-f b{text-align:right;font-variant-numeric:tabular-nums}
.tc-more{margin-top:1rem}
.tc-more>summary{cursor:pointer}
.tc-more .tc-side{margin-top:.8rem}

/* Contraste entre fundo, cartões e tabelas (2026-10-17): antes o fundo e os cartões quase não se distinguiam (claro 97,5%
   vs 99,6%; escuro 7,5% vs 10,5%). Três níveis em todos os temas: fundo tingido → cartão → cabeçalho e linhas alternadas
   das tabelas. Texto secundário ≥ 5,7:1 em todos (medido). */
:root{
  --bg:hsl(var(--h) var(--ns) 93.5%);--card:hsl(var(--h) 30% 100%);--soft:hsl(var(--h) var(--ns) 95%);
  --line:hsl(var(--h) calc(var(--ns) - 2%) 79%);--line-2:hsl(var(--h) calc(var(--ns) - 4%) 87%);
  --side:hsl(var(--h) var(--ns) 89.5%);--side-hover:hsl(var(--h) var(--ns) 85.5%);
  --thead:hsl(var(--h) calc(var(--ns) + 4%) 92%);--zebra:hsl(var(--h) calc(var(--ns) + 2%) 95.6%);--row-hover:hsl(var(--h) calc(var(--ns) + 8%) 91.5%);
  --shadow:0 1px 2px hsl(var(--h) 30% 20% / .08),0 2px 8px hsl(var(--h) 30% 20% / .05);
}
@media (prefers-color-scheme:dark){:root:not([data-mode="light"]){
  --bg:hsl(var(--h) var(--ns) 5.5%);--card:hsl(var(--h) var(--ns) 12.5%);--soft:hsl(var(--h) var(--ns) 16%);
  --line:hsl(var(--h) var(--ns) 29%);--line-2:hsl(var(--h) var(--ns) 21%);
  --side:hsl(var(--h) var(--ns) 8.5%);--side-hover:hsl(var(--h) var(--ns) 14%);
  --thead:hsl(var(--h) calc(var(--ns) + 4%) 17.5%);--zebra:hsl(var(--h) var(--ns) 15.6%);--row-hover:hsl(var(--h) calc(var(--ns) + 6%) 20.5%);
  --shadow:0 1px 0 hsl(var(--h) var(--ns) 20% / .6)}}
:root[data-mode="dark"]{
  --bg:hsl(var(--h) var(--ns) 5.5%);--card:hsl(var(--h) var(--ns) 12.5%);--soft:hsl(var(--h) var(--ns) 16%);
  --line:hsl(var(--h) var(--ns) 29%);--line-2:hsl(var(--h) var(--ns) 21%);
  --side:hsl(var(--h) var(--ns) 8.5%);--side-hover:hsl(var(--h) var(--ns) 14%);
  --thead:hsl(var(--h) calc(var(--ns) + 4%) 17.5%);--zebra:hsl(var(--h) var(--ns) 15.6%);--row-hover:hsl(var(--h) calc(var(--ns) + 6%) 20.5%);
  --shadow:0 1px 0 hsl(var(--h) var(--ns) 20% / .6)}
.card{box-shadow:var(--shadow)}
th{background:var(--thead);color:var(--ink-2);border-bottom:2px solid var(--line)}
th.rowh{background:var(--card)}
tbody tr:nth-child(even) td{background:var(--zebra)}
tr.click:hover td,tbody tr:hover td{background:var(--row-hover)}
thead th:first-child{border-top-left-radius:6px}thead th:last-child{border-top-right-radius:6px}
tbody tr.row-warn td{background:color-mix(in srgb,var(--neg) 10%,var(--card))}
tbody tr.selected td,#tt tbody tr.selected td{background:var(--accent-soft)}
tbody tr.alg-det>td{background:var(--soft)}
/* escolha de várias contas (Movimentos) */
details.msel{position:relative;display:inline-block}
details.msel>summary{list-style:none;cursor:pointer;max-width:16rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
details.msel>summary::-webkit-details-marker{display:none}
.msel-pop{position:absolute;z-index:20;top:calc(100% + 4px);left:0;min-width:17rem;max-height:60vh;overflow:auto;background:var(--card);
  border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px hsl(var(--h) 30% 10% / .2);padding:.6rem .7rem}
.msel-g{font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:.5rem 0 .15rem}
.msel-i{display:flex;align-items:center;gap:.5rem;padding:.25rem .2rem;border-radius:6px;cursor:pointer}
.msel-i:hover{background:var(--row-hover)}
.msel-i a{font-size:.78rem;visibility:hidden}.msel-i:hover a,.msel-i:focus-within a{visibility:visible}
