/* Control de Predio. Oscuro por defecto; html[data-tema="claro"] cambia todos los colores. */
:root{
  --bg:#0E1217; --surface:#171C24; --surface2:#1E2530;
  --ink:#E8ECF2; --muted:#9AA6B5; --line:#2A3340; --line-strong:#445062;
  --amber:#F5B400; --on-amber:#1A1300;
  --sel:#7AAEEF; --on-sel:#0B1626;
  --ok:#4CC38A; --bad:#FF8076;
  --wa:#128C4A; --on-wa:#FFFFFF;
  /* papel del comprobante: siempre claro, como el PDF impreso */
  --paper:#FFFFFF; --paper-ink:#14181F; --paper-muted:#566070; --paper-line:#D6DBE2; --paper-bad:#B42318; --paper-ok:#1B7A4B; --paper-soft:#EEF1F5;
  --f-display:'Barlow Condensed','Arial Narrow',sans-serif;
  --f-body:'Barlow',system-ui,-apple-system,'Segoe UI',sans-serif;
  color-scheme:dark;
}
html[data-tema="claro"]{
  --bg:#EBEEF2; --surface:#FFFFFF; --surface2:#F4F6F9;
  --ink:#14181F; --muted:#5A6572; --line:#D6DBE2; --line-strong:#B4BCC7;
  --sel:#1E4E8C; --on-sel:#FFFFFF;
  --ok:#1B7A4B; --bad:#B42318;
  color-scheme:light;
}

*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.45;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0 40px;min-height:100vh}
h1,h2,h3{font-family:var(--f-display);font-weight:600;line-height:1.1;margin:0;text-wrap:balance}
p{margin:0}
a{color:var(--sel)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--sel);outline-offset:2px}
.num{font-variant-numeric:tabular-nums}
[hidden]{display:none!important}

/* encabezado */
.nav{position:sticky;top:0;z-index:9;background:var(--bg);margin-inline:calc(-1 * max(16px,env(safe-area-inset-left,0px)));padding-inline:max(16px,env(safe-area-inset-left,0px));border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.nav-in{max-width:980px;margin:0 auto;display:flex;align-items:center;gap:8px 18px;flex-wrap:wrap;padding-block:8px}
.marca{font-family:var(--f-display);font-weight:700;font-size:22px;letter-spacing:.02em;text-transform:uppercase;display:flex;align-items:center;gap:8px;color:var(--ink);text-decoration:none}
.marca i{width:10px;height:22px;background:repeating-linear-gradient(180deg,var(--amber) 0 5px,var(--ink) 5px 10px);display:block;border-radius:2px;flex:none}
.marca.grande{font-size:30px;justify-content:center;margin-bottom:18px}
.marca.grande i{height:30px}
.tabs{display:flex;gap:4px;flex:1;flex-wrap:wrap}
.tabs a{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:8px;color:var(--muted);text-decoration:none;font-weight:600}
.tabs a[aria-current="page"]{background:var(--ink);color:var(--bg)}
.sesion{display:flex;align-items:center;gap:8px;margin:0}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--surface2);border:1px solid var(--line-strong);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:12px}
.tema-btn{width:40px;height:40px;border-radius:8px;border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--ink)}
.tema-flotante{position:fixed;top:calc(12px + env(safe-area-inset-top,0px));right:max(12px,env(safe-area-inset-right,0px))}
.ico-luna{display:none}
html[data-tema="claro"] .ico-sol{display:none}
html[data-tema="claro"] .ico-luna{display:block}
@media(max-width:600px){
  .nav-in{gap:4px 10px;padding-block:6px}
  .marca{font-size:19px}
  .tabs{order:3;flex:1 1 100%;flex-wrap:nowrap;overflow-x:auto;gap:2px;scrollbar-width:none}
  .tabs a{flex:none;white-space:nowrap;padding:0 12px}
  .sesion{margin-left:auto;gap:6px}
  .avatar{display:none}
}

