:root{--bg: #f4f6f8;--surface: #ffffff;--surface-2: #f8fafb;--border: #dde3e8;--border-strong: #c3ccd4;--text: #17222d;--muted: #5b6b7a;--primary: #0e7490;--primary-hover: #0b5f76;--primary-soft: #e0f2f7;--danger: #b42318;--danger-soft: #fdecea;--warn: #b54708;--warn-soft: #fff4e5;--ok: #067647;--ok-soft: #e7f6ee;--blue: #1d4ed8;--blue-soft: #e8eefc;--radius: 8px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);--font: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--mono: "Cascadia Mono", Consolas, "SFMono-Regular", Menlo, monospace;color-scheme:light}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:14px;color:var(--text);background:var(--bg);line-height:1.45}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:20px;margin:0;font-weight:650;letter-spacing:-.01em}h2{font-size:16px;margin:0 0 12px;font-weight:650}h3{font-size:14px;margin:0 0 8px;font-weight:650}small,.muted{color:var(--muted)}.mono{font-family:var(--mono);font-size:13px}.nowrap{white-space:nowrap}.right{text-align:right}.center{text-align:center}.app{display:grid;grid-template-columns:220px 1fr;min-height:100%}.sidebar{align-self:start;background:#0f2a36;color:#cfe3ea;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:16px 18px 14px;color:#fff;font-weight:700;font-size:17px;letter-spacing:.01em}.brand-mark{width:30px;height:30px;border-radius:7px;background:var(--primary);display:grid;place-items:center}.brand small{display:block;color:#8fb3c1;font-weight:400;font-size:11px;letter-spacing:0}.nav{padding:6px 10px;display:flex;flex-direction:column;gap:2px;overflow-y:auto;flex:1}.nav-group{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#6f97a6;padding:12px 10px 4px}.nav a{color:#cfe3ea;padding:7px 10px;border-radius:6px;display:flex;align-items:center;gap:8px}.nav a:hover{background:#ffffff0f;text-decoration:none}.nav a.active{background:#0e74908c;color:#fff}.nav .count{margin-left:auto;background:#b42318;color:#fff;border-radius:10px;font-size:11px;padding:0 7px}.lab-brand{display:flex;align-items:center;gap:10px;padding:16px 18px 14px;color:#fff}.lab-brand:hover{text-decoration:none}.lab-brand-logo{flex:none;width:36px;height:36px;background:#fff;border-radius:8px;padding:3px;display:grid;place-items:center}.lab-brand-logo img{max-width:100%;max-height:100%;object-fit:contain;display:block}.lab-brand .brand-mark{flex:none;width:36px;height:36px;border-radius:8px}.lab-brand-name{min-width:0;font-weight:700;font-size:16px;line-height:1.2;overflow-wrap:anywhere}.user-menu{position:relative;border-top:1px solid rgba(255,255,255,.08);padding:8px}.user-menu-btn{width:100%;display:flex;align-items:center;gap:10px;background:transparent;border:0;color:#cfe3ea;padding:8px;border-radius:8px;text-align:left;white-space:normal}.user-menu-btn:hover,.user-menu-btn[aria-expanded=true]{background:#ffffff14}.user-menu-btn .who{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}.user-menu-btn .who strong{color:#fff;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-btn .who small{font-size:11.5px;color:#8fb3c1;font-weight:400}.user-menu-btn .chev{color:#8fb3c1;font-size:12px}.avatar{position:relative;flex:none;width:34px;height:34px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px}.avatar .dot{position:absolute;top:-1px;right:-1px;width:10px;height:10px;border-radius:50%;background:#f5a524;border:2px solid #0f2a36}.user-menu-pop{position:absolute;left:8px;right:8px;bottom:calc(100% - 2px);background:#fff;color:var(--text);border-radius:10px;box-shadow:0 12px 32px #00000059;padding:6px;display:flex;flex-direction:column;z-index:30}.user-menu-head{padding:8px 10px 10px;border-bottom:1px solid var(--border);margin-bottom:4px;display:flex;flex-direction:column;font-size:12.5px;color:var(--muted)}.user-menu-head strong{color:var(--text);font-size:13.5px}.user-menu-pop a,.user-menu-pop button{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;color:var(--text);background:transparent;border:0;font:inherit;font-size:13.5px;font-weight:500;text-align:left;min-height:0;cursor:pointer}.user-menu-pop a:hover,.user-menu-pop button:hover{background:var(--surface-2);text-decoration:none}.user-menu-pop hr{border:0;border-top:1px solid var(--border);margin:4px 0}.pill-warn{margin-left:auto;background:var(--warn-soft);color:var(--warn);border-radius:999px;padding:0 8px;font-size:11px;font-weight:600}.main{min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px 0;flex-wrap:wrap}.app-footer{margin-top:auto;padding:10px 24px;border-top:1px solid var(--border);color:var(--muted);font-size:12px;text-align:center}.content{padding:16px 24px 40px;display:flex;flex-direction:column;gap:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card.flush{padding:0;overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--surface-2)}.card-head h2,.card-head h3{margin:0}.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:12px}.spacer{flex:1}.stat{display:flex;flex-direction:column;gap:2px}.stat .value{font-size:26px;font-weight:700;letter-spacing:-.02em}.stat .label{color:var(--muted);font-size:13px}.stat.alert .value{color:var(--danger)}label.field{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted);font-weight:550}label.field.inline{flex-direction:row;align-items:center;gap:8px;color:var(--text);font-weight:400;font-size:14px}input,select,textarea{font:inherit;color:var(--text);background:#fff;border:1px solid var(--border-strong);border-radius:6px;padding:7px 10px;min-height:34px;width:100%}input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--primary)}textarea{min-height:64px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid rgba(14,116,144,.35);border-color:var(--primary)}input:disabled,select:disabled,textarea:disabled{background:var(--surface-2);color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.form-grid .span-2{grid-column:span 2}.form-grid .span-all{grid-column:1 / -1}button,.btn{font:inherit;font-weight:550;border:1px solid var(--border-strong);background:#fff;color:var(--text);border-radius:6px;padding:7px 14px;min-height:34px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;text-decoration:none}button:hover,.btn:hover{background:var(--surface-2);text-decoration:none}button:disabled{opacity:.55;cursor:not-allowed}button.primary,.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary:hover,.btn.primary:hover{background:var(--primary-hover)}button.danger{color:var(--danger);border-color:#f1b8b2}button.danger:hover{background:var(--danger-soft)}button.ghost{border-color:transparent;background:transparent}button.ghost:hover{background:#0000000d}.sidebar button.ghost{color:#cfe3ea;padding:4px 8px;min-height:0}.sidebar button.ghost:hover{background:#ffffff14}tr.quitado td{color:var(--muted);background:var(--surface-2)}button.sm,.btn.sm{padding:3px 9px;min-height:28px;font-size:13px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600;background:var(--surface-2)}tbody tr:hover{background:#fafcfd}tr.clickable{cursor:pointer}tr.section-row td{background:var(--primary-soft);font-weight:650;color:var(--primary-hover);font-size:12.5px;text-transform:uppercase;letter-spacing:.04em}tr.panel-row td{font-weight:650;background:#fbfcfd;padding-top:6px;padding-bottom:6px}td.indent{padding-left:26px}.empty{text-align:center;color:var(--muted);padding:28px}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:1px 9px;font-size:12px;font-weight:600;border:1px solid transparent;white-space:nowrap}.badge.gray{background:#eef1f4;color:#475467}.badge.blue{background:var(--blue-soft);color:var(--blue)}.badge.amber{background:var(--warn-soft);color:var(--warn)}.badge.green{background:var(--ok-soft);color:var(--ok)}.badge.teal{background:var(--primary-soft);color:var(--primary-hover)}.badge.red{background:var(--danger-soft);color:var(--danger)}.badge.st-pendiente{background:#fde047;color:#422006;border-color:#eab308}.badge.st-cargado{background:var(--blue);color:#fff}.badge.st-validado{background:var(--ok);color:#fff}.flag{font-weight:700;font-size:12px;padding:1px 6px;border-radius:4px}.flag.H,.flag.L,.flag.A{background:var(--warn-soft);color:var(--warn)}.flag.HH,.flag.LL{background:var(--danger);color:#fff}.value-abn{font-weight:700}.value-crit{font-weight:700;color:var(--danger)}.alert{border-radius:var(--radius);padding:10px 14px;border:1px solid;font-size:13.5px}.alert.error{background:var(--danger-soft);border-color:#f5c2bc;color:#7a1a12}.alert.warn{background:var(--warn-soft);border-color:#f9d8a8;color:#7a3306}.alert.info{background:var(--primary-soft);border-color:#b5dfeb;color:#0b4f63}.alert.ok{background:var(--ok-soft);border-color:#b7e3c9;color:#05502f}.modal-backdrop{position:fixed;inset:0;background:#0f172073;display:grid;place-items:center;z-index:50;padding:16px}.modal{background:#fff;border-radius:10px;width:min(640px,100%);max-height:calc(100vh - 32px);overflow:auto;box-shadow:0 20px 50px #00000040}.modal.wide{width:min(980px,100%)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border)}.modal-body{padding:18px;display:flex;flex-direction:column;gap:14px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--border);background:var(--surface-2)}.login-wrap{min-height:100%;display:grid;place-items:center;background:linear-gradient(160deg,#0f2a36,#0e7490);padding:16px}.login-card{width:min(380px,100%);background:#fff;border-radius:12px;padding:28px;box-shadow:0 24px 60px #0000004d;display:flex;flex-direction:column;gap:14px}.login-lab{display:flex;align-items:center;justify-content:center;padding-bottom:6px;min-height:36px;text-align:center}.login-lab h1{margin:0;font-size:22px;line-height:1.25;text-wrap:balance}.login-sistema{display:flex;align-items:center;justify-content:center;gap:10px;border-top:1px solid var(--border);padding-top:12px;color:var(--muted);line-height:1.3}.login-sistema>span:last-child{display:flex;flex-direction:column}.login-sistema strong{color:var(--text);font-size:15px}.login-sistema small{font-size:12px}.login-sistema .brand-mark{width:32px;height:32px;border-radius:8px;flex:none}.picker{position:relative}.picker-list{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--border-strong);border-radius:8px;box-shadow:0 10px 30px #0000001f;max-height:340px;overflow:auto}.picker-item{padding:8px 12px;cursor:pointer;border-bottom:1px solid var(--border)}.picker-item:last-child{border-bottom:0}.picker-item:hover,.picker-item.active{background:var(--primary-soft)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--primary-soft);color:var(--primary-hover);border-radius:999px;padding:3px 4px 3px 10px;font-size:13px;font-weight:550}.chip button{min-height:0;padding:0 6px;border:0;background:transparent;color:inherit;font-size:15px;line-height:1}.result-input{min-width:150px;max-width:320px}.result-input.changed{border-color:var(--blue);background:#f5f8ff}.prev{color:var(--muted);font-size:12.5px}.kbd{font-family:var(--mono);font-size:11px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:4px;padding:0 5px;background:#fff}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border)}.tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;padding:8px 12px;color:var(--muted)}.tabs button.active{color:var(--primary);border-bottom-color:var(--primary)}.firma-pasos{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.firma-preview{background:#fff;border:1px solid var(--border);border-radius:8px;padding:18px 24px 14px;display:flex;flex-direction:column;align-items:center}.firma-img{height:64px;display:flex;align-items:flex-end;justify-content:center}.firma-img img{max-height:64px;max-width:240px;object-fit:contain}.firma-linea{border-top:1px solid #333;padding-top:4px;min-width:220px;text-align:center;font-size:13px;line-height:1.4}.carga-diferida{border:1px solid #f9d8a8;background:var(--warn-soft);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.members{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.member{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border-strong);border-radius:999px;padding:2px 10px 2px 7px;font-size:12.5px;cursor:pointer;color:var(--muted);background:#fff}.member input{margin:0}.member.on{border-color:var(--primary);background:var(--primary-soft);color:var(--text)}.money-input{text-align:right;font-variant-numeric:tabular-nums}.cuenta{display:grid;grid-template-columns:1fr auto;align-items:center;row-gap:8px}.cuenta>b{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:16px}.cuenta-desc{display:flex;align-items:center;justify-content:space-between;gap:12px}.cuenta-desc .money-input{width:130px}.cuenta .cuenta-total{font-size:18px;font-weight:700;border-top:2px solid var(--text);padding-top:8px}.cuenta .neg{color:var(--danger)}.cuenta .ok{color:var(--ok)}.cuenta-resumen{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:10px 14px}.cuenta-resumen .vuelto{color:var(--blue);font-weight:700}.seg{display:inline-flex;border:1px solid var(--border-strong);border-radius:6px;overflow:hidden}.seg button{border:0;border-radius:0;min-height:32px;padding:4px 10px;background:#fff}.seg button+button{border-left:1px solid var(--border-strong)}.seg button.on{background:var(--primary);color:#fff}.roles-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:4px}.role-option{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border-strong);border-radius:8px;padding:9px 12px;cursor:pointer;color:var(--text);font-weight:400}.role-option input{margin-top:3px}.role-option span{display:flex;flex-direction:column;gap:1px}.role-option small{color:var(--muted);font-size:12px}.role-option.on{border-color:var(--primary);background:var(--primary-soft)}.logo-preview{width:220px;height:88px;border:1px dashed var(--border-strong);border-radius:6px;display:flex;align-items:center;justify-content:center;background:#fff;padding:6px;overflow:hidden}.logo-preview img{display:block;width:100%;height:100%;object-fit:contain}dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0}dl.kv dt{color:var(--muted)}dl.kv dd{margin:0;font-weight:550}.cash-summary{display:flex;flex-wrap:wrap;gap:12px}.cash-summary .cash-total{flex:1 1 100%}.cash-summary .cash-method{flex:1 1 160px;padding:12px 16px}.cash-summary .cash-method .value{font-size:20px}.print-only{display:none}@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar{position:static;height:auto}.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}}@media print{.no-print{display:none!important}body{background:#fff}.print-only{display:inline}.cash-page .cash-brand{display:flex;align-items:center;gap:10px;padding-bottom:6px;border-bottom:1px solid #000;margin-bottom:6px}.cash-page .cash-brand img{max-height:14mm;max-width:40mm;object-fit:contain}.cash-page .topbar{padding:0 0 6px}.cash-page .cash-credit{display:block;margin-top:10px;font-size:7pt;color:#888;text-align:center}.cash-page .topbar h1{font-size:16px;margin:0}.cash-page .content{padding:0;gap:8px}.cash-page .card{box-shadow:none;border-radius:4px}.cash-summary{gap:6px}.cash-summary .cash-total{padding:6px 10px}.cash-summary .cash-total .value{font-size:18px}.cash-summary .cash-method{flex:1 1 0;padding:4px 10px}.cash-summary .cash-method .value{font-size:13px}.cash-summary .label{font-size:10.5px}.cash-page .cash-list{border:0;overflow:visible}.cash-list table{font-size:10.5px}.cash-list th,.cash-list td{padding:2px 4px;color:#000}.cash-list th{background:none;font-size:9.5px;border-bottom:1px solid #000}.cash-list td{border-bottom:0}.cash-list tr{break-inside:avoid}.cash-list a{color:#000}}.neg{color:var(--danger)}.importante{border-left:4px solid var(--warn);background:var(--warn-soft);color:#7a3306;padding:10px 12px;border-radius:6px;font-size:13.5px}.card.respaldo-alerta{border-color:#f5b5ae;background:#fff6f5}.licencia-datos{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;align-items:center}.licencia-datos>span{color:var(--muted);font-size:13px}.central-brand{display:flex;align-items:center;gap:10px;padding:18px 16px 10px;color:#fff;font-weight:700;font-size:17px}.central-brand small{display:block;font-weight:400;font-size:11.5px;opacity:.7}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.kpi b{display:block;font-size:24px}.kpi span{color:var(--muted);font-size:13px}.alerta{display:flex;gap:10px;align-items:baseline;padding:8px 12px;border-radius:8px;border-left:4px solid;margin-bottom:6px}.alerta.rojo{border-color:var(--danger);background:var(--danger-soft)}.alerta.naranja{border-color:var(--warn);background:var(--warn-soft)}.alerta.azul{border-color:#1d6fb8;background:#eaf3fb}.datos{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;font-size:14px}.datos>span{color:var(--muted)}.secreto{font-family:ui-monospace,monospace;font-size:18px;letter-spacing:2px;background:var(--surface-2);padding:8px 12px;border-radius:6px;-webkit-user-select:all;user-select:all;word-break:break-all}
