/* cronograma-enamed · app.css — mobile-first, claro/escuro, alvos ≥44px, fonte mínima 12px */
:root{
  --bg:#f6f7f5; --surface:#ffffff; --surface-2:#eef1ee; --line:#d9ded9; --line-2:#c3cac3;
  --ink:#171a17; --ink-2:#464b46; --ink-3:#6b716b; --accent:#0f766e; --accent-ink:#ffffff; --accent-soft:#d9efe9;
  --warn:#b45309; --warn-soft:#fdf0dc; --bad:#b91c1c; --bad-soft:#fde4e4; --good:#15803d; --good-soft:#dcf5e3;
  --primeira:#0f766e; --rev:#7c3aed; --reta:#b45309; --font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --r:12px; --r-sm:8px; --shadow:0 1px 2px rgba(0,0,0,.06);
}
@media (prefers-color-scheme:dark){ :root:not([data-theme=light]){
  --bg:#121412; --surface:#1b1e1b; --surface-2:#242824; --line:#2f342f; --line-2:#3d433d;
  --ink:#e8ebe8; --ink-2:#b9bfb9; --ink-3:#8b928b; --accent:#2dd4bf; --accent-ink:#06201c; --accent-soft:#12332f;
  --warn:#f5b041; --warn-soft:#3a2a10; --bad:#f87171; --bad-soft:#3b1717; --good:#4ade80; --good-soft:#12301b;
  --primeira:#2dd4bf; --rev:#c4b5fd; --reta:#f5b041; --shadow:none; }}
:root[data-theme=dark]{
  --bg:#121412; --surface:#1b1e1b; --surface-2:#242824; --line:#2f342f; --line-2:#3d433d;
  --ink:#e8ebe8; --ink-2:#b9bfb9; --ink-3:#8b928b; --accent:#2dd4bf; --accent-ink:#06201c; --accent-soft:#12332f;
  --warn:#f5b041; --warn-soft:#3a2a10; --bad:#f87171; --bad-soft:#3b1717; --good:#4ade80; --good-soft:#12301b;
  --primeira:#2dd4bf; --rev:#c4b5fd; --reta:#f5b041; --shadow:none; }

*{box-sizing:border-box} html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--ink);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased;padding-bottom:calc(64px + env(safe-area-inset-bottom))}
a{color:var(--accent)} button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.pular{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--accent-ink);padding:8px 12px;z-index:50} .pular:focus{left:8px;top:8px}
.faint{color:var(--ink-3)} .small{font-size:13px} .muted{color:var(--ink-2)}
h1{font-size:20px;margin:0 0 6px} h2{font-size:16px;margin:18px 0 8px} h3{font-size:14px;margin:12px 0 6px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em}

.topo{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:var(--surface);border-bottom:1px solid var(--line)}
.marca{display:flex;align-items:center;gap:8px;font-size:15px} .marca .logo{color:var(--accent);font-size:18px} .marca .faint{font-size:13px;margin-left:6px}
.topo-dir{display:flex;align-items:center;gap:8px}
.rede{font-size:12px;color:var(--good)} .rede.off{color:var(--warn)} .rede.fila{color:var(--warn)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 14px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;color:var(--ink);white-space:nowrap}
.btn:hover{background:var(--surface-2)} .btn.primario{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)} .btn.perigo{color:var(--bad);border-color:var(--bad)}
.btn.icone{width:44px;padding:0} .btn.pequeno{min-height:36px;padding:4px 10px;font-size:13px}
.btn[disabled]{opacity:.5;cursor:default}

.abas{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
.abas a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;padding:6px 4px;text-decoration:none;color:var(--ink-3);font-size:12px}
.abas a span:first-child{font-size:18px;line-height:1} .abas a.on{color:var(--accent);font-weight:600}
main{max-width:980px;margin:0 auto;padding:14px}
.carregando{text-align:center;color:var(--ink-3);padding:40px 0}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow);margin:0 0 12px;min-width:0}
.card.login{max-width:440px;margin:40px auto} .login label{display:block;margin:12px 0 4px} .login input{width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font-size:16px} .login .btn{width:100%;margin-top:12px}
.msg{min-height:1.5em;color:var(--ink-2)}
.toast{position:fixed;left:50%;bottom:76px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 14px;border-radius:999px;z-index:40;max-width:92vw;font-size:14px}

