:root{
    --bg:#F5F7FA;--surface:#FFFFFF;--ink:#111827;--ink2:#565F6E;--line:#E5E7EB;
    --zebra:#F8F8F9; /* 3% de --ink sobre --surface */
    --accent:#2980A9;--accent-ink:#1B6187;--navy:#0C2233;--ok:#15803D;--warn:#B45309;--bad:#B91C1C;
    --radius:12px;--font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
    --tag-hot-bg:#FDECEC;--tag-hot-ink:#B91C1C;
    --tag-warm-bg:#FDF3E4;--tag-warm-ink:#9A4207;
    --tag-cold-bg:#EEF1F4;--tag-cold-ink:#565F6E;
    --tag-renov-bg:#E7F1F6;--tag-renov-ink:#1B6187;
    --tag-cortesia-bg:#FDF3E4;--tag-cortesia-ink:#9A4207;
    --tag-organica-bg:#E7F5EC;--tag-organica-ink:#166534;
    --saude-ok-bg:#E3F3E8;--saude-ok-ink:#14532D;
    --saude-bad-bg:#FDECEC;--saude-bad-ink:#991B1B;
    --tooltip-bg:#0C2233;--tooltip-ink:#FFFFFF;
    --barra-ativa:#1B6187;
  }
  @media(prefers-color-scheme:dark){
    :root:not([data-theme="light"]){
      --bg:#0B1220;--surface:#111A2B;--ink:#E5E7EB;--ink2:#9CA3AF;--line:#1F2A3D;
      --zebra:#1E2637; /* 6% de --ink sobre --surface */
      --accent-ink:#8FD2EE;--warn:#F0C382;
      --tag-hot-bg:#3B1D22;--tag-hot-ink:#F8B4B4;
      --tag-warm-bg:#3A2A16;--tag-warm-ink:#F5C98A;
      --tag-cold-bg:#263041;--tag-cold-ink:#D3D8DF;
      --tag-renov-bg:#17364A;--tag-renov-ink:#9BD8F2;
      --tag-cortesia-bg:#3A2A16;--tag-cortesia-ink:#F5C98A;
      --tag-organica-bg:#143526;--tag-organica-ink:#9BE6B4;
      --saude-ok-bg:#143526;--saude-ok-ink:#9BE6B4;
      --saude-bad-bg:#3B1D22;--saude-bad-ink:#F8B4B4;
      --tooltip-bg:#E5E7EB;--tooltip-ink:#0C2233;
      --barra-ativa:#8FD2EE;
    }
  }
  :root[data-theme="dark"]{
    --bg:#0B1220;--surface:#111A2B;--ink:#E5E7EB;--ink2:#9CA3AF;--line:#1F2A3D;
    --zebra:#1E2637; /* 6% de --ink sobre --surface */
    --accent-ink:#8FD2EE;--warn:#F0C382;
    --tag-hot-bg:#3B1D22;--tag-hot-ink:#F8B4B4;
    --tag-warm-bg:#3A2A16;--tag-warm-ink:#F5C98A;
    --tag-cold-bg:#263041;--tag-cold-ink:#D3D8DF;
    --tag-renov-bg:#17364A;--tag-renov-ink:#9BD8F2;
    --tag-cortesia-bg:#3A2A16;--tag-cortesia-ink:#F5C98A;
    --tag-organica-bg:#143526;--tag-organica-ink:#9BE6B4;
    --saude-ok-bg:#143526;--saude-ok-ink:#9BE6B4;
    --saude-bad-bg:#3B1D22;--saude-bad-ink:#F8B4B4;
    --tooltip-bg:#E5E7EB;--tooltip-ink:#0C2233;
    --barra-ativa:#8FD2EE;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  [hidden]{display:none!important}
  body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;-webkit-font-smoothing:antialiased;line-height:1.5}
  #login{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}
  .login-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:32px 28px 28px;box-shadow:0 12px 40px rgba(12,34,51,.08)}
  .login-logo{display:block;height:34px;width:auto;margin-bottom:6px}
  .login-sub{font-size:13px;color:var(--ink2);margin-bottom:26px}
  .login-txt{font-size:14px;color:var(--ink2);margin-bottom:18px;line-height:1.5}
  .login-txt strong{color:var(--ink);font-weight:600}
  .rotulo{display:block;font-size:12px;font-weight:600;color:var(--ink2);margin-bottom:6px}
  #login input{display:block;width:100%;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:0 14px;height:48px;color:var(--ink);font-size:16px;font-family:var(--font);margin-bottom:12px;outline:none;transition:border-color .12s ease,box-shadow .12s ease}
  #login input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(41,128,169,.18);background:var(--surface)}
  .input-codigo{font-size:24px!important;letter-spacing:.35em;text-align:center;font-variant-numeric:tabular-nums;font-weight:600}
  .btn-principal{display:block;width:100%;height:48px;background:#1B6187;border:none;border-radius:10px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;font-family:var(--font);transition:background-color .12s ease}
  .btn-principal:hover{background:#164564}
  .btn-principal:disabled{opacity:.6;cursor:wait}
  .link{background:none;border:none;padding:0;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
  #login .erro{color:var(--bad);font-size:13px;min-height:18px;margin-top:12px}
  :root[data-theme="dark"] .login-card{background:var(--navy);border-color:#1B3A50}
  :root[data-theme="dark"] .login-logo{content:url("laude-logo-escuro-v2.png")}
  :root[data-theme="dark"] #login input{background:#0A1B2B;border-color:#1B3A50}
  :focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  #app{display:none;max-width:1320px;margin:0 auto;padding:20px 20px 60px}

  /* Escala tipográfica fechada: 12 apoio, 14 corpo, 20 título de seção, 32 número grande */

  header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:28px}
  header .marca{display:flex;align-items:center;gap:14px;min-width:0}
  header h1{display:flex;align-items:center;line-height:0}
  .logo{display:block;width:auto}
  .logo-claro{height:28px}
  .logo-escuro{height:34px;display:none}
  :root[data-theme="dark"] .logo-claro{display:none}
  :root[data-theme="dark"] .logo-escuro{display:block}
  header .meta{font-size:12px;color:var(--ink2);white-space:nowrap}
  header .lado-direito{display:flex;align-items:center;gap:8px;flex-shrink:0}
  .icbtn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
    background:var(--surface);border:1px solid var(--line);border-radius:9px;cursor:pointer;color:var(--ink)}
  .icbtn svg{width:16px;height:16px}
  .btn-sair{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:0 16px;height:44px;
    color:var(--ink);font-size:14px;font-weight:600;cursor:pointer;font-family:var(--font)}
  .icbtn:hover,.btn-sair:hover{border-color:var(--accent)}

  section.secao{margin-bottom:40px}
  section.secao:last-child{margin-bottom:0}
  .secao-titulo{display:flex;align-items:baseline;gap:16px;margin-bottom:16px}
  .secao-titulo h2{font-size:20px;font-weight:600;letter-spacing:-.01em;color:var(--ink);white-space:nowrap}
  .secao-titulo .linha{flex:1;height:1px;background:var(--line)}

  /* Saúde: barra fina no topo de Agora */
  .saude{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 16px;border-radius:8px;margin-bottom:24px;font-weight:600;flex-wrap:wrap}
  .saude.ok{background:transparent;color:var(--ink2);padding-left:2px}
  .saude.ok .dot{background:var(--saude-ok-ink)}
  .saude.bad{background:var(--saude-bad-bg);color:var(--saude-bad-ink)}
  .saude .dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0}
  .saude .detalhe{font-weight:400;margin-left:auto;text-align:right}

  .kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
  .kpis.cinco{grid-template-columns:repeat(5,1fr)}
  @media(max-width:1000px){.kpis.cinco{grid-template-columns:repeat(3,1fr)}}
  .kpis.quatro{grid-template-columns:repeat(4,1fr)}
  .kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;min-height:96px;display:flex;flex-direction:column;justify-content:flex-start;min-width:0}
  .kpi .rot{font-size:12px;color:var(--ink2);margin-bottom:4px;font-weight:500}
    .acao .val{font-size:32px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.2;overflow-wrap:anywhere}
  .kpi .val{font-size:20px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.2;overflow-wrap:anywhere}
  .kpi .sub{font-size:12px;color:var(--ink2);margin-top:2px}
  .semdado{font-size:14px;font-weight:500;color:var(--ink2)}

  /* Hoje eu preciso: número grande + ação */
  .acoes{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
  .acao{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:4px;min-width:0}
  .acao .rot{font-size:14px;font-weight:600;color:var(--ink)}
  .acao .sub{font-size:12px;color:var(--ink2);margin-bottom:8px}
  .acao.zero .val{color:var(--ink2)}
  .btn-ver{margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 16px;
    border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--accent-ink);font-size:14px;font-weight:600;cursor:pointer;font-family:var(--font);align-self:flex-start;text-decoration:none}
  .btn-ver svg{width:14px;height:14px}
  .btn-ver:hover{border-color:var(--accent)}

  details.dobra>summary{list-style:none;cursor:pointer}
  details.dobra>summary::-webkit-details-marker{display:none}
  .dobra-seta{display:none;width:20px;height:20px;border-right:2px solid var(--ink2);border-bottom:2px solid var(--ink2);transform:rotate(45deg) scale(.55);margin-left:6px;transition:transform .15s ease}
  details.dobra:not([open]) .dobra-seta{transform:rotate(-45deg) scale(.55)}
  .blocos{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
  .blocos>*{min-width:0}
  @media(max-width:860px){.blocos{grid-template-columns:1fr}}

  .card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;min-height:96px;min-width:0;scroll-margin-top:12px}
  .card.largo{grid-column:1/-1}
  .card:target{border-color:var(--accent)}
  .card h3{font-size:14px;font-weight:600;color:var(--ink);margin-bottom:16px}
  .card h4{font-size:12px;font-weight:600;color:var(--ink2);margin:16px 0 8px}
  .card h4:first-of-type{margin-top:0}
  .card-topo{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
  .card-topo h3{margin-bottom:0}
  .card-topo .total{font-size:14px;color:var(--ink2);white-space:nowrap}
  .card-topo .total strong{color:var(--ink);font-weight:600}

  /* Tabelas: scroll horizontal interno, primeira coluna fixa */
  .tblcaixa{position:relative}
  .tblcaixa.rolavel:not(.rolou)::after{content:"";position:absolute;top:0;right:0;bottom:0;width:28px;background:linear-gradient(to right,transparent,var(--surface));pointer-events:none}
  .tblwrap{overflow-x:auto;overflow-y:hidden;max-width:100%;-webkit-overflow-scrolling:touch}
  .tblcaixa.rolavel .tblwrap table,.tblcaixa.rolavel .tblwrap-scroll table{padding-right:28px}
  .tblwrap:focus-visible,.tblwrap-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  .tblwrap-scroll{max-height:420px;overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:8px;-webkit-overflow-scrolling:touch}
  table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}
  td,th{text-align:left;padding:8px 12px;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle;background:var(--surface)}
  th{color:var(--ink2);font-weight:600;font-size:12px}
  tbody tr:nth-child(even) td{background:var(--zebra)}
  tbody tr:last-child td{border-bottom:none}
  td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
  td.quebra{white-space:normal;min-width:220px}
  td:first-child,th:first-child{position:sticky;left:0;z-index:1;max-width:min(45vw,260px);overflow:hidden;text-overflow:ellipsis}
  .rolou td:first-child,.rolou th:first-child{box-shadow:1px 0 0 var(--line)}
  .tblwrap-scroll thead th{position:sticky;top:0;z-index:2;box-shadow:0 1px 0 var(--line)}
  .tblwrap-scroll thead th:first-child{z-index:3}
  .rolou .tblwrap-scroll thead th:first-child{box-shadow:1px 1px 0 var(--line)}

  .tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:6px;font-size:12px;font-weight:600;white-space:nowrap;line-height:1.4;vertical-align:middle}
  .tag svg{width:12px;height:12px;flex-shrink:0}
  .tag.hot{background:var(--tag-hot-bg);color:var(--tag-hot-ink)}
  .tag.warm,.tag.whats{background:var(--tag-warm-bg);color:var(--tag-warm-ink)}
  .tag.cold{background:var(--tag-cold-bg);color:var(--tag-cold-ink)}
  .tag.renovacao{background:var(--tag-renov-bg);color:var(--tag-renov-ink)}
  .tag.cortesia{background:var(--tag-cortesia-bg);color:var(--tag-cortesia-ink)}
  .tag.organica{background:var(--tag-organica-bg);color:var(--tag-organica-ink)}
  .stars{color:var(--warn);letter-spacing:1px}
  .muted{color:var(--ink2);font-size:12px}
  .vazio{color:var(--ink2);font-size:14px;padding:8px 0}

  .miniKpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:16px}
  .miniKpi{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:12px;min-width:0}
  .miniKpi .rot{font-size:12px;color:var(--ink2);margin-bottom:4px;font-weight:500}
  .miniKpi .val{font-size:20px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
  .miniKpi .sub{font-size:12px;color:var(--ink2);margin-top:2px}

  /* Gráfico de barras: eixo com dias, tooltip, total no canto */
  .grafico{position:relative;margin-bottom:16px}
  .barras{display:grid;gap:3px;align-items:end;height:72px;border-bottom:1px solid var(--line)}
  .barras .col{background:var(--accent);border-radius:2px 2px 0 0;min-height:2px;min-width:0;cursor:default;position:relative}
  .barras .col[data-v]::after{content:attr(data-v);position:absolute;left:50%;top:-18px;transform:translateX(-50%);font-size:12px;font-weight:600;color:var(--ink2);font-variant-numeric:tabular-nums}
  .barras{margin-top:20px}
  .barras .col.zero{background:var(--line)}
  .barras .col:hover,.barras .col.ativa{background:var(--barra-ativa)}
  .eixo{position:relative;height:20px;margin-top:4px}
  .eixo span{position:absolute;top:0;font-size:12px;color:var(--ink2);white-space:nowrap;transform:translateX(-50%)}
  .eixo span.ini{transform:none}
  .eixo span.fim{transform:translateX(-100%)}
  .tooltip{position:absolute;top:0;left:0;pointer-events:none;background:var(--tooltip-bg);color:var(--tooltip-ink);font-size:12px;font-weight:600;line-height:1.3;padding:4px 8px;border-radius:6px;white-space:nowrap;transform:translateX(-50%);z-index:3}

  /* Número que mudou desde o último carregar: pulso curto, sem glow */
  @keyframes pulso{0%{opacity:1;transform:scale(1)}40%{opacity:.45;transform:scale(1.03)}100%{opacity:1;transform:scale(1)}}
  .val.mudou{animation:pulso 300ms ease-out;transform-origin:left center}
  @media(prefers-reduced-motion:reduce){.val.mudou{animation:none}html{scroll-behavior:auto}}

  @media(max-width:700px){
    #app{padding:16px 16px 48px}
    header{margin-bottom:24px}
    header .marca{flex-direction:column;align-items:flex-start;gap:4px}
    section.secao{margin-bottom:32px}
    .kpis,.kpis.quatro,.kpis.cinco,.acoes{grid-template-columns:1fr 1fr;gap:8px}
    .kpis>.kpi:last-child:nth-child(odd){grid-column:1/-1}
    .kpi{padding:12px;min-height:0}
    .acao{padding:12px}
    .btn-ver{align-self:stretch}
    .card{padding:12px}
    .barras{gap:2px}
    .tblwrap-scroll{max-height:none;overflow-y:visible}
    td:first-child,th:first-child{max-width:none;white-space:normal;overflow-wrap:anywhere;min-width:120px}
    .dobra-seta{display:inline-block}
    .saude .detalhe{margin-left:0;flex-basis:100%;padding-left:18px;text-align:left}
  }
