/* TRC Inteligente — Finanças da sociedade.
   Instrumento de trabalho entre dois sócios: a tela existe para levar ao número
   certo e deixar conferir de onde ele veio. Ver DESIGN.md na raiz do cliente.

   Cor é informação, não decoração: verde e vermelho só aparecem no sinal do
   dinheiro e no estado da conferência. Ação primária é tinta. */

@import url('https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=DM+Mono:wght@400;500&display=swap');

:root{
  /* Claro (padrão): a estrutura é escura e o conteúdo é claro. O branco não
     domina a tela, e o número continua no fundo mais legível que existe. */
  --bg:oklch(0.925 0.006 250);
  --surface:oklch(0.995 0.002 250);
  --panel:oklch(0.955 0.005 250);
  --panel-2:oklch(0.94 0.006 250);
  --line:oklch(0.87 0.008 250);
  --line-soft:oklch(0.925 0.006 250);
  --line-field:oklch(0.635 0.014 255);

  --ink:oklch(0.255 0.012 260);
  --ink-2:oklch(0.475 0.014 260);
  --ink-3:oklch(0.495 0.014 260);

  --accent:oklch(0.44 0.13 250);
  --accent-hi:oklch(0.52 0.14 250);
  --on-accent:oklch(0.99 0.003 250);

  /* estrutura: barra lateral e cabeçalho de tabela */
  --nav:oklch(0.26 0.035 262);
  --nav-2:oklch(0.31 0.04 262);
  --nav-3:oklch(0.37 0.06 262);
  --nav-line:oklch(0.33 0.04 262);
  --on-nav:oklch(0.86 0.02 262);
  --on-nav-2:oklch(0.70 0.03 262);
  --on-nav-hi:oklch(0.99 0.004 262);

  --pos:oklch(0.46 0.09 155);   --pos-bg:oklch(0.955 0.03 155);   --pos-bar:oklch(0.62 0.07 155);
  --neg:oklch(0.505 0.13 27);   --neg-bg:oklch(0.962 0.025 27);   --neg-bar:oklch(0.65 0.1 27);
  --neg-line:oklch(0.87 0.05 27);
  --neg-on-nav:oklch(0.76 0.14 25);   /* vermelho sobre a barra escura */
  --warn:oklch(0.50 0.1 75);    --warn-bg:oklch(0.965 0.04 85);

  --sbw:220px;
  --r:8px; --r-s:6px;
  --pad:28px;
  --ease:cubic-bezier(.22,1,.36,1);
  --dur:.16s;
  --shadow:0 1px 2px oklch(0.2 0.02 260 / .07);
  --shadow-pop:0 14px 34px -12px oklch(0.2 0.02 260 / .3), 0 2px 6px oklch(0.2 0.02 260 / .08);
  --scrim:oklch(0.2 0.02 260 / .55);
}

/* Escuro: mesma estrutura, para quem prefere trabalhar no grafite. */
:root[data-theme="dark"]{
  --bg:oklch(0.19 0.012 265);
  --surface:oklch(0.235 0.014 265);
  --panel:oklch(0.215 0.014 265);
  --panel-2:oklch(0.27 0.016 265);
  --line:oklch(0.325 0.016 265);
  --line-soft:oklch(0.285 0.014 265);
  --line-field:oklch(0.56 0.022 265);

  --ink:oklch(0.965 0.005 265);
  --ink-2:oklch(0.80 0.012 265);
  --ink-3:oklch(0.735 0.014 265);

  --accent:oklch(0.78 0.13 195);
  --accent-hi:oklch(0.85 0.11 195);
  --on-accent:oklch(0.19 0.03 230);

  --nav:oklch(0.215 0.014 265);
  --nav-2:oklch(0.27 0.016 265);
  --nav-3:oklch(0.33 0.03 250);
  --nav-line:oklch(0.31 0.016 265);
  --on-nav:oklch(0.85 0.012 265);
  --on-nav-2:oklch(0.72 0.014 265);
  --on-nav-hi:oklch(0.98 0.005 265);

  --pos:oklch(0.82 0.16 158);  --pos-bg:oklch(0.31 0.06 158);  --pos-bar:oklch(0.66 0.13 165);
  --neg:oklch(0.75 0.15 25);   --neg-bg:oklch(0.315 0.07 25);  --neg-bar:oklch(0.6 0.15 25);
  --neg-line:oklch(0.42 0.09 25);
  --neg-on-nav:oklch(0.75 0.15 25);
  --warn:oklch(0.85 0.12 85);  --warn-bg:oklch(0.32 0.055 85);

  --shadow:0 1px 2px oklch(0 0 0 / .45);
  --shadow-pop:0 18px 42px -14px oklch(0 0 0 / .72), 0 2px 8px oklch(0 0 0 / .4);
  --scrim:oklch(0.12 0.01 265 / .66);
}


