:root{--slate-25:#fcfdfe;--slate-50:#f8fafc;--slate-100:#f1f5f9;--slate-150:#eaf0f6;--slate-200:#e2e8f0;--slate-300:#cbd5e1;--slate-400:#94a3b8;--slate-500:#64748b;--slate-600:#475569;--slate-700:#334155;--slate-800:#1e293b;--slate-900:#0f172a;--slate-950:#020617;--bg-app:#f8fafc;--bg-surface:#fff;--bg-surface-elevated:#fff;--bg-subtle:#f1f5f9;--bg-badge:#e2e8f0;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--text-light:#fff;--border-subtle:#e2e8f0;--border-strong:#cbd5e1;--border-focus:#0f172a;--primary:#0f172a;--primary-hover:#1e293b;--primary-active:#334155;--primary-disabled:#94a3b8;--error-bg:#fef2f2;--error-border:#fecaca;--error-text:#991b1b;--status-online:#059669;--shadow-xs:0 1px 2px 0 #0f172a0a;--shadow-sm:0 2px 4px 0 #0f172a0d;--shadow-md:0 6px 16px -2px #0f172a12, 0 2px 4px -1px #0f172a0a;--shadow-lg:0 12px 28px -4px #0f172a17, 0 4px 10px -2px #0f172a08;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.25rem;--radius-full:9999px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*,:before,:after{box-sizing:border-box}html,body{background-color:var(--bg-app);min-height:100%;color:var(--text-primary);margin:0;padding:0;font-size:16px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}.auth-page{background:radial-gradient(ellipse at 50% 0%, #cbd5e173, transparent 70%), linear-gradient(180deg, var(--slate-100) 0%, var(--slate-50) 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:1.5rem 1rem;display:flex}.auth-card{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);width:100%;max-width:27rem;box-shadow:var(--shadow-lg);padding:2.25rem 1.75rem;animation:.25s ease-out fadeIn}@media (width>=480px){.auth-card{padding:2.5rem 2.25rem}}.brand-header{text-align:center;flex-direction:column;align-items:center;margin-bottom:2rem;display:flex}.brand-logo-container{border-radius:var(--radius-lg);background:linear-gradient(135deg, var(--slate-50) 0%, var(--slate-150) 100%);border:1px solid var(--border-subtle);width:5rem;height:5rem;box-shadow:var(--shadow-xs);justify-content:center;align-items:center;margin-bottom:.85rem;padding:.5rem;display:inline-flex}.brand-logo{object-fit:contain;filter:drop-shadow(0 2px 4px #0f172a1f);width:100%;height:100%}.brand-title{letter-spacing:-.02em;color:var(--slate-900);align-items:center;gap:.5rem;margin:0;font-size:1.35rem;font-weight:800;display:flex}.brand-badge{letter-spacing:.06em;text-transform:uppercase;background-color:var(--slate-100);color:var(--slate-700);border-radius:var(--radius-full);border:1px solid var(--border-subtle);padding:.2rem .55rem;font-size:.68rem;font-weight:700;display:inline-block}.auth-header-text{margin-top:.5rem}.auth-header-text h1{letter-spacing:-.02em;color:var(--slate-900);margin:0 0 .35rem;font-size:1.35rem;font-weight:700}.auth-header-text p{color:var(--slate-600);margin:0;font-size:.9rem}.auth-card form{flex-direction:column;gap:1.15rem;display:flex}.form-group{text-align:left;flex-direction:column;gap:.4rem;display:flex}.form-group label{color:var(--slate-800);align-items:center;gap:.35rem;font-size:.875rem;font-weight:600;display:flex}.auth-card input{width:100%;height:3.125rem;color:var(--slate-900);background-color:var(--slate-50);border:1.5px solid var(--slate-300);border-radius:var(--radius-md);padding:0 1rem;font-size:.975rem;transition:all .15s ease-in-out}.auth-card input::placeholder{color:var(--slate-400)}.auth-card input:hover{border-color:var(--slate-400);background-color:#fff}.auth-card input:focus{border-color:var(--slate-900);background-color:#fff;outline:none;box-shadow:0 0 0 3px #0f172a1f}.form-error{background-color:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);border-radius:var(--radius-md);align-items:center;gap:.6rem;margin:0;padding:.75rem .9rem;font-size:.875rem;font-weight:500;display:flex}.form-error-icon{flex-shrink:0;width:1.1rem;height:1.1rem}.btn-primary{width:100%;height:3.125rem;color:var(--text-light);background-color:var(--primary);border:1px solid var(--slate-900);border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-sm);justify-content:center;align-items:center;gap:.5rem;margin-top:.5rem;font-size:.975rem;font-weight:700;transition:all .15s ease-in-out;display:inline-flex}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active:not(:disabled){background-color:var(--primary-active);transform:translateY(0)}.btn-primary:focus-visible{outline:none;box-shadow:0 0 0 3px #0f172a40}.btn-primary:disabled{background-color:var(--slate-400);border-color:var(--slate-400);cursor:not-allowed;opacity:.7}.spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:1.1rem;height:1.1rem;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.hint-card{background-color:var(--slate-100);border:1px solid var(--slate-200);border-radius:var(--radius-md);color:var(--slate-600);text-align:center;margin-top:1.75rem;padding:.85rem 1rem;font-size:.825rem;line-height:1.4}.hint-card strong{color:var(--slate-800)}.home-page{flex-direction:column;gap:1.5rem;max-width:44rem;min-height:100dvh;margin:0 auto;padding:1.25rem 1rem 2.5rem;display:flex}@media (width>=640px){.home-page{padding:2rem 1.5rem 3rem}}.topbar{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.15rem;display:flex}.topbar-brand{align-items:center;gap:.85rem;display:flex}.topbar-logo{object-fit:contain;background-color:var(--slate-50);border:1px solid var(--slate-200);border-radius:var(--radius-sm);width:2.5rem;height:2.5rem;padding:.25rem}.topbar-info{flex-direction:column;display:flex}.topbar-title{letter-spacing:-.01em;color:var(--slate-900);font-size:1rem;font-weight:800;line-height:1.2}.topbar-subtitle{color:var(--slate-500);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.button-secondary{height:2.375rem;color:var(--slate-700);background-color:var(--slate-50);border:1px solid var(--slate-300);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:.35rem;padding:0 .9rem;font-size:.825rem;font-weight:600;transition:all .15s ease-in-out;display:inline-flex}.button-secondary:hover{background-color:var(--slate-100);color:var(--slate-900);border-color:var(--slate-400)}.button-secondary:active{background-color:var(--slate-200)}.operator-card{background:linear-gradient(135deg, var(--slate-900) 0%, var(--slate-800) 100%);color:var(--text-light);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:1.5rem;position:relative;overflow:hidden}.operator-card:before{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff14,#0000 70%);width:14rem;height:14rem;position:absolute;top:-50%;right:-20%}.operator-card-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.operator-badge{text-transform:uppercase;letter-spacing:.05em;color:var(--slate-200);border-radius:var(--radius-full);background-color:#ffffff1f;align-items:center;gap:.4rem;padding:.25rem .6rem;font-size:.725rem;font-weight:700;display:inline-flex}.status-dot{background-color:#34d399;border-radius:50%;width:.5rem;height:.5rem;box-shadow:0 0 8px #34d399cc}.operator-name{letter-spacing:-.02em;margin:0 0 .35rem;font-size:1.45rem;font-weight:700;line-height:1.2}.operator-station{color:var(--slate-300);align-items:center;gap:.4rem;margin:0;font-size:.875rem;display:flex}.section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--slate-500);margin:.5rem 0 0 .25rem;font-size:.85rem;font-weight:700}.action-card{background-color:var(--bg-surface);border:1.5px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);flex-direction:column;gap:1.25rem;padding:1.5rem;transition:all .2s ease-in-out;display:flex}@media (width>=540px){.action-card{padding:1.75rem}}.action-main{align-items:flex-start;gap:1.15rem;display:flex}.action-icon-wrapper{border-radius:var(--radius-lg);background-color:var(--slate-100);border:1px solid var(--slate-200);width:3.5rem;height:3.5rem;color:var(--slate-800);flex-shrink:0;justify-content:center;align-items:center;display:flex}.action-icon-svg{width:1.85rem;height:1.85rem}.action-details h2{color:var(--slate-900);margin:0 0 .35rem;font-size:1.15rem;font-weight:700}.action-details p{color:var(--slate-600);margin:0;font-size:.875rem;line-height:1.45}.action-card button{border-radius:var(--radius-md);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;width:100%;height:3.125rem;font-size:.95rem;font-weight:700;transition:all .15s ease-in-out;display:inline-flex}.action-card button:disabled{background-color:var(--slate-100);color:var(--slate-500);border-color:var(--slate-200);cursor:not-allowed}.demo-note{color:var(--slate-500);text-align:center;justify-content:center;align-items:center;gap:.5rem;margin:0;padding:.5rem;font-size:.825rem;display:flex}.scanner-page{max-width:44rem;min-height:100dvh;margin:0 auto;padding:1.25rem 1rem 2.5rem}.scanner-header{align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.scanner-header h1{color:var(--slate-900);margin:0;font-size:1.35rem}.scanner-header p{color:var(--slate-600);margin:.2rem 0 0;font-size:.875rem}.scanner-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:1rem}.qr-reader{border-radius:var(--radius-lg);background:var(--slate-950);width:100%;overflow:hidden}.qr-reader video{border-radius:var(--radius-lg)}.scanner-status{border-radius:var(--radius-md);background:var(--slate-900);color:#fff;justify-content:center;align-items:center;gap:.65rem;min-height:3rem;margin-top:1rem;padding:.75rem;font-weight:600;display:flex}.scanner-error{background:var(--error-bg);border:1px solid var(--error-border);border-radius:var(--radius-md);color:var(--error-text);flex-direction:column;gap:.2rem;margin-top:1rem;padding:.85rem 1rem;font-size:.875rem;display:flex}.scanner-help{color:var(--slate-500);text-align:center;margin:1rem 0 0;font-size:.8rem}.action-card button:not(:disabled){background:var(--primary);color:var(--text-light);border-color:var(--primary);cursor:pointer}.action-card button:not(:disabled):hover{background:var(--primary-hover)}.ticket-page{flex-direction:column;gap:1.25rem;max-width:44rem;min-height:100dvh;margin:0 auto;padding:1.25rem 1rem 3rem;display:flex}.ticket-page-header{align-items:flex-start;gap:1rem;display:flex}.ticket-page-header h1{margin:0;font-size:1.35rem}.ticket-page-header p{color:var(--slate-600);margin:.25rem 0 0;font-size:.875rem}.ticket-card,.physical-check,.dispatch-form,.dispatch-success{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:1.25rem}.ticket-card-heading{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:1rem;display:flex}.ticket-label{color:var(--slate-500);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:700}.ticket-card-heading h2{margin:.15rem 0 0;font-size:1.3rem}.ticket-status{background:var(--slate-100);border:1px solid var(--slate-200);color:var(--slate-700);border-radius:var(--radius-full);text-align:center;padding:.3rem .6rem;font-size:.7rem;font-weight:700}.ticket-quantity{border-radius:var(--radius-lg);background:var(--slate-900);color:#fff;justify-content:space-between;align-items:center;margin:1rem 0;padding:1rem;display:flex}.ticket-quantity span{color:var(--slate-300);font-size:.85rem}.ticket-quantity strong{font-size:1.4rem}.ticket-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.ticket-grid div{flex-direction:column;min-width:0;display:flex}.ticket-grid span{color:var(--slate-500);font-size:.75rem}.ticket-grid strong{color:var(--slate-900);overflow-wrap:anywhere;font-size:.9rem}.ticket-grid small{color:var(--slate-500)}.physical-check h2,.dispatch-form h2{margin:0;font-size:1rem}.physical-check p,.dispatch-form-heading p{color:var(--slate-600);margin:.35rem 0 0;font-size:.85rem}.physical-values{flex-wrap:wrap;gap:.5rem;margin-top:.85rem;display:flex}.physical-values span{background:var(--slate-100);border:1px solid var(--slate-200);border-radius:var(--radius-md);padding:.55rem .75rem;font-size:.85rem}.dispatch-form{flex-direction:column;gap:1rem;display:flex}.dispatch-form select,.dispatch-form input,.dispatch-form textarea{border:1.5px solid var(--slate-300);border-radius:var(--radius-md);background:#fff;width:100%;padding:.75rem;font-size:1rem}.dispatch-form select,.dispatch-form input{min-height:3.125rem}.dispatch-form textarea{resize:vertical}.dispatch-form select:focus,.dispatch-form input:focus,.dispatch-form textarea:focus{border-color:var(--slate-900);outline:none;box-shadow:0 0 0 3px #0f172a1f}.field-message{color:var(--slate-500);margin:0;font-size:.85rem}.dispatch-warning{background:var(--slate-100);border:1px solid var(--slate-200);border-radius:var(--radius-md);flex-direction:column;gap:.25rem;padding:.85rem;font-size:.825rem;display:flex}.dispatch-warning span{color:var(--slate-600)}.dispatch-success{text-align:center;box-shadow:var(--shadow-md);margin-top:2rem}.success-icon{background:var(--slate-900);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:4rem;height:4rem;margin:0 auto 1rem;font-size:2rem;font-weight:800;display:flex}.success-label{color:var(--slate-500);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:700}.dispatch-success h1{margin:.25rem 0}.dispatch-success>p:not(.success-label){color:var(--slate-600)}.success-summary{border-top:1px solid var(--slate-200);border-bottom:1px solid var(--slate-200);margin:1.5rem 0}.success-summary div{border-bottom:1px solid var(--slate-100);justify-content:space-between;gap:1rem;padding:.8rem 0;display:flex}.success-summary div:last-child{border-bottom:0}.success-summary span{color:var(--slate-500)}.ticket-home-button{justify-content:center;width:100%;margin-top:.75rem}@media (width<=480px){.ticket-grid{grid-template-columns:1fr}.ticket-card-heading{flex-direction:column}}.closure-action-card{margin-top:1rem}.closure-page{flex-direction:column;gap:1.25rem;max-width:44rem;min-height:100dvh;margin:0 auto;padding:1.25rem 1rem 3rem;display:flex}.closure-header{align-items:flex-start;gap:1rem;display:flex}.closure-header>div{min-width:0}.closure-header h1{color:var(--slate-900);margin:0;font-size:1.35rem}.closure-header p{color:var(--slate-600);margin:.25rem 0 0;font-size:.875rem}.closure-card,.closure-success{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:1.25rem}.closure-card{flex-direction:column;gap:1rem;display:flex}.closure-card-heading{border-bottom:1px solid var(--border-subtle);padding-bottom:.85rem}.closure-card-heading h2{color:var(--slate-900);margin:.15rem 0 0;font-size:1.05rem}.closure-fields{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.closure-card select,.closure-card input,.closure-card textarea{border:1.5px solid var(--slate-300);border-radius:var(--radius-md);background:#fff;width:100%;padding:.75rem}.closure-card select,.closure-card input{min-height:3.125rem}.closure-card textarea{resize:vertical}.closure-card select:focus,.closure-card input:focus,.closure-card textarea:focus{border-color:var(--slate-900);outline:none;box-shadow:0 0 0 3px #0f172a1f}.tank-summary{flex-wrap:wrap;gap:.5rem;display:flex}.tank-summary span{background:var(--slate-100);border:1px solid var(--slate-200);border-radius:var(--radius-md);color:var(--slate-600);padding:.5rem .7rem;font-size:.8rem}.closure-movements{flex-direction:column;display:flex}.closure-movements>div{border-bottom:1px solid var(--slate-100);justify-content:space-between;align-items:center;gap:1rem;padding:.65rem 0;display:flex}.closure-movements>div:last-child{border-bottom:0}.closure-movements span{color:var(--slate-600);font-size:.875rem}.closure-movements strong{white-space:nowrap;font-size:.875rem}.closure-theoretical{background:var(--slate-900);border-radius:var(--radius-lg);color:#fff;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.closure-theoretical span{color:var(--slate-300);font-size:.875rem}.closure-theoretical strong{font-size:1.2rem}.closure-difference{background:var(--slate-100);border:1px solid var(--slate-200);border-radius:var(--radius-md);justify-content:space-between;align-items:center;padding:.8rem;display:flex}.closure-difference span{color:var(--slate-600)}.closure-difference.has-difference{background:#fff7ed;border-color:#fed7aa}.closure-difference.has-difference strong{color:#9a3412}.closure-warning{background:var(--slate-100);border:1px solid var(--slate-200);border-radius:var(--radius-md);flex-direction:column;gap:.25rem;padding:.85rem;font-size:.825rem;display:flex}.closure-warning span{color:var(--slate-600)}.closure-success{text-align:center;box-shadow:var(--shadow-md);margin-top:2rem}.closure-success>p:not(.success-label){color:var(--slate-600)}.closure-success h1{margin:.25rem 0}@media (width<=520px){.closure-fields{grid-template-columns:1fr}.closure-header{flex-direction:column}.closure-header .button-secondary{align-self:flex-start}}
