#dashboard-page .page-heading { margin-bottom:18px; }
.dash-heading-right,.dash-toolbar,.dash-bottom,.dash-bottom>div { display:flex; align-items:center; gap:14px; }
.dash-heading-right { color:var(--muted); font-size:12px; }
.dash-pilot { border:1px solid var(--control-line); border-radius:5px; padding:3px 9px; background:#fff; }
.dash-toolbar { margin-bottom:18px; }
.dash-toolbar>label { display:flex; align-items:center; gap:12px; font-size:13px; font-weight:600; }
.dash-toolbar input[type=date] { width:132px; height:var(--control-height); min-height:var(--control-height); padding:0 10px; border:1px solid var(--control-line); border-radius:var(--control-radius); background:var(--surface); color:var(--ink); font-size:var(--text-body); font-weight:400; }
.dash-toolbar>span { color:var(--muted); font-size:12px; }
.dash-toolbar>.text-button { margin-left:auto; }
.dash-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:20px; }
.dash-stat { border:1px solid var(--line); border-radius:var(--radius); padding:17px 20px; background:#fff; }
.dash-stat>span { display:block; color:var(--muted); font-size:13px; }
.dash-stat>strong { display:block; font-size:30px; line-height:1.35; margin:5px 0; font-variant-numeric:tabular-nums; }
.dash-stat>small { display:block; color:var(--muted); font-size:12px; }
.dash-ready { background:#f2faf6; border-color:#c9e2d6; }.dash-ready>strong { color:#146b4a; }
.dash-process>strong { color:#245fe5; }.dash-short>strong { color:#ad3e33; }
.dash-main-grid { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(330px,1fr); gap:18px; align-items:stretch; margin-bottom:18px; }
.dash-main-grid>.list-card { margin-top:0; }
#dashboard-page .list-heading { min-height:59px; padding:15px 20px 10px; }
.dash-card-caption { padding:0 20px 12px; font-size:12px; color:var(--muted); }
.dash-count { color:var(--primary); font-size:12px; font-weight:600; }
.dash-link { color:var(--muted); font-size:12px; white-space:nowrap; }.dash-link:hover,.dash-bottom a:hover,.dash-model:hover { color:var(--primary); text-decoration:underline; }
.dash-total { color:var(--muted); font-size:13px; font-variant-numeric:tabular-nums; }
#dashboard-page .dash-table { width:100%; table-layout:fixed; min-width:0; }
#dashboard-page .dash-table th,#dashboard-page .dash-table td { padding:10px 8px; text-align:center; }
#dashboard-page .dash-table th { font-size:12px; font-weight:500; }
#dashboard-page .dash-table td { font-size:13px; height:50px; }
#dashboard-page .dash-table th:first-child,#dashboard-page .dash-table td:first-child { width:66px; padding-left:16px; }
#dashboard-page .dash-table th:nth-child(2),#dashboard-page .dash-table td:nth-child(2) { width:30%; text-align:left; }
#dashboard-page .dash-table th:last-child,#dashboard-page .dash-table td:last-child { width:96px; padding-right:16px; }
.dash-model { font-weight:600; display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dash-table small { display:block; font-size:12px; color:var(--muted); }
.dash-status { display:inline-block; font-size:12px; padding:3px 8px; border-radius:5px; white-space:nowrap; background:#f0f3f8; }
.dash-status-ready { background:#e5f3ec; color:#146b4a; }.dash-status-in_process { background:#edf3ff; color:#2454ad; }.dash-status-shortage { background:#fae8e5; color:#a3382d; }.dash-status-risk { background:#fff1cf; color:#795616; }
.dash-empty { margin:0; padding:35px 20px; text-align:center; color:var(--muted); font-size:13px; }
.dash-legend { display:flex; gap:14px; padding:0 20px 13px; font-size:12px; color:var(--muted); }
.dash-legend>span { display:flex; align-items:center; gap:5px; }.dash-legend>span:before { content:''; width:8px; height:8px; border-radius:2px; }
.dash-key-ready:before,.dash-fill-ready { background:#29976c; }.dash-key-process:before,.dash-fill-in_process { background:#6899e9; }.dash-key-short:before,.dash-fill-shortage { background:#d8786d; }.dash-key-unknown:before,.dash-fill-unknown { background:#b7c1d0; }
.dash-week-chart { padding:0 20px 18px; display:grid; gap:8px; }
.dash-day { display:grid; grid-template-columns:70px 1fr 38px; align-items:center; gap:12px; min-height:25px; padding:3px 6px; border-radius:4px; }
.dash-day-label { font-size:12px; white-space:nowrap; }.dash-day>strong { font-size:13px; font-weight:600; text-align:right; }
.dash-day-track { display:flex; height:10px; border-radius:3px; overflow:hidden; background:#edf1f7; }.dash-day-track>span { height:100%; flex-shrink:0; }
.dash-saturday { background:#edf3ff; }.dash-sunday { background:#fceeed; }
.dash-stages { display:flex; padding:2px 20px 14px; gap:14px; flex-wrap:wrap; }
.dash-stage { flex:1 1 120px; padding:8px 16px; border-right:1px solid var(--line); }.dash-stage:first-child { padding-left:0; }.dash-stage:last-child { border-right:0; }
.dash-stage>span { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:13px; }.dash-stage i { width:12px; height:12px; border-radius:2px; border:1px solid #00000012; }.dash-stage>strong { display:block; margin-top:5px; font-size:23px; font-variant-numeric:tabular-nums; }
.dash-stock-note { margin:0; padding:0 20px 14px; color:var(--muted); font-size:12px; }
.dash-bottom { justify-content:space-between; margin-top:14px; color:var(--muted); font-size:12px; }
.dash-quality { padding:10px 14px; margin:-6px 0 18px; background:#fff6de; border:1px solid #eddfb8; border-radius:7px; font-size:13px; color:#78581c; }

@media (max-width: 760px) {
  .dash-main-grid { grid-template-columns: minmax(0, 1fr); }
  .dash-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dash-toolbar, .dash-bottom, .dash-legend { flex-wrap: wrap; }
  .dash-toolbar input[type=date] { font-size: 16px; }
}