*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--ink);
  font-family:'Nunito Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:14px; line-height:1.5; -webkit-font-smoothing:antialiased;
}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.011em;line-height:1.25}
h1{font-size:22px}
h2{font-size:15px}

.mono,.num,td.mono,td.num{
  font-family:'DM Mono',ui-monospace,monospace;
  font-variant-numeric:tabular-nums; font-size:13px;
}
.num,td.num{text-align:right}

/* rótulo curto em caixa alta — nunca cresce, nunca vira frase */
.lbl,.hint,.navsec,.chip,.kpi .lbl,.cob .f,.sidebar .foot .who{
  font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink-3);
}

::selection{background:color-mix(in oklch, var(--accent) 25%, var(--surface));color:var(--ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}

/* ── Navegação ─────────────────────────────────────────────────────────── */
.sidebar{
  position:fixed;inset:0 auto 0 0;width:var(--sbw);z-index:40;
  background:var(--nav);border-right:1px solid var(--nav-line);
  display:flex;flex-direction:column;
}
.sidebar .brand{padding:20px 18px 16px}
.sidebar .brand .mark{font-size:16px;font-weight:700;letter-spacing:-.015em;color:var(--on-nav-hi)}
.sidebar .brand .mark i{font-style:normal;color:var(--on-nav-2)}
.sidebar .brand small{display:block;margin-top:3px;font-size:11px;color:var(--on-nav-2);letter-spacing:0;text-transform:none;font-weight:400}
.sidebar nav{padding:4px 10px;flex:1;overflow-y:auto}
.navsec{padding:14px 8px 6px}
.sidebar nav a{
  display:flex;align-items:center;gap:9px;padding:7px 8px;margin-bottom:1px;
  border-radius:var(--r-s);color:var(--on-nav);font-size:13.5px;font-weight:500;
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease);
}
.sidebar nav a svg{width:16px;height:16px;flex:none;color:var(--on-nav-2)}
.sidebar nav a:hover{background:var(--nav-2);color:var(--on-nav-hi);text-decoration:none}
.sidebar nav a.active{background:var(--nav-3);color:var(--on-nav-hi);font-weight:600}
.sidebar nav a.active svg{color:var(--on-nav-hi)}
.sidebar .foot{padding:12px 14px;border-top:1px solid var(--nav-line);display:grid;gap:7px}
.sidebar .foot .who{margin-bottom:7px}
.sidebar .foot button{
  display:flex;align-items:center;gap:7px;width:100%;padding:7px 9px;
  background:none;border:1px solid var(--nav-line);border-radius:var(--r-s);
  color:var(--on-nav);font-family:inherit;font-size:13px;cursor:pointer;
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease);
}
.sidebar .foot button:hover{background:var(--nav-2);color:var(--on-nav-hi);border-color:var(--nav-3)}
.sidebar .foot button svg{width:15px;height:15px}

