:root{
  --bg:#f5f3ee;--panel:#ffffff;--ink:#1d2421;--mut:#69736e;--line:#e3e0d7;--soft:#efece4;
  --acc:#17695a;--acc-ink:#fff;--acc-soft:#dff0ea;
  --ok:#17695a;--warn:#b8710b;--bad:#b3362b;--info:#375f9e;
  --warn-soft:#fbf0d9;--bad-soft:#f8e1de;--info-soft:#e1ebf7;
  --shadow:0 1px 2px rgba(30,40,35,.06),0 4px 14px rgba(30,40,35,.05);
  --r:12px;
}
@media (prefers-color-scheme:dark){
  :root[data-tema="oscuro"]{
    --bg:#141917;--panel:#1c2320;--ink:#e8ece9;--mut:#9aa7a0;--line:#2b3531;--soft:#243029;
    --acc:#4fb8a3;--acc-ink:#0d1a16;--acc-soft:#1f3a33;
    --ok:#5ec4ac;--warn:#e0a443;--bad:#ef7a6e;--info:#7ea6e0;
    --warn-soft:#3a2f17;--bad-soft:#3d211e;--info-soft:#1d2c42;
    --shadow:none;
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
h1,h2,h3{margin:0 0 .4em;line-height:1.2;letter-spacing:-.01em}
h1{font-size:1.5rem}h2{font-size:1.15rem}h3{font-size:1rem}
a{color:var(--acc)}
button,input,select,textarea{font:inherit;color:inherit}
.mut{color:var(--mut)}.small{font-size:.85rem}.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.ok{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.sb{justify-content:space-between}
.grow{flex:1 1 auto}.hide{display:none!important}
.stack>*+*{margin-top:14px}

/* botones y campos */
.btn{background:var(--acc);color:var(--acc-ink);border:0;border-radius:9px;padding:9px 15px;font-weight:600;cursor:pointer;min-height:40px}
.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.sec{background:var(--panel);color:var(--ink);border:1px solid var(--line)}
.btn.bad{background:var(--bad);color:#fff}.btn.sm{padding:5px 10px;min-height:32px;font-size:.9rem}
input[type=text],input[type=password],input[type=number],input[type=date],select,textarea{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:8px 10px;min-height:40px;width:100%}
input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
label.f{display:block;font-size:.85rem;color:var(--mut);margin-bottom:4px}
.field{margin-bottom:12px}
input.mini{width:84px;min-height:34px;padding:4px 8px;text-align:right}

/* tarjetas */
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px;box-shadow:var(--shadow)}
.card.flat{box-shadow:none}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.kpi .v{font-size:1.65rem;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.kpi .l{font-size:.82rem;color:var(--mut)}
.kpi .s{font-size:.82rem;margin-top:2px}

/* tablas */
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--panel)}
table{border-collapse:collapse;width:100%}
th,td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);background:var(--soft);position:sticky;top:0;white-space:nowrap}
th.num,td.num{text-align:right}
tr:last-child td{border-bottom:0}
tbody tr.click{cursor:pointer}tbody tr.click:hover{background:var(--soft)}
tr.tot td{font-weight:700;background:var(--soft)}

/* etiquetas */
.chip{display:inline-block;padding:2px 8px;border-radius:99px;font-size:.78rem;font-weight:600;background:var(--soft);color:var(--ink);margin:1px 3px 1px 0;white-space:nowrap}
.chip.alto{background:var(--bad-soft);color:var(--bad)}.chip.medio{background:var(--warn-soft);color:var(--warn)}.chip.info{background:var(--info-soft);color:var(--info)}.chip.ok{background:var(--acc-soft);color:var(--ok)}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:baseline}
.bar{height:10px;border-radius:5px;background:var(--soft);overflow:hidden}.bar>i{display:block;height:100%;background:var(--acc)}
.note{border-left:4px solid var(--info);background:var(--info-soft);padding:10px 14px;border-radius:8px}
.note.warn{border-color:var(--warn);background:var(--warn-soft)}.note.bad{border-color:var(--bad);background:var(--bad-soft)}

