:root{--petroleo:#1D4E5A;--terracota:#C2603E;--terracota-t:#B4532F;--dorado:#D9A441;--marfil:#F6EFE0;--tinta:#14262B;
--bg:#FAF6EE;--card:#fff;--tx:var(--tinta);--mu:#5f6f73;--bd:#e6ddcb;--pri:var(--petroleo);--pri2:#163e48;
--verde:#2e8b57;--verde-bg:#e4f3ea;--amarillo:var(--dorado);--amarillo-bg:#fbf0d6;--rojo:#c43d2b;--rojo-bg:#fbe6e1;--gris:#9aa3a6;--gris-bg:#eeebe4;
--f-titulo:"Unbounded",system-ui,sans-serif;--f-texto:"Space Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
*{box-sizing:border-box}
body{margin:0;font-family:var(--f-texto);background:var(--bg);color:var(--tx);font-size:15px;line-height:1.45}
a{color:var(--pri)}
main{max-width:1180px;margin:0 auto;padding:18px 16px 40px}
h1,h2{font-family:var(--f-titulo);font-weight:700;color:var(--petroleo);letter-spacing:-.01em}
h1{font-size:1.5rem;margin:.3rem 0 .8rem}h2{font-size:1.15rem;margin:.2rem 0 .7rem}h3{font-size:1rem;margin:1rem 0 .5rem}
.top{background:var(--petroleo);color:#fff;display:flex;align-items:center;gap:18px;padding:10px 18px;position:sticky;top:0;z-index:10;flex-wrap:wrap}
.marca{display:flex;align-items:center;text-decoration:none;padding:4px 0}
.marca img{display:block}.marca .logo-i{display:none}
.top nav{display:flex;gap:4px;flex:1;overflow-x:auto;-webkit-overflow-scrolling:touch}
.top nav a{color:#e8e0cf;text-decoration:none;padding:7px 11px;border-radius:8px;white-space:nowrap}
.top nav a.on,.top nav a:hover{background:rgba(246,239,224,.14);color:var(--marfil)}
.top nav a.on{box-shadow:inset 0 -2px 0 var(--dorado)}
.user{font-size:.85rem;color:#cfd9d6}.user a{color:var(--dorado)}
.badge{background:var(--rojo);color:#fff;border-radius:10px;padding:0 6px;font-size:.75rem}
.pie{text-align:center;color:var(--mu);font-size:.8rem;padding:20px}
.card{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:16px;margin:0 0 16px}
.btn{display:inline-block;border:1px solid var(--bd);background:#fff;color:var(--tx);padding:9px 15px;border-radius:9px;text-decoration:none;font-size:.95rem;cursor:pointer;font-family:inherit}
.btn:hover{border-color:#b8c1cb}.btn.primario{background:var(--pri);border-color:var(--pri);color:#fff}.btn.primario:hover{background:var(--pri2)}
.btn.peligro{background:var(--rojo);border-color:var(--rojo);color:#fff}.btn.chico{padding:4px 10px;font-size:.85rem}
.link{text-decoration:none;font-size:.9rem}
.muted{color:var(--mu)}.small{font-size:.82rem}.r{text-align:right}.nowrap{white-space:nowrap}
.rojo-t{color:var(--rojo)}.verde-t{color:var(--verde)}
.flash{padding:10px 14px;border-radius:9px;margin:0 0 14px;background:var(--verde-bg);border:1px solid #bfe5cc}
.flash.error{background:var(--rojo-bg);border-color:#f5c2c2}
.aviso{background:var(--amarillo-bg);border:1px solid #f1df9b;padding:9px 13px;border-radius:9px;margin:0 0 12px;font-size:.92rem}
.cab{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.acciones{display:flex;gap:8px;flex-wrap:wrap}
.mesnav{display:flex;align-items:center;gap:10px}.mesnav h1{margin:0;min-width:180px;text-align:center}
.kpis{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:12px;margin:14px 0}
.kpi{background:#fff;border:1px solid var(--bd);border-radius:12px;padding:13px 15px;border-top:4px solid var(--pri)}
.kpi.rojo{border-top-color:var(--rojo)}.kpi.amarillo{border-top-color:var(--amarillo)}.kpi.verde{border-top-color:var(--verde)}
.kpi .lbl{font-size:.8rem;color:var(--mu);text-transform:uppercase;letter-spacing:.03em}.kpi .val{font-size:1.4rem;font-weight:700;font-family:var(--f-titulo);color:var(--petroleo)}
.kpi .val small{font-size:.9rem;font-weight:400;color:var(--mu)}
.barra{height:8px;background:var(--gris-bg);border-radius:6px;overflow:hidden;margin:6px 0}.barra div{height:100%;background:var(--verde)}
.leyenda{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:.88rem;margin:6px 0 4px}
.dot{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:-6px}
.dot.verde{background:var(--verde)}.dot.amarillo{background:var(--amarillo)}.dot.rojo{background:var(--rojo)}.dot.gris{background:var(--gris)}
.piso{margin-top:18px;color:var(--mu);font-size:.95rem;text-transform:uppercase;letter-spacing:.05em}
.grilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.pz{display:block;text-decoration:none;color:var(--tx);border-radius:12px;padding:11px 12px;border:1px solid var(--bd);border-left:6px solid;background:#fff;position:relative;min-height:112px}
.pz:hover{box-shadow:0 3px 12px rgba(0,0,0,.08)}
.pz.verde{border-left-color:var(--verde);background:var(--verde-bg)}.pz.amarillo{border-left-color:var(--amarillo);background:var(--amarillo-bg)}
.pz.rojo{border-left-color:var(--rojo);background:var(--rojo-bg)}.pz.gris{border-left-color:var(--gris);background:var(--gris-bg);color:var(--mu)}
.pz-n{font-size:1.25rem;font-weight:700;font-family:var(--f-titulo);color:var(--tinta)}.pz.gris .pz-n{color:var(--gris)}.pz-nom{font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pz-det{font-weight:600;margin-top:4px;font-size:.92rem}.tag{font-size:.75rem;color:var(--mu)}
.pz.rojo .tag{color:var(--rojo);font-weight:600}
.prov{position:absolute;top:9px;right:9px;font-size:.66rem;background:rgba(0,0,0,.06);border-radius:6px;padding:1px 5px;color:var(--mu)}
.tag-prov{font-size:.72rem;background:var(--gris-bg);border-radius:6px;padding:1px 5px;color:var(--mu)}
.chip{display:inline-block;font-size:.78rem;padding:2px 9px;border-radius:20px;font-weight:600;vertical-align:middle;text-decoration:none}
.chip.verde{background:var(--verde-bg);color:#1d6d3e}.chip.amarillo{background:var(--amarillo-bg);color:#8a6a00}
.chip.rojo{background:var(--rojo-bg);color:#a12d2d}.chip.gris{background:var(--gris-bg);color:#5d6875}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
dl.datos{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0 0 12px}dl.datos dt{color:var(--mu)}dl.datos dd{margin:0}
dd.grande{font-size:1.3rem;font-weight:700}
.form{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 14px;align-items:end}
.form .full{grid-column:1/-1}
label{display:flex;flex-direction:column;gap:4px;font-size:.86rem;color:var(--mu)}
label.chk{flex-direction:row;align-items:center;gap:6px;color:var(--tx)}
input,select,textarea{font:inherit;padding:8px 10px;border:1px solid var(--bd);border-radius:8px;background:#fff;color:var(--tx);min-width:0}
input[type=checkbox]{width:18px;height:18px}
form.inline{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}
.dia{margin-top:8px}.dia select{max-width:200px}
details.editar{margin-top:10px}details summary{cursor:pointer;color:var(--pri);margin-bottom:8px}
.nota{font-size:.85rem;color:var(--mu);background:var(--gris-bg);padding:8px 10px;border-radius:8px}
.tabla-scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{padding:7px 9px;border-bottom:1px solid var(--bd);text-align:left;vertical-align:top}
th{font-size:.78rem;text-transform:uppercase;color:var(--mu);letter-spacing:.03em;white-space:nowrap}
tr.apagado{color:var(--mu)}
table.flujo td:first-child{min-width:230px}table.flujo td{white-space:nowrap}table.flujo td:first-child{white-space:normal}
tr.sec td{background:var(--gris-bg);font-weight:700;font-size:.8rem;text-transform:uppercase;color:var(--mu)}
tr.tot td{font-weight:700}tr.res td{font-weight:700;background:#e9f0f1;color:var(--petroleo)}
table.movs select{max-width:190px}
ul.docs{padding-left:18px}
blockquote{margin:8px 0;padding:8px 12px;border-left:4px solid var(--pri);background:var(--gris-bg);border-radius:6px}
pre.aviso-txt{white-space:pre-wrap;background:var(--marfil);border:1px solid var(--bd);padding:12px;border-radius:10px;font-family:inherit}
.login{max-width:380px;margin:9vh auto}.login-logo{width:270px;height:auto;margin:0 0 6px}.login form{display:grid;gap:12px}
.buscar{display:flex;gap:8px;margin-bottom:12px}.buscar input{flex:1;max-width:360px}
.fotos-admin{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.fotos-admin figure{margin:0;position:relative}
.fotos-admin img{width:120px;height:80px;object-fit:cover;border-radius:8px}.fotos-admin form{position:absolute;top:4px;right:4px}
.hp{position:absolute;left:-9999px}
@media (max-width:760px){
  main{padding:12px 10px 30px}h1{font-size:1.3rem}
  .top{gap:8px;padding:8px 10px}.top .marca .logo-h{display:none}.top .marca .logo-i{display:block;width:34px;height:34px}.user{font-size:.78rem;margin-left:auto}.top nav{order:3;flex-basis:100%}
  .kpis{grid-template-columns:1fr 1fr}.kpi.grande{grid-column:1/-1}.kpi .val{font-size:1.2rem}
  .grilla{grid-template-columns:repeat(3,1fr);gap:7px}.pz{padding:8px;min-height:98px;border-left-width:5px}
  .pz-n{font-size:1.1rem}.pz-nom,.pz-det{font-size:.78rem}.tag{font-size:.68rem}.prov{display:none}
  .cols{grid-template-columns:1fr}.mesnav h1{min-width:0}
}

.btn.primario{background:var(--petroleo);border-color:var(--petroleo)}
.kpi{border-top-color:var(--petroleo)}
a{color:var(--petroleo)}
.top a.marca{color:inherit}
/* Solicitudes / comprobantes (administración) */
.subnav{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}
.subnav a{padding:6px 11px;border-radius:8px;text-decoration:none;border:1px solid var(--bd);background:#fff;font-size:.9rem}
.subnav a.on{background:var(--petroleo);color:#fff;border-color:var(--petroleo)}
.filtros{display:flex;gap:12px;flex-wrap:wrap;align-items:end}
a.sol.card{display:block;text-decoration:none;color:var(--tx);margin-bottom:10px}a.sol.card:hover{box-shadow:0 3px 12px rgba(0,0,0,.08)}
.sol-cab{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:4px}.sol-desc{margin:4px 0}
.sol-foto{max-width:100%;max-height:360px;border-radius:10px;margin-top:8px;display:block}
.pre{white-space:pre-wrap}
.com{border-left:3px solid var(--dorado);padding:4px 10px;margin:8px 0;background:var(--marfil);border-radius:4px}