.linha{display:flex;align-items:center;gap:10px;flex-wrap:wrap} .linha.entre{justify-content:space-between}
.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:12px;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}
.chip.sinc{background:var(--accent-soft);color:var(--ink)} .chip.eco{background:var(--surface-2)} .chip.zero{background:var(--warn-soft);color:var(--ink)} .chip.atraso{background:var(--bad-soft);color:var(--ink)} .chip.mov{background:var(--good-soft);color:var(--ink)}
.barra{height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden;margin:6px 0} .barra i{display:block;height:100%;background:var(--accent);width:0}
.barra.outras i{background:var(--rev)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px} .kpi{background:var(--surface-2);border-radius:var(--r-sm);padding:10px 12px} .kpi b{display:block;font-size:20px} .kpi span{font-size:12px;color:var(--ink-3)}

.bloco{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-top:1px solid var(--line)} .bloco:first-of-type{border-top:0}
.bloco input[type=checkbox]{width:22px;height:22px;margin:2px 0 0;flex:none;accent-color:var(--accent)}
.bloco .txt{flex:1;min-width:0} .bloco .nome{display:block} .bloco .meta{display:flex;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--ink-3);margin-top:2px}
.bloco.feito .nome{text-decoration:line-through;color:var(--ink-3)}
.tipo{font-weight:700;font-size:12px;padding:1px 6px;border-radius:4px} .tipo.primeira{color:var(--primeira);background:var(--accent-soft)} .tipo.rev1,.tipo.rev2,.tipo.rev3{color:var(--rev);background:var(--surface-2)} .tipo.reta{color:var(--reta);background:var(--warn-soft)}

.tabela-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
table{border-collapse:collapse;width:100%;min-width:720px;font-size:13px} th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle} th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);position:sticky;top:0;background:var(--surface)}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
select,input[type=text],input[type=number],input[type=date],input[type=search]{min-height:44px;padding:6px 10px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font:inherit;font-size:16px}
table select{min-height:36px;font-size:14px;padding:2px 6px}
.filtros{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:8px;margin-bottom:10px}
.filtros label,.form-grid label{min-width:0} .filtros select,.filtros input,.form-grid select,.form-grid input{width:100%;min-width:0;max-width:100%}
.grafico{display:flex;align-items:stretch;gap:4px;height:140px;padding:6px 0} .grafico .col{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:3px;min-width:0} .grafico .col i{width:100%;background:var(--rev);border-radius:3px 3px 0 0;min-height:2px} .grafico .col.atual i{background:var(--accent)} .grafico .col span{font-size:11px;color:var(--ink-3)}
.lista-q{list-style:none;padding:0;margin:0} .lista-q li{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-top:1px solid var(--line)} .lista-q li:first-child{border-top:0}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr));gap:8px;align-items:end}
@media (max-width:759px){.btn.pequeno{min-height:40px} table select{min-height:40px}} .form-grid label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-2)}
.vazio{color:var(--ink-3);padding:12px 0}
.aviso{background:var(--warn-soft);border:1px solid var(--warn);border-radius:var(--r-sm);padding:10px 12px;margin:8px 0}
.acoes{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
kbd{font:12px var(--font);background:var(--surface-2);border:1px solid var(--line-2);border-radius:4px;padding:0 5px}

@media (min-width:760px){
  body{padding-bottom:20px}
  .abas{position:sticky;top:57px;bottom:auto;border-top:0;border-bottom:1px solid var(--line);justify-content:center;gap:4px}
  .abas a{flex:0 0 auto;flex-direction:row;gap:6px;min-height:44px;padding:6px 14px;font-size:14px} .abas a span:first-child{font-size:15px}
  .toast{bottom:24px}
}