main{padding-top:18px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
main.app{max-width:480px}
main.ancho{max-width:980px}
.mock-note{font-size:13px;color:var(--muted)}
.aviso{border-radius:10px;padding:12px 14px;font-weight:500;border:1px solid var(--line-strong);background:var(--surface)}
.aviso.ok{border-color:color-mix(in srgb,var(--ok) 55%,transparent);background:color-mix(in srgb,var(--ok) 13%,var(--surface))}
.aviso.error{border-color:color-mix(in srgb,var(--bad) 55%,transparent);background:color-mix(in srgb,var(--bad) 13%,var(--surface))}
.cabeza{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.cabeza h1{font-size:32px}

/* bloques del formulario */
.block{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:14px;min-width:0}
.block>h2{font-size:20px;letter-spacing:.02em;text-transform:uppercase;display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.block>h2 small{font-family:var(--f-body);font-size:12.5px;font-weight:500;text-transform:none;letter-spacing:0;color:var(--muted)}
.form{display:flex;flex-direction:column;gap:14px}
.auto{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.auto div{background:var(--surface2);border-radius:8px;padding:8px 10px;min-width:0}
.auto small{display:block;color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.06em}
.auto b{font-family:var(--f-display);font-size:19px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field>span,.lbl{font-size:13px;font-weight:600;color:var(--muted)}
.row2{display:grid;grid-template-columns:1fr 110px;gap:10px}
.row2e{display:grid;grid-template-columns:1fr 1fr;gap:10px}
input[type=text],input[type=tel],input[type=email],input[type=password],input[type=search],select,textarea{width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);font-size:16px}
textarea{min-height:68px;resize:vertical}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.8}
.placa-in{font-family:var(--f-display);font-weight:700;font-size:34px!important;letter-spacing:.12em;text-transform:uppercase;text-align:center;min-height:62px!important}

/* botones tipo chip (radio y casilla) */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;display:inline-flex}
.chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.chip span{min-height:44px;padding:0 14px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);font-weight:500;display:inline-flex;align-items:center;gap:8px;width:100%}
.chip input:checked+span{background:var(--sel);border-color:var(--sel);color:var(--on-sel);font-weight:600}
.chip input:focus-visible+span{outline:3px solid var(--sel);outline-offset:2px}
.chips.multi .chip input:checked+span::before{content:"✓"}
.sw{width:14px;height:14px;border-radius:50%;border:1px solid var(--line-strong);flex:none}
.motivos{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.motivos .chip span{justify-content:flex-start;text-align:left;min-height:56px;line-height:1.2;padding:8px 12px}
@media(max-width:380px){.motivos{grid-template-columns:1fr}}

.banner{display:flex;gap:10px;align-items:flex-start;border-radius:10px;padding:12px;font-size:14px;line-height:1.35}
.banner svg{flex:none;margin-top:1px}
.banner.bad{background:color-mix(in srgb,var(--bad) 13%,transparent);border:1px solid color-mix(in srgb,var(--bad) 45%,transparent)}
.banner.bad svg{color:var(--bad)}
.banner.ok{background:color-mix(in srgb,var(--ok) 13%,transparent);border:1px solid color-mix(in srgb,var(--ok) 45%,transparent)}
.banner.ok svg{color:var(--ok)}

details{border-top:1px dashed var(--line-strong);padding-top:12px}
summary{cursor:pointer;font-weight:600;color:var(--muted);min-height:32px;display:flex;align-items:center}
details[open] summary{margin-bottom:12px}
details .stack{display:flex;flex-direction:column;gap:12px}

/* fotos */
.fotos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.tile{--gap:var(--surface2);position:relative;aspect-ratio:4/3;border-radius:8px;background:var(--surface2);border:1px solid var(--line);overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--muted)}
.tile .pk{width:70%;height:auto;opacity:.55}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tile em{position:absolute;left:0;right:0;bottom:0;font-style:normal;font-size:11.5px;font-weight:600;padding:3px 6px;background:color-mix(in srgb,var(--bg) 80%,transparent);color:var(--ink)}
.tile .x{position:absolute;top:4px;right:4px;width:28px;height:28px;border-radius:50%;border:0;background:color-mix(in srgb,var(--bg) 85%,transparent);color:var(--ink);cursor:pointer;font-size:16px;line-height:1}
.tile.add{border:2px dashed var(--line-strong);background:transparent;cursor:pointer;flex-direction:column;gap:4px;color:var(--sel);font-weight:600;font-size:13px;text-align:center}
.tile.add input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.tile.add:focus-within{outline:3px solid var(--sel);outline-offset:2px}
a.tile{text-decoration:none}
.tile.slot .pk{color:var(--muted);opacity:.5}
.tile.slot .cam{position:absolute;top:6px;right:6px}
.tile.slot em{color:var(--sel);background:transparent}
.hint{font-size:12.5px;color:var(--muted)}

/* firma */
.sig{position:relative}
.sig canvas{display:block;width:100%;height:120px;background:var(--surface2);border:1px solid var(--line-strong);border-radius:8px;touch-action:none;color:var(--ink);cursor:crosshair}
.sig button{position:absolute;top:6px;right:6px;min-height:34px;padding:0 10px;border-radius:6px;border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;font-size:13px;font-weight:600}
.sig .line{position:absolute;left:12px;right:12px;bottom:26px;border-bottom:1px solid var(--line-strong);pointer-events:none}
.sig .cap{position:absolute;left:12px;bottom:6px;font-size:11.5px;color:var(--muted);pointer-events:none}

/* botones */
.btn,.btn-sec{min-height:54px;border-radius:10px;border:0;cursor:pointer;font-family:var(--f-display);font-weight:700;font-size:20px;letter-spacing:.05em;text-transform:uppercase;display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;padding:0 18px;width:100%}
.btn.primario{background:var(--amber);color:var(--on-amber)}
.btn.wa{background:var(--wa);color:var(--on-wa)}
.btn-sec{background:transparent;border:1px solid var(--line-strong);color:var(--ink)}
.btn.peligro{background:var(--bad);color:#fff}
.btn:disabled,.btn-sec:disabled{opacity:.45;cursor:not-allowed}
.chico{min-height:40px;font-size:15px;width:auto;padding:0 14px;letter-spacing:.03em}
.sm{min-height:46px;font-size:17px}
.submit-bar{position:sticky;bottom:0;padding:10px 0 calc(10px + env(safe-area-inset-bottom,0px));background:linear-gradient(to top,var(--bg) 75%,transparent);display:flex;flex-direction:column;gap:6px;z-index:5}
.actions{display:flex;flex-direction:column;gap:10px}

/* placa */
.plate{display:inline-flex;flex-direction:column;align-items:center;background:#fff;color:#111;border:2px solid #111;border-radius:6px;padding:1px 10px 2px;line-height:1;flex:none}
.plate small{font-size:7.5px;letter-spacing:.22em;font-weight:700}
.plate b{font-family:var(--f-display);font-size:26px;letter-spacing:.08em;font-weight:700}
.plate.big b{font-size:38px}
.plate.big small{font-size:9px}

/* comprobante */
.done-h{display:flex;gap:10px;align-items:center;color:var(--ok)}
.done-h h2{font-size:26px;color:var(--ink)}
.paper{background:var(--paper);color:var(--paper-ink);border-radius:4px;padding:18px;box-shadow:0 1px 2px rgba(0,0,0,.25),0 10px 28px rgba(0,0,0,.18);font-size:13px;line-height:1.4;display:flex;flex-direction:column;gap:12px}
.paper *{min-width:0}
.p-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:2px solid var(--paper-ink);padding-bottom:10px}
.p-head b{font-family:var(--f-display);font-size:19px;text-transform:uppercase;letter-spacing:.03em;line-height:1.05;display:block}
.p-head span{color:var(--paper-muted);font-size:12px}
.p-folio{text-align:right;flex:none}
.p-folio b{font-size:24px;font-variant-numeric:tabular-nums}
.p-ret{border:2px solid var(--paper-bad);color:var(--paper-bad);padding:8px 10px;border-radius:4px;font-weight:600}
.p-ret.free{border-color:var(--paper-ok);color:var(--paper-ok)}
.p-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin:0}
.p-grid div{border-bottom:1px solid var(--paper-line);padding-bottom:4px}
.p-grid dt{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--paper-muted)}
.p-grid dd{margin:0;font-weight:600}
.p-grid .wide{grid-column:1/-1}
.p-photos{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.p-photos div{--gap:var(--paper-soft);aspect-ratio:4/3;background:var(--paper-soft);border-radius:3px;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#8A94A3;position:relative;font-size:12px;font-weight:600}
.p-photos img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.p-photos .pk{width:72%}
.p-foot{display:flex;gap:12px;align-items:flex-end;justify-content:space-between}
.p-sign{flex:1;border-bottom:1px solid var(--paper-ink);min-height:56px;display:flex;align-items:flex-end}
.p-sign img{max-height:56px;max-width:100%}
.p-cap{font-size:10.5px;color:var(--paper-muted);margin-top:3px}
.p-small{font-size:10.5px;color:var(--paper-muted)}
.qr{flex:none;text-align:center;font-size:9px;color:var(--paper-muted);width:84px}
.qr svg{display:block;width:84px;height:84px;margin-bottom:2px}

/* lista del predio */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.stat b{font-family:var(--f-display);font-size:34px;font-weight:600;line-height:1;display:block;font-variant-numeric:tabular-nums}
.stat span{font-size:12.5px;color:var(--muted)}
.stat.r b{color:var(--bad)} .stat.g b{color:var(--ok)}
.filters{display:flex;gap:6px;flex-wrap:wrap}
.filters a{min-height:38px;padding:0 12px;font-size:14px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);display:inline-flex;align-items:center;text-decoration:none;color:var(--ink);font-weight:500}
.filters a[aria-current="true"]{background:var(--sel);border-color:var(--sel);color:var(--on-sel);font-weight:600}
.buscar{display:flex;gap:8px}
.buscar input{flex:1}
.list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:10px}
.veh{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px;min-width:0;text-decoration:none;color:var(--ink)}
a.veh:hover{border-color:var(--line-strong)}
.veh.ret{border-left:4px solid var(--bad)}
.veh-top{display:flex;gap:12px;align-items:center}
.veh-info{flex:1;min-width:0;display:flex;flex-direction:column}
.veh-info b{font-weight:600}
.veh-info span,.veh-note{font-size:13.5px;color:var(--muted)}
.pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:700;white-space:nowrap;flex:none}
.pill.bad{background:color-mix(in srgb,var(--bad) 15%,transparent);color:var(--bad)}
.pill.ok{background:color-mix(in srgb,var(--ok) 15%,transparent);color:var(--ok)}
.pill.off{background:var(--surface2);color:var(--muted)}
.empty{text-align:center;color:var(--muted);padding:28px 10px;border:1px dashed var(--line-strong);border-radius:12px}
.filebtn{display:flex;align-items:center;gap:10px;min-height:48px;padding:6px 12px;border:1px dashed var(--line-strong);border-radius:8px;cursor:pointer;position:relative;color:var(--sel);font-weight:600}
.filebtn input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}

/* detalle y tablas */
.detalle{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}
@media(max-width:760px){.detalle{grid-template-columns:1fr}}
.dl{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin:0}
.dl dt{font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.dl dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.dl .wide{grid-column:1/-1}
.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.tbl table{border-collapse:collapse;width:100%;font-size:14px}
.tbl th,.tbl td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl th{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);background:var(--surface2)}
.tbl tr:last-child td{border-bottom:0}
.linea{display:flex;gap:10px;align-items:baseline;font-size:13.5px;border-bottom:1px solid var(--line);padding:6px 0}
.linea:last-child{border-bottom:0}
.linea time{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}

/* acceso */
body.invitado{display:flex;align-items:center;justify-content:center}
.invitado-envoltura{width:100%;max-width:400px;padding-block:30px}
.login h1{font-size:26px;margin-bottom:6px}
.login form{display:flex;flex-direction:column;gap:14px}

#toast{position:fixed;left:50%;bottom:calc(86px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:10px;font-weight:600;z-index:20;max-width:calc(100% - 32px);text-align:center;opacity:0;pointer-events:none;transition:opacity .2s}
#toast.on{opacity:1}
@media(prefers-reduced-motion:reduce){#toast{transition:none}}
