*,: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}.tr-top{grid-gap:14px;align-items:stretch;grid-template-columns:1fr 1.05fr 1.15fr;margin-bottom:14px}.tr-mid,.tr-top{display:grid;gap:14px}.tr-mid{grid-gap:14px;grid-template-columns:1.7fr 1fr}@media (max-width:1300px){.tr-top{grid-template-columns:1fr 1fr}.tr-top>:last-child{grid-column:1/-1}}@media (max-width:1000px){.tr-mid,.tr-top{grid-template-columns:1fr}}.tr-toast{background:#085041;background:var(--brand-dark);border-radius:10px;box-shadow:0 6px 24px #00000040;color:#fff;font-size:13px;padding:10px 16px;position:fixed;right:20px;top:16px;z-index:50}.tr-cost-hero{border-bottom:1px solid #00000014;border-bottom:1px solid var(--border);margin-bottom:14px;padding:6px 0 14px}.tr-cost-label{color:#6b6b67;color:var(--text-2);font-size:12px}.tr-cost-value{color:#e24b4a;color:var(--danger);font-size:36px;font-weight:800;letter-spacing:-.02em;line-height:1.15;margin:4px 0}.tr-cost-sub{color:#9b9b96;color:var(--text-3);font-size:12px}.tr-kpis{grid-gap:12px 14px;display:grid;gap:12px 14px;grid-template-columns:1fr 1fr}.tr-kpis b{color:#1a1a18;color:var(--text);display:block;font-size:15px}.tr-kpis span{color:#9b9b96;color:var(--text-3);font-size:11px}.tr-cost-empty{color:#6b6b67;color:var(--text-2);font-size:13px;padding:14px 6px;text-align:center}.tr-cost-empty p{margin-top:8px}.tr-dwell{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.tr-legend{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:170px}.tr-legend-row{grid-gap:8px;align-items:center;background:none;border:none;border-radius:8px;color:#1a1a18;color:var(--text);cursor:pointer;display:grid;font-size:12px;gap:8px;grid-template-columns:10px 1fr auto 46px;padding:6px 8px;text-align:left}.tr-legend-row.on,.tr-legend-row:hover{background:#f5f5f2;background:var(--bg)}.tr-legend-row i{border-radius:50%;display:block;height:10px;width:10px}.tr-legend-row .lbl{color:#6b6b67;color:var(--text-2)}.tr-legend-row .pct{color:#9b9b96;color:var(--text-3);text-align:right}.tr-legend-foot{color:#9b9b96;color:var(--text-3);font-size:11px;margin-top:8px;padding-left:8px}.tr-assistant{display:flex;flex-direction:column;height:372px}.tr-chat{background:linear-gradient(180deg,#fafaf8,#fff);flex:1 1;gap:10px;overflow-y:auto;padding:12px 14px}.tr-chat,.tr-msg{display:flex;flex-direction:column}.tr-msg{gap:6px;max-width:94%}.tr-msg.user{align-items:flex-end;align-self:flex-end}.tr-bubble{background:#fff;border:1px solid #00000014;border:1px solid var(--border);border-radius:14px;color:#1a1a18;color:var(--text);font-size:13px;line-height:1.45;padding:9px 13px}.tr-msg.user .tr-bubble{background:#0f6e56;background:var(--brand);border-bottom-right-radius:4px;border-color:#0000;color:#fff}.tr-msg.bot .tr-bubble{border-bottom-left-radius:4px}.tr-items{display:flex;flex-direction:column;gap:5px}.tr-item{align-items:center;background:#fff;border:1px solid #00000014;border:1px solid var(--border);border-radius:10px;display:flex;gap:10px;justify-content:space-between;padding:7px 11px}.tr-item:hover{border-color:#1d9e75;border-color:var(--brand-light)}.tr-item-primary{color:#1a1a18;color:var(--text);font-size:12.5px;font-weight:600}.tr-item-secondary{color:#6b6b67;color:var(--text-2);font-size:11.5px}.tr-typing{display:inline-flex;gap:4px;padding:12px 14px}.tr-typing i{animation:trblink 1.2s infinite;background:#9b9b96;background:var(--text-3);border-radius:50%;height:6px;width:6px}.tr-typing i:nth-child(2){animation-delay:.2s}.tr-typing i:nth-child(3){animation-delay:.4s}@keyframes trblink{0%,80%,to{opacity:.25}40%{opacity:1}}.tr-prompts{border-top:1px solid #00000014;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px 4px}.tr-prompt{background:#fff;border:1px solid #1d9e75;border:1px solid var(--brand-light);border-radius:20px;color:#0f6e56;color:var(--brand);cursor:pointer;font-size:11.5px;padding:5px 11px}.tr-prompt:hover:not(:disabled){background:#e1f5ee;background:var(--success-bg)}.tr-prompt:disabled{cursor:default;opacity:.5}.tr-ask{display:flex;gap:8px;padding:8px 12px 12px}.tr-ask .form-input{padding:8px 12px}.tr-map-wrap{position:relative}.tr-map{background:#dfe7e4;height:430px}.tr-map-msg{align-items:center;background:#f5f5f2e6;color:#6b6b67;color:var(--text-2);display:flex;font-size:13px;inset:0;justify-content:center;padding:20px;position:absolute;text-align:center}.tr-map-pick{background:#085041;background:var(--brand-dark);border-radius:20px;color:#fff;font-size:12px;left:50%;padding:7px 14px;pointer-events:none;position:absolute;top:12px;transform:translateX(-50%)}.tr-map-legend{color:#6b6b67;color:var(--text-2);display:flex;flex-wrap:wrap;font-size:11px;gap:12px}.tr-map-legend span{align-items:center;display:inline-flex;gap:5px}.tr-map-legend i{border-radius:50%;display:block;height:9px;width:9px}.tr-hint{color:#9b9b96;color:var(--text-3);font-size:12px;margin-bottom:8px}.tr-yard-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;max-height:150px;overflow-y:auto}.tr-yard{align-items:center;border:1px solid #00000014;border:1px solid var(--border);border-radius:10px;display:flex;gap:8px;justify-content:space-between;padding:8px 10px}.tr-yard-name{font-size:13px;font-weight:600}.tr-yard-sub{color:#9b9b96;color:var(--text-3);font-size:11px}.tr-form{display:flex;flex-direction:column;gap:8px}.tr-form .form-input{font-size:13px;padding:8px 11px}.tr-form .form-label{margin-bottom:0;margin-top:4px}.tr-form-row{display:flex;gap:8px}.tr-form-row>*{flex:1 1;min-width:0}.tr-form-row .btn{padding:8px 10px;white-space:nowrap}.tr-count{background:#f5f5f2;background:var(--bg);border-radius:20px;color:#6b6b67;color:var(--text-2);display:inline-block;font-size:11px;font-weight:600;margin-left:6px;padding:1px 8px}.tr-search{font-size:13px;max-width:260px;padding:7px 12px}.tr-chips{border-bottom:1px solid #00000014;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px}.tr-chip{align-items:center;background:#fff;border:1px solid #00000014;border:1px solid var(--border);border-radius:20px;color:#6b6b67;color:var(--text-2);cursor:pointer;display:inline-flex;font-size:12px;gap:6px;padding:5px 12px}.tr-chip i{border-radius:50%;display:block;height:8px;width:8px}.tr-chip b{color:#1a1a18;color:var(--text)}.tr-chip.on{background:#085041;background:var(--brand-dark);border-color:#085041;border-color:var(--brand-dark);color:#fff}.tr-chip.on b{color:#fff}.tr-sub{color:#9b9b96;color:var(--text-3);font-size:11px}.tr-dwell-badge{border-radius:20px;display:inline-block;font-size:12px;font-weight:700;padding:3px 10px}.tr-schem{background:#0e1f1a;position:relative}.tr-schem svg{display:block;height:430px;width:100%}.tr-schem-note{bottom:10px;color:#ffffff8c;font-size:11px;left:12px;position:absolute}.tr-schem-info{background:#081410e6;border:1px solid #ffffff2e;border-radius:10px;color:#fff;font-size:12px;line-height:1.5;max-width:240px;padding:9px 13px;position:absolute;right:12px;top:12px}
/*# sourceMappingURL=main.2f11b864.css.map*/