:root{--vino:maroon;--vino-osc:#5c0000;--dorado:gold;--dorado-osc:#b8960a;--tomate:tomato;--negro:#1a1a1a;--crema:#faf6ee;--papel:#fff;--linea:#e8e0cf;--gris:#6f675a;--ok:#1d7a46;--ok-bg:#e5f4ea;--mal:#b3261e;--mal-bg:#fbe9e7;--radio:14px;--nav-h:62px;--sombra:0 1px 2px #3c1e0014, 0 4px 14px #3c1e000f}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{overflow-x:hidden}body{background:var(--crema);color:var(--negro);margin:0;font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3{margin:0;line-height:1.15}.num{font-variant-numeric:tabular-nums}.app{min-height:100dvh;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 84px)}.topbar{background:linear-gradient(180deg, var(--vino) 0%, var(--vino-osc) 100%);color:#fff;padding:calc(env(safe-area-inset-top) + 10px) 16px 12px;z-index:20;position:sticky;top:0}.topbar-in{align-items:center;gap:10px;max-width:760px;margin:0 auto;display:flex}.topbar h1{letter-spacing:.01em;flex:1;font-size:1.15rem;font-weight:700}.topbar img{background:#fff3;border-radius:8px;width:30px;height:30px;padding:2px}.page{gap:14px;max-width:760px;margin:0 auto;padding:14px 16px;display:grid}.tabbar{z-index:30;background:var(--papel);border-top:1px solid var(--linea);padding-bottom:env(safe-area-inset-bottom);position:fixed;bottom:0;left:0;right:0}.tabbar-in{max-width:760px;height:var(--nav-h);grid-template-columns:repeat(4,1fr);margin:0 auto;display:grid}.tab{color:var(--gris);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:.72rem;font-weight:600;text-decoration:none;display:flex;position:relative}.tabbadge{position:absolute;top:6px;left:calc(50% + 8px)}.tab.router-link-exact-active,.tab.activo{color:var(--vino)}.tab.router-link-exact-active svg,.tab.activo svg{stroke-width:2.4px}.card{background:var(--papel);border:1px solid var(--linea);border-radius:var(--radio);box-shadow:var(--sombra);padding:14px}.card h2{text-transform:uppercase;letter-spacing:.06em;color:var(--gris);margin-bottom:10px;font-size:.8rem}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.grow{flex:1;min-width:0}.muted{color:var(--gris)}.small{font-size:.85rem}.right{text-align:right}.pos{color:var(--ok)}.neg{color:var(--mal)}.stack{gap:12px;display:grid}.btn{border:1px solid var(--linea);background:var(--papel);color:var(--negro);border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:12px 16px;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--vino);border-color:var(--vino);color:#fff}.btn.gold{background:var(--dorado);border-color:var(--dorado-osc);color:var(--negro)}.btn.danger{color:var(--mal);border-color:#e9b9b4}.btn.block{width:100%}.btn.sm{min-height:36px;padding:6px 12px;font-size:.88rem}.btn.ghost{color:inherit;background:0 0;border-color:#0000;min-height:40px;padding:8px}.topbar .btn.ghost{color:#fff}label.f{color:var(--gris);gap:5px;font-size:.82rem;font-weight:600;display:grid}.input,select.input,textarea.input{background:var(--papel);border:1.5px solid var(--linea);width:100%;min-height:48px;color:var(--negro);border-radius:12px;padding:12px 13px;font-weight:500}.input:focus{outline:2.5px solid var(--dorado);outline-offset:0;border-color:var(--dorado-osc)}textarea.input{resize:vertical;min-height:70px}.input.big{text-align:right;padding:12px 14px;font-size:1.9rem;font-weight:700}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.grid3{grid-template-columns:90px 1fr;gap:10px;display:grid}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1.5px solid var(--linea);background:var(--papel);border-radius:999px;min-height:40px;padding:8px 14px;font-size:.92rem;font-weight:600}.chip.on{background:var(--vino);border-color:var(--vino);color:#fff}.chip.on.salida{background:var(--tomate);border-color:var(--tomate);color:#fff}.chips.scroll{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.chips.scroll::-webkit-scrollbar{display:none}.chips.scroll .chip{flex:none}.badge{background:var(--linea);color:var(--gris);border-radius:999px;padding:2px 9px;font-size:.72rem;font-weight:700;display:inline-block}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.mal{background:var(--mal-bg);color:var(--mal)}.badge.gold{color:#7a6200;background:#fff5c2}.alert{border-radius:12px;padding:10px 12px;font-size:.9rem;font-weight:500}.alert.error{background:var(--mal-bg);color:var(--mal)}.alert.warn{color:#6b5600;background:#fff5c2}.alert.info{color:#1b4a7a;background:#e9f1fb}.datenav{align-items:center;gap:6px;display:flex}.datenav .fecha{text-align:center;flex:1;font-weight:700}.datenav .fecha:first-letter{text-transform:uppercase}.datenav input[type=date]{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.final-box{background:linear-gradient(135deg, var(--vino), var(--vino-osc));color:#fff;border-radius:var(--radio);padding:16px}.final-box .lbl{text-transform:uppercase;letter-spacing:.07em;opacity:.85;font-size:.78rem}.final-box .big{font-size:2.2rem;font-weight:800}.flow{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;font-size:.82rem;display:grid}.flow b{font-size:1.02rem;display:block}.tabla{border-collapse:collapse;width:100%;font-size:.88rem}.tabla th{text-align:right;text-transform:uppercase;letter-spacing:.05em;color:var(--gris);padding:4px 4px 6px;font-size:.7rem;font-weight:700}.tabla th:first-child,.tabla td:first-child{text-align:left}.tabla td{border-top:1px solid var(--linea);text-align:right;padding:7px 4px}.tabla tfoot td{border-top:2px solid var(--linea);font-weight:800}.mov{border-top:1px solid var(--linea);color:inherit;align-items:center;gap:12px;padding:11px 0;text-decoration:none;display:flex}.mov:first-child{border-top:0}.mov .ico{border-radius:11px;flex:none;place-items:center;width:38px;height:38px;display:grid}.mov .ico.in{background:var(--ok-bg);color:var(--ok)}.mov .ico.out{background:var(--mal-bg);color:var(--mal)}.mov .t{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.mov .amt{white-space:nowrap;font-weight:700}.mov.anulado .t,.mov.anulado .amt{opacity:.55;text-decoration:line-through}.fabs{z-index:25;left:0;right:0;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 10px);pointer-events:none;position:fixed}.fabs-in{grid-template-columns:1fr 1fr;gap:10px;max-width:760px;margin:0 auto;padding:0 16px;display:grid}.fabs .btn{pointer-events:auto;min-height:52px;font-size:1rem;box-shadow:0 6px 18px #3c000047}.fabs .btn.out{background:var(--negro);border-color:var(--negro);color:#fff}.bar{margin:8px 0}.bar .track{background:var(--linea);border-radius:99px;height:8px;margin-top:4px;overflow:hidden}.bar .fill{background:var(--vino);border-radius:99px;height:100%}.bar .fill.out{background:var(--tomate)}.kpis{grid-template-columns:1fr 1fr;gap:10px;display:grid}.kpi{background:var(--papel);border:1px solid var(--linea);border-radius:var(--radio);box-shadow:var(--sombra);padding:12px}.kpi .lbl{text-transform:uppercase;letter-spacing:.06em;color:var(--gris);font-size:.72rem;font-weight:700}.kpi .v{margin-top:2px;font-size:1.35rem;font-weight:800}.modal-bg{z-index:60;background:#00000080;align-items:end;display:grid;position:fixed;inset:0}.modal{background:var(--papel);padding:18px 16px calc(env(safe-area-inset-bottom) + 18px);border-radius:20px 20px 0 0;width:100%;max-width:560px;max-height:90dvh;margin:0 auto;overflow:auto}.modal h2{margin-bottom:12px;font-size:1.1rem}.toast{z-index:80;left:50%;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 76px);background:var(--negro);color:#fff;border-radius:12px;max-width:calc(100vw - 32px);padding:11px 18px;font-size:.92rem;font-weight:600;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #0000004d}.toast.error{background:var(--mal)}.netbar{background:var(--dorado);color:var(--negro);text-align:center;padding:6px 16px;font-size:.82rem;font-weight:700}.login{background:radial-gradient(circle at 20% 0%, #a01818 0%, var(--vino) 40%, var(--vino-osc) 100%);place-items:center;min-height:100dvh;padding:20px;display:grid}.login .card{width:100%;max-width:380px;padding:24px 20px}.login img{width:84px;height:84px;margin:0 auto 8px;display:block}.login h1{text-align:center;font-size:1.4rem}.login p{text-align:center;margin:4px 0 18px}@media (width>=720px){.kpis{grid-template-columns:repeat(4,1fr)}}@media (prefers-reduced-motion:no-preference){.btn,.chip{transition:transform 60ms}.btn:active,.chip:active{transform:scale(.97)}}