/* login */
.login{max-width:420px;margin:7vh auto;padding:0 16px}
.tabs{display:flex;gap:4px;background:var(--soft);padding:4px;border-radius:11px;margin-bottom:16px}
.tabs button{flex:1;border:0;background:transparent;padding:9px;border-radius:8px;font-weight:600;cursor:pointer;color:var(--mut)}
.tabs button.on{background:var(--panel);color:var(--ink);box-shadow:var(--shadow)}
.prueba{margin-top:18px;border:1px dashed var(--warn);background:var(--warn-soft);border-radius:var(--r);padding:14px}

/* layout admin */
.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
.side{background:var(--panel);border-right:1px solid var(--line);padding:18px 12px;position:sticky;top:0;height:100vh;overflow:auto}
.side .brand{font-weight:800;font-size:1.05rem;padding:4px 10px 14px}
.side a.nav{display:block;padding:9px 12px;border-radius:9px;color:var(--ink);text-decoration:none;font-weight:500;margin-bottom:2px}
.side a.nav:hover{background:var(--soft)}.side a.nav.on{background:var(--acc-soft);color:var(--ok);font-weight:700}
.main{padding:22px 26px 60px;min-width:0;max-width:1300px}
.banner{background:var(--warn-soft);color:var(--warn);padding:7px 14px;font-size:.85rem;text-align:center;font-weight:600}
@media (max-width:820px){
  .shell{grid-template-columns:1fr}.side{position:static;height:auto;display:flex;flex-wrap:wrap;gap:4px;border-right:0;border-bottom:1px solid var(--line);padding:8px}
  .side .brand{width:100%;padding:2px 8px}.main{padding:16px 14px 60px}
}

/* cadete */
.cwrap{max-width:720px;margin:0 auto;padding:12px 14px 70px}
.dia{display:block;text-decoration:none;color:inherit;margin-bottom:10px}
.dia .t{font-weight:700}.dia .big{font-size:1.25rem;font-weight:800;font-variant-numeric:tabular-nums}
.zbox{border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:10px;background:var(--panel)}
.gl{border-bottom:1px solid var(--line);padding:10px 0}.gl:last-child{border-bottom:0}
.sticky-top{position:sticky;top:0;background:var(--bg);z-index:5;padding:8px 0}

