:root{--p:#0f766e;--p2:#0d5f59;--bg:#f3f5f6;--card:#fff;--t:#16232a;--m:#64757d;--b:#dde3e6;--ok:#15803d;--warn:#b45309;--bad:#b91c1c}
@media(prefers-color-scheme:dark){:root{--bg:#0e1517;--card:#162024;--t:#e6edef;--m:#8da0a8;--b:#26343a}}
*{box-sizing:border-box}
body{margin:0;font:15px/1.4 system-ui,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--t);padding-bottom:70px}
header{background:var(--p);color:#fff;display:flex;gap:10px;align-items:center;justify-content:space-between;padding:10px 14px;position:sticky;top:0;z-index:5}
header h1{font-size:18px;margin:0}
header select{max-width:55%;padding:6px;border-radius:8px;border:0}
main{max-width:900px;margin:0 auto;padding:14px}
nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--card);border-top:1px solid var(--b);z-index:5}
nav a{flex:1;text-align:center;padding:14px 4px;color:var(--m);text-decoration:none;font-size:13px;font-weight:600}
nav a.on{color:var(--p);box-shadow:inset 0 3px 0 var(--p)}
h2{font-size:17px;margin:18px 0 8px}
.card{background:var(--card);border:1px solid var(--b);border-radius:12px;padding:14px;margin-bottom:12px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}
.stat{background:var(--card);border:1px solid var(--b);border-radius:12px;padding:12px}
.stat small{color:var(--m);display:block}
.stat b{font-size:20px}
.row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--b)}
.row:last-child{border-bottom:0}
.row a{color:inherit;text-decoration:none}
.m{color:var(--m);font-size:13px}
.badge{display:inline-block;padding:2px 8px;border-radius:99px;font-size:12px;font-weight:700;background:#e2e8f0;color:#334155}
.badge.ok{background:#dcfce7;color:var(--ok)}.badge.warn{background:#fef3c7;color:var(--warn)}.badge.bad{background:#fee2e2;color:var(--bad)}
button,.btn{background:var(--p);color:#fff;border:0;border-radius:10px;padding:10px 14px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block}
button.sec{background:transparent;color:var(--p);border:1px solid var(--p)}
button.del{background:var(--bad)}
button.sm{padding:6px 10px;font-size:13px}
.bar{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
label{display:block;font-size:13px;color:var(--m);margin:10px 0 3px}
input,select,textarea{width:100%;padding:10px;border:1px solid var(--b);border-radius:8px;font:inherit;background:var(--card);color:var(--t)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.modal{position:fixed;inset:0;background:#0009;z-index:20;display:flex;align-items:flex-end;justify-content:center}
.modal[hidden]{display:none}
.sheet{background:var(--card);width:100%;max-width:560px;max-height:92vh;overflow:auto;border-radius:16px 16px 0 0;padding:16px}
@media(min-width:700px){.modal{align-items:center}.sheet{border-radius:16px}}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{padding:7px 6px;border-bottom:1px solid var(--b);text-align:right;white-space:nowrap}
th:first-child,td:first-child,td.l,th.l{text-align:left}
.scroll{overflow-x:auto}
.att{display:grid;grid-template-columns:1fr 110px;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--b)}
.att label{margin:0;display:flex;gap:8px;align-items:center;color:var(--t);font-size:15px}
.att input[type=checkbox]{width:auto}
.empty{text-align:center;color:var(--m);padding:26px 10px}
.pos{color:var(--ok)}.neg{color:var(--bad)}
@media print{header,nav,.bar,.noprint,.modal{display:none!important}body{background:#fff;color:#000;padding:0}.card,.stat{border-color:#999}}
.lock{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}
.lock[hidden]{display:none}
.lockbox{width:100%;max-width:340px;background:var(--card);border:1px solid var(--b);border-radius:16px;padding:22px;display:grid;gap:10px;text-align:center}
.lockbox h1{margin:0;color:var(--p)}
.err{color:var(--bad);min-height:18px;font-size:13px}
body.locked header,body.locked main,body.locked nav{display:none}
@media print{.lock{display:none!important}}
header{flex-wrap:wrap}
.licpill{background:#fff;color:var(--p2);border-radius:99px;padding:3px 10px;font-size:12px;font-weight:700;text-decoration:none}
.licpill[hidden],button[hidden]{display:none}
.lnk{color:var(--p);font-size:13px;cursor:pointer;text-decoration:underline}
.aviso{border-color:var(--warn);background:#fffbeb;color:#422006}
@media(prefers-color-scheme:dark){.aviso{background:#2a2108;color:#fde68a}}
.lockbox .btn{text-align:center}

.upd{position:fixed;left:12px;right:12px;bottom:70px;z-index:60;background:var(--p2);color:#fff;border-radius:12px;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;gap:10px;box-shadow:0 4px 16px #0005;font-weight:600}
.upd button{background:#fff;color:var(--p2)}
body.locked .upd{bottom:16px}

/* Menú arriba con iconos */
.top{position:sticky;top:0;z-index:5}
header{position:static}
nav{position:static;display:flex;background:var(--card);border-bottom:1px solid var(--b);box-shadow:0 1px 4px #0001}
nav a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px 7px;font-size:12px}
nav a.on{box-shadow:inset 0 -3px 0 var(--p)}
body{padding-bottom:20px}
body.locked .top{display:none}
.upd{bottom:16px}
@media print{.top{display:none!important}}
