:root{
  --bg:#f4f7fb; --card:#ffffff; --card2:#eef3f9; --linha:#dde5ef;
  --txt:#16202e; --dim:#6b7c93;
  --ls:#2563eb; --ls-luz:#e8f0fe;
  --reng:#b06d0f; --reng-luz:#fdf3e2;
  --ambos:#0f9488; --ambos-luz:#e3f6f4;
  --ok:#159a5c; --ok-luz:#e4f7ec;
  --alerta:#c47a09; --alerta-luz:#fdf3e0;
  --ruim:#d63b3b; --ruim-luz:#fdeaea;
  --sombra:0 1px 2px rgba(22,32,46,.05), 0 6px 18px rgba(22,32,46,.06);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--txt);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  -webkit-text-size-adjust:100%}
body{padding-bottom:env(safe-area-inset-bottom)}
.hidden{display:none !important}
.dim{color:var(--dim);font-size:13px}
.erro{color:var(--ruim);font-size:13px;min-height:18px}

/* login */
.login{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;
  background:linear-gradient(160deg,#eaf1fb 0%,#f6f9fc 45%,#fdf6ec 100%)}
.login-card{width:100%;max-width:370px;text-align:center;box-shadow:var(--sombra)}
.login h1{font-size:23px;margin:0 0 2px;letter-spacing:-.01em}
.quem{display:flex;gap:8px;margin:18px 0 12px}
.btn-quem{flex:1;padding:14px 8px;border-radius:12px;border:1.5px solid var(--linha);
  background:#fff;color:var(--txt);font-size:15px;font-weight:600}
.btn-quem.sel{border-color:var(--ls);background:var(--ls-luz);color:var(--ls)}
#pin{width:100%;padding:14px;border-radius:12px;border:1.5px solid var(--linha);
  background:#fff;color:var(--txt);font-size:20px;text-align:center;letter-spacing:6px}
.btn-primario{width:100%;margin-top:12px;padding:15px;border:0;border-radius:12px;
  background:var(--ls);color:#fff;font-size:16px;font-weight:700;box-shadow:0 2px 8px rgba(37,99,235,.28)}

.btn-ghost{background:#fff;border:1px solid var(--linha);color:var(--dim);
  padding:7px 12px;border-radius:9px;font-size:13px}
.btn-ghost:disabled{opacity:.4}

/* estrutura */
header{position:sticky;top:0;z-index:20;background:#fff;
  border-bottom:1px solid var(--linha);padding:12px 14px 10px;box-shadow:0 1px 6px rgba(22,32,46,.04)}
.topo{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.topo strong{display:block;font-size:17px;letter-spacing:-.01em}
.agora-bar{margin-top:9px;font-size:13px;line-height:1.4;padding:10px 12px;border-radius:11px;
  background:var(--ls-luz);border-left:4px solid var(--ls)}
.agora-bar b{color:#0d2a63}
.agora-bar.fora{background:var(--card2);border-left-color:var(--linha);color:var(--dim)}

nav{display:flex;gap:6px;overflow-x:auto;padding:10px 12px;background:var(--bg);
  position:sticky;top:0;z-index:15;scrollbar-width:none}
nav::-webkit-scrollbar{display:none}
nav button{flex:0 0 auto;padding:8px 14px;border-radius:999px;border:1px solid var(--linha);
  background:#fff;color:var(--dim);font-size:14px;font-weight:500}
nav button.ativa{background:var(--ls);color:#fff;border-color:var(--ls);font-weight:600;
  box-shadow:0 2px 8px rgba(37,99,235,.25)}

main{padding:14px 12px 30px;max-width:740px;margin:0 auto}
footer{display:flex;justify-content:space-between;align-items:center;
  padding:12px 14px 24px;max-width:740px;margin:0 auto}

.card{background:var(--card);border:1px solid var(--linha);border-radius:15px;
  padding:15px;margin-bottom:12px;box-shadow:var(--sombra)}
h2{font-size:16px;margin:0 0 10px;letter-spacing:-.01em}
h3{font-size:12px;margin:16px 0 8px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em}

/* blocos do dia */
.bloco{background:var(--card);border:1px solid var(--linha);border-left-width:5px;
  border-radius:13px;padding:13px;margin-bottom:10px;box-shadow:var(--sombra)}
.bloco.ls{border-left-color:var(--ls)}
.bloco.reng{border-left-color:var(--reng)}
.bloco.ambos{border-left-color:var(--ambos)}
.bloco.geral{border-left-color:#94a5ba}
.bloco.agora{box-shadow:0 0 0 3px rgba(37,99,235,.18),var(--sombra);border-color:#b9cdf5}
.bloco.atrasado{border-color:#f0bcbc;background:#fffbfb}
.bloco.feito{opacity:.62}
.bl-topo{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.bl-hora{font-variant-numeric:tabular-nums;font-weight:700;font-size:15px;color:#31415a}
.tag{font-size:10px;font-weight:800;padding:4px 8px;border-radius:7px;letter-spacing:.06em;white-space:nowrap}
.tag.ls{background:var(--ls-luz);color:var(--ls)}
.tag.reng{background:var(--reng-luz);color:var(--reng)}
.tag.ambos{background:var(--ambos-luz);color:var(--ambos)}
.tag.geral{background:var(--card2);color:#5b6d85}
.bl-tit{font-size:16px;font-weight:650;margin:5px 0 9px;letter-spacing:-.01em}
.bl-aviso{font-size:12px;color:var(--ruim);margin-bottom:6px;font-weight:600}
.item{display:flex;gap:11px;align-items:flex-start;padding:9px 0;
  border-top:1px solid var(--linha);cursor:pointer}
.item:first-of-type{border-top:0}
.item input{margin:1px 0 0;width:21px;height:21px;accent-color:var(--ok);flex:0 0 auto}
.item span{font-size:14px;line-height:1.4}
.item.on span{text-decoration:line-through;color:var(--dim)}
.item small{display:block;color:var(--dim);font-size:11px;margin-top:3px;text-decoration:none}

.foco{background:var(--ls-luz);border:1px solid #c7d9f8;border-radius:13px;
  padding:13px;margin-bottom:12px;font-size:14px;line-height:1.45}
.foco.cp{background:var(--alerta-luz);border-color:#f0d9a8}

/* barras */
.barra{height:10px;border-radius:999px;background:var(--card2);overflow:hidden;margin:8px 0 5px}
.barra > i{display:block;height:100%;border-radius:999px;background:var(--ls);transition:width .4s}
.barra.ok > i{background:var(--ok)}
.barra.alerta > i{background:var(--alerta)}
.barra.ruim > i{background:var(--ruim)}
.linha{display:flex;justify-content:space-between;gap:10px;font-size:14px;padding:6px 0;align-items:center}
.linha b{font-variant-numeric:tabular-nums}
.grande{font-size:26px;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.pill{display:inline-block;font-size:11px;font-weight:800;padding:4px 10px;border-radius:999px;white-space:nowrap}
.pill.ok{background:var(--ok-luz);color:var(--ok)}
.pill.alerta{background:var(--alerta-luz);color:var(--alerta)}
.pill.ruim{background:var(--ruim-luz);color:var(--ruim)}

/* formularios */
.campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:11px}
label{display:block;font-size:12px;color:var(--dim);margin-bottom:4px;font-weight:500}
input[type=number],input[type=text],input[type=password],select,textarea{width:100%;padding:11px;
  border-radius:10px;border:1.5px solid var(--linha);background:#fff;color:var(--txt);font-size:15px}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--ls);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
textarea{min-height:74px;font-size:14px;line-height:1.45}
.btn{margin-top:11px;padding:13px;border:0;border-radius:11px;background:var(--ls);
  color:#fff;font-weight:700;font-size:15px;width:100%;box-shadow:0 2px 8px rgba(37,99,235,.22)}
.btn.sec{background:#fff;color:var(--txt);border:1.5px solid var(--linha);box-shadow:none}
.salvo{color:var(--ok);font-size:12px;min-height:16px;margin-top:6px;font-weight:600}

table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;padding:8px 5px;border-bottom:1px solid var(--linha)}
th{color:var(--dim);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}

.dia-link{display:flex;justify-content:space-between;align-items:center;gap:10px;
  width:100%;padding:13px;margin-bottom:8px;border-radius:13px;border:1px solid var(--linha);
  background:#fff;color:var(--txt);font-size:14px;text-align:left;box-shadow:var(--sombra)}
.dia-link.hoje{border-color:var(--ls);background:var(--ls-luz)}
.copiar{background:#fff;border:1.5px solid var(--linha);color:var(--ls);
  padding:8px 13px;border-radius:9px;font-size:12px;margin-top:9px;font-weight:600}
