  :root{
    --bg:#020817;
    --panel:#071224;
    --panel-2:#0b1730;
    --card:#5b0909;
    --card-border:#c42026;
    --text:#f6ecec;
    --muted:#d9c9c9;
    --accent:#ffd24d;
    --good:#66f4b6;
    --bad:#ff9b9b;
    --line:#183055;
  }
  *{box-sizing:border-box}
  html,body{height:100%}
  body{
    margin:0;
    font-family: Arial, Helvetica, sans-serif;
    background: radial-gradient(circle at top left, #06173a 0%, var(--bg) 46%);
    color:var(--text);
  }
  .shell{
    width:min(96vw, 1700px);
    margin:0 auto;
  }
  .panel{
    background:rgba(7,18,36,.94);
    border:1px solid rgba(196,32,38,.85);
    border-radius:32px;
    box-shadow:0 18px 60px rgba(0,0,0,.42);
  }
  .kpi-card{
    background:linear-gradient(180deg, #650909 0%, #4e0707 100%);
    border:1px solid rgba(196,32,38,.9);
    border-radius:28px;
    box-shadow:0 14px 34px rgba(0,0,0,.34);
    min-height:230px;
    padding:24px 26px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
  }
  .soft-card{
    background:linear-gradient(180deg, rgba(11,23,48,.95) 0%, rgba(7,18,36,.95) 100%);
    border:1px solid rgba(196,32,38,.55);
    border-radius:28px;
    box-shadow:0 14px 34px rgba(0,0,0,.30);
  }
  .metric-main{
    font-size:clamp(1.2rem, 1.6vw, 2rem);
    line-height:1.08;
    font-weight:800;
    letter-spacing:-0.03em;
    word-break:break-word;
  }
  .metric-sub{
    font-size:clamp(0.95rem, 1.1vw, 1.2rem);
    line-height:1.1;
    font-weight:700;
  }
  .tab-btn{
    border:1px solid rgba(196,32,38,.45);
    background:rgba(11,23,48,.88);
    color:#f8e7e7;
    padding:12px 18px;
    border-radius:16px;
    font-weight:700;
    transition:.18s ease;
  }
  .tab-btn:hover,.tab-btn.active{
    background:#7a1111;
    border-color:#db2d33;
    transform:translateY(-1px);
  }
  .pill{
    display:inline-block;
    padding:7px 11px;
    border-radius:999px;
    font-size:12px;
    font-weight:700;
    letter-spacing:.02em;
  }
  .pill-amber{ background:rgba(255,210,77,.15); color:var(--accent); border:1px solid rgba(255,210,77,.35);}
  .pill-green{ background:rgba(102,244,182,.12); color:var(--good); border:1px solid rgba(102,244,182,.28);}
  .pill-red{ background:rgba(255,155,155,.12); color:var(--bad); border:1px solid rgba(255,155,155,.28);}
  .highlight{color:var(--accent); font-weight:800;}
  .table-wrap{overflow:auto}
  table{width:100%; border-collapse:collapse}
  th,td{padding:12px 14px; border-bottom:1px solid rgba(255,255,255,.06)}
  th{position:sticky; top:0; background:#0b1730; z-index:1}
  .num{text-align:right; white-space:nowrap}
  .family-chip{
    padding:7px 11px; border-radius:999px; font-size:12px; font-weight:700;
    border:1px solid rgba(255,255,255,.12);
  }
  .chart-box{height:min(52vh, 520px);}
  .small-chart-box{height:min(44vh, 430px);}
  .landing-copy{font-size:clamp(1.2rem,1.6vw,1.9rem); line-height:1.55; color:#f0dede;}
  .err{
    background:rgba(123,18,18,.35);
    border:1px solid rgba(255,155,155,.45);
    color:#ffdada;
    border-radius:20px;
    padding:14px 16px;
  }
  @media (max-width: 1100px){
    .landing-grid,.dash-grid-2,.dash-grid-3,.kpi-grid{grid-template-columns:1fr!important}
    .chart-box,.small-chart-box{height:420px}
  }
  @media (max-width: 700px){
    .metric-main{font-size:2.2rem}
    .metric-sub{font-size:1.4rem}
    .kpi-card{min-height:200px;padding:20px}
    .chart-box,.small-chart-box{height:340px}
  }

  .heatmap-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
  }
  .heatmap-cell{
    border-radius:24px;
    padding:22px;
    border:1px solid rgba(196,32,38,.55);
    box-shadow:0 12px 28px rgba(0,0,0,.28);
  }
  .driver-chip{
    display:inline-block;
    padding:6px 10px;
    border-radius:999px;
    font-size:12px;
    font-weight:700;
    border:1px solid rgba(255,255,255,.14);
    background:rgba(255,255,255,.05);
  }
  .sim-input{
    width:100%;
    accent-color:#ffd24d;
  }
  .sim-card{
    background:linear-gradient(180deg, rgba(11,23,48,.95) 0%, rgba(7,18,36,.95) 100%);
    border:1px solid rgba(196,32,38,.45);
    border-radius:24px;
    padding:20px;
  }
