.app-shell:has(.dashboard-view) .page-heading p { font-size: 13px; line-height: 1.4; }

.dashboard-view { display: grid; gap: 22px; }
.dashboard-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; }
.dashboard-kpi, .dashboard-panel { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }
.dashboard-kpi { min-height: 118px; display: grid; grid-template-columns: 50px minmax(0, 1fr); align-items: center; gap: 16px; padding: 17px 19px; }
.kpi-icon { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 50%; background: var(--brand-soft); color: var(--brand); }
.kpi-icon svg { width: 25px; height: 25px; stroke-width: 2; }
.dashboard-kpi > div { min-width: 0; display: grid; align-content: center; }
.dashboard-kpi > div > span, .dashboard-kpi small { display: block; color: var(--ink-soft); font-size: 13px; line-height: 1.35; }
.dashboard-kpi > div > span { color: var(--ink); font-weight: 700; }
.dashboard-kpi strong { display: block; margin: 3px 0 4px; color: #10233f; font-size: 34px; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.dashboard-kpi small { font-weight: 500; }
.tone-green .kpi-icon { background: var(--success-soft); color: var(--success); }
.tone-amber .kpi-icon { background: var(--warning-soft); color: var(--warning); }
.tone-red .kpi-icon { background: var(--danger-soft); color: var(--danger); }
.tone-purple .kpi-icon { background: var(--purple-soft); color: var(--purple); }

.dashboard-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.dashboard-panel { min-width: 0; padding: 18px; }
.panel-heading { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.panel-heading h2 { margin: 0; color: #1c2d45; font-size: 14px; font-weight: 800; letter-spacing: .01em; text-transform: uppercase; }
.dashboard-view-all { min-height: 34px; padding: 6px 12px; border-color: #d4e0eb; border-radius: 7px; color: var(--brand-dark); font-size: 12px; font-weight: 700; white-space: nowrap; }
.dashboard-view-all:hover { border-color: #abc8e3; background: var(--brand-soft); color: var(--brand-dark); }

.attention-list { display: grid; }
.attention-item { min-height: 56px; display: flex; align-items: center; gap: 11px; padding: 7px 0; border-bottom: 1px solid var(--line-soft); }
.attention-item:last-child { border-bottom: 0; }
.attention-icon { width: 32px; height: 32px; flex: 0 0 32px; display: grid; place-items: center; border-radius: 7px; background: var(--brand-soft); color: var(--brand-dark); }
.attention-icon svg { width: 18px; height: 18px; }
.attention-item > div { flex: 1; min-width: 0; }
.attention-item b, .attention-item small { display: block; }
.attention-item b { overflow: hidden; color: #1a2d48; font-size: 14px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.attention-item small { margin-top: 2px; color: var(--ink-soft); font-size: 12px; line-height: 1.3; }
.attention-item > .status-pill { min-width: 82px; margin-left: 4px; padding-right: 9px; padding-left: 9px; font-size: 11px; }

.unit-list, .notice-list { display: grid; padding-top: 4px; }
.unit-list { gap: 7px; }
.unit-row { min-height: 22px; display: grid; grid-template-columns: 136px minmax(80px, 1fr) 46px; align-items: center; gap: 11px; color: #263850; font-size: 12px; line-height: 1.3; }
.unit-row > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.unit-row > b { justify-self: end; min-width: 42px; color: #1b2e49; font-size: 12px; font-variant-numeric: tabular-nums; text-align: right; }
.unit-bar { height: 6px; overflow: hidden; border-radius: 999px; background: #e7eef5; box-shadow: inset 0 1px 1px rgba(15, 50, 80, .05); }
.unit-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #2b8eed, #1576d6); }
.bar-70 { width: 70%; }.bar-75 { width: 75%; }.bar-80 { width: 80%; }.bar-83 { width: 83%; }.bar-100 { width: 100%; }

.notice-list p { min-height: 50px; display: flex; align-items: flex-start; gap: 10px; margin: 0; padding: 10px 0; border-bottom: 1px solid var(--line-soft); color: #2c3d54; font-size: 13px; line-height: 1.45; }
.notice-list p:last-child { border-bottom: 0; }
.notice-dot { width: 8px; height: 8px; flex: 0 0 8px; margin-top: 5px; border-radius: 50%; background: var(--brand); }
.notice-dot.is-warning { background: #f59e0b; }.notice-dot.is-danger { background: var(--danger); }

.dashboard-table-panel { padding: 0; overflow: hidden; }
.dashboard-table-panel .panel-heading { margin: 0; padding: 13px 18px; border-bottom: 1px solid var(--line-soft); }
.dashboard-table-scroll { overflow-x: auto; }
.dashboard-table { min-width: 760px; }
.dashboard-table th { padding-top: 12px; padding-bottom: 12px; background: #f6f8fb; color: #53657c; font-size: 12px; letter-spacing: .015em; }
.dashboard-table td { padding-top: 12px; padding-bottom: 12px; color: #2c3c52; font-size: 13px; line-height: 1.35; }
.dashboard-table td:first-child b { color: #172b47; font-size: 13px; }
.dashboard-table tbody tr { transition: background-color .14s ease; }
.dashboard-table tbody tr:hover { background: #f8fbfe; }
.dashboard-table th:nth-child(4), .dashboard-table th:nth-child(5), .dashboard-table td:nth-child(4), .dashboard-table td:nth-child(5) { text-align: center; }
.dashboard-table .status-pill { min-width: 76px; font-size: 11px; vertical-align: middle; }

@media (max-width: 1380px) and (min-width: 1181px) {
  .dashboard-kpis { gap: 14px; }
  .dashboard-kpi { grid-template-columns: 44px minmax(0, 1fr); gap: 11px; padding-right: 14px; padding-left: 14px; }
  .kpi-icon { width: 44px; height: 44px; }
  .dashboard-kpi strong { font-size: 31px; }
}
@media (max-width: 1180px) {
  .dashboard-kpis { grid-template-columns: repeat(3, 1fr); }
  .dashboard-grid { grid-template-columns: 1fr 1fr; }
  .dashboard-grid .dashboard-panel:last-child { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .dashboard-kpis { grid-template-columns: 1fr 1fr; gap: 12px; }
  .dashboard-grid { grid-template-columns: 1fr; gap: 12px; }
  .dashboard-grid .dashboard-panel:last-child { grid-column: auto; }
  .dashboard-kpi { min-height: 108px; padding: 14px; }
  .unit-row { grid-template-columns: 118px minmax(70px, 1fr) 42px; gap: 8px; }
}
