/* KC Gestión · estilos. Paleta derivada del logo de Koning Coloma (azul y verde) con modo oscuro automático. */
:root{
  --bg:#f3f6f8;--surface:#fff;--sunk:#e8eef2;--fg:#14202a;--muted:#5a6873;--line:#d3dce2;
  --primary:#0e5a8a;--primary-fg:#fff;--brand-green:#43ff94;--tile:#fff;
  --ok:#17784a;--ok-bg:#dcf2e6;--warn:#985800;--warn-bg:#fcebcd;--bad:#b4282e;--bad-bg:#fbe0e0;--info:#0e5a8a;--info-bg:#dceefb;--res:#6a3fa0;--res-bg:#ece2f7;
  --display:"Josefin Sans","Century Gothic",system-ui,sans-serif;--body:"Nunito Sans",system-ui,-apple-system,"Segoe UI",sans-serif;color-scheme:light}
@media (prefers-color-scheme:dark){:root{
  --bg:#0f161c;--surface:#17212a;--sunk:#202c36;--fg:#e4ebf0;--muted:#97a6b2;--line:#2f3d49;--primary:#7fcdff;--primary-fg:#08202f;--tile:#f4f8fb;
  --ok:#6fd8a0;--ok-bg:#153527;--warn:#f2b860;--warn-bg:#3a2a10;--bad:#ff8f8f;--bad-bg:#3c1a1c;--info:#8fd2ff;--info-bg:#13324a;--res:#c9a6f0;--res-bg:#2d2140;color-scheme:dark}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.45 var(--body)}
a{color:var(--primary)}
h1,h2,h3{font-family:var(--display);margin:0;font-weight:700;letter-spacing:.01em;text-wrap:balance}
h1{font-size:26px}h2{font-size:20px}h3{font-size:16px}
input,select,textarea{font:inherit;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 10px;width:100%;min-width:0}
input[type=checkbox],input[type=radio]{width:auto}
input[type=file]{padding:6px}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.btn{display:inline-block;border:1px solid var(--primary);background:var(--primary);color:var(--primary-fg);border-radius:8px;padding:9px 14px;font:inherit;font-weight:700;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn.ghost{background:transparent;color:var(--primary)}.btn.sm{padding:5px 10px;font-size:13.5px}
.btn.danger{background:transparent;border-color:var(--bad);color:var(--bad)}
.lbl{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}
.muted{color:var(--muted)}.small{font-size:13px}.num{text-align:right;font-variant-numeric:tabular-nums}
.pill{display:inline-block;font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;white-space:nowrap}
.s-LIBRE,.s-ok,.s-activa,.s-cobrado{background:var(--ok-bg);color:var(--ok)}
.s-ALQUILADA,.s-info,.s-aprobada{background:var(--info-bg);color:var(--info)}
.s-VENDIDA,.s-neutral,.s-finalizada,.s-cancelada{background:var(--sunk);color:var(--muted)}
.s-RESERVADA,.s-pendiente,.s-firmada{background:var(--res-bg);color:var(--res)}
.s-warn,.s-devuelta,.s-diferencia{background:var(--warn-bg);color:var(--warn)}
.s-bad,.s-rechazada,.s-impagado{background:var(--bad-bg);color:var(--bad)}
.shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}
.side{background:var(--surface);border-right:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh}
.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--fg)}
.brand .tile{width:44px;height:44px;padding:5px;border:1px solid var(--line);background:var(--tile);border-radius:10px;display:grid;place-items:center}
.brand img{width:100%;height:100%;object-fit:contain}.brand b{font-family:var(--display);font-size:16px;display:block;letter-spacing:.04em}
nav{display:grid;gap:2px}
nav a{display:flex;justify-content:space-between;align-items:center;color:var(--fg);text-decoration:none;padding:9px 12px;border-radius:8px;font-weight:600}
nav a:hover{background:var(--sunk)}nav a.on{background:var(--info-bg);color:var(--info)}
nav .cnt{font-size:12px;font-weight:700;background:var(--warn-bg);color:var(--warn);border-radius:999px;padding:0 7px}
.who{margin-top:auto;border-top:1px solid var(--line);padding-top:14px;display:grid;gap:6px}
.content{min-width:0;padding:22px max(24px,env(safe-area-inset-right)) 48px max(24px,env(safe-area-inset-left));display:grid;gap:18px;align-content:start;max-width:1400px}
.top{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;min-width:0}
.stack16{display:grid;gap:14px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;gap:4px}
.kpi b{font-family:var(--display);font-size:27px;font-variant-numeric:tabular-nums;line-height:1.1}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(330px,100%),1fr));gap:16px;align-items:start}
.list .it{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}
.list .it:last-child{border-bottom:0}.list .it>div{min-width:0;flex:1 1 200px}
.bar{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--sunk)}.bar span{display:block;height:100%}
.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--muted)}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px}
.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.filters .f{display:grid;gap:4px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--surface);color:var(--fg);border-radius:999px;padding:6px 12px;font-size:13.5px;cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.chip:has(input:checked){background:var(--fg);color:var(--bg);border-color:var(--fg)}.chip input{position:absolute;opacity:0;pointer-events:none}
.tbox{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow-x:auto}
table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
th,td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle}
th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--sunk)}
tbody tr:last-child td{border-bottom:0}tr.link{cursor:pointer}tr.link:hover{background:var(--sunk)}
td a.row{color:inherit;text-decoration:none}
.pl{font-family:var(--display);font-weight:700;font-size:16px;display:inline-block;min-width:42px;text-align:center;border:2px solid var(--brand-green);border-radius:6px;padding:2px 4px 0}
.cat{font-weight:700;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:6px;background:var(--sunk);font-size:13px}
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px 16px}
.facts div{min-width:0;overflow-wrap:anywhere}.facts span{display:block;font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700}
.price{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;background:var(--sunk);border-radius:10px;padding:12px}
.price b{display:block;font-family:var(--display);font-size:21px;font-variant-numeric:tabular-nums}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form .full{grid-column:1/-1}
.field{display:grid;gap:4px}.field>label{font-size:13px;font-weight:700;color:var(--muted)}
.field .help{font-size:12.5px;color:var(--muted)}.errorlist{color:var(--bad);margin:0;padding:0;list-style:none;font-size:13px}
.msg{font-size:14px;padding:10px 12px;border-radius:8px}.msg.warn,.msg.warning{background:var(--warn-bg);color:var(--warn)}
.msg.ok,.msg.success{background:var(--ok-bg);color:var(--ok)}.msg.info{background:var(--info-bg);color:var(--info)}.msg.error{background:var(--bad-bg);color:var(--bad)}
.steps{display:flex;gap:0;flex-wrap:wrap;counter-reset:s}.steps div{flex:1 1 140px;padding:10px 12px;border-top:4px solid var(--sunk);font-size:13px;color:var(--muted)}
.steps div.done{border-color:var(--ok);color:var(--fg)}.steps div.now{border-color:var(--primary);color:var(--fg);font-weight:700}
.timeline{display:grid;gap:8px;font-size:13.5px}.timeline div{display:flex;gap:10px}.timeline i{flex:none;width:9px;height:9px;border-radius:50%;background:var(--primary);margin-top:6px}
.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
details>summary{cursor:pointer;font-weight:700}
.login{min-height:100vh;display:grid;place-items:center;padding:32px 16px}
.lcard{width:min(430px,100%);background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px;display:grid;gap:16px}
.lcard .tile{background:var(--tile);border-radius:10px;padding:18px;display:grid;place-items:center}.lcard .tile img{width:min(300px,100%)}
@media (max-width:860px){.shell{grid-template-columns:minmax(0,1fr)}.side{position:sticky;top:0;z-index:30;height:auto;gap:10px;padding:10px 16px;border-right:0;border-bottom:1px solid var(--line)}
 nav{display:flex;overflow-x:auto}nav a{flex:none}.who{display:none}.content{padding:16px}.form{grid-template-columns:minmax(0,1fr)}}