/* mapa */
.map{height:460px;border-radius:var(--r);border:1px solid var(--line);z-index:0}
.map.sm{height:320px}
.leaflet-container{font:inherit}
.split{display:grid;grid-template-columns:1fr 340px;gap:14px}
@media (max-width:980px){.split{grid-template-columns:1fr}}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:99px;box-shadow:0 6px 24px rgba(0,0,0,.25);z-index:9999;font-weight:600;max-width:92vw}
.toast.bad{background:var(--bad);color:#fff}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:9000;padding:14px}
.modal .card{max-width:480px;width:100%}
details>summary{cursor:pointer;font-weight:600;padding:4px 0}

/* ---- v2: mas claro, menos denso ---- */
body{font-size:16px}
.main{padding:26px 32px 80px;max-width:1180px}
.page-h{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.page-h h1{margin:0}.page-h .sub{color:var(--mut);margin-top:2px}
.sec{margin:26px 0 10px}.sec h2{margin:0}.sec .sub{color:var(--mut);font-size:.92rem}
.side a.nav{display:flex;justify-content:space-between;align-items:center;padding:11px 13px;font-size:1rem}
.badge{background:var(--bad);color:#fff;border-radius:99px;font-size:.78rem;font-weight:700;padding:1px 8px;min-width:22px;text-align:center}
.mapa-aviso{position:absolute;left:10px;right:10px;bottom:10px;z-index:900;background:var(--warn-soft);color:var(--warn);border:1px solid var(--warn);border-radius:9px;padding:8px 12px;font-size:.88rem;font-weight:600}
.map{position:relative}
.tabs2{display:flex;gap:2px;border-bottom:2px solid var(--line);margin:0 0 20px;flex-wrap:wrap}
.tabs2 a{padding:10px 18px;text-decoration:none;color:var(--mut);font-weight:600;border-bottom:3px solid transparent;margin-bottom:-2px}
.tabs2 a.on{color:var(--acc);border-color:var(--acc)}
.step{display:flex;gap:14px;align-items:flex-start}
.step .n{flex:none;width:30px;height:30px;border-radius:50%;background:var(--acc);color:var(--acc-ink);font-weight:800;display:flex;align-items:center;justify-content:center}
.step .b{flex:1;min-width:0}
.bigtoggle{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bigtoggle label{border:2px solid var(--line);border-radius:12px;padding:14px;cursor:pointer;background:var(--panel)}
.bigtoggle label.on{border-color:var(--acc);background:var(--acc-soft)}
.bigtoggle input{position:absolute;opacity:0}
.bigtoggle .t{font-weight:700}.bigtoggle .d{font-size:.88rem;color:var(--mut);margin-top:2px}
.saveBar{position:sticky;bottom:0;background:var(--bg);padding:12px 0;border-top:1px solid var(--line);margin-top:20px;display:flex;gap:10px;align-items:center;z-index:5}
.req{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:18px;margin-bottom:14px;box-shadow:var(--shadow)}
.req h3{margin:0 0 4px;font-size:1.08rem}
.req .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:14px 0}
.req .col{background:var(--soft);border-radius:10px;padding:12px 14px}
.req .col h4{margin:0 0 6px;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--mut)}
.req .col p{margin:3px 0}
.req .acts{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.req .acts input{flex:1;min-width:200px}
.verdict{padding:9px 13px;border-radius:9px;margin:10px 0;font-weight:600}
.verdict.ok{background:var(--acc-soft);color:var(--ok)}.verdict.warn{background:var(--warn-soft);color:var(--warn)}.verdict.bad{background:var(--bad-soft);color:var(--bad)}
.list-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.list-row:last-child{border-bottom:0}.list-row:hover{background:var(--soft)}
.list-row .l1{font-weight:700}.list-row .l2{font-size:.88rem;color:var(--mut)}
.listcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.help{background:var(--info-soft);border-radius:10px;padding:11px 15px;color:var(--ink);margin-bottom:16px;font-size:.95rem}

/* cadete v2 */
body.cad .cwrap{padding:0 14px 96px;max-width:560px}
.cbar{position:sticky;top:0;z-index:20;background:var(--bg);padding:12px 0 8px;display:flex;justify-content:space-between;align-items:center}
.pernav{display:flex;align-items:center;justify-content:space-between;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:4px;margin-bottom:12px}
.pernav button{border:0;background:transparent;font-size:1.3rem;width:46px;height:42px;border-radius:9px;cursor:pointer;color:var(--ink)}
.pernav button:disabled{opacity:.25}.pernav .t{font-weight:700;text-align:center}
.hero{background:var(--acc);color:var(--acc-ink);border-radius:18px;padding:22px 20px;margin-bottom:14px}
.hero .l{opacity:.85;font-size:.95rem}.hero .v{font-size:2.6rem;font-weight:800;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}
.hero .row2{display:flex;gap:22px;margin-top:12px;flex-wrap:wrap}.hero .row2 b{display:block;font-size:1.3rem}.hero .row2 span{font-size:.82rem;opacity:.85}
.zrow{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.zrow:last-child{border:0}
.drow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.drow:last-child{border:0}.drow:hover{background:var(--soft)}
.drow .d1{font-weight:700;font-size:1.05rem}.drow .d2{font-size:.88rem;color:var(--mut)}.drow .m{font-weight:800;font-size:1.15rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.warnrow{border-left:4px solid var(--warn);background:var(--warn-soft);border-radius:8px;padding:10px 14px;margin-bottom:10px}
.bnav{position:fixed;bottom:0;left:0;right:0;background:var(--panel);border-top:1px solid var(--line);display:flex;z-index:30;padding-bottom:env(safe-area-inset-bottom)}
.bnav a{flex:1;text-align:center;padding:10px 4px 9px;text-decoration:none;color:var(--mut);font-weight:600;font-size:.82rem}
.bnav a b{display:block;font-size:1.25rem;line-height:1.1}.bnav a.on{color:var(--acc)}
.daynav{display:flex;align-items:center;justify-content:space-between;margin:2px 0 10px}
.daynav a{padding:8px 12px;border-radius:9px;text-decoration:none;background:var(--panel);border:1px solid var(--line);font-weight:700;color:var(--ink)}
.daynav a.off{opacity:.3;pointer-events:none}
.blk{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:14px}
.blk h2{font-size:1.05rem;margin:0 0 4px}.blk .sub{color:var(--mut);font-size:.9rem;margin-bottom:10px}
@media (max-width:820px){.main{padding:16px 14px 80px}.bigtoggle{grid-template-columns:1fr}}

/* control ocupado mientras se guarda */
.ocupado { opacity: .6; cursor: progress; pointer-events: none; position: relative; }
button.ocupado::after { content: ''; display: inline-block; width: 12px; height: 12px; margin-left: 8px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; vertical-align: -2px; animation: giro .7s linear infinite; }
@keyframes giro { to { transform: rotate(360deg); } }

/* ================= v3: mas color y mas lindo ================= */
:root{
  --bg:#f3f6f4;--line:#e0e8e4;--soft:#eaf1ee;
  --acc:#0f7b6a;--acc2:#1fa88f;--acc-soft:#d9f2ea;
  --c1:#0f7b6a;--c2:#3b6fd4;--c3:#e08a1e;--c4:#d6336c;--c5:#7048c9;
  --c1s:#d9f2ea;--c2s:#e0e9fb;--c3s:#fdf0d8;--c4s:#fbe1ea;--c5s:#ebe3fa;
  --shadow:0 1px 2px rgba(20,60,50,.06),0 8px 24px rgba(20,60,50,.07);
  --grad:linear-gradient(135deg,#0c6b5c 0%,#1fa88f 100%);
  --r:16px;
}
@media (prefers-color-scheme:dark){
  :root[data-tema="oscuro"]{
    --bg:#111816;--panel:#19221f;--line:#2a3733;--soft:#222e2a;
    --acc:#46c3aa;--acc2:#2f9f8a;--acc-soft:#1b3a33;
    --c1s:#1b3a33;--c2s:#1d2c4a;--c3s:#3d2f15;--c4s:#43202c;--c5s:#2c2347;
    --grad:linear-gradient(135deg,#145a4e 0%,#1f8a76 100%);
  }
}
body{background:var(--bg);background-image:radial-gradient(1200px 400px at 85% -10%,var(--c1s),transparent 70%);background-repeat:no-repeat;background-attachment:fixed}
h1{font-size:1.65rem;letter-spacing:-.02em}
.btn{background:var(--grad);border-radius:12px;box-shadow:0 2px 8px rgba(15,123,106,.28);transition:transform .08s,box-shadow .15s,filter .15s}
.btn:hover{filter:brightness(1.06);box-shadow:0 4px 14px rgba(15,123,106,.35)}.btn:active{transform:translateY(1px)}
.btn.sec{background:var(--panel);box-shadow:none;border:1px solid var(--line)}.btn.sec:hover{background:var(--soft);box-shadow:none}
.btn.bad{background:linear-gradient(135deg,#b3362b,#d9544a);box-shadow:0 2px 8px rgba(179,54,43,.28)}
input[type=text],input[type=password],input[type=number],input[type=date],select,textarea{border-radius:11px;border:1.5px solid var(--line);transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-soft)}
.card{border-radius:var(--r);border:1px solid var(--line);transition:box-shadow .2s,transform .2s}
.card h2{display:flex;align-items:center;gap:9px}
.card h2::before{content:"";width:5px;height:1.05em;border-radius:3px;background:var(--grad);flex:none}
.stack>.card:nth-child(5n+2) h2::before{background:linear-gradient(180deg,var(--c2),#6a97ec)}
.stack>.card:nth-child(5n+3) h2::before{background:linear-gradient(180deg,var(--c3),#f2b457)}
.stack>.card:nth-child(5n+4) h2::before{background:linear-gradient(180deg,var(--c5),#9a7be0)}
.stack>.card:nth-child(5n+5) h2::before{background:linear-gradient(180deg,var(--c4),#ee7fa3)}
/* tarjetas de numeros con color */
.cards>.card{position:relative;overflow:hidden;padding-top:18px}
.cards>.card::after{content:"";position:absolute;left:0;top:0;right:0;height:5px;background:var(--grad)}
.cards>.card:nth-child(4n+2)::after{background:linear-gradient(90deg,var(--c2),#6a97ec)}
.cards>.card:nth-child(4n+3)::after{background:linear-gradient(90deg,var(--c3),#f2b457)}
.cards>.card:nth-child(4n+4)::after{background:linear-gradient(90deg,var(--c5),#9a7be0)}
.cards>.card:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(20,60,50,.12)}
.kpi .v{font-size:1.8rem}
/* menu lateral */
.side{background:linear-gradient(180deg,#0b4f45 0%,#0f6b5c 55%,#128a77 100%);border-right:0;color:#fff}
.side .brand{color:#fff;font-size:1.15rem;padding:6px 10px 18px;display:flex;align-items:center;gap:9px}
.side .brand::before{content:"📦";font-size:1.4rem}
.side a.nav{color:rgba(255,255,255,.88);border-radius:12px;margin-bottom:3px;transition:background .15s,transform .15s}
.side a.nav:hover{background:rgba(255,255,255,.14);transform:translateX(2px)}
.side a.nav.on{background:#fff;color:#0b4f45;font-weight:700;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.side a.nav .ic{display:inline-block;width:1.7em;text-align:center;margin-right:2px}
.side .small.mut,.side .mut{color:rgba(255,255,255,.7)}
.side a{color:#fff}
.side a.nav .badge{background:#ff5d4d}
/* cabecera de cada pagina */
.page-h{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px 22px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.page-h::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--grad)}
.page-h h1{margin:0}
.help{border-left:4px solid var(--c2);background:var(--c2s);border-radius:12px}
.note{border-radius:12px}
/* tablas */
.tw{border-radius:var(--r);box-shadow:var(--shadow);border:1px solid var(--line)}
th{background:var(--c1s);color:var(--acc)}
tbody tr:nth-child(even) td{background:rgba(15,123,106,.03)}
tbody tr.click:hover td{background:var(--c1s)}
/* etiquetas */
.chip{padding:3px 10px;background:var(--c2s);color:var(--c2)}
.chip.ok{background:var(--c1s);color:var(--acc)}.chip.medio{background:var(--c3s);color:#b8710b}.chip.alto{background:var(--c4s);color:#c2255c}
/* pestañas */
.tabs2{border:0;background:var(--soft);padding:5px;border-radius:14px;gap:4px;display:inline-flex}
.tabs2 a{border:0;border-radius:10px;padding:9px 16px;margin:0}
.tabs2 a.on{background:var(--panel);color:var(--acc);box-shadow:var(--shadow)}
.tabs{border-radius:14px}.tabs button{border-radius:11px}
/* listas */
.listcard{border-radius:var(--r);box-shadow:var(--shadow)}
.list-row{transition:background .15s,padding-left .15s}.list-row:hover{background:var(--c1s);padding-left:20px}
.req{border-radius:18px;border-left:6px solid var(--c3)}
.req .col{background:var(--c2s)}
.verdict.ok{background:var(--c1s)}
.step .n{background:var(--grad);box-shadow:0 3px 10px rgba(15,123,106,.3)}
.bigtoggle label{border-radius:14px;transition:border-color .15s,background .15s}
.bar{height:12px}.bar>i{background:var(--grad);border-radius:6px}
.badge{background:#e5484d}
.modal .card{box-shadow:0 20px 60px rgba(0,0,0,.35)}
/* login */
.login{margin:5vh auto}
.login h1{font-size:2rem;text-align:center;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:2px}
.login>p.mut{text-align:center;margin-top:0}
.login .card{padding:24px;box-shadow:0 18px 50px rgba(15,100,85,.16)}
/* cadete */
.cbar{background:var(--bg)}
.hero{background:var(--grad);border-radius:22px;padding:24px 22px;box-shadow:0 14px 34px rgba(15,123,106,.32);position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-40px;top:-40px;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.12)}
.hero::before{content:"";position:absolute;right:40px;bottom:-60px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.08)}
.hero .v{font-size:2.9rem}
.blk{border-radius:18px;box-shadow:var(--shadow)}
.zbox{border-radius:14px}
.drow{transition:background .15s}.drow:hover{background:var(--c1s)}
.pernav{border-radius:16px;box-shadow:var(--shadow)}
.daynav a{border-radius:12px}
.bnav{border-top:0;box-shadow:0 -6px 24px rgba(20,60,50,.12);border-radius:20px 20px 0 0;padding:4px 6px calc(4px + env(safe-area-inset-bottom))}
.bnav a{border-radius:14px;margin:3px 2px;transition:background .15s,color .15s}
.bnav a.on{background:var(--c1s);color:var(--acc)}
.bnav a b{font-size:1.35rem}
.warnrow{border-radius:12px}
.toast{background:linear-gradient(135deg,#17352f,#0f6b5c)}
.banner{background:linear-gradient(90deg,var(--c3s),var(--c4s));color:#9a5a05}
@media (max-width:820px){
  .side{flex-wrap:wrap;gap:6px;padding:10px;background:linear-gradient(135deg,#0b4f45,#128a77)}
  .side .brand{padding:2px 6px 6px}.side a.nav{padding:8px 11px;font-size:.92rem}
  .page-h{padding:14px 16px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.sec h2{color:var(--acc)}
.stack{max-width:900px}
.gl.small{padding:8px 0}

/* ingreso */
.login{padding-top:12vh}
.login-logo{width:72px;height:72px;margin:0 auto 10px;border-radius:22px;display:grid;place-items:center;font-size:36px;background:linear-gradient(135deg,#0f766e,#1fa88c);box-shadow:0 10px 24px rgba(15,118,110,.28)}
.login h1{text-align:center;margin:0}
.login > .mut{text-align:center;margin:2px 0 18px}
.login .field input{height:48px;font-size:16px;border-radius:12px}
.login .login-go{width:100%;height:50px;font-size:17px;margin-top:6px}
.login .pw{position:relative}
.login .pw input{width:100%;padding-right:52px}
.login .pw-ver{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;background:transparent;font-size:18px;cursor:pointer;opacity:.7}
.login-ayuda{text-align:center;margin-top:14px}

/* mapa en pantalla aparte (admin) */
.mapa-full{position:fixed;inset:0;z-index:1000;background:var(--bg,#f4f6f5);display:flex;flex-direction:column}
.mapa-full-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.08)}
.mapa-full-bar strong{flex:1;min-width:0}
.mapa-full-map{flex:1;min-height:0}
.modal .card{max-height:92vh;overflow:auto}

/* ================= v4: gama clara y colorida (azul · violeta · turquesa · ambar · rosa) ================= */
:root{
  color-scheme:light;
  --bg:#f6f8ff;--panel:#ffffff;--ink:#1b2340;--mut:#68739a;--line:#e5eaf8;--soft:#eef2ff;
  --acc:#4a6cf7;--acc2:#8b5cf6;--acc-soft:#e4eaff;--acc-ink:#fff;
  --ok:#0f9d76;--warn:#d98200;--bad:#e0455a;--info:#3b82f6;
  --warn-soft:#fff3d6;--bad-soft:#ffe3e8;--info-soft:#e2eeff;
  --c1:#4a6cf7;--c2:#14b8a6;--c3:#f59e0b;--c4:#ec4899;--c5:#8b5cf6;
  --c1s:#e4eaff;--c2s:#d9f5f1;--c3s:#fff0cf;--c4s:#fde0ee;--c5s:#ece4fe;
  --grad:linear-gradient(135deg,#4a6cf7 0%,#8b5cf6 100%);
  --shadow:0 1px 2px rgba(40,60,140,.06),0 8px 24px rgba(40,60,140,.08);
}
body{background-image:radial-gradient(900px 380px at 90% -8%,#e4eaff,transparent 70%),radial-gradient(700px 320px at -5% 12%,#fde0ee,transparent 70%)}
.btn{box-shadow:0 3px 10px rgba(74,108,247,.30)}.btn:hover{box-shadow:0 5px 16px rgba(74,108,247,.38)}
.btn.sec{color:var(--acc);border-color:#cfd8fb;background:#fff}.btn.sec:hover{background:var(--c1s)}
.btn.bad{background:linear-gradient(135deg,#e0455a,#f0727f);box-shadow:0 3px 10px rgba(224,69,90,.3)}
/* botones con color segun lo que hacen */
button[data-a*=":aprobar"],#aok,#ng,#ok{background:linear-gradient(135deg,#0f9d76,#2fc79a)!important;box-shadow:0 3px 10px rgba(15,157,118,.3)}
button[data-a*=":rechazar"]{background:#fff!important;color:#e0455a!important;border:1.5px solid #f6b9c2!important;box-shadow:none!important}
button[data-a*=":resolver"]{background:linear-gradient(135deg,#14b8a6,#38d3c1)!important;color:#fff!important;border:0!important;box-shadow:0 3px 10px rgba(20,184,166,.3)!important}
button[data-a*=":generar"]{background:linear-gradient(135deg,#f59e0b,#fbbf4d)!important;color:#fff!important;border:0!important}
button[data-fix],#alv,#apg{background:linear-gradient(135deg,#8b5cf6,#b08cff)!important;color:#fff!important;border:0!important;box-shadow:0 3px 10px rgba(139,92,246,.3)!important}
button[data-aj]{color:#8b5cf6;border-color:#d9ccfb}
#radd,#ec,#es{background:linear-gradient(135deg,#ec4899,#f472b6)!important;color:#fff!important;border:0!important;box-shadow:0 3px 10px rgba(236,72,153,.3)!important}
/* menu lateral claro */
.side{background:#fff;border-right:1px solid var(--line);color:var(--ink);box-shadow:4px 0 24px rgba(40,60,140,.06)}
.side .brand{color:var(--ink)}
.side a,.side a.nav{color:#44507a}
.side a.nav:hover{background:var(--soft);transform:translateX(2px)}
.side a.nav.on{background:var(--grad);color:#fff;font-weight:700;box-shadow:0 5px 16px rgba(74,108,247,.32)}
.side .small.mut,.side .mut{color:var(--mut)}
.side a.nav .badge{background:#ec4899;color:#fff}
@media (max-width:820px){.side{background:#fff;border-bottom:1px solid var(--line)}}
.page-h::before{background:var(--grad)}
.cards>.card::after{background:linear-gradient(90deg,#4a6cf7,#8b5cf6)}
.cards>.card:nth-child(4n+2)::after{background:linear-gradient(90deg,#14b8a6,#5eead4)}
.cards>.card:nth-child(4n+3)::after{background:linear-gradient(90deg,#f59e0b,#fcd34d)}
.cards>.card:nth-child(4n+4)::after{background:linear-gradient(90deg,#ec4899,#f9a8d4)}
.cards>.card:hover{box-shadow:0 12px 30px rgba(40,60,140,.14)}
.stack>.card:nth-child(5n+2) h2::before{background:linear-gradient(180deg,#14b8a6,#5eead4)}
.stack>.card:nth-child(5n+3) h2::before{background:linear-gradient(180deg,#f59e0b,#fcd34d)}
.stack>.card:nth-child(5n+4) h2::before{background:linear-gradient(180deg,#8b5cf6,#c4b5fd)}
.stack>.card:nth-child(5n+5) h2::before{background:linear-gradient(180deg,#ec4899,#f9a8d4)}
th{background:var(--c1s);color:#3a55c9}
tbody tr:nth-child(even) td{background:rgba(74,108,247,.035)}
.chip{background:var(--c1s);color:#3a55c9}
.chip.ok{background:#dcf7ee;color:#0b7a5b}.chip.medio{background:var(--c3s);color:#a86400}.chip.alto{background:var(--c4s);color:#c0266f}.chip.info{background:var(--c2s);color:#0c8f82}
.list-row:hover,.drow:hover{background:var(--c1s)}
.verdict.ok{background:#dcf7ee;color:#0b7a5b}
.step .n{box-shadow:0 3px 10px rgba(74,108,247,.3)}
.login .card{box-shadow:0 18px 50px rgba(74,108,247,.16)}
.login-logo{background:var(--grad);box-shadow:0 10px 24px rgba(74,108,247,.32)}
.hero{background:linear-gradient(135deg,#4a6cf7 0%,#7c5cf5 55%,#b062f0 100%);box-shadow:0 14px 34px rgba(100,92,245,.34)}
.bnav{box-shadow:0 -6px 24px rgba(40,60,140,.12);background:#fff}
.bnav a{color:#7a85a8}
.bnav a:nth-child(1).on{background:#e4eaff;color:#3a55c9}
.bnav a:nth-child(2).on{background:#d9f5f1;color:#0c8f82}
.bnav a:nth-child(3).on{background:#fff0cf;color:#a86400}
.bnav a:nth-child(4).on{background:#fde0ee;color:#c0266f}
.toast{background:linear-gradient(135deg,#3b4bd6,#7a5cf0)}
.banner{background:linear-gradient(90deg,#fff0cf,#fde0ee);color:#8a5200}
.pernav{background:#fff}
.help{border-left-color:#14b8a6;background:#e3f8f5}
.req{border-left-color:#f59e0b}.req .col{background:#f1f4ff}

/* barra de abajo del cadete: 6 accesos en el celular */
.bnav a{font-size:.72rem;padding:8px 2px 7px;margin:3px 1px}
.bnav a b{font-size:1.2rem}
.mapa-inline{height:380px;margin-top:10px;border-radius:12px;overflow:hidden;position:relative;background:#e8ecef}
@media (max-width:700px){.mapa-inline{height:300px}}
