.sp-dashboard {
  --d-ink: #17243c; --d-muted: #52627b; --d-line: #e1e7f0;
  --d-surface: #fff; --d-soft: #f5f7fb; --d-accent: #3155dc;
  --d-in: #087e71; --d-out: #b74358; --d-shadow: 0 4px 18px rgb(24 47 85 / .035);
  color: var(--d-ink); font: 400 1rem/1.5 Inter, ui-sans-serif, system-ui, sans-serif;
  width: 100%; max-width: 1560px; margin-inline: auto; padding: 4px 0 48px;
  font-variant-numeric: tabular-nums; isolation: isolate;
}
.sp-dashboard *, .sp-dashboard *::before, .sp-dashboard *::after { box-sizing: border-box; }
.sp-dashboard :where(h1, h2, h3, p, ul, dl, dd) { margin: 0; }
.sp-dashboard :where(ul) { padding: 0; list-style: none; }
.sp-dashboard :where(button, summary) { font: inherit; -webkit-tap-highlight-color: transparent; }
.sp-dashboard button { cursor: pointer; }
.sp-dashboard button:disabled { cursor: wait; opacity: .55; }
.sp-dashboard :where(button, summary, a):focus-visible { outline: 3px solid #4267e9; outline-offset: 4px; }
.sp-dashboard button, .sp-dashboard summary { touch-action: manipulation; }
.sp-dashboard h1 { font-size: clamp(1.7rem, 3vw, 2.15rem); font-weight: 720; line-height: 1.2; letter-spacing: -.035em; margin-block: 5px 7px; }
.sp-dashboard h2 { font-size: 1.05rem; font-weight: 680; letter-spacing: -.015em; line-height: 1.4; }
.sp-dashboard h3 { font-size: .9rem; font-weight: 650; margin-bottom: 14px; }
.sp-dashboard small { font-size: .8125rem; }
.sp-d-page-head, .sp-d-header-actions, .sp-d-context, .sp-d-card-head, .sp-d-split,
.sp-d-metric-top, .sp-d-metric-foot, .sp-d-pagination { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.sp-d-page-head { padding: 4px 0 23px; align-items: flex-start; }
.sp-d-page-head > div { min-width: 0; }
.sp-d-eyebrow { color: var(--d-muted); font-size: .875rem; font-weight: 560; overflow-wrap: anywhere; }
.sp-d-welcome { color: var(--d-muted); font-size: .9375rem; }
.sp-d-header-actions { gap: 10px; padding-top: 9px; flex-wrap: wrap; justify-content: flex-end; }
.sp-d-currency { border: 1px solid var(--d-line); background: var(--d-surface); border-radius: 8px; padding: 10px 13px; font-size: .875rem; font-weight: 650; }
.sp-d-context { justify-content: flex-start; flex-wrap: wrap; color: var(--d-muted); font-size: .875rem; border-top: 1px solid var(--d-line); padding-block: 14px 22px; column-gap: 24px; row-gap: 5px; }
.sp-d-updated { margin-left: auto; font-size: .8125rem; }
.sp-d-button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 44px; border: 1px solid var(--d-line); border-radius: 9px; background: var(--d-surface); color: var(--d-ink); padding: 9px 13px; font-size: .875rem !important; font-weight: 580 !important; line-height: 1.4 !important; text-align: center; }
.sp-d-button:hover:not(:disabled) { background: var(--d-soft); border-color: #b7c5dc; }
.sp-d-button.sp-d-primary { background: var(--d-accent); border-color: var(--d-accent); color: #fff; }
.sp-d-icon { display: inline-block; width: 19px; height: 19px; flex-shrink: 0; }
.sp-d-link { display: inline-flex; justify-content: flex-end; align-items: center; gap: 5px; min-height: 44px; border: 0; padding: 6px 0 6px 6px; background: transparent; color: var(--d-accent); font-size: .875rem !important; font-weight: 600 !important; flex-shrink: 0; }
.sp-d-link .sp-d-icon { width: 15px; height: 15px; }
.sp-d-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.sp-d-content { display: grid; gap: 22px; }
.sp-d-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 205px), 1fr)); gap: 16px; }
.sp-d-metric { display: flex; flex-direction: column; min-width: 0; padding: 21px 22px 14px; border: 1px solid var(--d-line); border-radius: 15px; background: var(--d-surface); box-shadow: var(--d-shadow); }
.sp-d-metric h2 { font-size: .875rem; font-weight: 560; letter-spacing: 0; }
.sp-d-metric-top { align-items: flex-start; color: var(--d-muted); }
.sp-d-metric-top > .sp-d-icon { opacity: .8; }
.sp-d-metric-value { font-size: clamp(1.7rem, 2.5vw, 2.25rem); font-weight: 700; letter-spacing: -.04em; line-height: 1.35; margin: 15px 0 8px !important; overflow-wrap: anywhere; }
.sp-d-metric-foot { margin-top: auto; font-size: .8125rem; gap: 8px; min-height: 44px; }
.sp-d-metric-foot .sp-d-muted { font-size: .8125rem; }
.sp-d-metric-accent { --d-muted: #d6defd; --d-accent: #fff; color: #fff; background: #223a86; border-color: #223a86; }
.sp-d-muted { color: var(--d-muted); font-size: .875rem; line-height: 1.5; }
.sp-d-quick { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.sp-d-quick-label { font-size: .875rem; font-weight: 650; margin-right: 8px; }
.sp-d-quick .sp-d-button { border-color: transparent; background: transparent; padding: 9px 10px; }
.sp-d-quick .sp-d-icon { color: var(--d-muted); width: 17px; height: 17px; }
.sp-d-main-grid { display: grid; grid-template-columns: minmax(0, 1.85fr) minmax(280px, 1fr); gap: 22px; align-items: stretch; }
.sp-d-main-grid.sp-d-no-chart { grid-template-columns: 1fr; }
.sp-d-secondary-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 22px; align-items: start; }
.sp-d-secondary-grid:empty { display: none; }
.sp-d-card { min-width: 0; background: var(--d-surface); border: 1px solid var(--d-line); border-radius: 15px; padding: 23px 24px; box-shadow: var(--d-shadow); }
.sp-d-card-head { align-items: flex-start; margin-bottom: 22px; gap: 12px; }
.sp-d-card-head > div { min-width: 0; }
.sp-d-card-head .sp-d-muted { margin-top: 4px; }
.sp-d-card-head .sp-d-link { margin-top: -10px; }
.sp-d-periods { display: inline-flex; flex-wrap: wrap; padding: 4px; background: var(--d-soft); border: 1px solid var(--d-line); border-radius: 10px; gap: 3px; margin-bottom: 22px; }
.sp-d-periods button { min-height: 40px; border: 0; padding: 7px 14px; border-radius: 7px; background: transparent; color: var(--d-muted); font-size: .875rem; }
.sp-d-periods button[aria-pressed=true] { background: var(--d-surface); color: var(--d-accent); box-shadow: 0 1px 5px rgb(30 50 90 / .12); font-weight: 650; }
.sp-d-cash-totals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; padding-bottom: 10px; }
.sp-d-cash-totals dt { display: flex; align-items: center; gap: 7px; color: var(--d-muted); font-size: .875rem; }
.sp-d-cash-totals dd { margin-top: 5px; font-size: clamp(1.15rem, 2.1vw, 1.7rem); font-weight: 680; letter-spacing: -.03em; overflow-wrap: anywhere; }
.sp-d-dot { width: 8px; height: 8px; border-radius: 2px; background: var(--d-in); flex-shrink: 0; }
.sp-d-dot.out { background: var(--d-out); }.sp-d-dot.net { background: #536583; }
.sp-d-chart-wrap { padding-top: 10px; }
.sp-d-chart { display: block; width: 100%; height: auto; min-height: 140px; overflow: visible; }
.sp-d-chart text { fill: var(--d-muted); font: 14px ui-sans-serif, system-ui, sans-serif; }
.sp-d-gridline { stroke: var(--d-line); stroke-dasharray: 3 5; }
.sp-d-chart-income { fill: #148f81; }.sp-d-chart-expenses { fill: #c96779; }
.sp-d-chart-data { font-size: .875rem; margin-top: 8px; }
.sp-d-chart-data summary, .sp-d-more summary { min-height: 44px; padding-block: 11px; cursor: pointer; color: var(--d-accent); font-size: .875rem; }
.sp-d-chart-note { font-size: .8125rem; color: var(--d-muted); margin-top: 9px !important; }
.sp-d-collection { padding: 18px; border-radius: 11px; background: var(--d-soft); font-size: .875rem; }
.sp-d-collection .sp-d-split { gap: 10px; align-items: flex-start; }
.sp-d-collection .sp-d-split strong { color: var(--d-accent); font-size: 1.2rem; }
.sp-d-collection .sp-d-progress { margin-block: 12px; }
.sp-d-progress { height: 6px; background: var(--d-line); border-radius: 6px; overflow: hidden; }
.sp-d-progress > span { display: block; height: 100%; border-radius: inherit; background: var(--d-accent); }
.sp-d-priority-list { margin-top: 14px !important; }
.sp-d-priority-list li + li { border-top: 1px solid var(--d-line); }
.sp-d-priority-list button { border: 0; background: transparent; color: var(--d-ink); display: flex; align-items: center; justify-content: space-between; text-align: left; gap: 12px; width: 100%; min-height: 78px; padding: 17px 0; }
.sp-d-priority-list button strong { display: block; font-size: .9375rem; font-weight: 600; }
.sp-d-priority-list button span.sp-d-muted { display: block; margin-top: 4px; }
.sp-d-priority-list button > svg { color: var(--d-muted); }
.sp-d-attendance-summary { display: flex; align-items: center; gap: 17px; margin-bottom: 22px; }
.sp-d-large { font-size: 2rem; line-height: 1.25; letter-spacing: -.04em; font-weight: 700; }
.sp-d-attendance-summary p { margin-top: 4px; }
.sp-d-tag { display: inline-block; border-radius: 6px; background: var(--d-soft); color: var(--d-muted); font-size: .8125rem; font-weight: 550; padding: 4px 7px; }
.sp-d-small-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.sp-d-small-stats dt { color: var(--d-muted); font-size: .8125rem; overflow-wrap: anywhere; }
.sp-d-small-stats dd { font-size: 1.1rem; font-weight: 650; margin-top: 3px; }
.sp-d-subsection { border-top: 1px solid var(--d-line); margin-top: 22px; padding-top: 22px; }
.sp-d-breakdown li + li { margin-top: 18px; }
.sp-d-breakdown .sp-d-split { font-size: .875rem; gap: 12px; align-items: baseline; margin-bottom: 7px; }
.sp-d-breakdown .sp-d-split > span { overflow-wrap: anywhere; }
.sp-d-breakdown .sp-d-split > strong { flex-shrink: 0; font-weight: 600; }
.sp-d-breakdown .sp-d-progress { height: 5px; }
.sp-d-more { margin-top: 12px; }
.sp-d-events li { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; padding-block: 15px; }
.sp-d-events li:first-child { padding-top: 0; }
.sp-d-events li + li { border-top: 1px solid var(--d-line); }
.sp-d-date { background: var(--d-soft); border-radius: 9px; color: var(--d-accent); text-align: center; align-self: start; padding: 10px 8px; font-size: .875rem; line-height: 1.35; font-weight: 650; }
.sp-d-events strong { font-size: .9375rem; font-weight: 600; overflow-wrap: anywhere; }
.sp-d-events p { margin-top: 4px; }
.sp-d-records li { display: flex; gap: 15px; justify-content: space-between; align-items: center; padding-block: 13px; }
.sp-d-records li:first-child { padding-top: 0; }
.sp-d-records li + li { border-top: 1px solid var(--d-line); }
.sp-d-records li > div { min-width: 0; overflow-wrap: anywhere; }
.sp-d-records strong { font-size: .875rem; font-weight: 600; }
.sp-d-records .sp-d-amount { max-width: 50%; overflow-wrap: anywhere; }
.sp-d-table-scroll { overflow-x: auto; max-width: 100%; }
.sp-dashboard table { width: 100%; border-collapse: collapse; font-size: .875rem; text-align: left; }
.sp-dashboard th, .sp-dashboard td { padding: 14px 10px; border-bottom: 1px solid var(--d-line); vertical-align: middle; }
.sp-dashboard thead th { background: var(--d-soft); font-weight: 550; color: var(--d-muted); }
.sp-dashboard tbody th { font-weight: 500; min-width: 155px; }
.sp-dashboard tbody th strong { display: block; font-weight: 600; overflow-wrap: anywhere; }
.sp-dashboard tbody th small { display: block; margin-top: 4px; overflow-wrap: anywhere; }
.sp-dashboard td { white-space: nowrap; }
.sp-dashboard td:last-child, .sp-dashboard thead th:last-child { text-align: right; }
.sp-dashboard tbody tr:last-child :is(th, td) { border-bottom: 0; }
.sp-d-in { color: var(--d-in); }.sp-d-out { color: var(--d-out); }
.sp-d-amount { font-weight: 650; text-align: right; }
.sp-d-audit li { display: flex; justify-content: space-between; gap: 24px; padding-block: 14px; border-bottom: 1px solid var(--d-line); }
.sp-d-audit li > div { min-width: 0; overflow-wrap: anywhere; }
.sp-d-audit strong { font-weight: 600; font-size: .875rem; text-transform: capitalize; }
.sp-d-audit-meta { text-align: right; font-size: .875rem; flex-shrink: 0; max-width: 35%; }
.sp-d-audit-meta small { display: block; margin-top: 4px; }
.sp-d-pagination { justify-content: flex-end; margin-top: 16px; }
.sp-d-empty { padding: 27px 12px; color: var(--d-muted); background: var(--d-soft); border-radius: 10px; text-align: center; font-size: .9375rem; line-height: 1.6; }
.sp-d-error { border: 1px solid #edc3c9; }.sp-d-error .sp-d-button { margin-top: 14px; }
.sp-d-notice { color: #7b4811; background: #fff4df; border: 1px solid #efddb4; border-radius: 10px; padding: 14px 18px; font-size: .9375rem; }
.sp-d-loading { display: grid; gap: 16px; color: var(--d-muted); padding-block: 20px; min-height: 200px; }
.sp-d-skeleton { height: 28px; background: var(--d-line); border-radius: 6px; animation: sp-d-pulse 1.5s ease-in-out infinite; }
.sp-d-skeleton:last-child { width: 65%; }
.sp-d-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@keyframes sp-d-pulse { 50% { opacity: .45; } }
@media (min-width: 1450px) { .sp-d-secondary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 1100px) { .sp-d-main-grid { grid-template-columns: minmax(0, 1.5fr) minmax(250px, 1fr); }.sp-d-card { padding: 20px; }.sp-d-cash-totals { gap: 10px; } }
@media (max-width: 900px) { .sp-d-main-grid { grid-template-columns: 1fr; }.sp-d-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }.sp-d-no-chart .sp-d-priorities { max-width: none; } }
@media (max-width: 580px) {
  .sp-dashboard { padding-bottom: max(70px, env(safe-area-inset-bottom)); }
  .sp-d-page-head { flex-direction: column; gap: 8px; padding-bottom: 18px; }
  .sp-d-header-actions { padding-top: 0; width: 100%; justify-content: space-between; }
  .sp-d-context { column-gap: 15px; padding-bottom: 18px; }.sp-d-updated { margin-left: 0; }
  .sp-d-content, .sp-d-main-grid, .sp-d-secondary-grid { gap: 16px; }
  .sp-d-metrics { gap: 11px; }.sp-d-metric { padding: 15px 14px 10px; border-radius: 12px; }
  .sp-d-metric-top > .sp-d-icon { display: none; }.sp-d-metric-value { font-size: 1.65rem; margin-top: 10px !important; }
  .sp-d-metric-foot { flex-wrap: wrap; gap: 0; align-items: flex-start; }.sp-d-metric-foot .sp-d-link { padding-left: 0; }
  .sp-d-card { padding: 18px 16px; border-radius: 12px; }.sp-d-card-head { margin-bottom: 18px; }
  .sp-d-quick { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .sp-d-quick-label { grid-column: 1 / -1; margin-bottom: 3px; }.sp-d-quick .sp-d-button { background: var(--d-surface); border-color: var(--d-line); justify-content: flex-start; text-align: left; }
  .sp-d-periods { display: flex; gap: 0; padding: 3px; }.sp-d-periods button { flex: 1 0 auto; padding: 8px 9px; min-height: 44px; }
  .sp-d-cash-totals { gap: 8px; }.sp-d-cash-totals dt { font-size: .8125rem; }.sp-d-cash-totals dd { font-size: 1.2rem; }.sp-d-dot { width: 6px; height: 6px; }
  .sp-d-chart { min-width: 460px; }.sp-d-chart text { font-size: 20px; }.sp-d-chart-wrap { overflow-x: auto; }.sp-d-chart-data { position: relative; }
  .sp-d-audit li { flex-direction: column; gap: 5px; }.sp-d-audit-meta { max-width: 100%; text-align: left; }.sp-d-audit-meta small { display: inline; margin-left: 8px; }
  .sp-d-pagination { justify-content: space-between; gap: 8px; }
}
@media (max-width: 350px) { .sp-d-metrics { grid-template-columns: 1fr; }.sp-d-cash-totals { grid-template-columns: 1fr; }.sp-d-cash-totals > div { display: flex; justify-content: space-between; gap: 10px; }.sp-d-cash-totals dd { margin-top: 0; } }
@media (prefers-reduced-motion: reduce) { .sp-dashboard *, .sp-dashboard *::before, .sp-dashboard *::after { animation: none !important; scroll-behavior: auto !important; transition: none !important; } }
.dark .sp-dashboard, [data-theme=dark] .sp-dashboard {
  --d-ink: #e8edf6; --d-muted: #b2bfd4; --d-line: #35445d; --d-surface: #172338;
  --d-soft: #1d2c44; --d-accent: #9bb4ff; --d-in: #66d7c7; --d-out: #f5a9b6;
}
@media print {
  .sp-dashboard { max-width: none; color: #17243c; }
  .sp-d-header-actions, .sp-d-quick, .sp-d-link, .sp-d-pagination, .sp-d-periods, .sp-d-chart-data { display: none !important; }
  .sp-d-card, .sp-d-metric { break-inside: avoid; box-shadow: none; }
  .sp-d-main-grid, .sp-d-secondary-grid { grid-template-columns: 1fr 1fr; }
  .sp-d-metric-accent { background: white; color: #17243c; --d-muted: #52627b; }
}