/* ── Estrutura da página ───────────────────────────────────────────────── */
.main{margin-left:var(--sbw);min-height:100vh}
.topbar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:22px var(--pad) 0;max-width:1180px;
}
.topbar .sub{font-size:12px;color:var(--ink-3)}
.rule{height:20px}                    /* respiro; a régua ornamental saiu */
.wrap{padding:0 var(--pad) 56px;max-width:1180px}

/* ── Blocos ────────────────────────────────────────────────────────────── */
.card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow);overflow:hidden;
}
.cardhead{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:13px 16px;border-bottom:1px solid var(--line-soft);
}

/* Acerto entre sócios: a resposta que os dois abrem a app para ver.
   Ganha superfície própria e escura, o sentido do pagamento fica explícito
   (quem paga, para quem) e a ação que resolve fica ao lado do valor. Não é
   número grande com rótulo pequeno: o valor tem sujeito e destinatário. */
.destaque{
  background:var(--nav);border:1px solid var(--nav-line);border-radius:var(--r);
  padding:18px 22px 0;margin-bottom:22px;color:var(--on-nav-hi);overflow:hidden;
}
.destaque .lbl{color:var(--on-nav-2)}
.destaque-topo{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}

.fluxo{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding-bottom:20px}
.fluxo .parte{display:flex;flex-direction:column;gap:2px}
.fluxo .papel{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--on-nav-2)}
.fluxo .nome{font-size:19px;font-weight:700;letter-spacing:-.01em;line-height:1.15}
.fluxo .seta{color:var(--on-nav-2);flex:none;margin-top:14px}
.fluxo .montante{margin-left:auto;text-align:right;display:flex;flex-direction:column;gap:2px}
.fluxo .montante .papel{color:var(--on-nav-2)}
.fluxo .montante .v{
  font-family:'DM Mono',monospace;font-variant-numeric:tabular-nums;
  font-size:34px;font-weight:500;letter-spacing:-.02em;line-height:1.05;
}
.fluxo .quitado-msg{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:700;letter-spacing:-.01em}
.fluxo .quitado-msg .ic{
  width:26px;height:26px;border-radius:50%;flex:none;display:grid;place-items:center;
  background:var(--pos);color:var(--on-accent);
}

/* leituras de apoio: mesma superfície, peso menor, divisória entre elas */
.leituras{
  display:flex;gap:0;border-top:1px solid var(--nav-line);
  margin:0 -22px;padding:0 6px;
}
.leituras .leitura{flex:1;padding:12px 16px;border-left:1px solid var(--nav-line)}
.leituras .leitura:first-child{border-left:none}
.leituras .leitura .lbl{display:block;margin-bottom:3px}
.leituras .leitura .n{
  font-family:'DM Mono',monospace;font-variant-numeric:tabular-nums;
  font-size:16px;font-weight:500;color:var(--on-nav-hi);
}
.leituras .leitura .n.neg{color:var(--neg-on-nav)}
.leituras .leitura small{display:block;font-size:11.5px;color:var(--on-nav-2);margin-top:2px}

/* botão sobre a superfície escura */
.destaque .btn{background:var(--on-nav-hi);border-color:var(--on-nav-hi);color:var(--nav)}
.destaque .btn:hover{background:var(--on-nav);border-color:var(--on-nav)}

/* aviso de conta que não fecha — o único bloco que pode gritar */
.alerta{
  display:flex;gap:12px;align-items:flex-start;
  background:var(--neg-bg);border:1px solid var(--neg-line);border-radius:var(--r);
  padding:14px 16px;margin-bottom:22px;
}
.alerta .ic{color:var(--neg);flex:none;margin-top:1px}
.alerta h2{color:var(--neg);font-size:14px;margin-bottom:3px}
.alerta p{margin:0;font-size:13px;color:var(--ink-2)}

