*{box-sizing:border-box;margin:0;padding:0}
html,body{background:#080b12;min-height:100vh;width:100%}
body{font-family:'Inter',sans-serif;color:#e2e8f0;font-size:14px}

/* Layout */
.app{display:flex;min-height:100vh;background:#080b12}
.sidebar{width:220px;min-width:220px;background:#0a0d14;border-right:1px solid #1a2035;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh;overflow-y:auto}
.main{flex:1;padding:28px;min-width:0;background:#080b12}

/* Logo */
.logo{padding:20px 20px 20px;border-bottom:1px solid #1a2035}
.logo-text{font-size:15px;font-weight:600;color:#e2e8f0;letter-spacing:.3px}
.logo-sub{font-size:11px;color:#3d4f6b;margin-top:3px}

/* Nav */
.nav{padding:12px 0;flex:1}
.nav-item{display:flex;align-items:center;gap:10px;padding:10px 20px;cursor:pointer;font-size:13px;color:#64748b;transition:all .15s;border-left:2px solid transparent;user-select:none}
.nav-item:hover{color:#e2e8f0;background:#0f1520}
.nav-item.active{color:#60a5fa;background:#0f1520;border-left-color:#60a5fa}
.nav-item i{font-size:16px;flex-shrink:0}
.nav-badge{margin-left:auto;background:#7f1d1d;color:#f87171;font-size:10px;padding:2px 7px;border-radius:10px}

/* Sidebar footer */
.sidebar-footer{padding:16px 20px;border-top:1px solid #1a2035}
.company-card{background:#0f1520;border:1px solid #1a2035;border-radius:8px;padding:12px}
.company-label{font-size:10px;color:#3d4f6b;text-transform:uppercase;letter-spacing:.8px;margin-bottom:4px}
.company-name{font-size:13px;color:#94a3b8;font-weight:500}
.company-plan{font-size:11px;color:#3d4f6b;margin-top:6px}

/* Topbar */
.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}
.topbar-title{font-size:20px;font-weight:600;color:#e2e8f0}
.topbar-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.badge-live{background:#0a1f12;border:1px solid #14532d;color:#4ade80;font-size:11px;padding:4px 12px;border-radius:20px;display:flex;align-items:center;gap:6px}
.badge-live::before{content:'';width:6px;height:6px;background:#4ade80;border-radius:50%;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.ts{font-size:12px;color:#3d4f6b}

/* Metrics */
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}
.metric{background:#0e1420;border:1px solid #1a2035;border-radius:10px;padding:18px}
.metric-label{font-size:10px;color:#3d4f6b;text-transform:uppercase;letter-spacing:.8px;margin-bottom:10px}
.metric-value{font-size:30px;font-weight:600;color:#e2e8f0}
.metric-sub{font-size:12px;color:#3d4f6b;margin-top:5px}
.metric-value.ok{color:#4ade80}
.metric-value.warn{color:#fbbf24}
.metric-value.crit{color:#f87171}

/* Section title */
.section-title{font-size:11px;font-weight:500;color:#3d4f6b;text-transform:uppercase;letter-spacing:.8px;margin-bottom:12px}

/* Table */
.fleet-table{background:#0e1420;border:1px solid #1a2035;border-radius:10px;overflow:hidden;margin-bottom:24px}
.table-header{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1.2fr 1.1fr;padding:10px 16px;background:#080b12;border-bottom:1px solid #1a2035;font-size:10px;color:#3d4f6b;text-transform:uppercase;letter-spacing:.7px}
.table-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1.2fr 1.1fr;padding:13px 16px;border-bottom:1px solid #0a0d14;cursor:pointer;transition:background .12s;align-items:center}
.table-row:last-child{border-bottom:none}
.table-row:hover{background:#111827}
.eq-name{font-size:13px;font-weight:500;color:#e2e8f0}
.eq-sn{font-size:11px;color:#3d4f6b;margin-top:2px;font-family:'JetBrains Mono',monospace}
.status-dot{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:#94a3b8}
.dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.dot.ok{background:#4ade80}
.dot.warn{background:#fbbf24}
.dot.crit{background:#f87171;box-shadow:0 0 8px rgba(248,113,113,.5)}
.progress-wrap{background:#1a2035;border-radius:4px;height:4px;width:100%;margin-bottom:4px}
.progress-bar{height:4px;border-radius:4px}
.pb-ok{background:#4ade80}
.pb-warn{background:#fbbf24}
.pb-crit{background:#f87171}
.hours-text{font-size:13px;color:#e2e8f0;font-family:'JetBrains Mono',monospace}
.hours-sub{font-size:11px;color:#3d4f6b;margin-top:2px}
.next-text{font-size:13px;font-family:'Inter',sans-serif}
.next-text.crit{color:#f87171;font-weight:500}
.next-text.warn{color:#fbbf24}
.next-text.muted{color:#3d4f6b}
.alert-badge{font-size:11px;padding:3px 9px;border-radius:12px;font-weight:500;white-space:nowrap}
.ab-ok{background:#0a1f12;color:#4ade80;border:1px solid #14532d}
.ab-warn{background:#1c1a0a;color:#fbbf24;border:1px solid #713f12}
.ab-crit{background:#1c0f0f;color:#f87171;border:1px solid #7f1d1d}
.table-footer{padding:10px 16px;font-size:12px;color:#3d4f6b;border-top:1px solid #1a2035}
.table-footer span{color:#60a5fa;cursor:pointer}

/* Detail panel */
.detail-panel{background:#0e1420;border:1px solid #1a2035;border-radius:10px;padding:22px;margin-bottom:20px}
.detail-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:22px;gap:12px;flex-wrap:wrap}
.detail-title{font-size:18px;font-weight:600;color:#e2e8f0}
.detail-sn{font-size:12px;color:#3d4f6b;margin-top:4px;font-family:'JetBrains Mono',monospace}
.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}
.detail-metric{background:#080b12;border-radius:8px;padding:14px}
.dm-label{font-size:10px;color:#3d4f6b;text-transform:uppercase;letter-spacing:.7px;margin-bottom:7px}
.dm-value{font-size:22px;font-weight:600;color:#e2e8f0}
.dm-value.crit{color:#f87171}
.dm-sub{font-size:11px;color:#3d4f6b;margin-top:4px}

/* Predict box */
.predict-box{background:#080b12;border:1px solid #1d3557;border-radius:8px;padding:16px}
.predict-header{font-size:11px;color:#60a5fa;font-weight:500;margin-bottom:8px;display:flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.6px}
.predict-text{font-size:13px;color:#94a3b8;line-height:1.65}
.predict-row{display:flex;align-items:baseline;gap:10px;margin-top:12px;flex-wrap:wrap}
.predict-prob{font-size:26px;font-weight:600;color:#fbbf24}
.predict-label{font-size:12px;color:#3d4f6b}

/* Tabs */
.nav-tabs{display:flex;gap:4px;margin-bottom:18px}
.tab{padding:7px 16px;border-radius:7px;font-size:13px;cursor:pointer;color:#64748b;transition:all .15s;user-select:none}
.tab:hover{color:#e2e8f0}
.tab.active{background:#1a2035;color:#e2e8f0}

/* History */
.history-item{display:flex;align-items:flex-start;gap:12px;padding:11px 0;border-bottom:1px solid #1a2035;font-size:13px}
.history-item:last-child{border-bottom:none}
.history-date{color:#3d4f6b;font-size:12px;min-width:96px;font-family:'JetBrains Mono',monospace;flex-shrink:0}
.history-desc{color:#94a3b8;flex:1}
.history-tech{font-size:12px;color:#60a5fa;white-space:nowrap}

/* Two col */
.detail-two-col{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;margin-bottom:20px}

/* Anomaly */
.anomaly-title{font-size:10px;font-weight:500;color:#3d4f6b;margin-bottom:12px;text-transform:uppercase;letter-spacing:.7px}
.anomaly-item{display:flex;align-items:flex-start;gap:10px;padding:11px;background:#080b12;border-radius:8px;margin-bottom:8px;border-left:3px solid transparent}
.anomaly-item.crit{border-left-color:#f87171}
.anomaly-item.warn{border-left-color:#fbbf24}
.anomaly-item.ok{border-left-color:#4ade80}
.anomaly-text{font-size:13px;color:#e2e8f0;line-height:1.5}
.anomaly-time{font-size:11px;color:#3d4f6b;margin-top:3px}
.anomaly-icon{font-size:16px;margin-top:1px;flex-shrink:0}

/* Chart */
.chart-area{background:#080b12;border-radius:8px;padding:16px}
.chart-label{font-size:10px;color:#3d4f6b;margin-bottom:14px;text-transform:uppercase;letter-spacing:.7px}
.spark{display:flex;align-items:flex-end;gap:3px;height:60px}
.spark-bar{background:#1a2a40;border-radius:2px 2px 0 0;flex:1;transition:background .2s;min-width:4px}
.spark-bar.anomaly{background:#7f1d1d}
.spark-bar.current{background:#60a5fa}

/* Action */
.action-btn{width:100%;background:#1a2a40;border:1px solid #1d4ed8;color:#60a5fa;padding:10px;border-radius:7px;font-size:13px;cursor:pointer;font-family:'Inter',sans-serif;transition:background .15s}
.action-btn:hover{background:#1d3557}
.action-hint{font-size:10px;color:#3d4f6b;margin-bottom:8px;text-transform:uppercase;letter-spacing:.7px}
.action-desc{font-size:13px;color:#94a3b8;line-height:1.65;margin-bottom:14px}

/* Alerts view */
.alert-list-item{display:flex;align-items:flex-start;gap:12px;padding:14px;background:#080b12;border-radius:8px;margin-bottom:10px;border-left:3px solid transparent;cursor:pointer;transition:background .12s}
.alert-list-item:hover{background:#0f1520}
.alert-list-item.crit{border-left-color:#f87171}
.alert-list-item.warn{border-left-color:#fbbf24}
.ali-title{font-size:14px;font-weight:500;color:#e2e8f0}
.ali-sub{font-size:12px;color:#64748b;margin-top:4px}

/* Back */
.back-btn{cursor:pointer;color:#60a5fa;font-size:13px;display:flex;align-items:center;gap:5px}
.divider{color:#1a2035;margin:0 8px}

/* Mobile bottom nav */
.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:#0a0d14;border-top:1px solid #1a2035;z-index:100;padding:0}
.bottom-nav-items{display:flex}
.bnav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 4px 12px;cursor:pointer;color:#64748b;font-size:10px;gap:4px;border:none;background:none;font-family:'Inter',sans-serif;position:relative}
.bnav-item.active{color:#60a5fa}
.bnav-item i{font-size:22px}
.bnav-badge{position:absolute;top:6px;right:calc(50% - 18px);background:#f87171;color:#fff;font-size:9px;padding:1px 5px;border-radius:8px;font-weight:600}

/* ===== RESPONSIVE ===== */
@media(max-width:900px){
  .sidebar{display:none}
  .bottom-nav{display:block}
  .main{padding:16px 14px 80px}
  .metrics{grid-template-columns:1fr 1fr}
  .table-header{grid-template-columns:2fr 1fr 1fr}
  .table-row{grid-template-columns:2fr 1fr 1fr}
  .table-header>div:nth-child(n+4),.table-row>div:nth-child(n+4){display:none}
  .detail-two-col{grid-template-columns:1fr}
  .detail-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:580px){
  .metrics{grid-template-columns:1fr 1fr}
  .metric-value{font-size:24px}
  .table-header{grid-template-columns:2fr 1fr}
  .table-row{grid-template-columns:2fr 1fr}
  .table-header>div:nth-child(n+3),.table-row>div:nth-child(n+3){display:none}
  .detail-grid{grid-template-columns:1fr 1fr}
  .topbar-title{font-size:17px}
}
@media(max-width:380px){
  .metrics{grid-template-columns:1fr 1fr}
  .detail-grid{grid-template-columns:1fr}
  .main{padding:12px 10px 80px}
}
