:root{
  --bg:#f4f6f8;
  --panel:#fff;
  --line:#d9e0e7;
  --soft-line:#edf1f5;
  --text:#17202a;
  --muted:#657285;
  --subtle:#f8fafc;
  --ink:#0f172a;
  --good:#116a3a;
  --good-bg:#e9f7ee;
  --warn:#9a5b00;
  --warn-bg:#fff5df;
  --bad:#a91f2d;
  --bad-bg:#fff0f1;
  --blue:#1859a8;
  --blue-bg:#eef5ff;
  --focus:#2563eb;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,Roboto,Arial,sans-serif;font-size:14px}
button,select,input{font:inherit}
button,select{border:1px solid #c7d0dc;border-radius:6px;background:#fff;min-height:32px;padding:6px 9px;color:var(--text)}
button{cursor:pointer}
button:hover,select:hover{border-color:#94a3b8}
button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.dashboard-hero{background:#fff;border-bottom:1px solid var(--line);padding:18px 24px 16px}
.hero-top{max-width:1220px;margin:0 auto 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
h1{font-size:20px;line-height:1.1;letter-spacing:.04em;margin:0;color:var(--ink)}
.hero-top p{margin:5px 0 0;color:var(--muted);font-size:13px}
.latest-observation{text-align:right;color:var(--muted);font-size:12px;white-space:nowrap}
.latest-observation span{display:block;text-transform:uppercase;font-weight:700;letter-spacing:.03em}
.latest-observation strong{display:block;margin-top:3px;color:var(--ink);font-size:16px;font-weight:750}
.summary-grid{max-width:1220px;margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.metric{border:1px solid var(--line);border-radius:6px;background:#fbfdff;padding:9px 11px;min-height:58px}
.metric strong{display:block;font-size:21px;line-height:1;font-weight:780;color:var(--ink)}
.metric span{display:block;margin-top:7px;color:var(--muted);font-size:12px}
main{max-width:1220px;margin:16px auto 32px;padding:0 16px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:7px;margin:12px 0;overflow-x:auto}
.option-panel{padding:12px}
.timeline-panel{padding:0;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.explorer-panel{padding:14px;overflow:visible}
.summary-panel,.comparison-panel{padding:12px}
.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:10px}
h2{font-size:16px;line-height:1.2;margin:0;color:var(--ink)}
.result-counter{font-size:13px;font-weight:700;color:#475569;white-space:nowrap}
.option-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}
.option-tab{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:5px;min-height:72px;padding:13px 14px;border-color:var(--line);background:#fbfdff}
.option-tab span{font-size:12px;font-weight:800;letter-spacing:.04em;color:var(--muted)}
.option-tab strong{font-size:18px;line-height:1.2;color:var(--ink)}
.option-tab.active{background:#101827;border-color:#101827;box-shadow:0 8px 20px rgba(15,23,42,.14)}
.option-tab.active span,.option-tab.active strong{color:#fff}
.leg-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.leg-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;text-align:left;column-gap:10px;min-height:54px;border:1px solid var(--line);background:#fff;border-radius:6px;padding:8px 10px}
.leg-card span{font-size:12px;font-weight:800;color:var(--ink);text-transform:uppercase}
.leg-card small{color:var(--muted);font-size:12px}
.leg-card strong{font-size:15px;color:var(--ink)}
.leg-card em{font-style:normal;font-size:12px;font-weight:800;color:#475569;border:1px solid var(--line);border-radius:999px;padding:3px 7px;background:var(--subtle)}
.leg-card.active{border-color:#101827;background:#f3f6fa;box-shadow:inset 3px 0 0 #101827}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.tabs button{min-height:28px;padding:4px 9px;font-size:12px;font-weight:750}
button.active{background:#101827;color:#fff;border-color:#101827}
.filter-panel{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin:2px 0 8px;padding:8px;border:1px solid var(--soft-line);border-radius:6px;background:#fbfdff}
.filter-select{display:flex;align-items:center;gap:5px}
.filter-select span{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase}
.filter-select select{min-height:30px;min-width:96px;max-width:150px;padding:4px 24px 4px 8px;font-size:13px}
.check-filter{display:flex;gap:6px;align-items:center;min-height:30px;padding:0 3px;color:#334155;font-size:13px;font-weight:650;white-space:nowrap}
.reset-filter{min-height:30px;padding:4px 10px;font-size:13px;font-weight:750;background:#fff}
.filter-chips{display:flex;gap:6px;flex-wrap:wrap;min-height:0;margin:0 0 8px}
.filter-chips span{border:1px solid var(--line);border-radius:999px;background:#fff;padding:3px 8px;font-size:12px;color:#334155}
.explorer-controls{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin:4px 0 10px;padding:8px;border:1px solid var(--soft-line);border-radius:6px;background:#fbfdff}
.explorer-controls .filter-select select{min-width:150px;max-width:260px}
.segmented{display:inline-flex;border:1px solid #c7d0dc;border-radius:6px;overflow:hidden;background:#fff;min-height:32px}
.segmented button{border:0;border-right:1px solid #d9e0e7;border-radius:0;min-height:30px;padding:5px 10px;background:#fff;font-size:13px;font-weight:750}
.segmented button:last-child{border-right:0}
.segmented button.active{background:#101827;color:#fff}
.explorer-warning{min-height:18px;color:var(--bad);font-size:13px;font-weight:750}
.explorer-grid{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:12px;align-items:start}
.train-detail{min-width:0}
.train-detail[hidden]{display:none}
.explorer-grid.compare-mode{grid-template-columns:1fr}
.detail-card{border:1px solid var(--soft-line);border-radius:6px;background:#fbfdff;padding:8px 10px}
.detail-row{display:grid;grid-template-columns:120px 1fr;gap:8px;align-items:center;border-bottom:1px solid var(--soft-line);padding:7px 0}
.detail-row:last-child{border-bottom:0}
.detail-row span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}
.detail-row strong{color:var(--ink);font-size:13px;font-weight:800;min-width:0;overflow-wrap:anywhere}
.release-callout{margin-top:10px;border:1px solid #bdd7ff;border-radius:6px;background:#f3f8ff;padding:10px;color:#174176}
.release-callout h3{margin:0 0 5px;font-size:12px;text-transform:uppercase;color:#174176}
.release-callout p{margin:0 0 4px;font-weight:800}
.release-callout strong,.release-callout span{display:block;margin-top:3px}
.chart-area{position:relative;min-width:0;border:1px solid var(--soft-line);border-radius:6px;background:#fff;padding:8px;overflow:hidden}
.chart-area.chart-full{grid-column:1 / -1}
#capacity-chart{display:block;width:100%;height:420px}
.chart-tooltip{position:absolute;z-index:4;min-width:176px;max-width:220px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.16);padding:8px;color:var(--ink);pointer-events:none;font-size:12px}
.chart-tooltip strong,.chart-tooltip span{display:block;margin:2px 0}
.train-status-overview,.compare-controls{margin-top:10px}
.compare-box{border:1px solid var(--soft-line);border-radius:6px;background:#fbfdff;padding:8px;margin-bottom:10px}
.compare-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.compare-title strong{font-size:13px;text-transform:uppercase;color:var(--ink)}
.compare-title span{font-size:12px;font-weight:800;color:var(--muted)}
.selected-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;min-height:0}
.selected-chips button{min-height:26px;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:800;background:#eef5ff;color:#174176;border-color:#bdd7ff}
.preset-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.preset-row button{min-height:28px;padding:4px 8px;font-size:12px;font-weight:800}
.compare-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px}
.compare-list label{display:flex;gap:6px;align-items:center;color:#334155;font-size:13px}
.status-table-wrap{overflow-x:auto}
.status-table{min-width:620px}
.status-table th{position:static;cursor:default}
.comparison-summary h3{margin:0 0 8px;font-size:13px;text-transform:uppercase;color:var(--ink)}
.compare-summary-table{min-width:980px}
.timeline-panel details>summary,.train-summary-details summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:10px 12px;font-weight:800;color:var(--ink)}
.timeline-panel details>summary strong,.train-summary-details summary strong{font-size:12px;color:var(--muted)}
.timeline-panel details[open]>summary{border-bottom:1px solid var(--soft-line)}
.timeline-panel details[open]{padding-bottom:10px}
.timeline-panel .raw-heading,.timeline-panel .filter-panel,.timeline-panel .filter-chips,.timeline-panel #timeline{margin-left:14px;margin-right:14px}
.timeline-panel .raw-heading{margin-top:12px}
table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;min-width:1020px}
th,td{border-bottom:1px solid var(--soft-line);padding:7px 8px;text-align:left;white-space:nowrap;vertical-align:middle}
th{background:#fbfdff;position:sticky;top:0;cursor:pointer;z-index:2;color:#475569;font-size:12px;font-weight:800}
th.sort-active{color:var(--ink);background:#eef5ff}
tbody tr:hover td{background:#fbfdff}
.timeline-table td{height:38px}
.timeline-table th:nth-child(1),.timeline-table td:nth-child(1){min-width:64px}
.timeline-table th:nth-child(2),.timeline-table td:nth-child(2){min-width:82px}
.timeline-table th:nth-child(3),.timeline-table td:nth-child(3){min-width:96px}
.timeline-table th:nth-child(4),.timeline-table td:nth-child(4){min-width:76px}
.timeline-table th:nth-child(11),.timeline-table td:nth-child(11){min-width:158px}
.dday-group td{height:30px;background:#f5f7fa!important;border-bottom:1px solid #dce3eb;border-top:1px solid #dce3eb;color:#334155;font-weight:850}
.dday-group span{display:flex;align-items:center;gap:10px}
.dday-group span:before,.dday-group span:after{content:"";height:1px;background:#cbd5e1;flex:1}
.observed-short{display:flex;flex-direction:column;gap:1px;line-height:1.05}
.observed-short span{color:var(--muted);font-size:12px}
.observed-short strong{color:var(--ink);font-size:13px;font-weight:780}
.train-number{font-weight:780;color:var(--ink)}
.numeric{font-variant-numeric:tabular-nums;text-align:right}
.brand{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:800;letter-spacing:.02em}
.brand-AFROSIYOB{background:var(--good-bg);color:var(--good)}
.brand-SHARQ{background:var(--warn-bg);color:var(--warn)}
.brand-JALOLIDDIN_MANGUBARDI{background:var(--blue-bg);color:var(--blue)}
.event{display:inline-flex;align-items:center;gap:4px;border-radius:999px;background:#eef2f7;color:#475569;padding:4px 8px;font-size:11px;font-weight:800;letter-spacing:.01em}
.event-important{background:var(--good-bg);color:var(--good);box-shadow:inset 0 0 0 1px #b7e4c6}
.event-negative{background:var(--bad-bg);color:var(--bad);box-shadow:inset 0 0 0 1px #ffc8ce}
.event-routine,.event-muted{background:#f3f5f7;color:#7b8794;font-weight:700}
.important-row td{background:#f7fff9}
.negative-row td{background:#fff8f8}
.routine-row td{color:#7b8794;background:#fcfdfe}
.delta-pos,.delta-neg{font-weight:900;font-variant-numeric:tabular-nums}
.delta-pos{color:var(--good)}
.delta-neg{color:var(--bad)}
.muted{color:var(--muted);font-size:13px}
.empty-state{padding:22px 8px;text-align:center}
.train-summary-details{border:1px solid var(--soft-line);border-radius:6px;background:#fbfdff}
.table-scroll{overflow-x:auto;border-top:1px solid var(--soft-line)}
.release-window{background:#fbfdff;color:#334155;font-size:12px}
.comparison-panel h2{margin-bottom:10px}
.comparison-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.comparison-card{border:1px solid var(--soft-line);border-radius:6px;background:#fbfdff;padding:10px}
.comparison-card h3{margin:0;color:var(--ink);font-size:14px}
.comparison-card p{margin:3px 0 8px;color:var(--muted);font-size:13px}
.comparison-leg{display:grid;grid-template-columns:56px 1fr minmax(160px,auto);gap:8px;border-top:1px solid var(--soft-line);padding:7px 0;font-size:13px}
.comparison-leg span{color:var(--muted)}
.comparison-leg strong{color:var(--ink)}
.comparison-leg em{font-style:normal;color:#475569}
@media (max-width:900px){
  .dashboard-hero{padding:16px}
  .hero-top{display:block}
  .latest-observation{text-align:left;margin-top:12px}
  .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  main{padding:0 10px}
  .option-tabs,.leg-cards,.comparison-grid{grid-template-columns:1fr}
  .explorer-grid{grid-template-columns:1fr}
  .explorer-controls{align-items:stretch}
  .explorer-controls .filter-select{width:100%;justify-content:space-between}
  .explorer-controls .filter-select select{flex:1;max-width:none}
  .segmented{width:100%;display:flex}
  .segmented button{flex:1}
  .leg-card{grid-template-columns:1fr auto}
  .leg-card small{grid-row:2}
  .leg-card strong{grid-column:1 / -1}
  .comparison-leg{grid-template-columns:1fr}
}