/* ── Botões ────────────────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  height:34px;padding:0 13px;border-radius:var(--r-s);cursor:pointer;
  background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);
  font-family:inherit;font-size:13.5px;font-weight:600;white-space:nowrap;
  transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease);
}
.btn:hover{background:var(--accent-hi);border-color:var(--accent-hi);text-decoration:none}
.btn:active{transform:translateY(.5px)}
.btn.ghost{background:var(--surface);color:var(--ink-2);border-color:var(--line-field)}
.btn.ghost:hover{background:var(--panel);color:var(--ink);border-color:var(--ink-3)}
.btn.gold{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn.danger{background:var(--surface);color:var(--neg);border-color:var(--neg-line)}
.btn.danger:hover{background:var(--neg-bg)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.lnk{
  background:none;border:none;padding:0;color:var(--accent);cursor:pointer;
  font-family:inherit;font-size:13px;text-decoration:underline;text-underline-offset:2px;
}

/* ── Barra de filtros ──────────────────────────────────────────────────── */
.filterbar{
  display:flex;flex-wrap:wrap;gap:7px;align-items:center;
  padding:11px 16px;border-bottom:1px solid var(--line-soft);background:var(--surface);
}
.fpill{
  display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;
  background:var(--surface);border:1px solid var(--line-field);border-radius:var(--r-s);
  font-size:13px;color:var(--ink-2);cursor:pointer;position:relative;
  transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);
}
.fpill:hover{border-color:var(--ink-3)}
.fpill.on{border-color:var(--accent);background:color-mix(in oklch, var(--accent) 10%, var(--surface));color:var(--ink)}
.fpill .ic,.fpill .caret{color:var(--ink-3);flex:none}
.fpill .fk{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.fpill.on .fk{color:var(--accent)}
.fpill .fv{font-weight:600;color:var(--ink)}
.fpill input[type=search]{border:none;background:none;outline:none;font-family:inherit;font-size:13px;width:130px;color:var(--ink)}
.fpill select{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.fpop-anchor{position:relative}
.fpop{
  position:absolute;top:calc(100% + 6px);left:0;z-index:30;min-width:268px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow-pop);padding:12px;
}
.fpop-presets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.fpop-presets button{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-s);
  padding:5px 9px;font-family:inherit;font-size:12.5px;color:var(--ink-2);cursor:pointer;
}
.fpop-presets button:hover{border-color:var(--ink-3);color:var(--ink)}
.fpop-range{display:flex;align-items:center;gap:8px}
.fpop-range input{
  flex:1;height:32px;padding:0 8px;border:1px solid var(--line-field);border-radius:var(--r-s);
  font-family:'DM Mono',monospace;font-size:12.5px;color:var(--ink);background:var(--surface);
}
.fpop-act{display:flex;justify-content:space-between;align-items:center;margin-top:11px}
.dsep{color:var(--ink-3)}
.fbar-foot{display:flex;align-items:center;gap:10px;margin-left:auto}
.fclear{background:none;border:none;color:var(--ink-2);font-family:inherit;font-size:13px;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.fclear:hover{color:var(--ink)}

/* ── Tabela ────────────────────────────────────────────────────────────── */
.tablewrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13.5px}
thead th{
  background:var(--nav);color:var(--on-nav-2);text-align:left;padding:0;
  /* o rótulo é rótulo mesmo na coluna numérica: a regra .num não pode
     arrastar a monoespaçada para cá */
  font-family:'Nunito Sans',system-ui,sans-serif;
  font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  white-space:nowrap;position:sticky;top:0;z-index:5;
  border-bottom:1px solid var(--nav);
}
thead th .th-lbl{
  padding:9px 14px;cursor:pointer;display:flex;align-items:center;gap:5px;user-select:none;
  transition:color var(--dur) var(--ease);
}
/* Rótulo alinha com o dado da coluna: número à direita, texto à esquerda.
   Cabeçalho à esquerda sobre coluna de valor à direita é desalinho, não estilo. */
