/* Phase 5 planning: compact evidence surfaces within the established SOS palette. */
.planning-filters { margin-bottom: 13px; padding: 15px 17px; }
.planning-filter-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; }
.planning-filter-grid .field { min-width: 0; }
.planning-filter-grid .input { width: 100%; }
.planning-filter-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding-top: 12px; margin-top: 12px; border-top: 1px solid var(--line); }
.planning-filter-note { margin: 9px 0 0; color: var(--muted); font-size: var(--step--1); }
.planning-approval { display: flex; align-items: flex-start; gap: 11px; margin-bottom: 13px; padding: 11px 14px; border-inline-start: 4px solid #c18a22; background: #fff8e9; color: var(--ink); font-size: var(--step--1); }
.planning-approval strong { color: #795b1e; white-space: nowrap; }
.planning-asof { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.planning-loading { color: var(--muted); font-size: var(--step--1); }
.planning-error { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; border-inline-start: 4px solid var(--bad-ink); }
.planning-error p { margin: 0; color: var(--bad-ink); }
.planning-error[hidden] { display: none; }
.planning-summary, .planning-financial-panel, .planning-list { min-width: 0; margin-bottom: 13px; }
.planning-panel-head, .planning-list-head { align-items: flex-start; justify-content: space-between; gap: 15px; }
.planning-panel-head h2, .planning-list-head h2 { margin-bottom: 3px; }
.planning-panel-head p, .planning-list-head p { margin: 0; }
.planning-panel-head > time { white-space: nowrap; }
.planning-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.planning-metric { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 3px; padding: 11px 12px; border: 0; border-inline-end: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #f5fafc; color: inherit; text-align: start; cursor: default; }
.planning-metric:nth-child(4n) { border-inline-end: 0; }
.planning-pager .btn:focus-visible, .planning-asset-link:focus-visible { outline: 3px solid var(--sos-deep); outline-offset: 2px; }
.planning-metric b { color: var(--navy); font-size: var(--step-1); font-variant-numeric: tabular-nums; }
.planning-metric span { color: var(--muted); font-size: 12px; line-height: 1.35; }
.planning-metric.attention b { color: var(--bad-ink); }
.planning-data-note { margin: 10px 0 0; color: var(--muted); font-size: var(--step--1); }
.planning-financial-panel .panel-head { align-items: flex-start; }
.planning-financial-panel .panel-head h2 { margin-bottom: 3px; }
.planning-financial-panel .panel-head p { margin: 0; }
.planning-table-scroll { width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
.planning-table { width: 100%; border-collapse: collapse; font-size: var(--step--1); }
.planning-table th, .planning-table td { padding: 8px 9px; border-bottom: 1px solid var(--line); text-align: start; vertical-align: top; }
.planning-table thead th { color: var(--muted); background: #f5fafc; font-size: 12px; font-weight: 700; white-space: nowrap; }
.planning-table tbody th { color: var(--navy); font-weight: 700; }
.planning-table td { font-variant-numeric: tabular-nums; }
.planning-table tr:last-child > * { border-bottom: 0; }
.planning-financial-panel .planning-table { min-width: 600px; }
.planning-list .planning-table { min-width: 1620px; }
.planning-asset-link { text-underline-offset: 2px; }
.planning-total { color: var(--navy); white-space: nowrap; font-variant-numeric: tabular-nums; }
.planning-pager { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 12px; padding-top: 12px; }
.planning-pager .btn { min-height: 38px; }
.planning-empty { padding: 22px 14px; border: 1px dashed var(--line); border-radius: 5px; background: #f8fbfc; text-align: center; }
.planning-empty strong { display: block; color: var(--navy); margin-bottom: 3px; }
.planning-empty p { margin: 0; color: var(--muted); font-size: var(--step--1); }
@media (max-width: 900px) {
  .planning-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .planning-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .planning-metric:nth-child(4n) { border-inline-end: 1px solid var(--line); }
  .planning-metric:nth-child(3n) { border-inline-end: 0; }
}
@media (max-width: 600px) {
  .planning-filters { padding: 13px; }
  .planning-filter-grid { grid-template-columns: minmax(0, 1fr); }
  .planning-filter-actions .btn { flex: 1 1 auto; }
  .planning-approval { flex-direction: column; gap: 3px; }
  .planning-approval strong { white-space: normal; }
  .planning-panel-head, .planning-list-head { flex-direction: column; }
  .planning-panel-head > time { white-space: normal; }
  .planning-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .planning-metric:nth-child(3n) { border-inline-end: 1px solid var(--line); }
  .planning-metric:nth-child(2n) { border-inline-end: 0; }
  .planning-error { align-items: flex-start; flex-direction: column; }
  .planning-pager { gap: 7px; }
  .planning-pager .small { flex: 1 0 100%; order: -1; text-align: center; }
}
