:root{color-scheme:light dark;--ctk-color-canvas: light-dark(#f4f6f9, #0e1116);--ctk-color-surface: light-dark(#ffffff, #171b21);--ctk-color-surface-2: light-dark(#f9fafb, #1e232b);--ctk-color-border: light-dark(#e5e7eb, #2a2f37);--ctk-color-border-strong: light-dark(#d1d5db, #3a4049);--ctk-color-text-strong: light-dark(#111827, #f3f4f6);--ctk-color-text: light-dark(#374151, #d1d5db);--ctk-color-text-muted: light-dark(#69707e, #9ba3af);--ctk-color-text-subtle: light-dark(#9ca3af, #6b7280);--ctk-color-primary: light-dark(#2563eb, #60a5fa);--ctk-color-primary-hover: light-dark(#1d4ed8, #3b82f6);--ctk-color-primary-pressed: light-dark(#1e40af, #2563eb);--ctk-color-primary-soft: light-dark(#e7eeff, #1b2a4a);--ctk-color-on-primary: light-dark(#ffffff, #0b1220);--ctk-color-success: light-dark(#16a34a, #4ade80);--ctk-color-warning: light-dark(#f59e0b, #fbbf24);--ctk-color-danger: light-dark(#dc2626, #f87171);--ctk-color-success-container: light-dark(#dcfce7, rgba(74, 222, 128, .14));--ctk-color-success-text: light-dark(#15803d, #4ade80);--ctk-color-warning-container: light-dark(#fef3c7, rgba(251, 191, 36, .14));--ctk-color-warning-text: light-dark(#b45309, #fbbf24);--ctk-color-info-container: light-dark(#dbeafe, rgba(96, 165, 250, .14));--ctk-color-info-text: light-dark(#1d4ed8, #93c5fd);--ctk-color-danger-container: light-dark(#fee2e2, rgba(248, 113, 113, .14));--ctk-color-danger-text: light-dark(#b91c1c, #f87171);--ctk-color-neutral-container: light-dark(#f3f4f6, rgba(156, 163, 175, .14));--ctk-color-neutral-text: light-dark(#4b5563, #d1d5db);--ctk-font-sans: "Inter", system-ui, sans-serif;--ctk-type-stat: 700 1.5rem/1.2 var(--ctk-font-sans);--ctk-type-h1: 700 1.375rem/1.2 var(--ctk-font-sans);--ctk-type-h2: 700 1.25rem/1.2 var(--ctk-font-sans);--ctk-type-h3: 600 1rem/1.3 var(--ctk-font-sans);--ctk-type-body: 400 .875rem/1.4 var(--ctk-font-sans);--ctk-type-body-strong: 600 .875rem/1.4 var(--ctk-font-sans);--ctk-type-label: 500 .8125rem/1.4 var(--ctk-font-sans);--ctk-type-th: 600 .75rem/1.2 var(--ctk-font-sans);--ctk-type-caption: 400 .75rem/1.4 var(--ctk-font-sans);--ctk-space-1: .25rem;--ctk-space-2: .5rem;--ctk-space-3: .75rem;--ctk-space-4: 1rem;--ctk-space-5: 1.5rem;--ctk-space-6: 2rem;--ctk-space-7: 3rem;--ctk-radius-sm: 6px;--ctk-radius-md: 8px;--ctk-radius-lg: 12px;--ctk-radius-full: 999px;--ctk-shadow-xs: 0 1px 2px rgba(16, 24, 40, .05);--ctk-shadow-sm: 0 1px 3px rgba(16, 24, 40, .08), 0 1px 2px rgba(16, 24, 40, .04);--ctk-shadow-md: 0 4px 12px rgba(16, 24, 40, .1);--ctk-shadow-lg: 0 12px 32px rgba(16, 24, 40, .14)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--ctk-color-canvas);color:var(--ctk-color-text);font:var(--ctk-type-body);-webkit-font-smoothing:antialiased}::selection{background:var(--ctk-color-primary);color:var(--ctk-color-on-primary)}input,button,select{caret-color:var(--ctk-color-primary)}:focus-visible{outline:2px solid var(--ctk-color-primary);outline-offset:2px}a{color:var(--ctk-color-primary);text-underline-offset:3px}.tnum{font-variant-numeric:tabular-nums}.app{max-width:430px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;background:var(--ctk-color-canvas)}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--ctk-space-3);min-height:56px;padding:var(--ctk-space-2) var(--ctk-space-4);background:var(--ctk-color-surface);border-bottom:1px solid var(--ctk-color-border)}.topbar h1{font:var(--ctk-type-h1);color:var(--ctk-color-text-strong);margin:0;flex:1}.topbar .icon-btn:last-child{margin-left:auto}.screen-body{flex:1;padding:var(--ctk-space-4);display:flex;flex-direction:column;gap:var(--ctk-space-4)}.icon{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.icon--lg{width:28px;height:28px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;border-radius:var(--ctk-radius-md);background:transparent;color:var(--ctk-color-text-muted);cursor:pointer}.icon-btn:hover{background:var(--ctk-color-surface-2);color:var(--ctk-color-text-strong)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--ctk-space-2);min-height:44px;padding:0 var(--ctk-space-4);border:1px solid transparent;border-radius:var(--ctk-radius-md);font:var(--ctk-type-body-strong);cursor:pointer;text-decoration:none;transition:background-color .12s ease,border-color .12s ease,box-shadow .12s ease}.btn--primary{background:var(--ctk-color-primary);color:var(--ctk-color-on-primary)}.btn--primary:hover{background:var(--ctk-color-primary-hover)}.btn--primary:active{background:var(--ctk-color-primary-pressed)}.btn--success{background:var(--ctk-color-success);color:#fff}.btn--ghost{background:var(--ctk-color-surface);border-color:var(--ctk-color-border-strong);color:var(--ctk-color-text-strong)}.btn--ghost:hover{background:var(--ctk-color-surface-2)}.btn--danger-ghost{background:var(--ctk-color-surface);border-color:var(--ctk-color-danger);color:var(--ctk-color-danger-text)}.btn--xl{min-height:56px;font-size:1rem;border-radius:var(--ctk-radius-lg)}.btn--block{width:100%}.btn:disabled{background:var(--ctk-color-surface-2);border-color:var(--ctk-color-border);color:var(--ctk-color-text-subtle);cursor:not-allowed}.field{display:flex;flex-direction:column;gap:var(--ctk-space-1)}.field>label{font:var(--ctk-type-label);color:var(--ctk-color-text-muted)}.field .hint{font:var(--ctk-type-caption);color:var(--ctk-color-text-muted)}.field .error{font:var(--ctk-type-caption);color:var(--ctk-color-danger-text)}.input{width:100%;min-height:44px;padding:0 var(--ctk-space-3);background:var(--ctk-color-surface-2);border:1px solid var(--ctk-color-border-strong);border-radius:var(--ctk-radius-md);font:var(--ctk-type-body);color:var(--ctk-color-text-strong);transition:border-color .12s ease,background-color .12s ease}.input::placeholder{color:var(--ctk-color-text-muted)}.input:focus{outline:none;background:var(--ctk-color-surface);border-color:var(--ctk-color-primary);box-shadow:0 0 0 2px var(--ctk-color-primary-soft)}.input[aria-invalid=true]{border-color:var(--ctk-color-danger)}select.input{appearance:none;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--ctk-color-text-muted) 50%),linear-gradient(135deg,var(--ctk-color-text-muted) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:var(--ctk-space-7)}.search{position:relative;display:flex;align-items:center}.search .icon{position:absolute;left:12px;width:18px;height:18px;color:var(--ctk-color-text-subtle);pointer-events:none}.search .input{padding-left:40px;text-transform:uppercase}.search .input::placeholder{text-transform:none}.pill{display:inline-flex;align-items:center;gap:var(--ctk-space-1);padding:2px var(--ctk-space-2);border-radius:var(--ctk-radius-full);font:var(--ctk-type-caption);font-weight:500;white-space:nowrap}.pill--success{background:var(--ctk-color-success-container);color:var(--ctk-color-success-text)}.pill--warning{background:var(--ctk-color-warning-container);color:var(--ctk-color-warning-text)}.pill--info{background:var(--ctk-color-info-container);color:var(--ctk-color-info-text)}.pill--danger{background:var(--ctk-color-danger-container);color:var(--ctk-color-danger-text)}.pill--neutral{background:var(--ctk-color-neutral-container);color:var(--ctk-color-neutral-text)}.card{background:var(--ctk-color-surface);border:1px solid var(--ctk-color-border);border-radius:var(--ctk-radius-lg);box-shadow:var(--ctk-shadow-sm)}.plate{display:inline-flex;flex-direction:column;width:128px;border-radius:6px;overflow:hidden;border:2px solid #1f2937;background:#fff;color:#111827;box-shadow:var(--ctk-shadow-xs);flex:none}.plate__band{display:flex;align-items:center;justify-content:center;background:#1d4ed8;color:#fff;font:700 .5rem/1 var(--ctk-font-sans);letter-spacing:.18em;padding:3px 0}.plate__num{text-align:center;font:700 1.25rem/1 var(--ctk-font-sans);letter-spacing:.06em;padding:6px 4px 7px;font-variant-numeric:tabular-nums;white-space:nowrap}.plate--sm{width:96px}.plate--sm .plate__num{font-size:1rem;padding:5px 4px 6px;letter-spacing:.04em}.plate--lg{width:180px;border-radius:8px}.plate--lg .plate__num{font-size:1.75rem;padding:9px 6px 10px}.plate--old{background:#d1d5db}.plate--old .plate__band{display:none}.plate--old .plate__num{color:#1f2937}.photo-thumb{display:grid;place-items:center;background:radial-gradient(120% 90% at 50% 10%,light-dark(#3b4453,#232a35),light-dark(#242b36,#12161d));border-radius:var(--ctk-radius-md);padding:var(--ctk-space-3)}.action-bar{position:sticky;bottom:0;z-index:20;display:grid;grid-template-columns:1.4fr 1fr;gap:var(--ctk-space-3);padding:var(--ctk-space-3) var(--ctk-space-4) calc(var(--ctk-space-3) + env(safe-area-inset-bottom));background:var(--ctk-color-surface);border-top:1px solid var(--ctk-color-border)}.viewfinder{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--ctk-space-4);background:radial-gradient(140% 100% at 50% 0%,#2c3442,#12161d 70%);color:#e5e7eb;overflow:hidden}.viewfinder>:not(.guide){position:relative;z-index:1}.viewfinder .guide{position:relative;width:min(78%,300px);aspect-ratio:3 / 1.05;border-radius:10px}.viewfinder .guide:before{content:"";position:absolute;inset:0;border-radius:10px;box-shadow:0 0 0 100vmax #06090e8c}.guide .corner{position:absolute;width:26px;height:26px;border:3px solid #fff;border-radius:2px}.guide .corner:nth-child(1){top:-2px;left:-2px;border-right:0;border-bottom:0}.guide .corner:nth-child(2){top:-2px;right:-2px;border-left:0;border-bottom:0}.guide .corner:nth-child(3){bottom:-2px;left:-2px;border-right:0;border-top:0}.guide .corner:nth-child(4){bottom:-2px;right:-2px;border-left:0;border-top:0}.guide .scanline{position:absolute;left:6px;right:6px;top:8px;height:2px;border-radius:2px;background:var(--ctk-color-primary);box-shadow:0 0 8px 1px color-mix(in srgb,var(--ctk-color-primary) 45%,transparent);animation:scan 2.4s cubic-bezier(.45,0,.55,1) infinite alternate}@keyframes scan{to{transform:translateY(78cqh)}}.viewfinder .guide{container-type:size}@media(prefers-reduced-motion:reduce){.guide .scanline{animation:none;top:50%}}.shutter{width:72px;height:72px;border-radius:var(--ctk-radius-full);border:4px solid #fff;background:#ffffff3d;cursor:pointer}.shutter:active{background:#fff}.choices{display:grid;grid-template-columns:1fr 1fr;gap:var(--ctk-space-2)}.choice{display:flex;align-items:center;gap:var(--ctk-space-2);min-height:52px;padding:0 var(--ctk-space-3);background:var(--ctk-color-surface);border:1px solid var(--ctk-color-border-strong);border-radius:var(--ctk-radius-md);font:var(--ctk-type-body-strong);color:var(--ctk-color-text-strong);cursor:pointer}.choice[aria-pressed=true]{background:var(--ctk-color-primary-soft);border-color:var(--ctk-color-primary);color:var(--ctk-color-primary);box-shadow:inset 0 0 0 1px var(--ctk-color-primary)}.receipt{width:302px;margin:0 auto;background:#fff;color:#111827;font:400 .8125rem/1.5 Roboto Mono,ui-monospace,monospace;padding:var(--ctk-space-4) var(--ctk-space-4) var(--ctk-space-5);box-shadow:var(--ctk-shadow-md);--notch: 8px;clip-path:polygon(0 0,100% 0,100% calc(100% - var(--notch)),97.5% 100%,95% calc(100% - var(--notch)),92.5% 100%,90% calc(100% - var(--notch)),87.5% 100%,85% calc(100% - var(--notch)),82.5% 100%,80% calc(100% - var(--notch)),77.5% 100%,75% calc(100% - var(--notch)),72.5% 100%,70% calc(100% - var(--notch)),67.5% 100%,65% calc(100% - var(--notch)),62.5% 100%,60% calc(100% - var(--notch)),57.5% 100%,55% calc(100% - var(--notch)),52.5% 100%,50% calc(100% - var(--notch)),47.5% 100%,45% calc(100% - var(--notch)),42.5% 100%,40% calc(100% - var(--notch)),37.5% 100%,35% calc(100% - var(--notch)),32.5% 100%,30% calc(100% - var(--notch)),27.5% 100%,25% calc(100% - var(--notch)),22.5% 100%,20% calc(100% - var(--notch)),17.5% 100%,15% calc(100% - var(--notch)),12.5% 100%,10% calc(100% - var(--notch)),7.5% 100%,5% calc(100% - var(--notch)),2.5% 100%,0 calc(100% - var(--notch)))}.receipt hr{border:none;border-top:1px dashed #9ca3af;margin:var(--ctk-space-3) 0}.receipt .r-title{text-align:center;font-weight:700;font-size:.9375rem;letter-spacing:.04em}.receipt .r-center{text-align:center}.receipt .r-row{display:flex;justify-content:space-between;gap:var(--ctk-space-3)}.receipt .r-row span:last-child{font-weight:700}.receipt .r-plate{text-align:center;font-size:1.375rem;font-weight:700;letter-spacing:.12em;margin:var(--ctk-space-2) 0}.qr{display:block;margin:0 auto;image-rendering:pixelated}.rows{display:flex;flex-direction:column}.row{display:flex;align-items:center;gap:var(--ctk-space-3);padding:var(--ctk-space-3) var(--ctk-space-4)}.row+.row{border-top:1px solid var(--ctk-color-border)}.row .grow{flex:1;min-width:0}.row .title{font:var(--ctk-type-body-strong);color:var(--ctk-color-text-strong)}.row .meta{font:var(--ctk-type-caption);color:var(--ctk-color-text-muted)}.kv{display:grid;grid-template-columns:auto 1fr;gap:var(--ctk-space-2) var(--ctk-space-4)}.kv dt{font:var(--ctk-type-label);color:var(--ctk-color-text-muted);margin:0}.kv dd{font:var(--ctk-type-body-strong);color:var(--ctk-color-text-strong);margin:0;text-align:right}.vehicle{display:flex;align-items:center;gap:var(--ctk-space-3);padding:var(--ctk-space-3);cursor:pointer;transition:box-shadow .12s ease,transform .12s ease}.vehicle:hover{box-shadow:var(--ctk-shadow-md)}.vehicle .info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.vehicle .time{font:var(--ctk-type-body-strong);color:var(--ctk-color-text-strong);font-variant-numeric:tabular-nums;text-align:right}.vehicle .since{font:var(--ctk-type-caption);color:var(--ctk-color-text-muted);text-align:right}.stats{display:flex;align-items:baseline;gap:var(--ctk-space-2);color:var(--ctk-color-text-muted)}.stats strong{font:var(--ctk-type-stat);color:var(--ctk-color-text-strong);font-variant-numeric:tabular-nums}.stack-2{display:flex;flex-direction:column;gap:var(--ctk-space-2)}.stack-3{display:flex;flex-direction:column;gap:var(--ctk-space-3)}.stack-4{display:flex;flex-direction:column;gap:var(--ctk-space-4)}.hrow{display:flex;align-items:center;gap:var(--ctk-space-3)}.spread{display:flex;align-items:center;justify-content:space-between;gap:var(--ctk-space-3)}.muted{color:var(--ctk-color-text-muted)}.caption{font:var(--ctk-type-caption);color:var(--ctk-color-text-muted)}h2.section{font:var(--ctk-type-h3);color:var(--ctk-color-text-strong);margin:0}.pad{padding:var(--ctk-space-4)}@page{size:80mm 170mm;margin:0}@media print{html,body{height:auto;background:#fff}.app:has(app-recibo){max-width:none;min-height:0;background:#fff}.app:has(app-recibo) .topbar,.app:has(app-recibo) .action-bar{display:none}.app:has(app-recibo) .screen-body{padding:0;gap:0}.app:has(app-recibo) .receipt{width:80mm;max-width:100%;margin:0 auto;box-shadow:none;clip-path:none;padding:4mm 3mm 6mm}}