/* `.num` tem especificidade maior que `thead th`, então a família precisa ser
   reafirmada aqui, senão o rótulo sai em monoespaçada. */
thead th.num,thead th.mono{
  text-align:right;
  font-family:'Nunito Sans',system-ui,sans-serif;
  font-size:11px;letter-spacing:.06em;
}
thead th.mono{text-align:left}
thead th.mono .th-lbl{justify-content:flex-start}
thead th.num .th-lbl{justify-content:flex-end}
thead th.num .th-lbl .arrow{order:-1}
thead th .th-lbl:hover{color:var(--on-nav-hi)}
thead th .arrow{color:var(--on-nav-hi);font-size:9px}
tbody td{padding:0 14px;height:40px;white-space:nowrap;border-bottom:1px solid var(--line-soft);vertical-align:middle}
/* só a descrição quebra linha: as demais colunas nunca devem empurrar a tabela */
tbody td.desc{white-space:normal;min-width:240px;line-height:1.35;padding-top:8px;padding-bottom:8px}
tbody tr{transition:background var(--dur) var(--ease)}
tbody tr:hover{background:var(--panel)}
tbody tr:last-child td{border-bottom:none}
td.loading{text-align:center;color:var(--ink-3);padding:28px}
.pagbar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 16px;font-size:12px;color:var(--ink-3);border-top:1px solid var(--line-soft);
  background:var(--panel);
}
.pagbar .pg{display:flex;align-items:center;gap:8px}
.pagbar .pg button{height:28px;padding:0 10px;font-size:14px}
.pagbar .mono{font-family:'DM Mono',monospace;font-size:12px}

/* valor com sinal: cor + sinal explícito, nunca só cor */
.sinal-pos{color:var(--pos);font-weight:600}
.sinal-neg{color:var(--neg);font-weight:600}
.zero{color:var(--ink-3)}

/* esqueleto de carregamento na forma da linha */
.sk{display:block;height:11px;border-radius:3px;background:var(--line-soft);animation:pulse 1.1s var(--ease) infinite}
.sk.w40{width:40%}.sk.w60{width:60%}.sk.w80{width:80%}
@keyframes pulse{50%{opacity:.45}}

/* ── Situação ──────────────────────────────────────────────────────────── */
.tag{
  display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:100px;
  font-size:11px;font-weight:600;white-space:nowrap;
  background:var(--panel);color:var(--ink-2);border:1px solid var(--line);
}
.tag::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.8}
.tag.recebido,.tag.rec{background:var(--pos-bg);color:var(--pos);border-color:color-mix(in oklch, var(--pos) 30%, transparent)}
.tag.aberto{background:var(--warn-bg);color:var(--warn);border-color:color-mix(in oklch, var(--warn) 30%, transparent)}
.tag.desp{background:var(--surface);color:var(--ink-2)}
.tag.pago{background:var(--panel);color:var(--ink-2)}
.stamp{
  display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:100px;
  background:var(--neg-bg);border:1px solid var(--neg-line);color:var(--neg);
  font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
}

/* ── Modal ─────────────────────────────────────────────────────────────── */
.ovl{
  position:fixed;inset:0;background:var(--scrim);z-index:60;
  display:flex;align-items:flex-start;justify-content:center;padding:48px 16px;overflow-y:auto;
  animation:fade var(--dur) var(--ease);
}
.ovl[hidden]{display:none}
@keyframes fade{from{opacity:0}}
.modal{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  width:100%;max-width:560px;box-shadow:var(--shadow-pop);
  animation:pop .18s var(--ease);
}
@keyframes pop{from{opacity:0;transform:translateY(6px)}}
.modal header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line-soft)}
.modal header h2{font-size:16px}
.modal header button{background:none;border:none;font-size:20px;color:var(--ink-3);cursor:pointer;line-height:1;padding:0 4px}
.modal header button:hover{color:var(--ink)}
.modal .body{padding:20px}
.modal footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--line-soft);background:var(--panel)}

