:root{--graphite:#15181c;--graphite-2:#1d2126;--steel:#2a2f36;--line:#333941;--amber:#e8892c;--amber-2:#ffab5c;--paper:#f4f5f7;--ink:#e9ebee;--ink-dim:#9aa2ad;--ok:#4caf7d;--warn:#e8892c;--due:#e05a5a;--r:10px;box-sizing:border-box;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}html{scroll-padding-top:env(safe-area-inset-top,0)}*{box-sizing:border-box}body{margin:0;background:var(--graphite);color:var(--ink);font-family:Inter,sans-serif;height:100%;-webkit-font-smoothing:antialiased}.brand,.tabbar a,h1,h2,h3{font-family:Barlow Condensed,sans-serif}button{font-family:inherit;cursor:pointer}::selection{background:var(--amber);color:#161616}#login{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:24px}#login .bgfallback,#login video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.4) saturate(1.05)}.bgfallback{background:repeating-linear-gradient(115deg,hsla(0,0%,100%,.025) 0 2px,transparent 2px 26px),radial-gradient(1100px 700px at 20% 15%,#23262b 0,transparent 60%),radial-gradient(900px 600px at 85% 90%,#2a2118 0,transparent 55%),linear-gradient(180deg,#101317,#0c0e10)}.bg-wordmark{position:absolute;left:-4%;bottom:-6%;width:46%;min-width:340px;opacity:.5;pointer-events:none;filter:saturate(.85)}#login:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,hsla(0,0%,4%,.35),hsla(0,0%,4%,.75))}.login-card{position:relative;z-index:2;width:100%;max-width:380px;background:rgba(21,24,28,.82);border:1px solid hsla(0,0%,100%,.08);border-radius:var(--r);padding:36px 32px 30px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 30px 60px rgba(0,0,0,.45)}.brand{display:flex;align-items:center;gap:10px;margin-bottom:4px}.brand img.logo{width:46px;height:46px;border-radius:50%;display:block}.brand .mark{font-size:34px;font-weight:700;letter-spacing:.5px;color:var(--paper)}.brand .mark b{color:var(--amber)}.login-card p.tag{margin:0 0 26px;color:var(--ink-dim);font-size:14.5px}.field{margin-bottom:16px}.field label{display:block;font-size:12.5px;color:var(--ink-dim);margin-bottom:6px}.field input{width:100%;padding:12px 13px;background:var(--graphite-2);border:1px solid var(--line);border-radius:7px;color:var(--ink);font-size:15px;outline:none;transition:border-color .15s}.field input:focus{border-color:var(--amber)}.login-btn{width:100%;padding:12px;margin-top:8px;background:var(--amber);color:#1a1300;border:none;border-radius:7px;font-weight:700;font-size:15px;letter-spacing:.2px;transition:background .15s}.login-btn:hover{background:var(--amber-2)}.login-err{color:var(--due);font-size:13px;margin-top:10px;min-height:16px}.hint{margin-top:22px;padding-top:16px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-dim);line-height:1.6}.hint code{background:var(--graphite-2);padding:1px 6px;border-radius:4px;color:var(--amber-2)}#app{min-height:100vh;min-height:100dvh;background:var(--paper);color:#1b1e22}header.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:var(--graphite);color:var(--paper);padding-top:calc(12px + env(safe-area-inset-top,0px))}.topbar-inner{max-width:1140px;margin:0 auto;padding:0 20px 12px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}.topbar .brand img.logo{width:34px;height:34px}.topbar .brand .mark{font-size:22px}.tabbar{display:flex;gap:4px;flex:1 1;min-width:0}.tabbar a{background:none;border:none;color:var(--ink-dim);padding:9px 16px;font-size:17px;border-radius:7px;font-weight:600;letter-spacing:.2px;text-decoration:none;display:inline-block;cursor:pointer}.tabbar a.active{background:var(--steel);color:var(--paper)}.who{display:flex;align-items:center;gap:12px;font-size:13.5px;color:var(--ink-dim);white-space:nowrap}.who b{color:var(--paper);font-weight:600}.logout{background:none;border:1px solid var(--line);color:var(--ink-dim);padding:7px 12px;border-radius:6px;font-size:12.5px}.logout:hover{color:var(--paper);border-color:var(--ink-dim)}main{max-width:1140px;margin:0 auto;padding:28px 20px 60px}.view{display:none}.view.active{display:block}.view h2{font-size:26px;margin:0 0 4px;font-weight:600}.view .sub{color:#6b7280;font-size:14px;margin:0 0 22px}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.filters input,.filters select{padding:9px 12px;border:1px solid #d8dbe0;border-radius:7px;font-size:13.5px;background:#fff;color:#1b1e22}.filters input{flex:1 1;min-width:180px}.table-wrap{overflow-x:auto;border:1px solid #e3e5e9;border-radius:var(--r);background:#fff}table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:760px}th{text-align:left;font-size:11.5px;color:#6b7280;font-weight:600;border-bottom:1px solid #e3e5e9;background:#fafbfc;white-space:nowrap}td,th{padding:11px 14px}td{border-bottom:1px solid #eef0f2;vertical-align:middle}tr:last-child td{border-bottom:none}tr:hover td{background:#fbfaf7}.folio{font-weight:600;color:#1b1e22}.vehiculo{color:#374151}.concepto{color:#6b7280}.badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11.5px;font-weight:600}.badge.ok{background:#e5f5ec;color:#1f7a4d}.badge.due{background:#fdeceb;color:#c23b31}.badge.wait{background:#fdf1e2;color:#a15c00}.badge.deuda{background:#efe7f5;color:#6b3fa0}.docs{display:flex;gap:6px;flex-wrap:wrap}.doclink{border:1px solid #d8dbe0;background:#fff;color:#374151;font-size:11.5px;padding:5px 9px;border-radius:6px;display:inline-flex;align-items:center;gap:5px;transition:.12s}.doclink:hover{border-color:var(--amber);color:#a15c00}.doclink.locked{cursor:not-allowed}.doclink.locked,.doclink.locked:hover{color:#b8bcc2;border-color:#e3e5e9}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:14px;gap:14px;margin-bottom:28px}.card{background:#fff;border:1px solid #e3e5e9;border-radius:var(--r);padding:18px 18px 16px}.card .k{font-size:12px;color:#6b7280;margin-bottom:8px}.card .v{font-size:23px;font-weight:700;color:#1b1e22;font-family:Barlow Condensed,sans-serif}.card .v small{font-size:13px;color:#9aa2ad;font-weight:500}.card.due .v{color:#c23b31}section.block{margin-bottom:30px}section.block h3{font-size:15px;margin:0 0 12px;font-weight:600}.folio-group{border:1px solid #e3e5e9;border-radius:var(--r);background:#fff;margin-bottom:10px;overflow:hidden}.folio-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;cursor:pointer}.folio-head:hover{background:#fafbfc}.folio-head .l{display:flex;align-items:center;gap:12px}.folio-head .fname{font-weight:700;font-family:Barlow Condensed,sans-serif;font-size:17px}.folio-head .fmeta{color:#6b7280;font-size:12.5px}.folio-head .chev{color:#9aa2ad;transition:transform .15s}.folio-group.open .chev{transform:rotate(90deg)}.folio-body{display:none;padding:0 16px 16px;border-top:1px solid #eef0f2}.folio-group.open .folio-body{display:block;padding-top:14px}.empty{padding:40px 20px;text-align:center;color:#9aa2ad;font-size:13.5px}.demo-banner{background:#fdf1e2;border:1px solid #f2ddb2;color:#8a5a00;font-size:12.5px;padding:9px 14px;border-radius:8px;margin-bottom:20px}.tabbar a .count-badge{background:var(--due);color:#fff;font-size:10.5px;padding:1px 6px;border-radius:20px;margin-left:5px;display:none}.tabbar a .count-badge.show{display:inline-block}.carga-form{background:#fff;border:1px solid #e3e5e9;border-radius:var(--r);padding:22px;max-width:760px}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px 16px;gap:14px 16px;margin-bottom:6px}.carga-form .field label{color:#6b7280}.carga-form .field input{background:#fff;border:1px solid #d8dbe0;color:#1b1e22}.carga-form .field input:focus{border-color:var(--amber)}.checkline{display:flex;align-items:center;gap:7px;font-size:13.5px;color:#374151;margin-top:9px}.docs-upload{border-top:1px solid #eef0f2;margin-top:6px;padding-top:16px}.docs-upload .field{margin-bottom:14px}.filelbl{font-size:12px;color:#9aa2ad;margin-top:4px}.carga-actions{display:flex;align-items:center;gap:14px;margin-top:6px;flex-wrap:wrap}.microcopy{font-size:12.5px;color:#6b7280}.pending-card{background:#fff;border:1px solid #e3e5e9;border-radius:var(--r);padding:18px 20px;margin-bottom:14px}.pending-card .pf-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:10px 14px;gap:10px 14px;margin-bottom:12px}.pending-card .pf-grid .field{margin-bottom:0}.pending-card .pf-grid label{font-size:11px;color:#9aa2ad;margin-bottom:3px}.pending-card .pf-grid input,.pending-card select{width:100%;padding:8px 10px;border:1px solid #d8dbe0;border-radius:6px;font-size:13px}.doc-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid #d8dbe0;border-radius:6px;padding:5px 9px;font-size:11.5px;color:#374151;margin:2px 6px 2px 0}.pend-actions{display:flex;gap:10px;align-items:center;margin-top:12px;flex-wrap:wrap}.btn-publish{background:var(--ok);color:#fff;border:none;border-radius:6px;font-weight:600}.btn-publish,.btn-reject{padding:8px 16px;font-size:13px}.btn-reject{background:none;border:1px solid #e3e5e9;color:#c23b31;border-radius:6px}.preview-banner{display:none;align-items:center;justify-content:space-between;gap:14px;background:#2a2f36;color:#fff;padding:10px 16px;border-radius:8px;margin-bottom:18px;font-size:13.5px}.preview-banner b{color:var(--amber-2)}.hist-card{background:#fff;border:1px solid #e3e5e9;border-radius:var(--r);padding:16px 20px;margin-bottom:10px}.hist-card .h-top{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:baseline;margin-bottom:8px}.hist-card .h-folio{font-weight:700;font-family:Barlow Condensed,sans-serif;font-size:17px}.hist-card .h-meta{color:#6b7280;font-size:12.5px}.hist-card .h-total{margin-left:auto;font-weight:700}.hist-card .h-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid #eef0f2}.hist-card .h-controls label{font-size:13px;color:#374151;display:flex;align-items:center;gap:6px}.doc-preview{color:#374151}.doc-none{color:#b8bcc2;font-size:12px}.client-row{background:#fff;border:1px solid #e3e5e9;border-radius:var(--r);padding:14px 18px;margin-bottom:8px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px}.client-row .cr-name{font-weight:700;font-family:Barlow Condensed,sans-serif;font-size:16px;min-width:150px}.client-row .cr-tag{font-size:11px;color:#6b7280;background:#fafbfc;border:1px solid #e3e5e9;border-radius:20px;padding:2px 9px}.client-row .cr-actions{margin-left:auto;display:flex;gap:8px}.client-row .cr-actions button{border:1px solid #d8dbe0;background:#fff;padding:6px 12px;border-radius:6px;font-size:12px}.grp-btn,.sub-btn{padding:8px 14px;border:1px solid #d8dbe0;background:#fff;border-radius:7px;font-size:13px;color:#374151}.grp-btn.active,.sub-btn.active{background:var(--graphite);color:#fff;border-color:var(--graphite)}.chart-bar-wrap{display:flex;align-items:flex-end;gap:8px;height:180px;padding:10px 6px;border:1px solid #e3e5e9;border-radius:var(--r);background:#fff}.chart-bar{flex:1 1;background:var(--amber);border-radius:4px 4px 0 0;position:relative;min-height:2px}.chart-bar .lbl{bottom:-20px;color:#6b7280}.chart-bar .lbl,.chart-bar .val{position:absolute;left:0;right:0;text-align:center;font-size:10.5px}.chart-bar .val{top:-18px;color:#374151;font-weight:600}