/* Calculadora Trader — estilos (tokens, base e layout da interface). */
  :root{
    --paper:#F2F5EF;
    --paper-raised:#FFFFFF;
    --ink:#1C2B22;
    --ink-muted:#5B6B60;
    --line:#D9E0D3;
    --line-strong:#C1CBB9;
    --accent:#443577;
    --accent-ink:#FFFFFF;
    --accent-soft:#ECE8F8;
    --good:#1E7A4C;
    --good-soft:#E3F3E9;
    --critical:#AA372B;
    --critical-soft:#FAEAE7;
    --warning:#966018;
    --warning-soft:#F8EEDA;
    --shadow: 0 1px 2px rgba(28,43,34,0.06);
    --radius: 10px;
    --font-display: Georgia, 'Iowan Old Style', 'Palatino Linotype', 'Times New Roman', serif;
    --font-body: 'Segoe UI', -apple-system, system-ui, Roboto, Helvetica, Arial, sans-serif;
    --font-mono: Consolas, 'SF Mono', 'Cascadia Mono', 'Courier New', monospace;
  }
  @media (prefers-color-scheme: dark){
    :root{
      --paper:#12160F;
      --paper-raised:#1A211A;
      --ink:#E6ECE2;
      --ink-muted:#93A08D;
      --line:#2B342A;
      --line-strong:#3A4538;
      --accent:#BBAAF0;
      --accent-ink:#181229;
      --accent-soft:#241E3D;
      --good:#68D19C;
      --good-soft:#152A20;
      --critical:#F0968A;
      --critical-soft:#331A17;
      --warning:#E7BE72;
      --warning-soft:#332A16;
      --shadow: 0 1px 2px rgba(0,0,0,0.35);
    }
  }

  *{ box-sizing:border-box; }
  html,body{ margin:0; padding:0; }
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:var(--font-body);
    font-size:15px;
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:0.001ms !important; transition-duration:0.001ms !important; }
  }

  .wrap{ max-width:960px; margin:0 auto; padding:36px 20px 80px; }

  header.letterhead{
    border-bottom:2px solid var(--ink);
    padding-bottom:18px;
    margin-bottom:28px;
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:16px;
    flex-wrap:wrap;
  }
  header.letterhead h1{
    font-family:var(--font-display);
    font-weight:700;
    font-size:clamp(28px,4vw,38px);
    margin:0 0 6px;
    text-wrap:balance;
    letter-spacing:-0.01em;
  }
  header.letterhead p{ margin:0; color:var(--ink-muted); font-size:13.5px; max-width:56ch; }
  header.letterhead p.donation-note{ margin-top:8px; font-size:12px; }
  .pix-block{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:3px;
    flex-shrink:0;
  }
  .pix-block .hint{ font-size:10px; text-transform:uppercase; letter-spacing:0.05em; }
  .pix-qr{
    display:block;
    line-height:0;
    background:#fff;
    padding:6px;
    border-radius:8px;
    border:1px solid var(--line);
  }
  .pix-qr svg{ width:80px; height:80px; display:block; }
  .status-pill{
    font-family:var(--font-mono);
    font-size:11.5px;
    letter-spacing:0.03em;
    text-transform:uppercase;
    padding:5px 10px;
    border-radius:999px;
    border:1px solid var(--line-strong);
    color:var(--ink-muted);
    white-space:nowrap;
    display:inline-flex;
    align-items:center;
    gap:6px;
  }
  .status-pill .dot{ width:6px; height:6px; border-radius:50%; background:var(--ink-muted); }
  .status-pill.ok .dot{ background:var(--good); }
  .status-pill.ok{ color:var(--good); border-color:var(--good); }
  .status-pill.err .dot{ background:var(--critical); }
  .status-pill.err{ color:var(--critical); border-color:var(--critical); }

  .titular-bar{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    background:var(--accent-soft);
    border:1px solid var(--accent);
    border-radius:var(--radius);
    padding:8px 14px;
    margin-bottom:20px;
    font-size:13px;
  }
  .titular-bar select{ width:auto; font-weight:600; color:var(--accent); border-color:var(--accent); }
  .titular-bar .hint{ color:var(--ink-muted); }

  .stats{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
    border-radius:var(--radius);
    overflow:hidden;
    margin-bottom:28px;
  }
  .stat{ background:var(--paper-raised); padding:16px 16px 14px; min-width:0; }
  .stat .label{ font-size:11px; text-transform:uppercase; letter-spacing:0.05em; color:var(--ink-muted); margin-bottom:8px; }
  .stat .value{ font-family:var(--font-mono); font-variant-numeric:tabular-nums; font-size:20px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .stat .value.good{ color:var(--good); }
  .stat .value.critical{ color:var(--critical); }
  .stat .sub{ font-size:11.5px; color:var(--ink-muted); margin-top:4px; }
  @media (max-width:680px){ .stats{ grid-template-columns:repeat(2,1fr); } }

  .card{
    background:var(--paper-raised);
    border:1px solid var(--line);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    padding:22px;
    margin-bottom:28px;
  }
  h2.section-title{ font-family:var(--font-display); font-size:19px; font-weight:700; margin:0 0 4px; }
  .section-sub{ color:var(--ink-muted); font-size:13px; margin:0 0 18px; }
  .section-sub code, .hint code{ font-family:var(--font-mono); background:var(--paper); border:1px solid var(--line); border-radius:4px; padding:1px 5px; font-size:12px; }

  .dropzone{
    border:1.5px dashed var(--line-strong);
    border-radius:var(--radius);
    padding:26px 20px;
    text-align:center;
    color:var(--ink-muted);
    font-size:13.5px;
    cursor:pointer;
    transition:border-color .15s, background .15s;
  }
  .dropzone:hover, .dropzone.dragover{ border-color:var(--accent); background:var(--accent-soft); color:var(--ink); }
  .dropzone strong{ color:var(--ink); }
  .dropzone input{ display:none; }

  #pdf-status{ font-size:12.5px; color:var(--ink-muted); margin-top:10px; min-height:1.4em; }
  #pdf-status.err{ color:var(--critical); }

  form#entry-form{
    display:grid;
    grid-template-columns:1.4fr 1.1fr 1fr 1.2fr 1.2fr 1.6fr auto;
    gap:12px;
    align-items:end;
  }
  @media (max-width:1100px){ form#entry-form{ grid-template-columns:1fr 1fr 1fr; } }
  @media (max-width:820px){ form#entry-form{ grid-template-columns:1fr 1fr; } }
  .field{ display:flex; flex-direction:column; gap:6px; min-width:0; }
  .field label{ font-size:11.5px; text-transform:uppercase; letter-spacing:0.04em; color:var(--ink-muted); }
  input, select{
    font-family:var(--font-mono);
    font-size:14px;
    padding:9px 10px;
    border:1px solid var(--line-strong);
    border-radius:7px;
    background:var(--paper);
    color:var(--ink);
    width:100%;
  }
  input:focus, select:focus, button:focus-visible{ outline:2px solid var(--accent); outline-offset:1px; }
  select{ font-family:var(--font-body); }
  .hint{ font-size:11px; color:var(--ink-muted); font-family:var(--font-body); }

  button{
    font-family:var(--font-body);
    font-weight:600;
    font-size:13.5px;
    border:none;
    border-radius:7px;
    padding:10px 16px;
    cursor:pointer;
  }
  button.primary{ background:var(--accent); color:var(--accent-ink); }
  button.primary:hover{ filter:brightness(1.06); }
  button.primary:disabled{ opacity:.5; cursor:not-allowed; }
  button.ghost{ background:transparent; border:1px solid var(--line-strong); color:var(--ink); padding:6px 10px; font-size:12.5px; font-weight:500; }
  button.ghost:hover{ border-color:var(--accent); color:var(--accent); }
  button.danger-ghost{ background:transparent; border:1px solid var(--line-strong); color:var(--critical); padding:6px 10px; font-size:12.5px; font-weight:500; }
  button.danger-ghost:hover{ border-color:var(--critical); background:var(--critical-soft); }

  .table-scroll{ overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius); }
  table{ border-collapse:collapse; width:100%; min-width:760px; }
  thead th{
    text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:0.04em;
    color:var(--ink-muted); padding:10px 12px; border-bottom:1px solid var(--line-strong);
    background:var(--paper); white-space:nowrap;
  }
  tbody td{ padding:8px 10px; border-bottom:1px solid var(--line); font-size:13.5px; vertical-align:middle; }
  tbody tr:last-child td{ border-bottom:none; }
  tbody tr:hover{ background:var(--paper); }
  td.num, th.num{ font-family:var(--font-mono); font-variant-numeric:tabular-nums; text-align:right; white-space:nowrap; }
  td.neg{ color:var(--critical); }
  td.pos{ color:var(--good); }
  td.nowrap{ white-space:nowrap; }

  .cat-chip{ display:inline-block; font-size:11px; font-weight:600; padding:2px 8px; border-radius:999px; text-transform:uppercase; letter-spacing:0.03em; }
  .cat-chip.acoes{ background:var(--accent-soft); color:var(--accent); }
  .cat-chip.futuros{ background:var(--warning-soft); color:var(--warning); }

  .origin-chip{ display:inline-block; font-size:10.5px; font-weight:600; padding:1px 7px; border-radius:999px; background:var(--paper); border:1px solid var(--line-strong); color:var(--ink-muted); }

  .badge{ display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:600; padding:3px 9px; border-radius:999px; white-space:nowrap; }
  .badge.pago{ background:var(--good-soft); color:var(--good); }
  .badge.pendente{ background:var(--critical-soft); color:var(--critical); }
  .badge.minimo{ background:var(--warning-soft); color:var(--warning); }
  .badge.isento{ background:var(--paper); color:var(--ink-muted); border:1px solid var(--line-strong); }

  .row-actions{ display:flex; gap:6px; }
  .empty{ padding:28px 20px; text-align:center; color:var(--ink-muted); font-size:13.5px; }
  .toolbar{ display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:14px; flex-wrap:wrap; }
  .toolbar select{ width:auto; }

  .chart-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:8px; }
  @media (max-width:720px){ .chart-row{ grid-template-columns:1fr; } }
  .chart-block{ min-width:0; }
  .chart-title{ font-size:11px; font-weight:600; color:var(--ink-muted); text-transform:uppercase; letter-spacing:0.05em; margin-bottom:6px; }
  .chart-wrap{
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:10px 6px 4px;
    background:var(--paper-raised);
  }
  .chart-wrap canvas{ display:block; width:100%; height:160px; cursor:crosshair; }
  .chart-legend{ display:flex; gap:14px; margin:8px 0 4px; font-size:11.5px; color:var(--ink-muted); }
  .legend-dot{ display:inline-block; width:9px; height:9px; border-radius:50%; margin:0 5px 0 0; vertical-align:middle; }
  .chart-tooltip{
    position:fixed;
    pointer-events:none;
    z-index:80;
    display:none;
    background:var(--ink);
    color:var(--paper-raised);
    font-family:var(--font-mono);
    font-size:12px;
    line-height:1.5;
    padding:6px 10px;
    border-radius:6px;
    box-shadow:0 6px 16px rgba(0,0,0,0.2);
    white-space:nowrap;
  }
  .chart-tooltip .tt-value{ font-weight:600; }

  .staging-warn{ font-size:11.5px; color:var(--warning); margin-top:3px; }
  .staging-file{ font-size:11px; color:var(--ink-muted); }

  .backup-row{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
  #backup-status{ font-size:12.5px; color:var(--ink-muted); }
  #backup-status.err{ color:var(--critical); }
  #backup-status.ok{ color:var(--good); }

  footer{ border-top:1px solid var(--line); margin-top:8px; padding-top:18px; color:var(--ink-muted); font-size:12px; line-height:1.6; }
  footer strong{ color:var(--ink); }

  #v3app{max-width:1180px;margin:0 auto;padding:30px 20px 70px;font-family:'Segoe UI',system-ui,sans-serif;color:var(--ink);}
  #v3app *{box-sizing:border-box} #v3app h1{font-family:var(--font-display);font-size:34px;margin:0 0 5px}
  #v3app .top{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;border-bottom:2px solid var(--ink);padding-bottom:16px;margin-bottom:20px;flex-wrap:wrap}
  #v3app .sub{color:var(--ink-muted);font-size:13px;margin:0} #v3app .pill{font:11px var(--font-mono);border:1px solid var(--line-strong);border-radius:999px;padding:5px 10px}
  #v3app .activebar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--accent-soft);border:1px solid var(--accent);border-radius:10px;padding:9px 13px;margin-bottom:20px}
  #v3app .activebar select{width:auto;min-width:300px;font-weight:600;color:var(--accent)}
  #v3app .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:24px}
  #v3app .stat{background:var(--paper-raised);padding:15px}.stat .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-muted)}.stat .v{font:600 19px var(--font-mono);margin-top:7px}.stat .s{font-size:11px;color:var(--ink-muted);margin-top:3px}
  #v3app .card{background:var(--paper-raised);border:1px solid var(--line);border-radius:10px;padding:20px;margin-bottom:22px;box-shadow:var(--shadow)}
  #v3app h2{font-family:var(--font-display);font-size:19px;margin:0 0 4px} #v3app .desc{font-size:12.5px;color:var(--ink-muted);margin:0 0 16px}
  #v3app .row{display:flex;gap:10px;align-items:end;flex-wrap:wrap} #v3app .field{display:flex;flex-direction:column;gap:5px;min-width:130px;flex:1}.field label{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted)}
  #v3app input,#v3app select{font:13px var(--font-mono);padding:9px 10px;border:1px solid var(--line-strong);border-radius:7px;background:var(--paper);color:var(--ink);width:100%}
  #v3app button{font:600 13px var(--font-body);border:0;border-radius:7px;padding:9px 14px;cursor:pointer} #v3app .primary{background:var(--accent);color:var(--accent-ink)} #v3app .ghost{background:transparent;color:var(--ink);border:1px solid var(--line-strong)} #v3app .danger{background:transparent;color:var(--critical);border:1px solid var(--line-strong)}
  #v3app .scroll{overflow:auto;border:1px solid var(--line);border-radius:9px} #v3app table{border-collapse:collapse;width:100%;min-width:820px} #v3app th{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;text-align:left;color:var(--ink-muted);padding:9px 10px;background:var(--paper);border-bottom:1px solid var(--line-strong);white-space:nowrap} #v3app td{font-size:13px;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle} #v3app .num{text-align:right;font-family:var(--font-mono);white-space:nowrap}.pos{color:var(--good)}.neg{color:var(--critical)}
  #v3app .badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:10.5px;font-weight:600;white-space:nowrap}.ok{background:var(--good-soft);color:var(--good)}.bad{background:var(--critical-soft);color:var(--critical)}.warn{background:var(--warning-soft);color:var(--warning)}.neutral{background:var(--paper);border:1px solid var(--line-strong);color:var(--ink-muted)}
  #v3app .drop{border:1.5px dashed var(--line-strong);border-radius:10px;padding:24px;text-align:center;color:var(--ink-muted);cursor:pointer}.drop.drag{border-color:var(--accent);background:var(--accent-soft)} #v3app .status{font-size:12px;color:var(--ink-muted);margin-top:8px}.status.err{color:var(--critical)}
  #v3app .charts{display:grid;grid-template-columns:1fr 1fr;gap:14px} #v3app .chartbox{border:1px solid var(--line);border-radius:10px;padding:9px;background:var(--paper-raised)} #v3app .charttitle{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-muted);margin-bottom:4px} #v3app canvas{display:block;width:100%;height:240px}
  #v3app .tip{position:fixed;z-index:9999;display:none;pointer-events:none;background:var(--ink);color:var(--paper-raised);font:12px var(--font-mono);padding:6px 9px;border-radius:6px;white-space:nowrap}
  #v3app .small{font-size:11px;color:var(--ink-muted)} #v3app .warningline{font-size:11px;color:var(--warning);margin-top:4px}
  @media(max-width:760px){#v3app .stats{grid-template-columns:1fr 1fr}#v3app .charts{grid-template-columns:1fr}#v3app .activebar select{min-width:0;width:100%}}
  #v3app .warn-pill{color:var(--warning);border-color:var(--warning)}
  #v3app code{font-family:var(--font-mono);font-size:11.5px;background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:0 4px}
