:root{--page: #F6F7F9;--panel: #FFFFFF;--sidebar: #12213E;--border: #E5E8EC;--navy: #12213E;--green: #209E6E;--green-bg: #E3F5EC;--amber: #E0A82F;--amber-bg: #FCF1DA;--red: #D8503F;--red-bg: #FBE8E5;--text: #16213A;--text-muted: #6B7280;--text-faint: #9AA1AC;--font-display: "Space Grotesk", sans-serif;--font-body: "Inter", sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);margin:0}button,input,select{font-family:var(--font-body)}.app-shell{display:flex;min-height:100vh}.app-body{flex:1;display:flex;flex-direction:column;min-width:0}.sidebar{width:260px;background:var(--sidebar);padding:26px 18px;display:flex;flex-direction:column;flex-shrink:0}.sidebar-brand{display:flex;align-items:center;gap:11px;padding:0 10px;margin-bottom:32px}.brand-name{font-family:var(--font-display);font-weight:700;font-size:15.5px;color:#fff;letter-spacing:.2px}.brand-sub{font-size:11px;color:#8492ac;letter-spacing:.4px}.nav-item{display:block;width:100%;text-align:left;background:none;border:none;color:#a9b3c7;font-size:14.5px;font-weight:500;padding:11px 16px;border-radius:8px;cursor:pointer;margin-bottom:4px}.nav-item.active{background:#209e6e2e;color:#5fd8a6;font-weight:600}.nav-divider{height:1px;background:#233256;margin:12px 10px}.sidebar-user{margin-top:auto;padding:14px 10px 4px;border-top:1px solid #233256;display:flex;align-items:center;justify-content:space-between}.sidebar-user-name{font-size:13.5px;color:#fff}.sidebar-user-role{font-size:11.5px;color:#7383a0;margin-top:1px}.logout-btn{background:none;border:none;color:#7383a0;font-size:12px;cursor:pointer}.logout-btn:hover{color:#fff}.mobile-header{display:none;align-items:center;justify-content:space-between;background:var(--sidebar);padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top,0px));min-height:60px}.top-nav-brand{display:flex;align-items:center;gap:9px}.top-nav-brand-text{font-family:var(--font-display);font-weight:700;font-size:13.5px;color:#fff;letter-spacing:.2px}.top-nav-link{background:none;border:none;color:#a9b3c7;font-size:14px;font-weight:500;padding:11px 14px;border-radius:7px;cursor:pointer;text-align:left}.top-nav-link.active{background:#209e6e2e;color:#5fd8a6;font-weight:600}.hamburger-btn{background:none;border:none;color:#fff;cursor:pointer;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:8px;flex-shrink:0}.hamburger-btn:active{background:#ffffff1a}.mobile-menu{display:none}.main-content{flex:1;padding:28px 34px;min-width:0}.app-footer{padding:16px 34px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));font-size:12px;color:var(--text-faint);border-top:1px solid var(--border);text-align:center}.kpi-row{display:flex;gap:14px;margin-bottom:28px;flex-wrap:wrap}.kpi-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:18px 20px;flex:1;min-width:160px}.kpi-label{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;color:var(--text-muted)}.kpi-value{font-family:var(--font-display);font-size:26px;font-weight:600}.kpi-sub{font-size:12px;color:var(--text-faint);margin-top:4px}.section-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:18px;gap:12px;flex-wrap:wrap}.section-title{font-size:20px;font-weight:600}.section-sub{font-size:13px;color:var(--text-muted);margin:4px 0 0}.btn-primary{display:flex;align-items:center;gap:6px;background:var(--green);color:#fff;border:none;border-radius:8px;padding:9px 16px;font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap}.btn-primary:hover{opacity:.92}.btn-secondary{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:8px;padding:9px 16px;font-size:13.5px;font-weight:500;cursor:pointer}.card-list{display:flex;flex-direction:column;gap:10px}.row-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px 20px}.badge{font-size:12px;font-weight:600;padding:3px 10px;border-radius:20px;white-space:nowrap;display:inline-block}.data-table{background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden}.table-head-row,.table-row{display:grid;gap:12px;padding:12px 20px;align-items:center}.table-head-row{font-size:12px;color:var(--text-faint);border-bottom:1px solid var(--border)}.table-row{font-size:13.5px;border-bottom:1px solid var(--border)}.table-row:last-child{border-bottom:none}.field-label{font-size:12.5px;color:var(--text-muted);display:block;margin-bottom:6px}.text-input,.select-input{width:100%;border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-size:13.5px;color:var(--text);background:#fff}.field-group{margin-bottom:14px}.checkbox-row{display:flex;align-items:center;gap:9px;font-size:13.5px;cursor:pointer;margin-bottom:8px}.form-error{color:var(--red);font-size:12.5px;margin-bottom:12px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#12213e73;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal-card{background:var(--panel);border-radius:12px;padding:24px 26px;width:100%;max-width:400px;border:1px solid var(--border);max-height:90vh;overflow-y:auto}.upload-zone{border:2px dashed var(--border);background:var(--panel);border-radius:12px;padding:48px 20px;text-align:center;cursor:pointer;margin-bottom:24px;transition:all .15s}.upload-zone.drag-over{border-color:var(--green);background:var(--green-bg)}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--page);padding:20px}.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:32px 30px;width:100%;max-width:380px}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.chart-card-title{font-size:15px;font-weight:600;margin-bottom:4px}.chart-card-sub{font-size:12.5px;color:var(--text-muted);margin-bottom:8px}.chart-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;font-size:12px}.chart-legend-dot{width:8px;height:8px;border-radius:4px;display:inline-block;margin-right:5px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 860px){.app-shell{flex-direction:column}.sidebar{display:none}.mobile-header{display:flex}.mobile-menu.open{display:flex;flex-direction:column;background:var(--sidebar);padding:6px 12px 14px;gap:3px}.mobile-menu.open .top-nav-link{padding:15px 14px;font-size:15.5px;min-height:48px;display:flex;align-items:center}.main-content{padding:18px 16px 32px}.kpi-row{gap:10px}.kpi-card{min-width:45%;padding:14px 16px}.kpi-value{font-size:21px}.chart-grid,.two-col{grid-template-columns:1fr}.table-head-row{display:none}.table-row{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:14px 16px}.row-card{display:block}.fleet-row,.log-row{grid-template-columns:1fr!important}}@media (max-width: 480px){.kpi-card{min-width:100%}.modal-card{padding:18px 16px}.app-footer{padding:14px 16px}}.global-loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#f6f7f98c;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:9999}.global-spinner{width:46px;height:46px;border:4px solid var(--border);border-top-color:var(--green);border-radius:50%;animation:global-spin .7s linear infinite}@keyframes global-spin{to{transform:rotate(360deg)}}
