/* © Braulio Sielpe · Río Loa S.A. · CT Padre Hurtado — obra de autoría propia. Uso o copia no autorizados. */
:root{--p:#2D5963;--a:#408FC2;--bg:#f4f7f8;--card:#fff;--tx:#18262b;--mu:#5d6f75;--bd:#dbe4e7;--ok:#2e8b57;--wa:#d9962b;--ma:#c0392b;--gr:#8a979c}
@media(prefers-color-scheme:dark){:root{--bg:#10191c;--card:#18262b;--tx:#e8eff1;--mu:#9bb0b6;--bd:#2a3b41}}
*{box-sizing:border-box}body{margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--tx)}
header{background:var(--p);color:#fff;padding:14px 20px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
header h1{font-size:18px;margin:0;flex:1}header small{opacity:.8}
.badge{background:rgba(255,255,255,.18);padding:3px 10px;border-radius:99px;font-size:12px}
button,.btn{font:inherit;cursor:pointer;border:0;border-radius:8px;padding:8px 14px;background:var(--a);color:#fff}
button.sec{background:transparent;color:inherit;border:1px solid var(--bd)}header button.sec{border-color:rgba(255,255,255,.4)}
main{max-width:1280px;margin:0 auto;padding:16px}
.card{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:16px;margin-bottom:16px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.kpi{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:12px 14px}
.kpi b{display:block;font-size:26px;line-height:1.1}.kpi span{color:var(--mu);font-size:12px}
.tabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.tabs button{background:var(--card);color:var(--tx);border:1px solid var(--bd)}.tabs button.on{background:var(--p);color:#fff;border-color:var(--p)}
.filtros{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
select,input[type=text],input[type=password],input[type=search]{font:inherit;padding:8px 10px;border:1px solid var(--bd);border-radius:8px;background:var(--card);color:var(--tx)}
table{width:100%;border-collapse:collapse;font-size:13.5px}th,td{padding:8px 10px;border-bottom:1px solid var(--bd);text-align:left;vertical-align:top}th{color:var(--mu);font-weight:600;position:sticky;top:0;background:var(--card)}
.chip{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;color:#fff;white-space:nowrap}
.C{background:var(--ok)}.E{background:var(--wa)}.X{background:var(--ma)}.P{background:var(--gr)}.R{background:#6b5bb5}.N{background:#9aa5a9}.Q{background:#2a9d8f}.mods{display:flex;gap:6px}.mods button{background:rgba(255,255,255,.14);color:#fff}.mods button.on{background:#fff;color:var(--p)}
.bar{height:10px;background:var(--bd);border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:var(--a)}
.login{max-width:380px;margin:12vh auto;text-align:center}.login input{width:100%;font-size:18px;text-align:center;margin:12px 0}
.err{color:var(--ma);min-height:20px}.mu{color:var(--mu)}
.pie{text-align:center;color:var(--mu);font-size:12px;padding:20px}
.ev{display:inline-flex;gap:4px;align-items:center;background:transparent;border:1px solid var(--a);color:var(--a);padding:3px 9px;font-size:12.5px}
.ev.lock{border-color:var(--bd);color:var(--mu);cursor:default}
.scroll{overflow:auto;max-height:70vh}
.gantt td.m{width:44px;text-align:center;padding:4px}.g{display:block;height:18px;border-radius:4px;margin:auto;width:30px}
@media(max-width:640px){main{padding:10px}header h1{font-size:15px}}
@media print{header button,.tabs,.filtros{display:none}}
