.dash-body{
  background:var(--bg);
  overflow-y:auto;
  height:auto;
  min-height:100vh;
}
.dash-topbar{
  background:var(--navy);
  color:#fff;
  padding:18px 26px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  position:sticky;
  top:0;
  z-index:5;
  border-bottom:4px solid var(--navy-2);
}
.dash-topbar h1{ margin:0 0 4px 0; font-size:20px; }
.dash-sub{ font-size:13px; opacity:.75; }
.dash-topbar-right{ display:flex; align-items:center; gap:18px; }
.dash-nav-link{
  color:#fff;
  background:rgba(255,255,255,.12);
  padding:9px 16px;
  border-radius:999px;
  text-decoration:none;
  font-size:13px;
  font-weight:700;
}

.dash-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(360px, 1fr));
  gap:18px;
  padding:20px;
}

.station-card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
}
.station-card-head{
  background:var(--navy-2);
  color:#fff;
  padding:14px 18px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.station-card-head .st-name{ font-weight:700; font-size:15px; }
.station-card-head .st-id{ font-family:var(--mono); font-size:12px; opacity:.75; }
.station-counts{
  display:flex;
  gap:10px;
  padding:10px 18px;
  border-bottom:1px solid var(--line);
  font-size:12.5px;
}
.st-pill{
  padding:4px 10px;
  border-radius:999px;
  font-weight:700;
}
.st-pill.duty{ background:var(--duty-bg); color:var(--duty-strong); }
.st-pill.away{ background:var(--break-bg); color:var(--break-strong); }
.st-pill.overdue{ background:#FBE3E3; color:var(--danger); }

.wo-table{ width:100%; border-collapse:collapse; }
.wo-table th{
  text-align:left;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.4px;
  color:var(--ink-soft);
  padding:8px 14px 6px 14px;
  border-bottom:1px solid var(--line);
}
.wo-table td{
  padding:10px 14px;
  border-bottom:1px solid var(--line);
  font-size:13.5px;
  vertical-align:top;
}
.wo-table tr:last-child td{ border-bottom:none; }
.wo-num{ font-family:var(--mono); font-weight:700; }
.wo-desc{ color:var(--ink-soft); font-size:12px; margin-top:2px; }
.wo-status{
  display:inline-block;
  font-size:11px;
  font-weight:700;
  padding:2px 9px;
  border-radius:999px;
}
.wo-status.progress{ background:var(--duty-bg); color:var(--duty-strong); }
.wo-status.hold{ background:var(--break-bg); color:var(--break-strong); }
.wo-status.completed{ background:#E4E7EA; color:var(--ink-soft); }
.wo-status.cancel{ background:#FBE3E3; color:var(--danger); }
.wo-time{ font-family:var(--mono); font-weight:700; }
.wo-progress-track{
  background:#EEF1F4;
  border-radius:999px;
  height:6px;
  margin-top:6px;
  overflow:hidden;
  width:110px;
}
.wo-progress-fill{
  height:100%;
  background:var(--duty-strong);
}
.wo-progress-fill.over{ background:var(--danger); }
.wo-active-ops{ font-size:11.5px; color:var(--duty-strong); margin-top:4px; }
.dash-empty{
  padding:40px;
  text-align:center;
  color:var(--ink-soft);
  grid-column:1 / -1;
}
