*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--brand:#0f6e56;--brand-light:#1d9e75;--brand-dark:#085041;--brand-muted:#9fe1cb;--danger:#e24b4a;--danger-bg:#fcebeb;--danger-text:#a32d2d;--warning:#ba7517;--warning-bg:#faeeda;--warning-text:#633806;--success:#1d9e75;--success-bg:#e1f5ee;--success-text:#085041;--bg:#f5f5f2;--card:#fff;--border:#00000014;--text:#1a1a18;--text-2:#6b6b67;--text-3:#9b9b96;--radius:12px;--shadow:0 1px 4px #0000000f}body{background:#f5f5f2;background:var(--bg);color:#1a1a18;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.5}.app-layout{display:flex;height:100vh;overflow:hidden}.sidebar{background:#085041;background:var(--brand-dark);display:flex;flex-direction:column;flex-shrink:0;width:220px}.main-content{display:flex;flex:1 1;flex-direction:column;overflow-y:auto}.sidebar-logo{border-bottom:1px solid #ffffff1a;padding:20px}.sidebar-logo h1{color:#fff;font-size:20px;font-weight:700}.sidebar-logo h1 span,.sidebar-logo p{color:#9fe1cb;color:var(--brand-muted)}.sidebar-logo p{font-size:11px;margin-top:2px}.sidebar-nav{flex:1 1;padding:12px 0}.nav-item{align-items:center;background:none;border:none;border-radius:0;color:#ffffffb3;cursor:pointer;display:flex;font-size:14px;gap:10px;padding:10px 20px;text-align:left;transition:background .15s;width:100%}.nav-item:hover{background:#ffffff14;color:#fff}.nav-item.active{background:#ffffff1f;border-left:3px solid #9fe1cb;border-left:3px solid var(--brand-muted);color:#fff;font-weight:500}.nav-icon{font-size:18px;text-align:center;width:22px}.sidebar-footer{border-top:1px solid #ffffff1a;padding:16px 20px}.sidebar-user{gap:10px}.sidebar-user,.user-avatar{align-items:center;display:flex}.user-avatar{background:#ffffff26;border-radius:50%;font-weight:600;height:34px;justify-content:center;width:34px}.user-avatar,.user-name{color:#fff;font-size:13px}.user-name{font-weight:500}.user-role{color:#9fe1cb;color:var(--brand-muted);font-size:11px}.logout-btn{background:#ffffff14;border:none;border-radius:8px;color:#ffffffb3;cursor:pointer;font-size:13px;margin-top:10px;padding:8px;width:100%}.logout-btn:hover{background:#ffffff26;color:#fff}.topbar{align-items:center;background:#fff;background:var(--card);border-bottom:1px solid #00000014;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:14px 24px}.topbar-title{font-size:18px;font-weight:600}.topbar-sub{color:#6b6b67;color:var(--text-2);font-size:12px;margin-top:2px}.topbar-right{gap:12px}.live-badge,.topbar-right{align-items:center;display:flex}.live-badge{color:#1d9e75;color:var(--success);font-size:12px;font-weight:500;gap:6px}.live-dot{animation:pulse 1.5s infinite;background:#1d9e75;background:var(--success);border-radius:50%;height:8px;width:8px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.page{flex:1 1;padding:24px}.metrics-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(4,1fr);margin-bottom:20px}.metric-card{background:#fff;background:var(--card);border:1px solid #00000014;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);box-shadow:0 1px 4px #0000000f;box-shadow:var(--shadow);padding:16px}.metric-label{color:#6b6b67;color:var(--text-2);font-size:12px;font-weight:500;margin-bottom:8px}.metric-value{color:#1a1a18;color:var(--text);font-size:28px;font-weight:700}.metric-sub{color:#9b9b96;color:var(--text-3);font-size:12px;margin-top:4px}.metric-sub.ok{color:#1d9e75;color:var(--success)}.metric-sub.danger{color:#e24b4a;color:var(--danger)}.metric-sub.warning{color:#ba7517;color:var(--warning)}.card{background:#fff;background:var(--card);border:1px solid #00000014;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);box-shadow:0 1px 4px #0000000f;box-shadow:var(--shadow);overflow:hidden}.card-header{align-items:center;border-bottom:1px solid #00000014;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:14px 16px}.card-title{color:#1a1a18;color:var(--text);font-size:13px;font-weight:600}.card-body{padding:16px}.grid-2{grid-gap:14px;grid-template-columns:1fr 1fr}.grid-2,.grid-3{display:grid;gap:14px}.grid-3{grid-gap:14px;grid-template-columns:1fr 1fr 1fr}.dashboard-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:1fr 340px}.right-col{gap:14px}.alert-list,.right-col{display:flex;flex-direction:column}.alert-item{align-items:flex-start;border-bottom:1px solid #00000014;border-bottom:1px solid var(--border);display:flex;gap:10px;padding:10px 16px}.alert-item:last-child{border-bottom:none}.alert-icon{align-items:center;border-radius:8px;display:flex;flex-shrink:0;font-size:15px;height:30px;justify-content:center;margin-top:1px;width:30px}.alert-icon.critical{background:#fcebeb;background:var(--danger-bg)}.alert-icon.warning{background:#faeeda;background:var(--warning-bg)}.alert-text p{color:#1a1a18;color:var(--text);font-size:13px;font-weight:500}.alert-text span{color:#9b9b96;color:var(--text-3);font-size:11px}.alert-actions{margin-left:auto}.resolve-btn{background:#f5f5f2;background:var(--bg);border:1px solid #00000014;border:1px solid var(--border);border-radius:20px;color:#6b6b67;color:var(--text-2);cursor:pointer;font-size:11px;padding:3px 10px}.resolve-btn:hover{background:#e1f5ee;background:var(--success-bg);border-color:#1d9e75;border-color:var(--success);color:#085041;color:var(--success-text)}.data-table{border-collapse:collapse;width:100%}.data-table th{background:#f5f5f2;background:var(--bg);color:#6b6b67;color:var(--text-2);font-size:11px;font-weight:600;letter-spacing:.04em;padding:10px 14px;text-align:left;text-transform:uppercase}.data-table td,.data-table th{border-bottom:1px solid #00000014;border-bottom:1px solid var(--border)}.data-table td{font-size:13px;padding:11px 14px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:#fafaf9;cursor:pointer}.pill{align-items:center;border-radius:20px;display:inline-flex;font-size:11px;font-weight:500;gap:4px;padding:3px 10px}.pill-ok{background:#e1f5ee;background:var(--success-bg);color:#085041;color:var(--success-text)}.pill-warn{background:#faeeda;background:var(--warning-bg);color:#633806;color:var(--warning-text)}.pill-danger{background:#fcebeb;background:var(--danger-bg);color:#a32d2d;color:var(--danger-text)}.pill-off{background:#f5f5f2;background:var(--bg);color:#9b9b96;color:var(--text-3)}.tyre-mini{grid-gap:2px;display:grid;gap:2px;grid-template-columns:1fr 1fr;width:44px}.tyre-sq{border-radius:2px;height:14px}.map-area{align-items:center;background:linear-gradient(135deg,#e8f5f1,#d4ede6);border-radius:8px;display:flex;height:280px;justify-content:center;overflow:hidden;position:relative}.map-grid{background-image:linear-gradient(#00000014 1px,#0000 0),linear-gradient(90deg,#00000014 1px,#0000 0);background-image:linear-gradient(var(--border) 1px,#0000 1px),linear-gradient(90deg,var(--border) 1px,#0000 1px);background-size:40px 40px;inset:0;position:absolute}.truck-marker{align-items:center;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 8px #0003;color:#fff;cursor:pointer;display:flex;font-size:11px;font-weight:700;height:28px;justify-content:center;position:absolute;transition:transform .15s;width:28px}.truck-marker:hover{transform:scale(1.2)}.truck-marker.ok{background:#1d9e75;background:var(--success)}.truck-marker.warning{background:#ba7517;background:var(--warning)}.truck-marker.critical{background:#e24b4a;background:var(--danger)}.driver-item{align-items:center;border-bottom:1px solid #00000014;border-bottom:1px solid var(--border);display:flex;gap:10px;padding:10px 16px}.driver-item:last-child{border-bottom:none}.driver-avatar{align-items:center;background:#e1f5ee;background:var(--success-bg);border-radius:50%;color:#085041;color:var(--success-text);display:flex;flex-shrink:0;font-size:12px;font-weight:600;height:32px;justify-content:center;width:32px}.driver-name{font-size:13px;font-weight:500}.driver-sub{color:#9b9b96;color:var(--text-3);font-size:11px}.cargo-item{align-items:center;border-bottom:1px solid #00000014;border-bottom:1px solid var(--border);display:flex;gap:10px;padding:10px 16px}.cargo-item:last-child{border-bottom:none}.cargo-icon-wrap{border-radius:8px;font-size:16px;height:30px;width:30px}.cargo-icon-wrap,.login-page{align-items:center;display:flex;justify-content:center}.login-page{background:#085041;background:var(--brand-dark);min-height:100vh}.login-card{background:#fff;background:var(--card);border-radius:16px;box-shadow:0 8px 32px #0003;max-width:400px;padding:36px;width:100%}.login-logo{margin-bottom:28px;text-align:center}.login-logo h1{color:#0f6e56;color:var(--brand);font-size:28px;font-weight:700}.login-logo h1 span{color:#9b9b96;color:var(--text-3)}.login-logo p{color:#6b6b67;color:var(--text-2);font-size:13px;margin-top:4px}.form-group{margin-bottom:16px}.form-label{color:#6b6b67;color:var(--text-2);display:block;font-size:12px;font-weight:600;letter-spacing:.04em;margin-bottom:6px;text-transform:uppercase}.form-input{border:1px solid #00000014;border:1px solid var(--border);border-radius:8px;font-size:14px;outline:none;padding:10px 14px;transition:border-color .15s;width:100%}.form-input:focus{border-color:#0f6e56;border-color:var(--brand)}.login-btn{background:#0f6e56;background:var(--brand);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;margin-top:8px;padding:12px;width:100%}.login-btn:hover{background:#1d9e75;background:var(--brand-light)}.login-btn:disabled{cursor:not-allowed;opacity:.6}.login-error{background:#fcebeb;background:var(--danger-bg);color:#a32d2d;color:var(--danger-text);margin-bottom:16px;padding:10px 14px}.btn,.login-error{border-radius:8px;font-size:13px}.btn{border:none;cursor:pointer;font-weight:500;padding:8px 16px}.btn-primary{background:#0f6e56;background:var(--brand);color:#fff}.btn-primary:hover{background:#1d9e75;background:var(--brand-light)}.btn-outline{background:#0000;border:1px solid #00000014;border:1px solid var(--border);color:#6b6b67;color:var(--text-2)}.btn-outline:hover{background:#f5f5f2;background:var(--bg)}.empty-state{color:#9b9b96;color:var(--text-3);padding:32px;text-align:center}.empty-state p{font-size:14px;margin-top:8px}.loading{align-items:center;color:#9b9b96;color:var(--text-3);display:flex;font-size:14px;justify-content:center;padding:40px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#00000014;background:var(--border);border-radius:3px}
/*# sourceMappingURL=main.2e1c90f2.css.map*/