*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root,[data-theme=dark]{--bg: #0C0C0E;--surface: #131317;--surface2: #1A1A20;--surface3: #22222A;--border: #2C2C38;--border2: #3A3A48;--text: #EEEEF5;--text2: #9090A8;--text3: #5A5A70;--shadow: rgba(0,0,0,.5);--shadow-sm: rgba(0,0,0,.3)}[data-theme=light]{--bg: #F2F2F7;--surface: #FFFFFF;--surface2: #F7F7FA;--surface3: #EEEEF4;--border: #E0E0EA;--border2: #CACAD6;--text: #111118;--text2: #555568;--text3: #9090A4;--shadow: rgba(0,0,0,.1);--shadow-sm: rgba(0,0,0,.06)}:root{--amber: #F5A623;--amber-dim: rgba(245,166,35,.12);--amber-glow: rgba(245,166,35,.25);--green: #22C55E;--green-dim: rgba(34,197,94,.12);--red: #EF4444;--red-dim: rgba(239,68,68,.12);--blue: #60A5FA;--blue-dim: rgba(96,165,250,.12);--purple: #A78BFA;--purple-dim: rgba(167,139,250,.12);--font-ui: "Barlow", sans-serif;--font-head: "Barlow Condensed", sans-serif;--font-mono: "Space Mono", monospace;--radius: 6px;--radius-lg: 10px;--sidebar-w: 220px;--transition: .18s ease}[data-theme=light]{--amber-dim: rgba(245,166,35,.1);--green-dim: rgba(34,197,94,.1);--red-dim: rgba(239,68,68,.1);--blue-dim: rgba(96,165,250,.1);--purple-dim: rgba(167,139,250,.1)}html,body{height:100%;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:14px;line-height:1.5;transition:background var(--transition),color var(--transition)}#root{height:100%}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--surface)}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text3)}h1,h2,h3,h4{font-family:var(--font-head);letter-spacing:.02em}.mono{font-family:var(--font-mono)}.text2{color:var(--text2)}.text3{color:var(--text3)}.app-layout{display:flex;height:100vh;overflow:hidden}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.page-body{flex:1;overflow-y:auto;padding:28px 32px}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;transition:background var(--transition),border-color var(--transition)}.sidebar-logo{padding:20px 20px 18px;border-bottom:1px solid var(--border)}.sidebar-logo .logo-mark{display:flex;align-items:center;gap:10px}.logo-icon{width:32px;height:32px;background:var(--amber);border-radius:6px;display:flex;align-items:center;justify-content:center;color:#000;font-family:var(--font-head);font-weight:700;font-size:16px}.logo-text{font-family:var(--font-head);font-size:18px;font-weight:700;letter-spacing:.04em;color:var(--text)}.logo-sub{font-size:11px;color:var(--text3);letter-spacing:.08em;text-transform:uppercase;margin-top:1px}.sidebar-nav{flex:1;padding:12px 0;overflow-y:auto}.nav-section-label{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--text3);padding:12px 20px 6px;font-family:var(--font-head)}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 20px;color:var(--text2);font-size:13.5px;cursor:pointer;border:none;background:none;width:100%;text-align:left;transition:color var(--transition),background var(--transition);position:relative}.nav-item:hover{color:var(--text);background:var(--surface2)}.nav-item.active{color:var(--amber);background:var(--amber-dim)}.nav-item.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--amber);border-radius:0 2px 2px 0}.nav-item svg{width:16px;height:16px;flex-shrink:0}.nav-badge{margin-left:auto;background:var(--red);color:#fff;font-size:10px;font-family:var(--font-mono);padding:1px 5px;border-radius:9px;min-width:18px;text-align:center}.sidebar-footer{padding:16px 20px;border-top:1px solid var(--border)}.user-chip{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--surface2);border-radius:var(--radius);margin-bottom:10px}.user-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;font-family:var(--font-head);flex-shrink:0}.user-avatar.owner{background:#f5a62333;color:var(--amber)}.user-avatar.manager{background:#60a5fa33;color:var(--blue)}.user-name{font-size:12.5px;font-weight:500}.user-role{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}.theme-toggle{display:flex;align-items:center;gap:8px;margin-bottom:10px}.theme-toggle-track{width:36px;height:20px;background:var(--surface3);border:1px solid var(--border2);border-radius:10px;position:relative;cursor:pointer;transition:background var(--transition);flex-shrink:0}[data-theme=light] .theme-toggle-track{background:var(--amber);border-color:var(--amber)}.theme-toggle-thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--text3);border-radius:50%;transition:transform var(--transition),background var(--transition)}[data-theme=light] .theme-toggle-thumb{transform:translate(16px);background:#fff}.theme-toggle-label{font-size:11px;color:var(--text3)}.topbar{height:52px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 32px;flex-shrink:0;gap:16px;transition:background var(--transition)}.topbar-title{font-family:var(--font-head);font-size:20px;font-weight:600;letter-spacing:.03em}.topbar-sub{color:var(--text3);font-size:12px}.topbar-actions{margin-left:auto;display:flex;gap:8px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;transition:background var(--transition),border-color var(--transition)}.card-sm{padding:14px 16px}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-title{font-family:var(--font-head);font-size:15px;font-weight:600;letter-spacing:.03em}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:28px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px;position:relative;overflow:hidden;transition:background var(--transition)}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px}.stat-card.amber:before{background:var(--amber)}.stat-card.green:before{background:var(--green)}.stat-card.red:before{background:var(--red)}.stat-card.blue:before{background:var(--blue)}.stat-card.purple:before{background:var(--purple)}.stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--text3);font-family:var(--font-head);margin-bottom:8px}.stat-value{font-family:var(--font-mono);font-size:22px;font-weight:700}.stat-value.amber{color:var(--amber)}.stat-value.green{color:var(--green)}.stat-value.red{color:var(--red)}.stat-value.blue{color:var(--blue)}.stat-sub{font-size:11px;color:var(--text3);margin-top:4px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius);font-size:13px;font-family:var(--font-ui);font-weight:500;cursor:pointer;border:none;transition:all var(--transition);white-space:nowrap}.btn:disabled{opacity:.4;cursor:not-allowed}.btn svg{width:14px;height:14px}.btn-primary{background:var(--amber);color:#000}.btn-primary:hover:not(:disabled){background:#ffb83d}.btn-secondary{background:var(--surface3);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-danger{background:var(--red-dim);color:var(--red);border:1px solid rgba(239,68,68,.3)}.btn-danger:hover:not(:disabled){background:#ef444433}.btn-ghost{background:transparent;color:var(--text2)}.btn-ghost:hover:not(:disabled){color:var(--text);background:var(--surface2)}.btn-success{background:var(--green-dim);color:var(--green);border:1px solid rgba(34,197,94,.3)}.btn-success:hover:not(:disabled){background:#22c55e33}.btn-sm{padding:5px 10px;font-size:12px}.btn-sm svg{width:12px;height:12px}.btn-lg{padding:10px 20px;font-size:14px}.btn-icon{padding:7px;aspect-ratio:1}.form-group{margin-bottom:14px}.form-row{display:flex;gap:12px}.form-row .form-group{flex:1}.form-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:6px;font-family:var(--font-head)}.form-input,.form-select,.form-textarea{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-ui);font-size:13.5px;padding:9px 12px;transition:border-color var(--transition),background var(--transition);outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--amber)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text3)}.form-select option{background:var(--surface2);color:var(--text)}.form-textarea{resize:vertical;min-height:72px}.form-input[type=number]{font-family:var(--font-mono)}.input-prefix{display:flex}.input-prefix-icon{background:var(--surface3);border:1px solid var(--border);border-right:none;border-radius:var(--radius) 0 0 var(--radius);padding:9px 10px;color:var(--text3);font-size:13px;font-family:var(--font-mono);display:flex;align-items:center}.input-prefix .form-input{border-radius:0 var(--radius) var(--radius) 0}.toggle-group{display:flex;gap:4px;background:var(--surface2);padding:3px;border-radius:7px;border:1px solid var(--border)}.toggle-btn{flex:1;padding:7px 12px;border-radius:5px;border:none;background:transparent;cursor:pointer;font-size:12.5px;color:var(--text2);font-family:var(--font-ui);transition:all var(--transition);font-weight:500}.toggle-btn.active-income{background:var(--green-dim);color:var(--green)}.toggle-btn.active-expense{background:var(--red-dim);color:var(--red)}.toggle-btn.active-neutral{background:var(--amber-dim);color:var(--amber)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}thead th{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--text3);font-family:var(--font-head);padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}tbody td{padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--surface2)}.amount-cell{font-family:var(--font-mono);font-size:13px;font-weight:700}.income-amount{color:var(--green)}.expense-amount{color:var(--red)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:500;font-family:var(--font-head);letter-spacing:.04em}.badge-income{background:var(--green-dim);color:var(--green)}.badge-expense{background:var(--red-dim);color:var(--red)}.badge-transfer{background:var(--blue-dim);color:var(--blue)}.badge-service{background:var(--purple-dim);color:var(--purple)}.badge-amber{background:var(--amber-dim);color:var(--amber)}.badge-neutral{background:var(--surface3);color:var(--text2);border:1px solid var(--border)}.badge-overdue{background:var(--red-dim);color:var(--red)}.badge-due-soon{background:#f5a62326;color:var(--amber)}.badge-ok{background:var(--green-dim);color:var(--green)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .15s ease}[data-theme=light] .modal-overlay{background:#00000059}.modal{background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius-lg);width:100%;max-width:480px;max-height:90vh;overflow-y:auto;animation:slideUp .2s ease;box-shadow:0 24px 64px var(--shadow)}.modal-wide{max-width:620px}.modal-header{padding:20px 24px 0;display:flex;align-items:center;justify-content:space-between}.modal-title{font-family:var(--font-head);font-size:18px;font-weight:600}.modal-body{padding:20px 24px 24px}.modal-footer{padding:0 24px 20px;display:flex;gap:8px;justify-content:flex-end}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.cars-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.car-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;cursor:pointer;transition:border-color var(--transition),transform var(--transition),background var(--transition);position:relative;overflow:hidden}.car-card:hover{border-color:var(--border2);transform:translateY(-1px)}.car-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}.car-stripe-0:before{background:#f5a623}.car-stripe-1:before{background:#60a5fa}.car-stripe-2:before{background:#22c55e}.car-stripe-3:before{background:#a78bfa}.car-stripe-4:before{background:#f472b6}.car-stripe-5:before{background:#fb923c}.car-short-name{font-family:var(--font-head);font-size:18px;font-weight:700;margin-bottom:2px;letter-spacing:.03em}.car-plate{font-family:var(--font-mono);font-size:11px;color:var(--text3);letter-spacing:.1em}.car-meta{margin-top:12px;display:flex;gap:16px}.car-meta-item{font-size:11px;color:var(--text3)}.car-meta-item strong{display:block;font-family:var(--font-mono);font-size:13px;color:var(--text);font-weight:700}.car-actions{margin-top:14px;padding-top:12px;border-top:1px solid var(--border);display:flex;gap:6px}.maintenance-list{display:flex;flex-direction:column;gap:8px}.maintenance-item{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;display:flex;align-items:center;gap:12px}.maintenance-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.maintenance-dot.overdue{background:var(--red);box-shadow:0 0 6px var(--red)}.maintenance-dot.due-soon{background:var(--amber);box-shadow:0 0 6px var(--amber)}.maintenance-dot.ok{background:var(--green)}.maintenance-info{flex:1;min-width:0}.maintenance-name{font-weight:500;font-size:13px}.maintenance-sub{font-size:11px;color:var(--text3);margin-top:2px}.maintenance-days{font-family:var(--font-mono);font-size:12px;text-align:right;flex-shrink:0}.balance-display{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 32px;text-align:center;position:relative;overflow:hidden}.balance-display:before{content:"";position:absolute;top:0;left:0;right:0;height:3px}.balance-display.positive:before{background:var(--green)}.balance-display.negative:before{background:var(--red)}.balance-display.zero:before{background:var(--text3)}.balance-label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--text3);font-family:var(--font-head);margin-bottom:12px}.balance-amount{font-family:var(--font-mono);font-size:42px;font-weight:700}.balance-amount.positive{color:var(--green)}.balance-amount.negative{color:var(--red)}.balance-amount.zero{color:var(--text3)}.balance-desc{font-size:12px;color:var(--text2);margin-top:8px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);background-image:radial-gradient(ellipse 60% 50% at 50% 0%,rgba(245,166,35,.08) 0%,transparent 100%)}.login-card{width:380px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:40px 36px;box-shadow:0 32px 80px var(--shadow)}.login-logo{display:flex;align-items:center;gap:12px;margin-bottom:32px}.login-logo .logo-icon{width:40px;height:40px;font-size:20px;border-radius:8px}.login-title{font-family:var(--font-head);font-size:22px;font-weight:700;letter-spacing:.04em}.login-sub{font-size:12px;color:var(--text3);letter-spacing:.06em;text-transform:uppercase}.login-error{background:var(--red-dim);border:1px solid rgba(239,68,68,.3);border-radius:var(--radius);padding:10px 12px;color:var(--red);font-size:12.5px;margin-bottom:14px}.role-tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px}.role-tile{padding:14px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:center;transition:all var(--transition);-webkit-user-select:none;user-select:none}.role-tile:hover{border-color:var(--border2)}.role-tile.selected{border-color:var(--amber);background:var(--amber-dim)}.role-tile-icon{font-size:20px;margin-bottom:6px}.role-tile-name{font-size:13px;font-weight:600;font-family:var(--font-head)}.role-tile-pass{font-size:10px;color:var(--text3);font-family:var(--font-mono);margin-top:3px}.filter-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.filter-select{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:6px 10px;font-family:var(--font-ui);font-size:12.5px;cursor:pointer}.filter-select:focus{outline:none;border-color:var(--amber)}.search-input{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:6px 10px;font-family:var(--font-ui);font-size:12.5px}.search-input:focus{outline:none;border-color:var(--amber)}.search-input::placeholder{color:var(--text3)}.filter-count{margin-left:auto;font-size:11.5px;color:var(--text3);font-family:var(--font-mono)}.profit-bar{height:6px;background:var(--surface3);border-radius:3px;overflow:hidden;margin-top:8px}.profit-fill{height:100%;border-radius:3px;transition:width .4s ease}.empty-state{text-align:center;padding:60px 20px;color:var(--text3)}.empty-state svg{opacity:.3;margin-bottom:12px}.empty-state p{font-size:13px}.info-box{background:var(--blue-dim);border:1px solid rgba(96,165,250,.2);border-radius:var(--radius);padding:10px 14px;font-size:12.5px;color:var(--blue)}.warning-box{background:var(--amber-dim);border:1px solid rgba(245,166,35,.3);border-radius:var(--radius);padding:10px 14px;font-size:12.5px;color:var(--amber)}.section-title{font-family:var(--font-head);font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--text3);margin-bottom:12px}.divider{border:none;border-top:1px solid var(--border);margin:16px 0}.car-detail-header{display:flex;align-items:flex-start;gap:24px;margin-bottom:28px}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px}.chart-title{font-family:var(--font-head);font-size:14px;font-weight:600;letter-spacing:.04em;color:var(--text2);text-transform:uppercase;margin-bottom:16px}.log-entry{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--border)}.log-entry:last-child{border-bottom:none}.log-dot-wrap{display:flex;flex-direction:column;align-items:center;padding-top:3px}.log-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.log-line{width:1px;background:var(--border);flex:1;margin-top:6px;min-height:20px}.log-content{flex:1;min-width:0}.log-action{font-size:12px;font-weight:600;font-family:var(--font-head);letter-spacing:.04em}.log-details{font-size:12.5px;color:var(--text2);margin-top:2px;line-height:1.4}.log-meta{font-size:11px;color:var(--text3);margin-top:3px;font-family:var(--font-mono)}.odometer-reading{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius)}.odometer-value{font-family:var(--font-mono);font-size:15px;font-weight:700;color:var(--blue)}.odometer-delta{font-family:var(--font-mono);font-size:11px;color:var(--text3)}.odometer-delta.positive{color:var(--green)}.settings-section{margin-bottom:28px}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--border)}.settings-row:last-child{border-bottom:none}.settings-label{font-size:13.5px;font-weight:500}.settings-desc{font-size:11.5px;color:var(--text3);margin-top:2px}@media (max-width: 768px){:root{--sidebar-w: 60px}.nav-item span,.sidebar-logo .logo-text,.sidebar-logo .logo-sub,.nav-section-label,.user-name,.user-role,.theme-toggle-label{display:none}.logo-mark{justify-content:center}.nav-item{justify-content:center;padding:12px}.nav-item.active:before{display:none}.page-body{padding:20px 16px}.topbar{padding:0 16px}.cars-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.skeleton{border-radius:var(--radius);background:linear-gradient(90deg,var(--surface2) 25%,var(--surface3) 50%,var(--surface2) 75%);background-size:600px 100%;animation:shimmer 1.4s ease-in-out infinite}[data-theme=light] .skeleton{background:linear-gradient(90deg,#e8e8ef 25%,#d8d8e4,#e8e8ef 75%);background-size:600px 100%}
