/* Paleta calma/baja saturación (según investigación de color de trabajo) */
:root{
  --card:#ffffff; --ink:#243024; --muted:#6b7682;
  --line:#dde3e9; --accent:#15691c;            /* verde institucional CBTA 120 */
  --accent-d:#0f5214; --ok:#15691c; --err:#b4564b;
}
*{box-sizing:border-box}
[hidden]{display:none!important}   /* el atributo hidden gana sobre display:flex de .modal */
body{margin:0;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:linear-gradient(180deg,#1a7a22 0%,#15691c 45%,#0e5214 100%);color:var(--ink);
  font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;padding:20px}
.card{background:var(--card);width:100%;max-width:420px;border:1px solid var(--line);border-radius:16px;
  padding:28px 24px;box-shadow:0 10px 32px rgba(0,0,0,.18)}
header{text-align:center;margin-bottom:20px}
.logo{font-size:40px}
.logo-img{width:108px;height:auto;margin:0 auto 4px;display:block}
.marca{color:#15691c;font-weight:800;letter-spacing:.5px;font-size:15px;margin:2px 0 0}
h1{font-size:22px;margin:8px 0 4px}
.sub{color:var(--muted);margin:0;font-size:14px}
form{display:flex;flex-direction:column;gap:14px}
label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted);font-weight:600}
input,select{font-size:16px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fafbfc;color:var(--ink)}
input:focus,select:focus{outline:none;border-color:var(--accent);background:#fff}
button{margin-top:4px;background:var(--accent);color:#fff;border:0;border-radius:10px;padding:13px;font-size:16px;font-weight:600;cursor:pointer}
button:hover{background:var(--accent-d)}
button:disabled{opacity:.6;cursor:wait}
.err{color:var(--err);font-size:14px;margin:4px 0 0;text-align:center}
.ok h2{font-size:18px;text-align:center;color:var(--ok)}
.creds{display:flex;flex-direction:column;gap:8px;margin:16px 0}
.creds div{display:flex;justify-content:space-between;align-items:center;background:#f4f7f8;border:1px solid var(--line);border-radius:10px;padding:10px 14px}
.creds span{color:var(--muted);font-size:13px}
.creds b{font-size:18px;letter-spacing:.5px;font-family:ui-monospace,Menlo,Consolas,monospace}
.wa{display:block;text-align:center;background:#25884f;color:#fff;text-decoration:none;border-radius:10px;padding:13px;font-weight:600;margin-top:6px}
.wa:hover{background:#1f7344}
.hint{color:var(--muted);font-size:13px;text-align:center;margin-top:14px}
footer{color:rgba(255,255,255,.9);font-size:12px;margin-top:18px}
.big{font-size:46px;text-align:center}

/* Panel director */
.panel{background:var(--card);width:100%;max-width:680px;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 8px 28px rgba(43,49,56,.07)}
.bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.link{background:none;border:0;color:var(--accent);cursor:pointer;font-weight:600;padding:6px;width:auto}
.tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.tab{background:#f1f4f6;color:var(--ink);border:1px solid var(--line);border-radius:20px;padding:7px 16px;font-size:14px;width:auto;font-weight:600}
.tab.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px}
.row .info{flex:1;min-width:160px;display:flex;flex-direction:column}
.row .info span{color:var(--muted);font-size:12px}
.row .estado{font-size:13px;font-weight:600}
.row .meta{color:var(--muted);font-size:13px}
.acc{display:flex;gap:8px}
.acc button{width:auto;padding:8px 14px;font-size:14px}
.acc .ok{background:var(--ok)}
.acc .no{background:#f1f4f6;color:var(--ink);border:1px solid var(--line)}
.acc .no.warn{background:var(--err);color:#fff;border-color:var(--err)}
.empty{color:var(--muted);text-align:center;padding:20px}

/* Fase 2: dispositivos + stats */
.tabs.main{border-bottom:2px solid var(--line);padding-bottom:0;gap:4px}
.mtab{background:none;border:0;border-bottom:3px solid transparent;border-radius:0;color:var(--muted);font-weight:700;padding:8px 14px;width:auto}
.mtab.on{color:var(--accent);border-bottom-color:var(--accent);background:none}
.buscar{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;font-size:15px}
.muted-line{color:var(--muted);font-size:13px;margin:4px 0 12px}
.drow{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;display:flex;flex-direction:column;gap:3px}
.dmain{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dsub{color:var(--muted);font-size:12px;font-family:ui-monospace,Consolas,monospace}
.dname{color:var(--accent);font-size:13px;cursor:pointer;font-weight:600;margin-top:2px}
.dname i{color:var(--muted);font-weight:400}
.dot{width:9px;height:9px;border-radius:50%;background:#c4ccd2;flex:0 0 auto}
.dot.on{background:#2bb35a;box-shadow:0 0 0 3px rgba(43,179,90,.18)}
.bad{background:#fbeaea;color:#b4564b;font-size:11px;font-weight:700;padding:2px 7px;border-radius:10px}
.rt{background:#fcf3e2;color:#9a6a14;font-size:11px;font-weight:700;padding:2px 7px;border-radius:10px}
.chip{background:#f1f4f6;border:1px solid var(--line);color:var(--ink);border-radius:20px;padding:6px 14px;font-size:13px;font-weight:600;width:auto;margin-bottom:8px}
.chip.on{background:#fcf3e2;border-color:#e3c483;color:#9a6a14}
.stat.warn{background:#fcf3e2}
.stat.warn span{color:#9a6a14}
.who{background:#eef4ee;color:var(--accent);font-size:11px;font-weight:700;padding:2px 7px;border-radius:10px}
.nin{width:100%;padding:7px 9px;border:1px solid var(--accent);border-radius:8px;font-size:14px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:8px}
.stat{background:#f4f7f4;border:1px solid var(--line);border-radius:12px;padding:14px;text-align:center;color:var(--muted);font-size:12px;font-weight:600;line-height:1.3}
.stat span{display:block;font-size:26px;color:var(--ink);font-weight:800}
.stat.alert{background:#fbeaea}
.stat.alert span{color:#b4564b}
.sec{font-size:15px;margin:18px 0 10px}
.bloque{border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin-bottom:10px}
.bloque h4{margin:0 0 6px;font-size:14px;display:flex;justify-content:space-between}
.bloque h4 span{background:#b4564b;color:#fff;border-radius:10px;padding:0 8px;font-size:12px}
.bloque ul{margin:0;padding-left:18px}
.bloque li{font-size:13px}
.bloque small{color:var(--muted);font-family:ui-monospace,Consolas,monospace}
.bloque.alerta{border-color:#e3b1ab;background:#fdf3f2}
.ssub{font-weight:400;color:var(--muted);font-size:12px}

/* Maestros con acceso (roster) */
.mrow{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin-bottom:8px}
.mrow .info{display:flex;flex-direction:column}
.mmeta{color:var(--muted);font-size:12px}
.vc{background:var(--accent);color:#fff;border:0;border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600;width:auto;white-space:nowrap}
.vc:hover{background:var(--accent-d)}

/* Guías */
.guia{font-size:14px}
.gtop{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.guia h2{font-size:18px;margin:4px 0 8px}
.guia h3{font-size:15px;margin:16px 0 8px}
.gwhy{color:var(--ink);background:#f4f7f4;border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.gbox{border:1px solid #e3c483;background:#fcf3e2;border-radius:10px;padding:10px 14px;margin-top:12px}
.gbox h3{margin:0 0 6px;color:#9a6a14}
.grouters{margin:0;padding-left:18px}
.grouters li{margin:3px 0}
.gsteps{padding-left:20px;line-height:1.6}
.gsteps li{margin-bottom:8px}
.gnote{border-radius:10px;padding:10px 14px;margin-top:12px;font-size:13px;background:#fcf3e2;border:1px solid #e3c483;color:#7a5410}
.gnote.ok{background:#eef4ee;border-color:#bcd8c2;color:var(--accent)}
@media print{
  body{background:#fff!important}
  .bar,.tabs,#login,.chip{display:none!important}
  .panel{box-shadow:none;border:0;max-width:100%}
}

/* Modal */
.modal{position:fixed;inset:0;background:rgba(43,49,56,.45);display:flex;align-items:center;justify-content:center;padding:20px;z-index:10}
.modal-box{background:#fff;border-radius:16px;padding:24px;max-width:380px;width:100%;text-align:center}
.modal-box h2{font-size:18px;color:var(--ok)}
/* Toast */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:12px 18px;border-radius:10px;font-size:14px;z-index:20;box-shadow:0 6px 20px rgba(0,0,0,.25)}
