:root{--orange-50:#fff4e9;--orange-100:#ffe1c2;--orange-500:#ff7900;--orange-600:#e36200;--orange-700:#b94e00;--ink-900:#14171c;--ink-700:#33383f;--ink-500:#6b7280;--ink-300:#9ca3af;--ink-200:#d8d6d1;--line-200:#e8e6e1;--line-100:#f1efea;--paper:#faf9f7;--surface:#fff;--success-600:#12794f;--success-50:#e9f7f0;--error-600:#d6303b;--error-50:#fcebec;--info-600:#0b6fa8;--info-50:#e9f4fa;--warning-600:#a9720a;--warning-50:#fbf1df;--purple-600:#7c3aed;--purple-50:#f3eefe;--font-ui:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--radius-lg:20px;--radius-md:14px;--radius-sm:9px;--radius-full:999px;--shadow-sm:0 1px 2px #14171c0d, 0 1px 1px #14171c08;--shadow-md:0 6px 20px #14171c0f, 0 1px 3px #14171c0d;--shadow-lg:0 16px 40px #14171c1f, 0 2px 8px #14171c0f;--orange-200:var(--orange-600);--orange-300:var(--orange-700);--black:var(--ink-900);--white:var(--surface);--gray-100:var(--line-100);--gray-200:var(--line-200);--gray-300:var(--ink-200);--gray-400:var(--ink-300);--gray-500:var(--ink-500);--gray-600:var(--ink-700);--gray-700:var(--ink-900);--success:var(--success-600);--error:var(--error-600);--info:var(--info-600);--warning:var(--warning-600);--font:var(--font-ui);--radius:var(--radius-md);--shadow:var(--shadow-sm)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-ui);background:var(--paper);color:var(--ink-900);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-image:radial-gradient(circle at 0 0,#ff79000d,#0000 45%),radial-gradient(circle at 100% 0,#0b6fa80a,#0000 40%);background-attachment:fixed;font-size:15px;line-height:1.5}:focus-visible{outline:2px solid var(--orange-500);outline-offset:2px;border-radius:var(--radius-sm)}button{font:inherit}.app{flex-direction:column;min-height:100%;display:flex}.screen{flex:1;display:none}.screen.active{flex-direction:column;animation:.25s fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.full-page{justify-content:center;align-items:center;min-height:100dvh;padding:20px;display:flex}.login-shell{min-height:100dvh;display:flex}.login-illustration{background:#000;flex-direction:column;flex:55%;justify-content:flex-end;align-items:center;padding:48px 24px 0;display:flex;position:relative;overflow:hidden}.login-illustration .illustration-logo{color:var(--white);z-index:1;align-items:center;gap:10px;font-size:1rem;font-weight:700;display:flex;position:absolute;top:32px;left:36px}.login-illustration .illustration-logo img{border-radius:8px;width:28px;height:28px}.login-illustration .lottie-wrap{z-index:1;width:100%;height:min(58vh,560px)}.login-illustration .lottie-wrap>div,.login-illustration .lottie-wrap canvas{width:100%!important;height:100%!important}.login-form-panel{background:var(--surface);flex:45%;justify-content:center;align-items:center;padding:32px;display:flex}.login-card{box-shadow:none;background:0 0;border:none;border-radius:0;width:100%;max-width:400px;margin:auto;padding:0}@media (width<=900px){.login-shell{flex-direction:column;min-height:auto}.login-illustration{flex:none;justify-content:flex-start;width:100%;height:42vh;min-height:260px;padding:24px 16px 0}.login-illustration .illustration-logo{align-self:flex-start;margin-bottom:8px;position:static}.login-illustration .lottie-wrap{flex:1;height:100%}.login-form-panel{z-index:1;flex:auto;width:100%;margin-top:-28px;padding:0}.login-card{box-shadow:var(--shadow-lg);background:var(--surface);border:none;border-radius:28px 28px 0 0;width:100%;max-width:none;padding:32px 24px 28px}}@media (width<=480px){.login-illustration{height:36vh;min-height:220px}}.card{background:var(--surface);border:1px solid var(--line-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);width:100%;max-width:440px;margin:auto;padding:36px}.card h1,.login-card h1{letter-spacing:-.01em;text-align:center;color:var(--ink-900);margin-bottom:24px;font-size:1.375rem;font-weight:700}.card label,.login-card label{color:var(--ink-500);letter-spacing:.01em;margin-bottom:6px;font-size:.8rem;font-weight:600;display:block}.card input,.card select,.login-card input,.login-card select{border:1.5px solid var(--line-200);border-radius:var(--radius-sm);width:100%;font-size:.95rem;font-family:var(--font-ui);background:var(--surface);color:var(--ink-900);outline:none;margin-bottom:16px;padding:13px 14px;transition:border-color .15s,box-shadow .15s,background .15s}.card input::placeholder,.login-card input::placeholder{color:var(--ink-300)}.card input:hover,.card select:hover,.login-card input:hover,.login-card select:hover{border-color:var(--ink-200)}.card input:focus,.card select:focus,.login-card input:focus,.login-card select:focus{border-color:var(--orange-500);box-shadow:0 0 0 3.5px #ff790024}.card select,.login-card select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:38px}.card button,.login-card button{background:var(--orange-500);width:100%;color:var(--white);border-radius:var(--radius-sm);cursor:pointer;font-size:.95rem;font-weight:600;font-family:var(--font-ui);border:none;justify-content:center;align-items:center;gap:8px;padding:13px;transition:background .15s,transform 50ms,box-shadow .15s;display:inline-flex}.card button:hover:not(:disabled),.login-card button:hover:not(:disabled){background:var(--orange-600);box-shadow:var(--shadow-sm)}.card button:active:not(:disabled),.login-card button:active:not(:disabled){transform:scale(.98)}.card button:disabled,.login-card button:disabled{background:var(--line-200);color:var(--ink-300);cursor:not-allowed;box-shadow:none;transform:none}.btn-secondary{background:var(--line-100)!important;color:var(--ink-700)!important}.btn-secondary:hover:not(:disabled){background:var(--line-200)!important;box-shadow:none!important}.btn-danger{background:var(--error-600)!important}.btn-danger:hover:not(:disabled){background:#b3232c!important}.error-box,.success-box{border-radius:var(--radius-sm);align-items:center;gap:8px;margin-bottom:16px;padding:11px 13px;font-size:.85rem;font-weight:500;line-height:1.4;display:none}.error-box{color:var(--error-600);background:var(--error-50)}.success-box{color:var(--success-600);background:var(--success-50)}.error-box.show,.success-box.show{display:flex}.info-box{background:var(--info-50);color:var(--info-600);border-radius:var(--radius-sm);align-items:center;gap:8px;margin-bottom:16px;padding:11px 13px;font-size:.85rem;font-weight:500;display:flex}.login-logo{text-align:center;margin-bottom:22px}.login-logo .logo-icon{width:64px;height:64px;box-shadow:var(--shadow-md);border-radius:18px;justify-content:center;align-items:center;margin:0 auto 12px;display:flex}.login-logo .logo-icon img{object-fit:cover;border-radius:18px;width:100%;height:100%}.login-logo .logo-text{letter-spacing:-.01em;color:var(--ink-900);margin-top:4px;font-size:1.375rem;font-weight:800}.login-logo .logo-sub{color:var(--ink-500);margin-top:2px;font-size:.85rem}.tab-toggle{background:var(--line-100);border-radius:var(--radius-md);margin-bottom:20px;padding:4px;display:flex}.tab-toggle button{border-radius:calc(var(--radius-md) - 4px);color:var(--ink-500);cursor:pointer;font-size:.85rem;font-weight:600;font-family:var(--font-ui);background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px;transition:background .15s,color .15s,box-shadow .15s;display:flex}.tab-toggle button.active{background:var(--surface);color:var(--ink-900);box-shadow:var(--shadow-sm)}.phone-field{gap:8px;margin-bottom:16px;display:flex}.phone-field .country-chip{border:1.5px solid var(--line-200);border-radius:var(--radius-sm);color:var(--ink-700);background:var(--line-100);white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;padding:0 12px;font-size:.9rem;font-weight:600;display:flex}.phone-field input{flex:1;margin-bottom:0}.password-field{position:relative}.password-field input{padding-right:44px}.password-field .toggle-visibility{width:36px;color:var(--ink-300);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:4px;bottom:4px;right:4px}.password-field .toggle-visibility:hover{color:var(--ink-500)}.forgot-link{width:auto;color:var(--orange-600);text-align:right;cursor:pointer;border:none;margin:-8px 0 18px auto;padding:0;font-size:.82rem;font-weight:600;display:block;box-shadow:none!important;background:0 0!important}.login-disclaimer{text-align:center;color:var(--ink-300);margin-top:18px;font-size:.78rem}.header{background:var(--ink-900);color:var(--white);z-index:20;box-shadow:var(--shadow-md);justify-content:space-between;align-items:center;gap:16px;padding:14px 24px;display:flex;position:sticky;top:0}.header .brand{letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:10px;font-size:1.05rem;font-weight:700;display:flex}.header .brand .brand-mark{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex;overflow:hidden}.header .brand .brand-mark img{object-fit:cover;border-radius:8px;width:100%;height:100%}.header .header-center{flex:1;justify-content:center;align-items:center;gap:10px;min-width:0;display:flex}.header .lane-chip{background:var(--orange-500);color:var(--white);border-radius:var(--radius-full);font-size:.76rem;font-weight:700;font-family:var(--font-mono);letter-spacing:.02em;white-space:nowrap;align-items:center;gap:6px;padding:6px 13px;display:inline-flex;box-shadow:0 2px 8px #ff790059}.header .user-info{color:#ffffffb8;white-space:nowrap;text-overflow:ellipsis;max-width:220px;font-size:.82rem;overflow:hidden}.header .header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.header .icon-btn{color:var(--white);border-radius:var(--radius-sm);cursor:pointer;background:#ffffff1a;border:1px solid #ffffff24;justify-content:center;align-items:center;width:36px;height:36px;transition:background .15s;display:flex}.header .icon-btn:hover{background:#fff3}.header .logout-btn{color:var(--white);border-radius:var(--radius-sm);cursor:pointer;font-size:.82rem;font-weight:600;font-family:var(--font-ui);white-space:nowrap;background:#ffffff1f;border:1px solid #ffffff29;align-items:center;gap:6px;padding:9px 16px;transition:background .15s;display:inline-flex}.header .logout-btn:hover{background:#ffffff38}.header .back-btn{color:var(--white);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:6px 4px;font-size:.85rem;font-weight:600;display:inline-flex}.content{flex-direction:column;flex:1;width:100%;max-width:1180px;margin:0 auto;padding:24px;display:flex}.page-title{letter-spacing:-.01em;color:var(--ink-900);margin-bottom:4px;font-size:1.35rem;font-weight:700}.page-subtitle{color:var(--ink-500);margin-bottom:20px;font-size:.88rem}.dashboard-grid{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);align-items:start;gap:20px;display:grid}@media (width<=920px){.dashboard-grid{grid-template-columns:1fr}}.scan-card{background:var(--surface);border:1px solid var(--line-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:28px}.scan-card label{color:var(--ink-500);letter-spacing:.01em;margin-bottom:6px;font-size:.8rem;font-weight:600;display:block}.scan-card input{border:1.5px solid var(--line-200);border-radius:var(--radius-sm);width:100%;font-size:.95rem;font-family:var(--font-ui);background:var(--surface);color:var(--ink-900);outline:none;margin-bottom:16px;padding:13px 14px;transition:border-color .15s,box-shadow .15s,background .15s}.scan-card input::placeholder{color:var(--ink-300)}.scan-card input:hover{border-color:var(--ink-200)}.scan-card input:focus{border-color:var(--orange-500);box-shadow:0 0 0 3.5px #ff790024}.scan-card .actions button{border-radius:var(--radius-sm);cursor:pointer;font-size:.95rem;font-weight:600;font-family:var(--font-ui);background:var(--orange-500);color:var(--white);border:none;flex:1;justify-content:center;align-items:center;gap:8px;padding:13px;transition:background .15s,transform 50ms,box-shadow .15s;display:inline-flex}.scan-card .actions button:hover:not(:disabled){background:var(--orange-600);box-shadow:var(--shadow-sm)}.scan-card .actions button:active:not(:disabled){transform:scale(.98)}.scan-card .actions button:disabled{background:var(--line-200);color:var(--ink-300);cursor:not-allowed}.scan-card .actions .btn-secondary{background:var(--line-100)!important;color:var(--ink-700)!important}.scan-card .actions .btn-secondary:hover:not(:disabled){background:var(--line-200)!important;box-shadow:none!important}.scan-card .scan-card-head{border-bottom:1px solid var(--line-100);justify-content:space-between;align-items:baseline;margin-bottom:18px;padding-bottom:16px;display:flex}.scan-card .scan-card-head h1{color:var(--ink-900);letter-spacing:-.01em;font-size:1.2rem;font-weight:700}.scan-card .scan-card-head .lane-note{color:var(--ink-500);font-size:.8rem;font-family:var(--font-mono)}.qr-input{background:var(--line-100);font-family:var(--font-mono);letter-spacing:.02em;border:1.5px solid var(--line-200)!important;font-size:.9rem!important}.qr-input.scan-ready{border:1.5px solid var(--success-600)!important;background:var(--success-50)!important}.result-card{text-align:center;border-radius:var(--radius-md);border:1.5px solid #0000;margin:18px 0;padding:28px 20px}.result-card.success{background:var(--success-50);border-color:#12794f38}.result-card.error{background:var(--error-50);border-color:#d6303b38}.result-card .icon{border-radius:var(--radius-full);justify-content:center;align-items:center;width:52px;height:52px;margin:0 auto 10px;display:flex}.result-card .icon.success{color:var(--success-600);background:#12794f1f}.result-card .icon.error{color:var(--error-600);background:#d6303b1f}.result-card .plate{font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink-900);font-size:1.85rem;font-weight:700}.result-card .vehicle{color:var(--ink-500);text-transform:capitalize;margin-top:4px;font-size:.9rem}.result-card .amount{color:var(--orange-600);font-size:2.25rem;font-weight:800;font-family:var(--font-mono);margin:14px 0 6px}.result-card .amount.error{color:var(--error-600)}.result-card .balance{color:var(--ink-500);font-size:.9rem}.actions{gap:10px;margin-top:6px;display:flex}.actions button{flex:1}.shift-stats{background:var(--info-50);border-radius:var(--radius-sm);color:var(--ink-500);border:1px solid #0b6fa829;margin-top:18px;padding:12px 16px;font-size:.85rem}.shift-stats strong{color:var(--ink-900);font-family:var(--font-mono)}.poste-panel{flex-direction:column;gap:16px;display:flex}.stat-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--line-200);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:16px}.stat-card .stat-card-top{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.icon-chip{border-radius:var(--radius-md);border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.icon-chip.orange{background:var(--orange-50);color:var(--orange-600);border-color:#e3620024}.icon-chip.blue{background:var(--info-50);color:var(--info-600);border-color:#0b6fa824}.icon-chip.green{background:var(--success-50);color:var(--success-600);border-color:#12794f24}.icon-chip.purple{background:var(--purple-50);color:var(--purple-600);border-color:#7c3aed24}.pill{text-transform:uppercase;letter-spacing:.03em;border-radius:var(--radius-full);align-items:center;gap:6px;padding:4px 10px;font-size:.7rem;font-weight:700;display:inline-flex}.pill.mint{background:var(--success-50);color:var(--success-600)}.stat-card .stat-label{color:var(--ink-500);margin-bottom:4px;font-size:.75rem;font-weight:600}.stat-card .stat-value{font-family:var(--font-mono);color:var(--ink-900);letter-spacing:-.01em;font-size:1.5rem;font-weight:700}.stat-card .stat-value small{color:var(--ink-500);margin-left:3px;font-size:.8rem;font-weight:600}.btn-refresh{background:var(--orange-500);color:var(--white);border-radius:var(--radius-sm);cursor:pointer;font-size:.74rem;font-weight:700;font-family:var(--font-ui);border:none;align-items:center;gap:6px;padding:6px 12px;transition:background .15s;display:inline-flex}.btn-refresh:hover:not(:disabled){background:var(--orange-600)}.btn-refresh:disabled{background:var(--line-200);color:var(--ink-300);cursor:not-allowed}.spin-icon{animation:.8s linear infinite spin}.panel{background:var(--surface);border:1px solid var(--line-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.panel-head{border-bottom:1px solid var(--line-100);justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.panel-head h2{color:var(--ink-900);font-size:.92rem;font-weight:700}.live-dot{color:var(--success-600);text-transform:uppercase;letter-spacing:.03em;background:var(--success-50);border-radius:var(--radius-full);align-items:center;gap:6px;padding:4px 10px;font-size:.7rem;font-weight:700;display:inline-flex}.live-dot:before{content:"";background:var(--success-600);border-radius:50%;width:7px;height:7px;animation:1.8s infinite pulse;box-shadow:0 0 #12794f80}@keyframes pulse{0%{box-shadow:0 0 #12794f73}70%{box-shadow:0 0 0 6px #12794f00}to{box-shadow:0 0 #12794f00}}.passage-feed{max-height:420px;list-style:none;overflow-y:auto}.passage-feed .feed-empty{text-align:center;color:var(--ink-300);padding:32px 18px;font-size:.85rem}.feed-item{border-bottom:1px solid var(--line-100);align-items:center;gap:12px;padding:12px 18px;display:flex}.feed-item:last-child{border-bottom:none}.feed-item .feed-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.feed-item .feed-icon.success{background:var(--success-50);color:var(--success-600)}.feed-item .feed-icon.error{background:var(--error-50);color:var(--error-600)}.feed-item .feed-main{flex:1;min-width:0}.feed-item .feed-plate{font-family:var(--font-mono);color:var(--ink-900);letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:700;overflow:hidden}.feed-item .feed-time{color:var(--ink-500);font-size:.72rem}.feed-item .feed-amount{font-family:var(--font-mono);color:var(--ink-700);white-space:nowrap;font-size:.85rem;font-weight:700}.feed-item .feed-amount.error{color:var(--error-600);font-size:.75rem;font-weight:600}.history-summary{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px;display:grid}@media (width<=640px){.history-summary{grid-template-columns:1fr}}.history-list{flex-direction:column;gap:10px;padding:0;list-style:none;display:flex}.history-item{background:var(--surface);border:1px solid var(--line-200);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.history-item .status-badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.02em;padding:4px 12px;font-size:.72rem;font-weight:700}.history-item .status-badge.open{background:var(--success-50);color:var(--success-600)}.history-item .status-badge.closed{background:var(--line-100);color:var(--ink-500)}.history-item .shift-info{min-width:0;font-size:.9rem}.history-item .shift-info .shift-title{color:var(--ink-900);align-items:center;gap:8px;font-weight:700;display:flex}.history-item .shift-info .lane-tag{font-family:var(--font-mono);color:var(--ink-500);background:var(--line-100);border-radius:var(--radius-sm);padding:1px 7px;font-size:.72rem;font-weight:600}.history-item .shift-info .shift-date{color:var(--ink-500);margin-top:3px;font-size:.8rem}.history-item .shift-stats{text-align:right;color:var(--ink-500);font-size:.8rem;font-family:var(--font-mono);background:0 0;border:none;margin:0;padding:0}.empty-state{text-align:center;color:var(--ink-300);padding:56px 24px}.empty-state .empty-icon{width:48px;height:48px;color:var(--ink-200);margin:0 auto 12px}.empty-state p{font-size:.9rem}.toast-container{z-index:999;pointer-events:none;flex-direction:column;gap:8px;width:min(92vw,420px);display:flex;position:fixed;top:20px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--radius-sm);pointer-events:auto;box-shadow:var(--shadow-lg);text-align:center;padding:12px 18px;font-size:.85rem;font-weight:600;animation:.3s slideDown}.toast.success{background:var(--success-600);color:var(--white)}.toast.error{background:var(--error-600);color:var(--white)}.toast.info{background:var(--info-600);color:var(--white)}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.loading{color:var(--ink-300);justify-content:center;align-items:center;gap:4px;padding:40px;font-size:.88rem;display:flex}.spinner{border:2.5px solid var(--line-200);border-top-color:var(--orange-500);border-radius:50%;flex-shrink:0;width:20px;height:20px;margin-right:10px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.form-row{gap:12px;display:flex}.form-row>*{flex:1}@media (width<=640px){body{font-size:14.5px}.card{padding:26px 20px}.header{flex-wrap:wrap;row-gap:8px;padding:12px 16px}.header .user-info{display:none}.header .header-center{order:3;justify-content:flex-start;width:100%}.content{padding:16px}.scan-card{padding:20px}.result-card .plate{font-size:1.5rem}.result-card .amount{font-size:1.85rem}.actions{flex-direction:column}.stat-grid{grid-template-columns:1fr 1fr}.history-item{flex-direction:column;align-items:flex-start}.history-item .shift-stats{text-align:left}}@media (width<=400px){.stat-grid{grid-template-columns:1fr}}