/* ── Formulário ────────────────────────────────────────────────────────── */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.fld{margin-bottom:14px}
.fld label{display:block;margin-bottom:5px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.fld input,.fld select,.fld textarea{
  width:100%;height:36px;padding:0 10px;background:var(--surface);
  border:1px solid var(--line-field);border-radius:var(--r-s);
  font-family:inherit;font-size:14px;color:var(--ink);outline:none;
  transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
.fld input.num,.fld input[type=date]{font-family:'DM Mono',monospace;font-size:13px}
.fld input:hover,.fld select:hover,.fld textarea:hover{border-color:var(--ink-3)}
.fld input:focus,.fld select:focus,.fld textarea:focus{
  border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklch, var(--accent) 22%, transparent);outline:none;
}
.fld input:read-only{background:var(--panel);color:var(--ink-2)}
.fld textarea{height:auto;min-height:62px;padding:8px 10px;resize:vertical}
.check{display:flex;align-items:center;gap:9px;padding:10px 12px;background:var(--panel);border:1px solid var(--line-field);border-radius:var(--r-s);cursor:pointer}
.check input{width:16px;height:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.check span{font-size:13.5px}
.erro{
  display:flex;gap:8px;background:var(--neg-bg);border:1px solid var(--neg-line);
  color:var(--neg);padding:9px 12px;border-radius:var(--r-s);font-size:13px;margin-bottom:14px;
}
.erro[hidden]{display:none}

/* ── Auditoria ─────────────────────────────────────────────────────────── */
.recon{display:flex;flex-direction:column}
.recon .li{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line-soft)}
.recon .li:last-child{border-bottom:none}
.recon .st{
  width:17px;height:17px;border-radius:50%;flex:none;display:grid;place-items:center;
  font-size:10px;font-weight:700;color:var(--on-accent);
}
.recon .st.ok{background:var(--pos)}
.recon .st.no{background:var(--neg)}
.recon .txt{flex:1;font-size:13.5px}
.recon .vals{font-family:'DM Mono',monospace;font-size:12px;color:var(--ink-3);white-space:nowrap}
.recon .li.falha{background:var(--neg-bg)}
.recon .li.falha .vals{color:var(--neg);font-weight:500}

/* abas = fontes de dado */
.tabs{display:flex;gap:2px;margin-top:22px;border-bottom:1px solid var(--line);overflow-x:auto}
.tabs button{
  padding:8px 14px;background:none;border:none;border-bottom:2px solid transparent;
  font-family:inherit;font-size:13px;font-weight:600;color:var(--ink-3);cursor:pointer;white-space:nowrap;
  transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease);
}
.tabs button:hover{color:var(--ink)}
.tabs button.on{color:var(--ink);border-bottom-color:var(--accent)}

