@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg:#f4f1ea;--bg-card:#fbf9f4;--ink:#1a1916;--ink-soft:#4a4742;--ink-mute:#8a8278;--rule:#ddd7cc;--rule-soft:#e8e2d6;--accent:#b8412c;--accent-soft:#c76847;--warn:#c49a2a;--ok:#5c7a4f;--serif:"Inter", -apple-system, sans-serif;--sans:"Inter", -apple-system, sans-serif;--mono:"JetBrains Mono", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--sans);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-feature-settings:"cv01", "cv02", "cv03";font-size:14px;line-height:1.5}#root{min-height:100vh;overflow-x:hidden}html{overflow-x:hidden}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-soft{0%,to{box-shadow:0 0 0 4px #b8412c1f}50%{box-shadow:0 0 0 6px #b8412c2e}}.sidebar{background:var(--bg);border-right:1px solid var(--rule);flex-direction:column;height:100vh;padding:28px 20px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-desktop{display:flex}.mobile-menu-btn{z-index:900;background:var(--bg-card);border:1px solid var(--rule);cursor:pointer;color:var(--ink);border-radius:8px;padding:10px;transition:all .15s;display:none;position:fixed;top:16px;left:16px;box-shadow:0 2px 8px #1a191614}.mobile-menu-btn:hover{background:var(--rule-soft)}.mobile-close-btn{color:var(--ink-mute);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:6px;transition:all .15s;position:absolute;top:20px;right:16px}.mobile-close-btn:hover{color:var(--ink);background:var(--rule-soft)}.sidebar-overlay{display:none}.brand{align-items:center;gap:10px;margin-bottom:48px;padding-left:4px;display:flex}.brand-logo{object-fit:contain;width:32px;height:32px}.brand-text{align-items:baseline;gap:6px;display:flex}.brand-mark{font-family:var(--sans);letter-spacing:-.03em;font-size:20px;font-weight:600}.brand-accent{color:var(--accent);font-weight:500}.brand-tag{font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--ink-mute);padding-bottom:3px;font-size:9px}.nav-section{margin-bottom:28px}.nav-label{font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--ink-mute);padding:0 12px 10px;font-size:10px;display:block}.nav-item{color:var(--ink-soft);letter-spacing:-.005em;border-radius:6px;align-items:center;gap:12px;margin-bottom:1px;padding:8px 12px;font-size:13.5px;font-weight:400;text-decoration:none;transition:all .15s;display:flex;position:relative}.nav-item:hover{color:var(--ink);background:var(--rule-soft)}.nav-item.active{color:var(--ink);background:var(--bg-card);box-shadow:inset 0 0 0 1px var(--rule);font-weight:500}.nav-item.active:before{content:"";background:var(--accent);width:2px;height:16px;position:absolute;top:50%;left:-20px;transform:translateY(-50%)}.nav-icon{opacity:.7;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:flex}.nav-badge{font-family:var(--mono);background:var(--accent);color:#fff;border-radius:8px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:500}.sidebar-nav{flex:1}.user-card{border-top:1px solid var(--rule);align-items:center;gap:10px;margin-top:auto;padding:12px;display:flex}.user-avatar{background:linear-gradient(135deg, var(--accent), var(--accent-soft));color:#fff;width:32px;height:32px;font-family:var(--sans);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.user-info{flex:1;min-width:0}.user-name{font-size:12.5px;font-weight:500;line-height:1.2}.user-role{color:var(--ink-mute);margin-top:2px;font-size:10.5px}.logout-btn{color:var(--ink-mute);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:6px;transition:all .15s;display:flex}.logout-btn:hover{color:var(--accent);background:var(--rule-soft)}@media (width<=768px){.sidebar-desktop{display:none}.mobile-menu-btn{display:flex}.sidebar-overlay{z-index:950;background:#1a191680;animation:.2s overlayFadeIn;display:flex;position:fixed;inset:0}.sidebar-mobile{border-right:1px solid var(--rule);width:280px;max-width:85vw;height:100vh;animation:.25s cubic-bezier(.22,1,.36,1) slideIn;position:relative;overflow-y:auto}.sidebar-mobile .nav-item.active:before{left:-20px}}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.kpi-row{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);grid-template-columns:repeat(4,1fr);gap:0;margin-bottom:40px;display:grid}.kpi{border-right:1px solid var(--rule);padding:24px 28px;animation:.5s backwards fadeUp;position:relative}.kpi:last-child{border-right:none}.kpi:first-child{animation-delay:50ms}.kpi:nth-child(2){animation-delay:.1s}.kpi:nth-child(3){animation-delay:.15s}.kpi:nth-child(4){animation-delay:.2s}.kpi-label{font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:12px;font-size:10px}.kpi-value{font-family:var(--serif);letter-spacing:-.03em;margin-bottom:8px;font-size:36px;font-weight:700;line-height:1}.kpi-unit{font-family:var(--sans);color:var(--ink-mute);letter-spacing:0;margin-left:2px;font-size:14px;font-weight:400}.kpi-trend{color:var(--ink-soft);align-items:center;gap:6px;font-size:11.5px;display:flex}.kpi-trend-value{font-family:var(--mono);font-weight:500}.kpi-trend-detail{color:var(--ink-mute)}.kpi-trend.up .kpi-trend-value{color:var(--ok)}.kpi-trend.down .kpi-trend-value{color:var(--accent)}.kpi-trend.warn .kpi-trend-value{color:var(--warn)}@media (width<=1024px){.kpi-row{grid-template-columns:repeat(2,1fr)}.kpi:nth-child(2){border-right:none}.kpi:first-child,.kpi:nth-child(2){border-bottom:1px solid var(--rule)}}@media (width<=640px){.kpi-row{grid-template-columns:repeat(2,1fr);margin-bottom:28px}.kpi{border-bottom:1px solid var(--rule);padding:14px 16px}.kpi:nth-child(odd){border-right:1px solid var(--rule)}.kpi:nth-child(2n){border-right:none}.kpi:nth-child(3),.kpi:nth-child(4){border-bottom:none}.kpi-label{margin-bottom:8px;font-size:9px}.kpi-value{margin-bottom:6px;font-size:28px}.kpi-unit{font-size:12px}.kpi-trend{gap:4px;font-size:10.5px}.kpi-trend-detail{display:none}}@media (width<=374px){.kpi-row{grid-template-columns:1fr}.kpi{border-right:none;border-bottom:1px solid var(--rule);padding:12px 14px}.kpi:last-child{border-bottom:none}.kpi-value{font-size:26px}.kpi-trend-detail{display:inline}}.alerts{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;animation:.5s .25s backwards fadeUp;overflow:hidden}.alert-row{border-bottom:1px solid var(--rule-soft);cursor:pointer;grid-template-columns:16px 1fr auto auto;align-items:center;gap:16px;padding:14px 20px;transition:background .15s;display:grid}.alert-row:last-child{border-bottom:none}.alert-row:hover{background:var(--bg)}.alert-dot{border-radius:50%;width:8px;height:8px;margin:0 4px}.alert-dot.critical{background:var(--accent);animation:2.4s ease-in-out infinite pulse-soft;box-shadow:0 0 0 4px #b8412c1f}.alert-dot.warning{background:var(--warn);box-shadow:0 0 0 4px #c49a2a1f}.alert-dot.info{background:var(--ink-mute)}.alert-content{min-width:0}.alert-title{letter-spacing:-.005em;margin-bottom:2px;font-size:13.5px;font-weight:500}.alert-meta{color:var(--ink-mute);gap:10px;font-size:12px;display:flex}.alert-vehicle{font-family:var(--mono);color:var(--ink-soft)}.alert-due{font-family:var(--mono);text-align:right;color:var(--ink-soft);font-size:11.5px;font-weight:500}.alert-due.overdue{color:var(--accent)}.alert-arrow{color:var(--ink-mute);align-items:center;transition:transform .15s;display:flex}.alert-row:hover .alert-arrow{color:var(--ink);transform:translate(2px)}@media (width<=768px){.alert-row{grid-template-columns:16px 1fr auto;gap:10px;padding:12px 14px}.alert-arrow{display:none}.alert-title{font-size:13px}.alert-meta{font-size:11px}}@media (width<=480px){.alert-row{grid-template-columns:8px 1fr;gap:8px;padding:10px 12px}.alert-title{font-size:12.5px}.alert-meta{flex-direction:column;gap:2px;font-size:10.5px}.alert-due{text-align:left;grid-column:2;margin-top:4px;font-size:10px}}.compliance{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;padding:24px;animation:.5s .3s backwards fadeUp}.gauge{border-bottom:1px solid var(--rule-soft);align-items:center;gap:20px;margin-bottom:24px;padding-bottom:20px;display:flex}.gauge-circle{flex-shrink:0;width:88px;height:88px;position:relative}.gauge-svg{transform:rotate(-90deg)}.gauge-bg{stroke:var(--rule);fill:none;stroke-width:6px}.gauge-fill{stroke:var(--accent);fill:none;stroke-width:6px;stroke-linecap:round;transition:stroke-dasharray .6s}.gauge-text{font-family:var(--serif);letter-spacing:-.02em;justify-content:center;align-items:center;font-size:24px;font-weight:700;display:flex;position:absolute;inset:0}.gauge-text sup{color:var(--ink-mute);vertical-align:super;margin-left:1px;font-size:13px}.gauge-info{flex:1}.gauge-label{font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:6px;font-size:10px}.gauge-title{font-family:var(--serif);letter-spacing:-.01em;margin-bottom:4px;font-size:16px;font-weight:600;line-height:1.3}.gauge-title em{color:var(--accent);font-style:italic}.gauge-detail{color:var(--ink-soft);font-size:12px}.compliance-list{list-style:none}.compliance-item{border-bottom:1px dashed var(--rule-soft);justify-content:space-between;align-items:center;padding:9px 0;font-size:13px;display:flex}.compliance-item:last-child{border-bottom:none}.compliance-label{color:var(--ink-soft);align-items:center;gap:10px;display:flex}.compliance-status{font-family:var(--mono);font-size:11px;font-weight:500}.compliance-status.status-ok{color:var(--ok)}.compliance-status.status-warn{color:var(--warn)}.compliance-status.status-crit{color:var(--accent)}.status-dot{border-radius:50%;width:6px;height:6px;display:inline-block}.status-dot.ok{background:var(--ok)}.status-dot.warn{background:var(--warn)}.status-dot.crit{background:var(--accent)}@media (width<=768px){.compliance{padding:18px}.gauge{flex-direction:column;align-items:flex-start;gap:14px}.gauge-circle,.gauge-svg{width:72px;height:72px}.gauge-text{font-size:22px}.gauge-title{font-size:16px}.gauge-detail{font-size:11.5px}.compliance-item{padding:8px 0;font-size:12.5px}}@media (width<=480px){.compliance{padding:14px}.gauge{gap:12px;margin-bottom:16px;padding-bottom:14px}.gauge-circle,.gauge-svg{width:64px;height:64px}.gauge-text{font-size:20px}.gauge-title{font-size:15px}}.fleet-section{margin-bottom:40px}.table-wrap{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;animation:.5s .35s backwards fadeUp;overflow:hidden}.fleet-table{border-collapse:collapse;width:100%;font-size:13px}.fleet-table thead tr{background:var(--bg);border-bottom:1px solid var(--rule)}.fleet-table th{text-align:left;font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--ink-mute);padding:12px 18px;font-size:10px;font-weight:500}.fleet-table th.num{text-align:right}.fleet-table td{border-bottom:1px solid var(--rule-soft);vertical-align:middle;padding:14px 18px}.fleet-table tr:last-child td{border-bottom:none}.fleet-table tbody tr{transition:background .15s}.fleet-table tbody tr:hover{background:var(--bg)}.fleet-row-clickable{cursor:pointer}.vehicle-cell{align-items:center;gap:12px;display:flex}.vehicle-id{font-family:var(--mono);color:var(--ink-mute);background:var(--bg);border:1px solid var(--rule);letter-spacing:.02em;border-radius:4px;padding:3px 7px;font-size:11px;font-weight:500}.vehicle-name{font-family:var(--serif);letter-spacing:-.01em;font-size:14px;font-weight:500}.vehicle-sub{color:var(--ink-mute);margin-top:1px;font-size:11.5px}.km{font-family:var(--mono);text-align:right;font-weight:500}.km.muted{color:var(--ink-mute)}.driver{align-items:center;gap:8px;display:flex}.driver-dot{background:var(--rule);width:22px;height:22px;color:var(--ink-soft);font-size:10px;font-weight:600;font-family:var(--sans);border-radius:50%;justify-content:center;align-items:center;display:flex}.driver-dot.empty{background:var(--bg);border:1px dashed var(--rule)}.driver-none{color:var(--ink-mute)}.status-tag{font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;background:var(--bg);border:1px solid var(--rule);border-radius:4px;align-items:center;gap:6px;padding:4px 9px;font-size:10.5px;font-weight:500;display:inline-flex}.status-tag.ok{color:var(--ok)}.status-tag.warn{color:var(--warn);background:#c49a2a0d;border-color:#c49a2a4d}.status-tag.crit{color:var(--accent);background:#b8412c0a;border-color:#b8412c4d}.status-tag.maint{color:var(--ink-mute)}.status-tag-dot{border-radius:50%;width:5px;height:5px}.status-tag-dot.ok{background:var(--ok)}.status-tag-dot.warn{background:var(--warn)}.status-tag-dot.crit{background:var(--accent)}.status-tag-dot.maint{background:var(--ink-mute)}.next-service{color:var(--ink-soft);font-size:12px}.next-service-km{font-family:var(--mono);color:var(--ink);font-weight:500}.next-service-km.critical{color:var(--accent)}.fleet-mobile{display:none}@media (width<=1024px){.table-wrap{overflow-x:auto}.fleet-table{min-width:700px}}@media (width<=768px){.fleet-desktop{display:none}.fleet-mobile{flex-direction:column;gap:12px;animation:.5s .35s backwards fadeUp;display:flex}.fleet-card{background:var(--bg-card);border:1px solid var(--rule);cursor:pointer;border-radius:10px;padding:16px;transition:background .15s,box-shadow .15s}.fleet-card:active{background:var(--bg);box-shadow:0 0 0 2px var(--rule)}.fleet-card-top{margin-bottom:12px}.fleet-card-identity{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.fleet-card-name{font-family:var(--serif);letter-spacing:-.01em;margin-bottom:2px;font-size:15px;font-weight:600}.fleet-card-sub{color:var(--ink-mute);font-size:12px}.fleet-card-details{border-top:1px solid var(--rule-soft);grid-template-columns:1fr 1fr;gap:10px;padding-top:12px;display:grid}.fleet-card-detail{flex-direction:column;gap:2px;display:flex}.fleet-card-detail:nth-child(2),.fleet-card-detail:nth-child(3){grid-column:1/-1}.fleet-card-detail-label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);font-size:9.5px}.fleet-card-detail-value{font-size:13px;font-weight:500}.fleet-card-detail-value.critical{color:var(--accent)}.fleet-card-due{font-family:var(--mono);color:var(--ink-soft);font-size:11px;font-weight:500}}@media (width<=480px){.fleet-card{padding:14px}.fleet-card-name{font-size:15px}.vehicle-id{padding:2px 5px;font-size:10px}}.bottom-row{grid-template-columns:1fr 1fr 1fr;gap:24px;display:grid}.mini-card{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;padding:22px;animation:.5s backwards fadeUp}.mini-card:first-child{animation-delay:.4s}.mini-card:nth-child(2){animation-delay:.45s}.mini-card:nth-child(3){animation-delay:.5s}.mini-label{font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:14px;font-size:10px}.mini-title{font-family:var(--serif);letter-spacing:-.02em;margin-bottom:8px;font-size:20px;font-weight:600;line-height:1.2}.mini-desc{color:var(--ink-soft);margin-bottom:16px;font-size:12.5px;line-height:1.5}.spark-bars{align-items:flex-end;gap:3px;height:36px;margin-bottom:14px;display:flex}.spark-bar{background:var(--rule);border-radius:1px;flex:1;transition:background .2s}.spark-bar.active{background:var(--ink)}.spark-bar.accent{background:var(--accent)}.mini-foot{font-family:var(--mono);color:var(--ink-mute);border-top:1px solid var(--rule-soft);justify-content:space-between;align-items:center;padding-top:12px;font-size:11px;display:flex}.mini-foot strong{color:var(--ink);font-weight:500}.cost-highlight{align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.cost-value{font-family:var(--serif);letter-spacing:-.02em;font-size:28px;font-weight:700}.cost-unit{color:var(--ink-mute);font-size:13px;font-family:var(--sans)}.cost-delta{font-family:var(--mono);color:var(--accent);font-size:11px}.ocr-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;display:grid}.ocr-label{font-family:var(--mono);color:var(--ink-mute);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px;font-size:10px}.ocr-value{font-family:var(--serif);letter-spacing:-.02em;font-size:22px;font-weight:700}@media (width<=1024px){.bottom-row{grid-template-columns:1fr 1fr}}@media (width<=768px){.bottom-row{grid-template-columns:1fr;gap:16px}.mini-card{padding:18px}.cost-value{font-size:24px}.ocr-value{font-size:20px}}@media (width<=480px){.mini-card{padding:14px}.mini-label{margin-bottom:10px;font-size:9px}.mini-title{margin-bottom:6px;font-size:17px}.mini-desc{margin-bottom:12px;font-size:12px}.cost-value{font-size:22px}.cost-unit{font-size:11px}.ocr-value{font-size:18px}.mini-foot{padding-top:10px;font-size:10px}}.main-content{max-width:1400px;padding:32px 40px 60px}.page-header{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:flex-end;margin-bottom:32px;padding-bottom:24px;display:flex}.page-meta{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:8px;font-size:10px}.page-title{font-family:var(--serif);letter-spacing:-.025em;font-size:32px;font-weight:600;line-height:1.1}.page-title em{color:var(--accent);font-style:italic}.page-actions{align-items:center;gap:8px;display:flex}.search-box{background:var(--bg-card);border:1px solid var(--rule);border-radius:6px;align-items:center;gap:8px;width:220px;padding:7px 12px;transition:border-color .15s;display:flex}.search-box:focus-within{border-color:var(--ink-mute)}.search-icon{color:var(--ink-mute);flex-shrink:0}.search-box input{color:var(--ink);background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:13px}.search-box input::placeholder{color:var(--ink-mute)}.btn{font-family:var(--sans);border:1px solid var(--rule);background:var(--bg-card);color:var(--ink);cursor:pointer;letter-spacing:-.005em;border-radius:6px;padding:7px 14px;font-size:13px;font-weight:500;transition:all .15s}.btn:hover{background:var(--rule-soft)}.btn-primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn-primary:hover{background:var(--accent);border-color:var(--accent)}.content-grid{grid-template-columns:1.5fr 1fr;gap:32px;margin-bottom:40px;display:grid}.section-header{justify-content:space-between;align-items:baseline;margin-bottom:18px;display:flex}.section-title{font-family:var(--serif);letter-spacing:-.01em;font-size:18px;font-weight:600}.section-link{font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--ink-mute);font-size:10px;text-decoration:none;transition:color .15s}.section-link:hover{color:var(--accent)}.footnote{border-top:1px solid var(--rule);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);justify-content:space-between;margin-top:60px;padding-top:24px;font-size:10px;display:flex}@media (width<=1024px){.main-content{padding:24px 20px 40px}.page-header{flex-direction:column;align-items:flex-start;gap:16px}.content-grid{grid-template-columns:1fr}}@media (width<=768px){.main-content{padding:64px 16px 40px}.page-title{font-size:30px}.page-actions{flex-wrap:wrap;width:100%}.search-box{order:3;width:100%}.hide-mobile{display:none}.content-grid{gap:24px}.section-title{font-size:18px}.footnote{flex-direction:column;gap:4px;margin-top:32px}}@media (width<=480px){.main-content{padding:60px 12px 32px}.page-title{font-size:24px}.page-header{margin-bottom:20px;padding-bottom:16px}.btn{padding:9px 14px;font-size:13px}}.vehicles-loading{text-align:center;color:var(--ink-mute);padding:60px 20px;font-size:14px}.vehicles-empty{text-align:center;color:var(--ink-mute);padding:80px 20px}.vehicles-empty svg{opacity:.4;margin-bottom:16px}.vehicles-empty h3{font-family:var(--serif);color:var(--ink);margin-bottom:8px;font-size:18px;font-weight:600}.vehicles-empty p{margin-bottom:20px;font-size:13px}.vehicle-cell-link{color:inherit;text-decoration:none}.vehicle-cell-link:hover .vehicle-name{color:var(--accent)}.registration-tag{font-family:var(--mono);background:var(--bg);border:1px solid var(--rule);letter-spacing:.02em;border-radius:4px;padding:3px 8px;font-size:12px;font-weight:500}.page-actions .btn-primary{align-items:center;gap:6px;text-decoration:none;display:inline-flex}.file-upload{flex-direction:column;gap:8px;display:flex}.file-upload-label{color:#374151;font-size:.85rem;font-weight:500}.file-upload-zone{cursor:pointer;background:#f9fafb;border:2px dashed #d1d5db;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px 16px;transition:border-color .2s,background .2s;display:flex;position:relative}.file-upload-zone:hover{background:#eff6ff;border-color:#0073e6}.file-upload-zone.dragging{background:#dbeafe;border-color:#0073e6}.file-upload-zone.uploading{pointer-events:none;opacity:.7}.file-upload-zone input[type=file]{opacity:0;cursor:pointer;position:absolute;inset:0}.file-upload-icon{color:#9ca3af}.file-upload-text{color:#6b7280;text-align:center;font-size:.82rem}.file-upload-text strong{color:#0073e6}.file-upload-spinner{color:#6b7280;align-items:center;gap:8px;font-size:.82rem;display:flex}.file-upload-spinner:before{content:"";border:2px solid #d1d5db;border-top-color:#0073e6;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite file-spin}@keyframes file-spin{to{transform:rotate(360deg)}}.file-upload-preview{background:#fff;border:1px solid #e5e7eb;border-radius:10px;align-items:center;gap:12px;padding:12px;display:flex}.file-upload-preview img{object-fit:cover;border:1px solid #e5e7eb;border-radius:6px;width:48px;height:48px}.file-upload-preview-icon{color:#dc2626;background:#fee2e2;border-radius:6px;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.file-upload-preview-info{flex:1;min-width:0}.file-upload-preview-name{color:#1f2937;white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:500;overflow:hidden}.file-upload-preview-link{color:#0073e6;font-size:.75rem;text-decoration:none}.file-upload-preview-link:hover{text-decoration:underline}.file-upload-remove{color:#dc2626;cursor:pointer;background:#fee2e2;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:background .15s;display:flex}.file-upload-remove:hover{background:#fca5a5}.file-upload-error{color:#dc2626;font-size:.78rem}.back-btn{color:var(--ink-mute);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin-bottom:12px;padding:0;font-size:13px;transition:color .15s;display:inline-flex}.back-btn:hover{color:var(--ink)}.vehicle-form{max-width:800px}.form-error{color:var(--accent);background:#b8412c14;border:1px solid #b8412c33;border-radius:6px;margin-bottom:24px;padding:10px 14px;font-size:12.5px}.form-section{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;margin-bottom:24px;padding:24px}.form-section-title{font-family:var(--serif);border-bottom:1px solid var(--rule-soft);margin-bottom:20px;padding-bottom:12px;font-size:15px;font-weight:600}.form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-field{flex-direction:column;display:flex}.form-field.full-width{grid-column:1/-1}.form-field label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:6px;font-size:10px}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--rule);background:var(--bg);font-family:var(--sans);color:var(--ink);border-radius:6px;padding:9px 12px;font-size:14px;transition:border-color .15s}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--ink-mute);outline:none}.form-field textarea{resize:vertical;min-height:80px}.form-actions{justify-content:flex-end;gap:12px;padding-top:8px;display:flex}@media (width<=768px){.form-section{padding:18px}.form-field input,.form-field select,.form-field textarea{min-height:44px;padding:11px 12px;font-size:16px}.form-actions{flex-direction:column-reverse}.form-actions .btn{text-align:center;width:100%;padding:12px}}@media (width<=640px){.form-grid{grid-template-columns:1fr}}.page-title-id{font-family:var(--mono);color:var(--ink-mute);margin-left:12px;font-size:14px;font-weight:400}.detail-grid{grid-template-columns:1fr 320px;gap:24px;display:grid}.detail-main,.detail-sidebar{flex-direction:column;gap:24px;display:flex}.detail-card{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;padding:24px}.detail-card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.detail-card-title{font-family:var(--serif);margin-bottom:16px;font-size:15px;font-weight:600}.detail-card-header .detail-card-title{margin-bottom:0}.detail-info-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.detail-info{align-items:flex-start;gap:10px;display:flex}.detail-info svg{color:var(--ink-mute);flex-shrink:0;margin-top:2px}.detail-label{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:2px;font-size:10px;display:block}.detail-value{font-size:14px;font-weight:500;display:block}.detail-notes{border-top:1px solid var(--rule-soft);margin-top:20px;padding-top:16px}.detail-notes p{color:var(--ink-soft);margin-top:4px;font-size:13px}.detail-status{justify-content:center;padding:8px 0;display:flex}.detail-empty{color:var(--ink-mute);text-align:center;padding:12px 0;font-size:13px}.interventions-list{flex-direction:column;display:flex}.intervention-row{border-bottom:1px solid var(--rule-soft);align-items:center;gap:16px;padding:12px 0;display:flex}.intervention-row:last-child{border-bottom:none}.intervention-date{font-family:var(--mono);color:var(--ink-mute);min-width:80px;font-size:11px}.intervention-details{flex:1}.intervention-op{font-size:13.5px;font-weight:500}.intervention-meta{color:var(--ink-mute);margin-top:2px;font-size:12px}.intervention-cost{font-family:var(--mono);color:var(--ink-soft);font-size:12px;font-weight:500}.deadlines-list{list-style:none}.deadline-item{border-bottom:1px dashed var(--rule-soft);justify-content:space-between;align-items:center;padding:8px 0;font-size:13px;display:flex}.deadline-item:last-child{border-bottom:none}.deadline-info{color:var(--ink-soft);align-items:center;gap:8px;display:flex}.deadline-days{font-family:var(--mono);font-size:11px;font-weight:500}.deadline-days.ok{color:var(--ok)}.deadline-days.info{color:var(--ink-soft)}.deadline-days.warn{color:var(--warn)}.deadline-days.crit{color:var(--accent)}@media (width<=1024px){.detail-grid{grid-template-columns:1fr}}@media (width<=768px){.detail-card{padding:18px}.intervention-row{flex-wrap:wrap;gap:8px}.intervention-date{min-width:auto}.intervention-cost{text-align:left;width:100%;padding-top:4px}}@media (width<=640px){.detail-info-grid{grid-template-columns:1fr}}@media (width<=480px){.detail-card{padding:14px}.detail-card-title{font-size:14px}.deadline-item{flex-direction:column;align-items:flex-start;gap:4px}}.maintenance-list{flex-direction:column;gap:12px;display:flex}.maintenance-vehicle-card{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;overflow:hidden}.maintenance-vehicle-header{cursor:pointer;align-items:center;gap:12px;padding:16px 20px;transition:background .15s;display:flex}.maintenance-vehicle-header:hover{background:var(--rule-soft)}.maintenance-vehicle-toggle{color:var(--ink-mute)}.maintenance-vehicle-info{flex:1;align-items:baseline;gap:8px;display:flex}.maintenance-vehicle-name{font-size:14px;font-weight:500}.maintenance-vehicle-id{font-family:var(--mono);color:var(--ink-mute);font-size:11px}.maintenance-vehicle-km{font-family:var(--mono);color:var(--ink-soft);font-size:12px}.maintenance-plan-count{color:var(--ink-mute);text-align:right;min-width:90px;font-size:12px}.maintenance-vehicle-body{border-top:1px solid var(--rule-soft);padding:0 20px 20px}.maintenance-table{border-collapse:collapse;width:100%;margin-top:16px;font-size:13px}.maintenance-table th{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);text-align:left;border-bottom:1px solid var(--rule);padding:8px 10px;font-size:10px}.maintenance-table td{border-bottom:1px solid var(--rule-soft);vertical-align:middle;padding:10px}.plan-operation{font-weight:500}.plan-periodicity{font-family:var(--mono);color:var(--ink-soft);font-size:11px}.plan-periodicity span{margin-right:8px;display:inline-block}.plan-last{color:var(--ink-mute);font-size:12px}.plan-next{font-family:var(--mono);border-radius:4px;padding:2px 8px;font-size:11px;font-weight:500}.plan-next.ok{color:var(--ok);background:#34a85314}.plan-next.info{color:var(--ink-soft);background:var(--rule-soft)}.plan-next.warn{color:var(--warn);background:#ea862414}.plan-next.crit{color:var(--accent);background:#b8412c14}.plan-actions{justify-content:flex-end;gap:8px;display:flex}.plan-action-btn{color:var(--ink-mute);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:12px;transition:all .15s}.plan-action-btn:hover{color:var(--ink);background:var(--rule-soft)}.plan-action-btn.danger:hover{color:var(--accent);background:#b8412c14}.plan-form{background:var(--bg);border:1px solid var(--rule);border-radius:6px;margin-top:20px;padding:20px}.plan-form h4{font-family:var(--serif);margin-bottom:16px;font-size:15px;font-weight:600}.plan-form-grid{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.plan-form-actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.add-plan-btn{align-items:center;gap:6px;margin-top:16px;display:inline-flex}@media (width<=768px){.plan-form-grid{grid-template-columns:1fr 1fr}.maintenance-vehicle-header{flex-wrap:wrap;gap:8px}.maintenance-vehicle-km{display:none}.maintenance-table{font-size:12px}.maintenance-table th,.maintenance-table td{padding:8px}}@media (width<=480px){.plan-form-grid{grid-template-columns:1fr}.maintenance-vehicle-header{padding:12px 14px}.maintenance-vehicle-body{padding:0 14px 14px}}.intervention-form-card{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;margin-bottom:24px;padding:24px}.intervention-form-card h3{font-family:var(--serif);margin-bottom:16px;font-size:15px;font-weight:600}.intervention-form-grid{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.intervention-date-cell{font-family:var(--mono);color:var(--ink-mute);font-size:12px}.intervention-vehicle{align-items:center;gap:8px;display:flex}.intervention-op-cell{font-weight:500}.intervention-garage-cell{color:var(--ink-soft);font-size:13px}@media (width<=768px){.intervention-form-grid{grid-template-columns:1fr 1fr}.intervention-form-card{padding:18px}}@media (width<=480px){.intervention-form-grid{grid-template-columns:1fr}}.table-actions{align-items:center;gap:6px;display:flex}.modal-card-lg{max-width:620px}.tires-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:16px;display:grid}.tire-card{background:var(--bg);border:1px solid var(--rule);border-radius:6px;padding:14px}.tire-card-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.tire-position{font-family:var(--mono);letter-spacing:.05em;font-size:12px;font-weight:600}.tire-status{border-radius:3px;padding:2px 7px;font-size:10px;font-weight:500}.tire-status.ok{color:var(--ok);background:#34a85314}.tire-status.info{color:var(--ink-soft);background:var(--rule-soft)}.tire-status.warn{color:var(--warn);background:#ea862414}.tire-status.crit{color:var(--accent);background:#b8412c14}.tire-info{margin-bottom:10px}.tire-depth{align-items:center;gap:8px;margin-bottom:6px;display:flex}.tire-depth-bar{background:var(--rule);border-radius:3px;flex:1;height:6px;overflow:hidden}.tire-depth-fill{border-radius:3px;height:100%;transition:width .3s}.tire-depth-fill.ok{background:var(--ok)}.tire-depth-fill.info{background:var(--ink-mute)}.tire-depth-fill.warn{background:var(--warn)}.tire-depth-fill.crit{background:var(--accent)}.tire-depth-value{font-family:var(--mono);min-width:40px;font-size:11px;font-weight:500}.tire-meta{color:var(--ink-mute);margin-bottom:2px;font-size:11px}.tire-card-actions{border-top:1px solid var(--rule-soft);gap:6px;padding-top:8px;display:flex}.compliance-score-badge{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:8px 16px;display:flex}.score-value{font-family:var(--mono);font-size:22px;font-weight:600}.score-value.ok{color:var(--ok)}.score-value.warn{color:var(--warn)}.score-value.crit{color:var(--accent)}.score-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);font-size:10px}.deadline-alert-badge{color:var(--accent);background:#b8412c14;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:500}.deadlines-table-wrap{margin-top:16px;overflow-x:auto}@media (width<=768px){.compliance-score-badge{padding:6px 12px}.score-value{font-size:18px}}.alerts-summary{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;display:grid}.alerts-summary-card{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;align-items:center;gap:14px;padding:18px 20px;display:flex}.alerts-summary-card.crit{border-left:3px solid var(--accent)}.alerts-summary-card.crit svg{color:var(--accent)}.alerts-summary-card.warn{border-left:3px solid var(--warn)}.alerts-summary-card.warn svg{color:var(--warn)}.alerts-summary-card.info{border-left:3px solid var(--ink-mute)}.alerts-summary-card.info svg{color:var(--ink-mute)}.alerts-summary-count{font-size:24px;font-weight:600;font-family:var(--mono);line-height:1;display:block}.alerts-summary-label{color:var(--ink-mute);margin-top:2px;font-size:12px;display:block}.alerts-filters{gap:10px;margin-bottom:20px;display:flex}.alerts-list{flex-direction:column;gap:8px;display:flex}.alert-row-link{color:inherit;text-decoration:none}.alert-row{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;align-items:center;gap:14px;padding:14px 18px;transition:all .15s;display:flex}.alert-row:hover{border-color:var(--ink-mute);transform:translate(2px)}.alert-row.critical{border-left:3px solid var(--accent)}.alert-row.warning{border-left:3px solid var(--warn)}.alert-row.info{border-left:3px solid var(--ink-mute)}.alert-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.alert-icon.critical{color:var(--accent);background:#b8412c1a}.alert-icon.warning{color:var(--warn);background:#ea86241a}.alert-icon.info{background:var(--rule-soft);color:var(--ink-mute)}.alert-content{flex:1}.alert-title{font-size:14px;font-weight:500}.alert-detail{color:var(--ink-mute);margin-top:2px;font-size:12px}.alert-vehicle{align-items:center;gap:8px;display:flex}.alert-vehicle-name{color:var(--ink-soft);font-size:12px}.alert-type-badge{background:var(--rule-soft);color:var(--ink-mute);text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:3px 8px;font-size:10px;font-weight:500}@media (width<=768px){.alerts-summary{grid-template-columns:1fr}.alert-row{flex-wrap:wrap;padding:12px 14px}.alert-vehicle{width:100%;padding-top:8px}.alerts-filters{flex-wrap:wrap}}@media (width<=480px){.alert-row{gap:10px;padding:10px 12px}.alert-icon{width:28px;height:28px}.alert-title{font-size:13px}.alert-detail{font-size:11px}.alerts-summary-card{padding:14px 16px}}.fuel-stats{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}.fuel-stat-card{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;padding:16px 20px}.fuel-stat-label{color:var(--ink-mute);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:12px}.fuel-stat-value{font-family:var(--mono);color:var(--ink);font-size:22px;font-weight:600}.fuel-stat-unit{color:var(--ink-soft);margin-left:4px;font-size:13px;font-weight:400}.fuel-form-card{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;margin-bottom:24px;padding:24px}.fuel-form-card h3{font-family:var(--serif);margin-bottom:16px;font-size:15px;font-weight:600}.fuel-form-grid{grid-template-columns:1fr 1fr 1fr 1fr;gap:12px;display:grid}.fuel-date-cell{font-family:var(--mono);color:var(--ink-mute);font-size:12px}.fuel-vehicle-cell{font-weight:500}.fuel-station-cell{color:var(--ink-soft);font-size:13px}.fuel-liters-cell{font-family:var(--mono)}@media (width<=1024px){.fuel-stats{grid-template-columns:repeat(2,1fr)}.fuel-form-grid{grid-template-columns:1fr 1fr 1fr}}@media (width<=768px){.fuel-form-grid{grid-template-columns:1fr 1fr}}@media (width<=480px){.fuel-stats,.fuel-form-grid{grid-template-columns:1fr}}.driver-card-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.driver-card{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;padding:20px;transition:border-color .15s,box-shadow .15s}.driver-card:hover{border-color:var(--accent);box-shadow:0 2px 8px #0000000a}.driver-card-header{align-items:center;gap:12px;margin-bottom:14px;display:flex}.driver-avatar{background:var(--accent-soft);width:40px;height:40px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:600;display:flex}.driver-card-name{color:var(--ink);font-size:15px;font-weight:600}.driver-card-role{color:var(--ink-mute);text-transform:capitalize;font-size:12px}.driver-card-details{grid-template-columns:1fr 1fr;gap:8px;display:grid}.driver-detail-item{flex-direction:column;gap:2px;display:flex}.driver-detail-label{color:var(--ink-mute);text-transform:uppercase;letter-spacing:.3px;font-size:11px}.driver-detail-value{color:var(--ink);font-size:13px}.driver-detail-value.warn{color:var(--color-warn);font-weight:500}.driver-detail-value.crit{color:var(--color-crit);font-weight:500}.driver-vehicle-badge{background:var(--bg-hover);font-size:12px;font-family:var(--mono);border-radius:4px;align-items:center;gap:4px;margin-top:12px;padding:4px 8px;display:inline-flex}.driver-vehicle-badge svg{color:var(--ink-mute)}@media (width<=768px){.driver-card-grid{grid-template-columns:1fr}}.stock-summary{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;display:grid}.stock-summary-card{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;padding:16px 20px}.stock-summary-label{color:var(--ink-mute);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:12px}.stock-summary-value{font-family:var(--mono);color:var(--ink);font-size:22px;font-weight:600}.stock-summary-value.crit{color:var(--color-crit)}.stock-form-card{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;margin-bottom:24px;padding:24px}.stock-form-card h3{font-family:var(--serif);margin-bottom:16px;font-size:15px;font-weight:600}.stock-form-grid{grid-template-columns:1fr 1fr 1fr 1fr;gap:12px;display:grid}.stock-qty-cell{font-family:var(--mono);font-weight:600}.stock-qty-cell.low{color:var(--color-crit)}.stock-ref-cell{font-family:var(--mono);color:var(--ink-mute);font-size:12px}.stock-category-badge{background:var(--bg-hover);color:var(--ink-soft);text-transform:capitalize;border-radius:4px;padding:2px 8px;font-size:11px;display:inline-block}.stock-actions-cell{gap:8px;display:flex}.stock-action-btn{border:1px solid var(--rule);cursor:pointer;color:var(--ink-soft);background:0 0;border-radius:4px;padding:4px 10px;font-size:12px;transition:all .15s}.stock-action-btn:hover{background:var(--bg-hover);color:var(--ink)}.stock-action-btn.danger:hover{color:var(--color-crit);border-color:var(--color-crit)}@media (width<=1024px){.stock-form-grid{grid-template-columns:1fr 1fr 1fr}}@media (width<=768px){.stock-summary{grid-template-columns:1fr}.stock-form-grid{grid-template-columns:1fr 1fr}}@media (width<=480px){.stock-form-grid{grid-template-columns:1fr}}.user-email{font-family:var(--mono);color:var(--ink-soft);font-size:12px}.user-date{font-family:var(--mono);color:var(--ink-mute);font-size:12px}.role-select{padding:5px 10px;font-size:12px}.result-count{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);font-size:10px}.modal-overlay{z-index:1000;background:#1a191666;justify-content:center;align-items:center;padding:24px;animation:.2s fadeUp;display:flex;position:fixed;inset:0}.modal-card{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;width:100%;max-width:520px;max-height:90vh;padding:28px;overflow-y:auto;box-shadow:0 20px 40px #1a191626}.modal-card-edit{max-width:580px}.modal-card .form-section-title,.modal-card .form-grid{margin-bottom:20px}.modal-card .password-hint{color:var(--ink-mute);margin-top:4px;font-size:11px}.invite-success{color:var(--ok);background:#5c7a4f14;border:1px solid #5c7a4f33;border-radius:6px;padding:12px 16px;font-size:13px}.form-actions-edit{justify-content:space-between;align-items:center;gap:12px;display:flex}.form-actions-right{align-items:center;gap:8px;display:flex}.btn-danger{color:#fff;background:#c0392b;border-color:#c0392b}.btn-danger:hover{background:#a93226;border-color:#a93226}.btn-danger-outline{color:#c0392b;background:0 0;border-color:#c0392b}.btn-danger-outline:hover{background:#c0392b0f}.delete-confirm{text-align:center;padding:12px 0}.delete-confirm p{margin-bottom:8px;font-size:14px}.delete-confirm-sub{color:var(--ink-mute);margin-bottom:20px;font-size:12px}.delete-confirm .form-actions{justify-content:center}.btn-icon{border:1px solid var(--rule);cursor:pointer;color:var(--ink-soft);background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:6px;transition:all .15s;display:inline-flex}.btn-icon:hover{background:var(--bg-card);color:var(--ink);border-color:var(--ink-mute)}@media (width<=768px){.modal-overlay{align-items:flex-end;padding:0}.modal-card{border-radius:16px 16px 0 0;max-width:100%;max-height:85vh;padding:24px 20px 32px;overflow-y:auto}.modal-card .form-field input,.modal-card .form-field select{min-height:44px;padding:11px 12px;font-size:16px}.modal-card .form-actions{flex-direction:column-reverse;gap:10px}.modal-card .form-actions .btn{text-align:center;width:100%;padding:12px}.form-actions-edit{flex-direction:column;gap:12px}.form-actions-right{flex-direction:column-reverse;width:100%}.form-actions-edit .btn-danger-outline,.form-actions-right .btn{text-align:center;width:100%;padding:12px}}@media (width<=640px){.modal-card{padding:20px 16px 28px}.modal-card .form-grid{grid-template-columns:1fr}}.driver-home-header{justify-content:space-between;align-items:flex-start;margin-bottom:28px;display:flex}.driver-greeting{color:var(--ink-mute);font-size:14px}.driver-name{font-family:var(--serif);margin-top:2px;font-size:24px;font-weight:600}.driver-logout{color:var(--ink-mute);cursor:pointer;background:0 0;border:none;padding:8px}.driver-vehicle-card{background:var(--bg-card);border:1px solid var(--rule);border-radius:12px;margin-bottom:24px;padding:20px}.driver-vehicle-top{align-items:center;gap:12px;margin-bottom:12px;display:flex}.driver-vehicle-top svg{color:var(--ink-mute)}.driver-vehicle-name{font-size:16px;font-weight:500}.driver-vehicle-sub{font-family:var(--mono);color:var(--ink-mute);margin-top:2px;font-size:12px}.driver-vehicle-km{background:var(--bg);font-family:var(--mono);color:var(--ink-soft);border-radius:8px;align-items:center;gap:8px;padding:10px 14px;font-size:16px;font-weight:600;display:flex}.driver-vehicle-km svg{color:var(--ink-mute)}.driver-no-vehicle{text-align:center;background:var(--bg-card);border:1px dashed var(--rule);color:var(--ink-mute);border-radius:12px;margin-bottom:24px;padding:40px 20px}.driver-no-vehicle p{margin-top:12px;font-size:14px}.driver-actions{flex-direction:column;gap:12px;margin-bottom:32px;display:flex}.driver-action-card{border:1px solid var(--rule);background:var(--bg-card);cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:16px;padding:20px;transition:all .15s;display:flex}.driver-action-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000000f}.driver-action-card.primary{border-color:#34a8534d}.driver-action-card.primary svg{color:var(--ok)}.driver-action-card.danger{border-color:#ea86244d}.driver-action-card.danger svg{color:var(--warn)}.driver-action-title{font-size:16px;font-weight:500;display:block}.driver-action-sub{color:var(--ink-mute);margin-top:2px;font-size:12px;display:block}.driver-history{margin-top:8px}.driver-history h3{font-family:var(--serif);margin-bottom:12px;font-size:15px;font-weight:600}.driver-history-list{flex-direction:column;gap:8px;display:flex}.driver-history-item{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;align-items:center;gap:12px;padding:12px;display:flex}.driver-history-date{color:var(--ink-mute);min-width:50px;font-size:12px}.driver-history-km{font-family:var(--mono);flex:1;font-size:14px;font-weight:500}.driver-history-method{text-transform:uppercase;letter-spacing:.05em;border-radius:3px;padding:2px 7px;font-size:10px;font-weight:500}.driver-history-method.ocr{color:var(--ok);background:#34a85314}.driver-history-method.manual{background:var(--rule-soft);color:var(--ink-mute)}.driver-page{background:var(--bg);max-width:480px;min-height:100vh;margin:0 auto;padding:20px}.driver-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.driver-header h1{font-family:var(--sans);font-size:20px;font-weight:600}.driver-nav-btn{border:1px solid var(--rule);cursor:pointer;color:var(--ink-soft);background:0 0;border-radius:6px;padding:6px 14px;font-size:13px;transition:all .15s}.driver-nav-btn:hover{border-color:var(--ink-mute);color:var(--ink)}.capture-instructions{text-align:center;margin-bottom:20px}.capture-instructions p{color:var(--ink-soft);font-size:14px}.capture-options{flex-direction:column;gap:12px;display:flex}.capture-option-btn{background:var(--bg-card);border:1px solid var(--rule);cursor:pointer;color:var(--ink);border-radius:10px;align-items:center;gap:14px;padding:20px;font-size:15px;font-weight:500;transition:all .15s;display:flex}.capture-option-btn:hover{border-color:var(--ink-mute);transform:translateY(-1px)}.capture-option-btn svg{color:var(--ink-mute)}.capture-option-btn.secondary{background:0 0;border-style:dashed}.camera-view{background:#000;border-radius:12px;position:relative;overflow:hidden}.camera-video{width:100%;display:block}.camera-overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.camera-reticle{border:2px solid #fff9;border-radius:8px;width:70%;height:40%}.capture-btn{border:3px solid var(--rule);cursor:pointer;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;transition:all .15s;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}.capture-btn:hover{transform:translate(-50%)scale(1.05)}.capture-btn:active{transform:translate(-50%)scale(.95)}.processing-section{text-align:center;padding:60px 20px}.processing-spinner{border:3px solid var(--rule);border-top-color:var(--ink);border-radius:50%;width:40px;height:40px;margin:0 auto 20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.processing-section p{margin-bottom:4px;font-size:15px;font-weight:500}.processing-sub{color:var(--ink-mute);font-size:12px}.confirm-section{flex-direction:column;gap:16px;display:flex}.captured-preview{border:1px solid var(--rule);border-radius:10px;width:100%}.ocr-result{text-align:center;background:var(--bg-card);border:1px solid var(--rule);border-radius:10px;padding:20px}.ocr-label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-mute);margin-bottom:6px;font-size:12px}.ocr-value{font-family:var(--mono);font-size:32px;font-weight:600}.ocr-confidence{color:var(--ink-mute);margin-top:4px;font-size:12px}.confirm-field{flex-direction:column;gap:6px;display:flex}.confirm-field label{color:var(--ink-soft);font-size:13px;font-weight:500}.confirm-input{border:1px solid var(--rule);font-size:20px;font-family:var(--mono);text-align:center;background:var(--bg-card);color:var(--ink);border-radius:8px;padding:12px 16px;font-weight:600}.confirm-input:focus{border-color:var(--ink-mute);outline:none}.coherence-badge{text-align:center;border-radius:8px;padding:10px 14px;font-size:13px}.coherence-badge.ok{color:var(--ok);background:#34a85314;border:1px solid #34a85333}.coherence-badge.warn{color:var(--warn);background:#ea862414;border:1px solid #ea862433}.driver-error{color:var(--accent);text-align:center;background:#b8412c14;border:1px solid #b8412c33;border-radius:8px;padding:10px 14px;font-size:13px}.confirm-actions{gap:12px;margin-top:8px;display:flex}.confirm-actions .btn{flex:1;justify-content:center;align-items:center;gap:6px;display:flex}.success-section{text-align:center;padding:60px 20px}.success-icon{width:80px;height:80px;color:var(--ok);background:#34a8531a;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 20px;display:flex}.success-section h2{font-family:var(--serif);margin-bottom:8px;font-size:20px;font-weight:600}.success-section p{font-family:var(--mono);color:var(--ink-soft);margin-bottom:24px;font-size:18px}.anomaly-form{flex-direction:column;gap:20px;display:flex}.anomaly-categories{flex-wrap:wrap;gap:8px;display:flex}.category-chip{border:1px solid var(--rule);background:var(--bg-card);cursor:pointer;color:var(--ink-soft);border-radius:20px;padding:8px 16px;font-size:13px;transition:all .15s}.category-chip:hover{border-color:var(--ink-mute)}.category-chip.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.anomaly-field{flex-direction:column;gap:6px;display:flex}.anomaly-field label{color:var(--ink-soft);font-size:13px;font-weight:500}.anomaly-field textarea{border:1px solid var(--rule);font-family:var(--sans);resize:vertical;background:var(--bg-card);min-height:100px;color:var(--ink);border-radius:8px;padding:12px;font-size:14px}.anomaly-field textarea:focus{border-color:var(--ink-mute);outline:none}.anomaly-photo-section{flex-direction:column;display:flex}.photo-add-btn{background:var(--bg-card);border:2px dashed var(--rule);cursor:pointer;color:var(--ink-mute);border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:24px;font-size:14px;transition:all .15s;display:flex}.photo-add-btn:hover{border-color:var(--ink-mute);color:var(--ink-soft)}.anomaly-photo-preview{border:1px solid var(--rule);border-radius:10px;position:relative;overflow:hidden}.anomaly-photo-preview img{object-fit:cover;width:100%;max-height:240px;display:block}.remove-photo-btn{color:#fff;cursor:pointer;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:absolute;top:8px;right:8px}.anomaly-submit{padding:14px;font-size:15px}.anomaly-stats{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;display:grid}.anomaly-stat-card{background:var(--bg-card);border:1px solid var(--rule);text-align:center;cursor:pointer;border-radius:8px;padding:16px 20px;transition:border-color .15s,box-shadow .15s}.anomaly-stat-card:hover{border-color:var(--ink-mute)}.anomaly-stat-card.active{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.anomaly-stat-card.stat-warn .anomaly-stat-value{color:var(--warn)}.anomaly-stat-card.stat-maint .anomaly-stat-value{color:var(--maint)}.anomaly-stat-card.stat-ok .anomaly-stat-value{color:var(--ok)}.anomaly-stat-value{font-family:var(--mono);color:var(--ink);font-size:24px;font-weight:600}.anomaly-stat-label{color:var(--ink-mute);text-transform:uppercase;letter-spacing:.5px;margin-top:2px;font-size:12px}.anomaly-list{flex-direction:column;gap:12px;display:flex}.anomaly-card{background:var(--bg-card);border:1px solid var(--rule);border-radius:8px;padding:20px;transition:border-color .15s}.anomaly-card:hover{border-color:var(--ink-mute)}.anomaly-card-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.anomaly-card-left{align-items:center;gap:8px;display:flex}.anomaly-category-tag{text-transform:uppercase;letter-spacing:.3px;color:var(--ink-soft);background:#0000000a;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:500}.anomaly-card-date{font-family:var(--mono);color:var(--ink-mute);font-size:11px}.anomaly-card-desc{color:var(--ink);margin-bottom:12px;font-size:14px;line-height:1.5}.anomaly-card-meta{gap:16px;margin-bottom:12px;display:flex}.anomaly-meta-item{color:var(--ink-soft);font-size:12px}.anomaly-meta-item strong{color:var(--ink)}.anomaly-card-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.anomaly-resolved-note{color:var(--ok);font-size:12px;font-style:italic}.btn-sm{gap:4px;padding:5px 10px;font-size:12px}.btn-outline-blue{color:#2980b9;background:0 0;border-color:#2980b9}.btn-outline-blue:hover{background:#2980b90f}.btn-outline-green{color:var(--ok);border-color:var(--ok);background:0 0}.btn-outline-green:hover{background:#5c7a4f0f}.resolve-summary{margin-bottom:4px;font-size:14px}.resolve-desc{color:var(--ink-soft);font-size:13px;line-height:1.5}.photo-modal{flex-direction:column;align-items:center;gap:16px;max-width:90vw;max-height:90vh;display:flex}.photo-modal img{object-fit:contain;border-radius:8px;max-width:100%;max-height:75vh}.photo-modal-close{background:#ffffffe6}@media (width<=768px){.anomaly-stats{grid-template-columns:repeat(2,1fr)}.anomaly-card-header{flex-direction:column;align-items:flex-start}.anomaly-card-meta{flex-direction:column;gap:4px}}@media (width<=480px){.anomaly-stats{grid-template-columns:1fr 1fr}.anomaly-card-actions{flex-direction:column;align-items:flex-start}}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--bg-card);border:1px solid var(--rule);border-radius:12px;width:100%;max-width:420px;padding:40px;animation:.5s fadeUp}.login-brand{text-align:center;margin-bottom:32px}.login-logo{object-fit:contain;width:56px;height:56px;margin-bottom:12px}.login-title{font-family:var(--sans);letter-spacing:-.03em;margin-bottom:4px;font-size:24px;font-weight:600}.login-title span{color:var(--accent);font-weight:500}.login-subtitle{color:var(--ink-mute);font-size:13px}.login-form h2{font-family:var(--serif);margin-bottom:20px;font-size:20px;font-weight:600}.login-error{color:var(--accent);background:#b8412c14;border:1px solid #b8412c33;border-radius:6px;margin-bottom:16px;padding:10px 14px;font-size:12.5px}.login-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.login-field{margin-bottom:16px}.login-field label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:6px;font-size:10px;display:block}.login-field input,.login-field select{border:1px solid var(--rule);background:var(--bg);width:100%;font-family:var(--sans);color:var(--ink);border-radius:6px;padding:9px 12px;font-size:14px;transition:border-color .15s}.login-field input:focus,.login-field select:focus{border-color:var(--ink-mute);outline:none}.login-field input::placeholder{color:var(--ink-mute)}.login-btn{background:var(--ink);width:100%;color:var(--bg);border:1px solid var(--ink);font-family:var(--sans);cursor:pointer;border-radius:6px;margin-top:8px;padding:11px;font-size:14px;font-weight:500;transition:all .15s}.login-btn:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-toggle{text-align:center;color:var(--ink-mute);margin-top:20px;font-size:13px}.login-toggle button{color:var(--accent);cursor:pointer;background:0 0;border:none;margin-left:4px;font-size:13px;font-weight:500}.login-toggle button:hover{text-decoration:underline}.app-layout{grid-template-columns:240px 1fr;align-items:start;min-height:100vh;display:grid}.app-layout:before{content:"";pointer-events:none;z-index:1000;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.025 0'/></filter><rect width='100' height='100' filter='url(%23n)'/></svg>");position:fixed;inset:0}.app-loading{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.app-loading-text{color:var(--ink-mute);font-size:14px}@media (width<=768px){.app-layout{grid-template-columns:1fr}}
