.expense-toast{position:fixed;bottom:calc(var(--dock-h, 70px) + 16px);left:50%;transform:translate(-50%) translateY(20px);opacity:0;z-index:9000;display:flex;align-items:center;gap:.65rem;padding:.75rem 1.2rem;max-width:420px;width:calc(100% - 2rem);background:linear-gradient(135deg,#0a7a47,#16a34a);color:#fff;border-radius:1rem;box-shadow:0 6px 24px #0a7a4766;font-size:.95rem;font-weight:600;pointer-events:none;transition:opacity .35s ease,transform .35s cubic-bezier(.16,1,.3,1)}.expense-toast--show{opacity:1;transform:translate(-50%) translateY(0)}.expense-toast strong{white-space:nowrap}.update-overlay{position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9998;animation:updateFadeIn .3s ease-out both}.update-banner{position:fixed;top:0;left:0;right:0;z-index:9999;display:flex;justify-content:center;padding:1.5rem 1rem 0;pointer-events:none;animation:updateSlideDown .4s cubic-bezier(.16,1,.3,1) both}.update-banner-content{pointer-events:auto;display:flex;align-items:center;gap:1rem;max-width:460px;width:100%;padding:.9rem 1.1rem;background:linear-gradient(135deg,#0b63ce,#2f92ff);border-radius:1rem;box-shadow:0 8px 32px #0b63ce66,0 0 0 1px #ffffff1a inset;color:#fff}.update-banner-text{margin:0;flex:1;font-size:.95rem;line-height:1.35}.update-banner-btn{flex-shrink:0;min-height:38px;padding:.5rem 1.2rem;border:2px solid rgba(255,255,255,.35);border-radius:.7rem;background:#ffffff26;color:#fff;font-weight:700;font-size:.9rem;cursor:pointer;transition:background .2s,transform .15s}.update-banner-btn:hover{background:#ffffff47;transform:scale(1.04)}.update-banner-btn:active{transform:scale(.97)}@keyframes updateFadeIn{0%{opacity:0}to{opacity:1}}@keyframes updateSlideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.app-root{min-height:100dvh;color:var(--text)}.app-shell{margin:0 auto;max-width:980px;min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto}@media(min-width:1200px){.app-shell{max-width:1280px}}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:0 1rem;padding:1rem;background:color-mix(in oklab,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);border-top:none;border-radius:0 0 1rem 1rem}.exit-btn{display:flex;align-items:center;gap:.4rem;padding:.6rem 1.2rem;font-size:1rem;font-weight:600;border:none;border-radius:10px;background:#e53935;color:#fff;cursor:pointer;flex-shrink:0}.exit-btn:active{background:#c62828;transform:scale(.96)}.content{padding:1rem;padding-bottom:calc(var(--dock-h, 70px) + 16px)}.screen-block{display:grid;gap:.9rem}.screen-header h1{margin:0;font-size:clamp(1.6rem,3.5vw,2.2rem);font-weight:800;letter-spacing:-.01em}.screen-header p{margin:.2rem 0 0}.eyebrow{margin:0;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.muted{color:var(--text-muted)}.panel{background:linear-gradient(168deg,var(--surface) 60%,var(--surface-2) 100%);border:1px solid var(--border);border-radius:1rem;padding:1rem;box-shadow:var(--shadow-card)}.panel h2{margin:0 0 .8rem;font-size:1.08rem}.form-grid{display:grid;gap:.75rem}label{display:grid;gap:.34rem;font-weight:600}input,select,textarea{border:1px solid var(--border);border-radius:.78rem;padding:.75rem .8rem;color:var(--text);background:var(--surface-2)}input:focus,select:focus,textarea:focus{outline:3px solid color-mix(in oklab,var(--primary) 42%,transparent);border-color:var(--primary)}button{min-height:44px;border:1px solid var(--border);border-radius:.78rem;padding:.72rem 1rem;font-weight:700;cursor:pointer}button:disabled{opacity:.65;cursor:not-allowed}button.primary{background:var(--primary);color:var(--primary-contrast);border-color:color-mix(in oklab,var(--primary) 70%,black 20%)}button.ghost{background:var(--surface-2);color:var(--text)}button.danger{background:color-mix(in oklab,var(--danger) 78%,var(--surface) 22%);color:#fff;border-color:color-mix(in oklab,var(--danger) 70%,black 30%)}.success-message,.error-message{margin:0;padding:.68rem .75rem;border-radius:.74rem;font-weight:600}.success-message{background:color-mix(in oklab,var(--success) 18%,transparent);color:var(--success);border:1px solid color-mix(in oklab,var(--success) 35%,transparent)}.error-message{background:color-mix(in oklab,var(--danger) 18%,transparent);color:var(--danger);border:1px solid color-mix(in oklab,var(--danger) 35%,transparent)}.lg{--tinta: #0b1220;--tinta-2: #0e1728;--papel: #f2eee6;--renglon: rgba(242, 238, 230, .14);--renglon-fuerte: rgba(242, 238, 230, .26);--sello: #c9a227;--haber: #6ea884;--debe: #d08579;--tenue: rgba(242, 238, 230, .52);--alto-renglon: 2.75rem;--col-folio: 3.5rem;position:fixed;inset:0;display:grid;place-items:center;padding:1.25rem;overflow-y:auto;background:radial-gradient(120% 80% at 50% -10%,var(--tinta-2) 0%,var(--tinta) 60%),var(--tinta);color:var(--papel);font-family:Instrument Sans,Atkinson Hyperlegible,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.lg-hoja{position:relative;width:min(31rem,100%);padding:0}.lg-margen{position:absolute;top:0;bottom:0;left:var(--col-folio);width:1px;background:linear-gradient(to bottom,transparent,var(--sello) 12%,var(--sello) 88%,transparent);opacity:.45;pointer-events:none}.lg-encabezado{position:relative;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;height:calc(var(--alto-renglon) * 1.35);padding:0;margin-left:calc(var(--col-folio) + 1.5rem);border-bottom:1px solid var(--renglon-fuerte)}.lg-marca{margin:0;font-size:1.0625rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;-webkit-font-smoothing:antialiased}.lg-fecha{font-family:IBM Plex Mono,ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.75rem;letter-spacing:.08em;color:var(--sello);font-variant-numeric:tabular-nums;white-space:nowrap}.lg-asiento{position:relative;display:grid;grid-template-columns:var(--col-folio) 1fr;column-gap:1.5rem;padding-top:var(--alto-renglon)}.lg-folio{font-family:IBM Plex Mono,ui-monospace,Consolas,monospace;font-size:.8125rem;line-height:1.7;color:var(--sello);font-variant-numeric:tabular-nums;text-align:right;padding-right:.125rem}.lg-cuerpo{min-width:0}.lg-titulo{margin:0;height:var(--alto-renglon);display:flex;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:600;line-height:1.2;letter-spacing:-.015em}.lg-glosa{margin:0 0 var(--alto-renglon);min-height:var(--alto-renglon);display:flex;align-items:center;font-size:.9375rem;line-height:1.5;color:var(--tenue)}.lg-glosa strong{color:var(--papel);font-weight:600}.lg-campo{position:relative;margin-bottom:var(--alto-renglon)}.lg-etiqueta{display:block;font-family:IBM Plex Mono,ui-monospace,Consolas,monospace;font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tenue);margin-bottom:.625rem}.lg-input{width:100%;border:0;background:transparent;color:var(--papel);font:inherit;font-size:1.125rem;padding:0 0 .625rem;border-radius:0;outline:none;box-shadow:inset 0 -1px 0 0 var(--renglon-fuerte);transition:box-shadow .16s ease}.lg-input::placeholder{color:#f2eee647}.lg-input:focus{box-shadow:inset 0 -2px 0 0 var(--sello)}.lg-campo:after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--sello);transform:scaleX(0);transform-origin:left;transition:transform .26s cubic-bezier(.22,1,.36,1);pointer-events:none}.lg-campo:focus-within:after{transform:scaleX(1)}.lg-input--cifra{font-family:IBM Plex Mono,ui-monospace,Consolas,monospace;font-size:1.5rem;letter-spacing:.5em;font-variant-numeric:tabular-nums}.lg-input--cifra::placeholder{letter-spacing:.12em;font-size:1rem}.lg-acciones{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.lg-btn{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;padding:.9375rem 1.25rem;border:1px solid transparent;border-radius:3px;font:inherit;font-size:.9375rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease,opacity .14s ease}.lg-btn__flecha{font-family:IBM Plex Mono,ui-monospace,Consolas,monospace;opacity:.55;transition:transform .18s cubic-bezier(.22,1,.36,1)}.lg-btn:hover:not(:disabled) .lg-btn__flecha{transform:translate(3px)}.lg-btn--asentar{background:var(--papel);color:var(--tinta)}.lg-btn--asentar:hover:not(:disabled){background:#fff}.lg-btn--margen{background:transparent;color:var(--tenue);border-color:var(--renglon-fuerte);justify-content:center;font-weight:500}.lg-btn--margen:hover:not(:disabled){color:var(--papel);border-color:#f2eee64d}.lg-btn:disabled{cursor:not-allowed}.lg-btn--asentar:disabled{background:transparent;color:#f2eee64d;border-color:var(--renglon-fuerte)}.lg-btn--margen:disabled{opacity:.4}.lg-btn:disabled .lg-btn__flecha{opacity:.25}.lg-btn:focus-visible,.lg-enlace:focus-visible{outline:2px solid var(--sello);outline-offset:3px}.lg-input:focus-visible{outline:none}.lg-nota{display:flex;gap:.625rem;margin:0 0 1.5rem;padding-left:.875rem;border-left:2px solid;font-size:.875rem;line-height:1.5}.lg-nota--debe{border-color:var(--debe);color:var(--debe)}.lg-nota--haber{border-color:var(--haber);color:var(--haber)}.lg-terminos{display:flex;gap:.625rem;align-items:flex-start;margin-top:-.75rem;font-size:.8125rem;line-height:1.5;color:var(--tenue);cursor:pointer}.lg-terminos input{margin-top:.2rem;accent-color:var(--sello);flex-shrink:0}.lg-enlace{color:var(--papel);text-decoration-color:#f2eee659;text-underline-offset:3px}.lg-enlace:hover{text-decoration-color:var(--sello)}.lg-pie{position:relative;margin:var(--alto-renglon) 0 0;margin-left:calc(var(--col-folio) + 1.5rem);padding-top:1.25rem;border-top:1px solid var(--renglon-fuerte);font-family:IBM Plex Mono,ui-monospace,Consolas,monospace;font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:#f2eee657}.lg-asiento{animation:lgAsentar .42s cubic-bezier(.22,1,.36,1) both}@keyframes lgAsentar{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.lg-esperando{display:inline-block;width:1.5rem;border-bottom:2px solid var(--sello);animation:lgTrazo 1.1s ease-in-out infinite;vertical-align:middle;margin-left:.25rem}@keyframes lgTrazo{0%,to{transform:scaleX(.2);transform-origin:left}50%{transform:scaleX(1);transform-origin:left}}@media(prefers-reduced-motion:reduce){.lg-asiento,.lg-esperando,.lg-campo:after,.lg-btn__flecha{animation:none!important;transition:none!important}.lg-campo:focus-within:after{transform:scaleX(1)}}@media(max-width:30rem){.lg{--alto-renglon: 3rem;--col-folio: 2.25rem;place-items:start center;padding:2.5rem 1.125rem}.lg-encabezado,.lg-pie{margin-left:calc(var(--col-folio) + 1rem)}.lg-asiento{column-gap:1rem}.lg-titulo{font-size:1.3125rem}}.kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.kpi-card{background:linear-gradient(170deg,var(--surface),var(--surface-2));border:1px solid var(--border);border-radius:.95rem;padding:.8rem}.kpi-card p{margin:0;color:var(--text-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.kpi-card strong{display:inline-block;margin-top:.35rem;font-size:clamp(1.15rem,2.6vw,1.4rem);background:linear-gradient(135deg,var(--text),var(--primary));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.kpi-sub{text-transform:none!important;letter-spacing:normal!important;font-weight:500!important;font-size:.82rem!important;color:var(--text-muted)!important;margin-top:.15rem!important;opacity:.8}.kpi-trend--up{margin:.1rem 0 0;font-size:.78rem;color:var(--danger, #e53e3e)}.kpi-trend--down{margin:.1rem 0 0;font-size:.78rem;color:var(--success, #38a169)}@media(min-width:768px){.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.dashboard-body{display:grid;gap:.9rem}.dashboard-col{display:grid;gap:.9rem;align-content:start}@media(min-width:768px){.dashboard-body{grid-template-columns:1fr 1.4fr}}.trend-panel{display:flex;flex-direction:column;gap:.5rem}.trend-bars{display:flex;align-items:flex-end;gap:6px;height:60px;padding:0 4px}.trend-bar{flex:1;border-radius:4px 4px 0 0;background:var(--surface-3, var(--border));min-height:4px;transition:height .4s cubic-bezier(.4,0,.2,1);position:relative;cursor:default}.trend-bar--current{background:var(--bar, var(--primary))}.trend-bar:hover:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);padding:3px 8px;border-radius:6px;background:#141414e0;color:#fff;font-size:.72rem;font-weight:600;white-space:nowrap;pointer-events:none;z-index:10}.trend-labels{display:flex;gap:6px;padding:0 4px}.trend-label{flex:1;text-align:center;font-size:.68rem;font-weight:600;color:var(--text-muted);text-transform:uppercase}.trend-label--current{color:var(--primary);font-weight:700}.compact-list{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}.compact-list li{display:flex;align-items:center;justify-content:space-between;gap:.8rem;background:var(--surface-2);border:1px solid var(--border);border-radius:.8rem;padding:.65rem}.compact-list p,.compact-list small{margin:0}.category-bars{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.line-head{display:flex;justify-content:space-between;font-size:.95rem;margin-bottom:.28rem}.bar-track{height:14px;border-radius:999px;background:color-mix(in oklab,var(--surface-2) 80%,var(--border) 20%);overflow:hidden}.bar-fill{height:100%;background:var(--cat-color, var(--bar));border-radius:inherit;transition:width .5s cubic-bezier(.4,0,.2,1)}.inline-action{display:grid;grid-template-columns:1fr auto;gap:.5rem}.action-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.ocr-summary{margin-top:.75rem;border:1px solid var(--border);background:var(--surface-2);border-radius:.8rem;padding:.75rem}.ocr-summary p{margin:.2rem 0}.expense-list{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}.expense-list li{border:1px solid var(--border);border-radius:.84rem;padding:.68rem;background:var(--surface-2)}.expense-main{display:grid;gap:.2rem}.expense-main p,.expense-main strong{margin:0}.expense-meta{margin-top:.5rem;display:flex;justify-content:space-between;color:var(--text-muted);font-size:.86rem}.report-controls{display:grid;gap:.65rem;grid-template-columns:1fr}.report-table{width:100%;border-collapse:collapse;font-size:.95rem}.report-table th,.report-table td{text-align:left;border-bottom:1px solid var(--border);padding:.55rem .35rem}.report-table th{color:var(--text-muted);font-weight:600}.dock{position:fixed;bottom:0;left:0;right:0;z-index:50;display:flex;align-items:stretch;justify-content:space-around;padding:6px 0 calc(6px + env(safe-area-inset-bottom,0px));background:color-mix(in oklab,var(--surface) 94%,transparent);backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%);border-top:1px solid var(--border);transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .35s cubic-bezier(.4,0,.2,1)}.dock--hidden{transform:translateY(100%);opacity:0;pointer-events:none}.dock-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:1;min-height:48px;border:none;border-radius:0;background:transparent;color:var(--text-muted);cursor:pointer;padding:4px 0;transition:color .2s ease}.dock-item--active{color:var(--primary)}.dock-label{font-size:.68rem;font-weight:600;line-height:1;letter-spacing:.01em}.dock-dot,.dock-tooltip{display:none}@media(hover:hover)and (min-width:641px){.dock{bottom:12px;left:50%;right:auto;transform:translate(-50%) translateY(0);justify-content:center;gap:6px;padding:8px 12px;border:1px solid rgba(255,255,255,.3);border-top:1px solid rgba(255,255,255,.3);border-radius:22px;background:#ffffffb8;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);box-shadow:0 1px 2px #0000000f,0 4px 12px #00000014,0 12px 32px #0000001a,0 0 0 .5px #0000000a}[data-theme=dark] .dock{background:#1e1e1ec7;border-color:#ffffff14;box-shadow:0 1px 2px #0003,0 4px 12px #00000040,0 12px 32px #00000059,0 0 0 .5px #ffffff0f}.dock--hidden{transform:translate(-50%) translateY(calc(100% + 20px))}.dock-item{flex:0 0 auto;width:50px;height:50px;min-height:unset;gap:0;padding:0;border-radius:14px;transform:scale(var(--dock-scale, 1));transform-origin:bottom center;transition:transform .2s cubic-bezier(.34,1.56,.64,1),background .2s ease,color .2s ease}.dock-item:hover{background:#0000000f;color:var(--text)}[data-theme=dark] .dock-item:hover{background:#ffffff1a}.dock-item--active:hover{color:var(--primary)}.dock-label{display:none}.dock-dot{display:block;position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:5px;height:5px;border-radius:50%;background:var(--primary);box-shadow:0 0 6px color-mix(in oklab,var(--primary) 60%,transparent);animation:dockDotIn .3s cubic-bezier(.34,1.56,.64,1) both}.dock-tooltip{display:block;position:absolute;top:-36px;left:50%;transform:translate(-50%);padding:5px 10px;border-radius:8px;background:#141414e0;color:#fff;font-size:.75rem;font-weight:600;white-space:nowrap;pointer-events:none;animation:dockTooltipIn .15s ease both}.dock-tooltip:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%) rotate(45deg);width:8px;height:8px;background:#141414e0;border-radius:1px}}@keyframes dockDotIn{0%{transform:translate(-50%) scale(0)}to{transform:translate(-50%) scale(1)}}@keyframes dockTooltipIn{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.theme-switcher{display:grid;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.6rem}.theme-toggle{display:flex;align-items:center;justify-content:center;width:38px;height:38px;min-height:unset;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--surface-2);color:var(--text-muted);cursor:pointer;transition:background .2s,color .2s,transform .15s}.theme-toggle:hover{background:var(--surface-3, var(--border));color:var(--text);transform:scale(1.08)}.theme-toggle:active{transform:scale(.94)}@keyframes skeletonPulse{0%,to{opacity:.4}50%{opacity:.8}}.skeleton{background:var(--surface-2);border-radius:.5rem;animation:skeletonPulse 1.5s ease-in-out infinite}.skeleton-text{height:1em;width:60%}.skeleton-block{height:4rem;width:100%}.analytics-summary{background:var(--primary-soft);border:1px solid color-mix(in oklab,var(--primary) 25%,transparent);border-radius:1rem;padding:1.1rem;display:grid;gap:.75rem}.analytics-summary h2{margin:0;font-size:1.08rem}.analytics-summary .total{font-size:clamp(1.6rem,4vw,2.2rem);font-weight:800;background:linear-gradient(135deg,var(--primary),var(--text));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin:0}.analytics-daily-rate{display:flex;gap:.75rem;flex-wrap:wrap}.kpi-mini{flex:1;min-width:120px;background:var(--surface);border:1px solid var(--border);border-radius:.8rem;padding:.65rem .8rem}.kpi-mini p{margin:0;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600}.kpi-mini strong{display:block;margin-top:.15rem;font-size:1.1rem}.analytics-verdict{display:flex;align-items:center;gap:.5rem;padding:.6rem .8rem;border-radius:.7rem;font-weight:700;font-size:.92rem}.analytics-verdict--good{background:var(--success-soft);color:var(--success);border:1px solid color-mix(in oklab,var(--success) 25%,transparent)}.analytics-verdict--warn{background:var(--warning-soft);color:var(--warning);border:1px solid color-mix(in oklab,var(--warning) 25%,transparent)}.evolution-bars{display:grid;gap:.55rem}.evolution-bar-row{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:.6rem}.evolution-bar-row .label{font-size:.85rem;font-weight:600;color:var(--text-muted);text-align:right}.evolution-bar-row .label--current{color:var(--primary)}.evolution-bar-row .bar-track{height:18px}.evolution-bar-row .bar-fill--current{background:var(--bar)}.evolution-bar-row .bar-fill--past{background:var(--surface-3)}.evolution-bar-row .amount{font-size:.82rem;font-weight:600;min-width:75px;text-align:right}.category-stacked-bar{display:flex;height:22px;border-radius:999px;overflow:hidden;background:var(--surface-2)}.category-stacked-bar .segment{height:100%;transition:width .5s cubic-bezier(.4,0,.2,1);min-width:2px}.category-legend{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.45rem}.category-legend li{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.category-legend .dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.category-legend .name{flex:1}.category-legend .amount{font-weight:600}.category-legend .change{font-size:.8rem;font-weight:600;min-width:50px;text-align:right}.change--up{color:var(--danger)}.change--down{color:var(--success)}.price-group-label{margin:0 0 .5rem;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.price-cards{display:grid;gap:.5rem}.price-card{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .8rem;background:var(--surface-2);border:1px solid var(--border);border-radius:.8rem}.price-card .provider{font-weight:600;font-size:.92rem}.price-card .prices{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-muted)}.price-card .prices .arrow{font-size:.7rem}.price-card .pct{font-weight:700;font-size:.88rem;min-width:48px;text-align:right}.provider-rank{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.provider-rank li{display:grid;grid-template-columns:26px 1fr auto auto;align-items:center;gap:.5rem;padding:.6rem .7rem;background:var(--surface-2);border:1px solid var(--border);border-radius:.8rem}.provider-rank .rank{font-weight:800;font-size:.92rem;color:var(--text-muted);text-align:center}.provider-rank .rank:nth-child(1){color:var(--warning)}.provider-rank .name{font-weight:600;font-size:.92rem}.provider-rank .visits{font-size:.8rem;color:var(--text-muted)}.provider-rank .avg{font-weight:700;font-size:.9rem;min-width:70px;text-align:right}.date-detail-group{padding:.75rem 0;border-bottom:1px solid var(--border)}.date-detail-group:last-child{border-bottom:none}.date-detail-header{display:flex;align-items:center;justify-content:space-between;margin:0 0 .5rem;font-weight:700;font-size:.95rem}.date-detail-header-count{font-weight:400;font-size:.8rem;color:var(--text-muted);background:var(--surface-2);padding:.15rem .55rem;border-radius:99px}.date-detail-list{display:grid;gap:.4rem}.date-detail-card{display:flex;flex-direction:column;gap:.2rem;padding:.6rem .75rem;background:var(--surface-2);border-radius:10px;border:1px solid var(--border)}.date-detail-card-top{display:flex;align-items:center;justify-content:space-between}.date-detail-time{font-size:.78rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.date-detail-amount{font-weight:700;font-size:1rem;font-variant-numeric:tabular-nums}.date-detail-card-bottom{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.date-detail-provider{color:var(--text);font-weight:500}.date-detail-cat{color:var(--text-muted);font-size:.78rem;background:color-mix(in oklab,var(--primary) 12%,transparent);color:var(--primary);padding:.1rem .45rem;border-radius:6px;font-weight:500}.date-detail-subtotal{display:flex;justify-content:space-between;align-items:center;margin-top:.55rem;padding:.5rem .75rem;background:color-mix(in oklab,var(--primary) 8%,transparent);border-radius:8px;font-weight:700;font-size:.9rem;color:var(--primary)}@media(min-width:860px){.report-controls{grid-template-columns:1fr auto auto;align-items:end}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid>:last-child{grid-column:1 / -1}.action-row{grid-template-columns:repeat(3,auto);justify-content:start}}.bienv{min-height:100dvh;display:grid;place-items:center;padding:1.5rem}.bienv-card{width:min(22rem,100%);text-align:center;display:grid;justify-items:center;gap:.9rem;padding:2rem 1.5rem;background:linear-gradient(168deg,var(--surface) 60%,var(--surface-2) 100%);border:1px solid var(--border);border-radius:1.25rem;box-shadow:var(--shadow-card);animation:bienv-entrar .4s cubic-bezier(.16,1,.3,1) both}.bienv-avatar,.perfil-avatar{display:grid;place-items:center;overflow:hidden;border-radius:50%;background:var(--primary-soft);color:var(--primary);border:1px solid var(--border);flex-shrink:0}.bienv-avatar{width:6rem;height:6rem}.perfil-avatar{width:4rem;height:4rem}.bienv-avatar img,.perfil-avatar img{width:100%;height:100%;object-fit:cover;display:block}.bienv-iniciales{font-size:1.9rem;font-weight:800;letter-spacing:.02em}.perfil-iniciales{font-size:1.25rem;font-weight:800}.bienv-marca{margin:0;font-size:.75rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted)}.bienv-saludo{margin:0;font-size:1.5rem;font-weight:800;letter-spacing:-.015em;overflow-wrap:anywhere}.bienv-btn{width:100%;margin-top:.4rem;background:var(--primary);color:var(--primary-contrast);border:none;border-radius:.85rem;font-size:1.05rem;font-weight:700;padding:.85rem 1.5rem;cursor:pointer}.bienv-pie{margin:0;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);opacity:.75}@keyframes bienv-entrar{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.perfil-fila{display:flex;align-items:flex-start;gap:1rem}.perfil-datos{flex:1;min-width:0}.perfil-datos p{margin:0 0 .15rem;overflow-wrap:anywhere}.perfil-acciones{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.65rem}.perfil-btn{display:inline-flex;align-items:center;min-height:44px;padding:.5rem .9rem;border:1px solid var(--border);border-radius:.78rem;background:var(--surface-2);color:var(--text);font-size:.88rem;font-weight:700;cursor:pointer}.perfil-btn:hover{background:var(--surface-3)}.perfil-btn--quitar{color:var(--danger)}.perfil-btn:has(input:disabled){opacity:.6;cursor:default}.perfil-error{margin:.5rem 0 0;font-size:.85rem;color:var(--danger)}@media(prefers-reduced-motion:reduce){.bienv-card{animation:none}}.paleta-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.5rem}.paleta-chip{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:.78rem;background:var(--surface-2);overflow:hidden}.paleta-elegir{flex:1;display:flex;align-items:center;gap:.55rem;min-height:44px;padding:.5rem .7rem;border:none;border-radius:0;background:none;color:var(--text);font-size:.85rem;font-weight:600;text-align:left;cursor:pointer}.paleta-invertir{display:grid;place-items:center;width:44px;min-height:44px;flex-shrink:0;border:none;border-left:1px solid var(--border);border-radius:0;background:none;color:var(--text-muted);cursor:pointer;padding:0}.paleta-invertir:hover{background:var(--surface-3);color:var(--text)}.paleta-invertir--activa{color:var(--primary);background:var(--primary-soft)}.paleta-bolitas{display:flex;flex-shrink:0}.paleta-bolitas span{width:1.1rem;height:1.1rem;border-radius:50%;border:1px solid var(--border)}.paleta-bolitas span:last-child{margin-left:-.4rem}.paleta-chip:hover{background:var(--surface-3)}.paleta-chip--activa{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary);font-weight:800}:root{font-family:Atkinson Hyperlegible,Trebuchet MS,Segoe UI,sans-serif;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:17px;--bg: #f5f7fb;--bg-accent: radial-gradient(circle at top right, #dce8ff, #f5f7fb 55%);--surface: #ffffff;--surface-2: #eef3fa;--surface-3: #e4ecf7;--text: #16263f;--text-muted: #52617a;--border: #cfd9ea;--primary: #0b63ce;--primary-contrast: #ffffff;--primary-soft: rgba(11, 99, 206, .1);--success: #0a7a47;--success-soft: rgba(10, 122, 71, .1);--danger: #b72a2a;--danger-soft: rgba(183, 42, 42, .1);--warning: #c27803;--warning-soft: rgba(194, 120, 3, .1);--bar: linear-gradient(90deg, #0b63ce, #2f92ff);--shadow-card: 0 2px 12px rgba(11, 22, 39, .07), 0 8px 28px rgba(11, 22, 39, .05);--cat-1: #2563eb;--cat-2: #7c3aed;--cat-3: #db2777;--cat-4: #ea580c;--cat-5: #d97706;--cat-6: #16a34a;--cat-7: #0d9488;--cat-8: #0284c7;--cat-9: #6d28d9;--cat-10: #be185d}:root[data-theme=dark]{--bg: #0d1622;--bg-accent: radial-gradient(circle at top right, #17283f, #0d1622 58%);--surface: #132132;--surface-2: #1a2b40;--surface-3: #0f1b2c;--text: #f1f5fb;--text-muted: #b8c4d6;--border: #2f435f;--primary: #69b0ff;--primary-contrast: #06213d;--primary-soft: rgba(105, 176, 255, .12);--success: #43d694;--success-soft: rgba(67, 214, 148, .12);--danger: #ff7b7b;--danger-soft: rgba(255, 123, 123, .12);--warning: #fbbf24;--warning-soft: rgba(251, 191, 36, .12);--bar: linear-gradient(90deg, #4aa0ff, #73c6ff);--shadow-card: 0 2px 12px rgba(0, 0, 0, .2), 0 8px 28px rgba(0, 0, 0, .15);--cat-1: #60a5fa;--cat-2: #a78bfa;--cat-3: #f472b6;--cat-4: #fb923c;--cat-5: #fbbf24;--cat-6: #4ade80;--cat-7: #2dd4bf;--cat-8: #38bdf8;--cat-9: #818cf8;--cat-10: #f9a8d4}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--bg-accent);color:var(--text);transition:background .3s ease,color .3s ease}a{color:inherit}button,input,select,textarea{font:inherit}:root[data-theme=dark] select,:root[data-theme=dark] input,:root[data-theme=dark] textarea{color-scheme:dark}:root[data-theme=dark] select option{background:var(--surface-2);color:var(--text)}.upd-overlay{position:fixed;inset:0;background:#060c166b;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:900;animation:upd-aparecer .25s ease-out both;pointer-events:none}.upd-wrap{position:fixed;top:0;left:0;right:0;z-index:901;display:flex;justify-content:center;padding:max(1rem,env(safe-area-inset-top)) 1rem 0;pointer-events:none}.upd-card{width:100%;max-width:460px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-card);padding:1.1rem 1.2rem;pointer-events:auto;animation:upd-bajar .32s cubic-bezier(.16,1,.3,1) both;position:relative;overflow:hidden}.upd-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--bar)}.upd-card--critica:before{background:linear-gradient(90deg,var(--warning),var(--danger))}.upd-fila{display:flex;align-items:flex-start;gap:.8rem}.upd-icono{flex-shrink:0;width:2.2rem;height:2.2rem;border-radius:11px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary)}.upd-icono--critica{background:var(--warning-soft);color:var(--warning)}.upd-texto{flex:1;min-width:0}.upd-chip{display:inline-flex;align-items:center;gap:.3rem;font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--primary);background:var(--primary-soft);border-radius:999px;padding:.15rem .5rem;margin-bottom:.35rem}.upd-chip--critica{color:var(--warning);background:var(--warning-soft)}.upd-titulo{margin:0;font-size:1rem;font-weight:700;letter-spacing:-.01em;color:var(--text)}.upd-sub{margin:.25rem 0 0;font-size:.85rem;line-height:1.4;color:var(--text-muted)}.upd-botones{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.5rem;margin-top:.9rem}.upd-btn-fantasma{background:none;border:none;color:var(--text-muted);font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer;padding:.5rem .6rem;min-height:44px;border-radius:10px}.upd-btn-fantasma:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.upd-btn-cta{display:inline-flex;align-items:center;gap:.4rem;background:var(--primary);color:var(--primary-contrast);border:none;border-radius:10px;font-family:inherit;font-size:.88rem;font-weight:700;cursor:pointer;padding:.6rem 1rem;min-height:44px}.upd-btn-cta:disabled,.upd-btn-fantasma:disabled{opacity:.6;cursor:default}.upd-girando{animation:upd-girar .9s linear infinite}@keyframes upd-aparecer{0%{opacity:0}to{opacity:1}}@keyframes upd-bajar{0%{opacity:0;transform:translateY(-14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes upd-girar{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.upd-overlay,.upd-card,.upd-girando{animation:none}}