.cobertura{display:grid;grid-template-columns:repeat(auto-fit,minmax(184px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:22px}
.cob{background:var(--surface);padding:13px 15px}
.cob .f{margin-bottom:5px}
.cob .n{font-family:'DM Mono',monospace;font-size:19px;font-weight:500;color:var(--ink);line-height:1.1}
.cob .d{margin-top:4px;font-size:11.5px;color:var(--ink-3)}

/* ── Gráfico de barras ─────────────────────────────────────────────────── */
.bars{padding:16px}
.bar{display:grid;grid-template-columns:132px 1fr;gap:12px;align-items:center;margin-bottom:10px}
.bar:last-child{margin-bottom:0}
.bar .nm{font-size:13px;text-align:right;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar .track{position:relative;height:20px;background:var(--panel);border-radius:3px}
.bar .fill{position:absolute;inset:0 auto 0 0;border-radius:3px;background:var(--pos-bar)}
.bar .fill.neg{background:var(--neg-bar)}
.bar svg.dl{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}

/* ── Entrar / trocar senha ─────────────────────────────────────────────── */
.authpage{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}
.authbox{
  width:100%;max-width:368px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r);padding:30px 28px 26px;box-shadow:var(--shadow-pop);
}
.authbox .mark{font-size:17px;font-weight:700;letter-spacing:-.015em;color:var(--ink)}
.authbox .mark i{font-style:normal;color:var(--ink-3)}
.authbox .tag2{font-size:12.5px;color:var(--ink-3);margin:2px 0 24px}
.authbox p.msg{font-size:13px;color:var(--ink-2);margin:0 0 18px}
.authbox .orn{display:none}

/* ── Vazio ─────────────────────────────────────────────────────────────── */
.empty{padding:34px 20px;text-align:center;color:var(--ink-2);font-size:13.5px}
.empty strong{display:block;color:var(--ink);font-size:14px;font-weight:600;margin-bottom:4px}
.right{text-align:right}

/* ── Telas pequenas ────────────────────────────────────────────────────── */
/* A barra lateral vira faixa de navegação no topo (são seis destinos, não
   precisa de gaveta) e cada linha de tabela vira um bloco rotulado — tabela
   rolando na horizontal no celular esconde justamente a coluna do valor. */
@media(max-width:860px){
  :root{--sbw:0px;--pad:16px}
  /* marca e usuário dividem a primeira linha; a navegação ocupa a segunda */
  .sidebar{
    position:static;width:100%;border-right:none;border-bottom:1px solid var(--line);
    display:grid;grid-template-columns:1fr auto;align-items:center;
  }
  .sidebar .brand{grid-area:1/1;display:flex;align-items:baseline;gap:8px;padding:12px 4px 8px 16px;min-width:0}
  .sidebar .brand small{margin-top:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sidebar .foot{grid-area:1/2;display:flex;align-items:center;gap:10px;padding:12px 16px 8px 4px;border-top:none}
  .sidebar .foot .who{margin:0;white-space:nowrap}
  .sidebar .foot button{width:auto;min-height:36px;padding:0 10px}
  .sidebar nav{grid-area:2/1/3/3;display:flex;gap:2px;padding:0 10px 8px;overflow-x:auto;scrollbar-width:none}
  .sidebar nav::-webkit-scrollbar{display:none}
  .sidebar .navsec{display:none}
  .sidebar nav a{padding:7px 11px;white-space:nowrap;min-height:38px}
  .main{margin-left:0}

  .destaque{padding:16px 16px 0}
  .fluxo{gap:12px;padding-bottom:16px}
  .fluxo .nome{font-size:17px}
  .fluxo .montante{margin-left:0;width:100%;text-align:left}
  .fluxo .montante .v{font-size:28px}
  .destaque-topo{flex-wrap:wrap}
  .leituras{flex-direction:column;margin:0 -16px;padding:0}
  .leituras .leitura{border-left:none;border-top:1px solid var(--nav-line);padding:10px 16px}
  .leituras .leitura:first-child{border-top:none}

  table,thead,tbody,tr,td{display:block}
  thead{display:none}
  tbody tr{
    border:1px solid var(--line);border-radius:var(--r-s);margin:10px 12px;padding:4px 0;
    background:var(--surface);
  }
  tbody tr:hover{background:var(--surface)}
  tbody td{
    display:flex;align-items:center;justify-content:space-between;gap:14px;
    height:auto;min-height:34px;padding:6px 12px;border-bottom:1px solid var(--line-soft);
  }
  tbody td:last-child{border-bottom:none}
  tbody td::before{
    content:attr(data-l);flex:none;
    font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);
  }
  td.num,td.mono{text-align:right}
  td.loading{justify-content:center}
  td.loading::before{content:none}

  .grid2,.grid3{grid-template-columns:1fr}
  .btn{height:40px}
  .bar{grid-template-columns:96px 1fr}
  .filterbar{padding:10px 12px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important}
}
