.app-button{min-height:2.75rem;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:.625rem var(--space-gutter);border:1px solid transparent;border-radius:var(--radius-control);font-weight:700;text-decoration:none;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.app-button--primary{color:var(--color-on-primary);background:var(--color-primary)}.app-button--primary:hover{background:var(--color-on-primary-subtle-variant)}.app-button--secondary{color:var(--color-secondary);background:transparent;border-color:var(--color-secondary)}.app-button--secondary:hover{background:var(--color-secondary-subtle);color:var(--color-on-secondary-subtle)}.app-button--neutral{color:var(--color-text-muted);background:transparent;border-color:var(--color-border)}.app-button--neutral:hover{background:var(--color-surface-low);color:var(--color-text)}.app-button--danger{color:var(--color-on-error);background:var(--color-error)}.app-button--text{min-height:2.75rem;padding-inline:var(--space-sm);color:var(--color-text);background:transparent}.app-button--text:hover{text-decoration:underline;text-underline-offset:.2em}.app-button--full{width:100%}.app-button:disabled,.app-icon-button:disabled,.filter-button:disabled{cursor:not-allowed;color:var(--color-text-muted);background:var(--color-surface-container);border-color:var(--color-surface-dim)}
.app-icon-button{width:2.75rem;height:2.75rem;flex:0 0 2.75rem;display:inline-grid;place-items:center;padding:0;color:var(--color-text);background:transparent;border:1px solid var(--color-border-subtle);border-radius:var(--radius-control);cursor:pointer}.app-icon-button:hover{color:var(--color-primary);background:var(--color-surface-low);border-color:var(--color-primary)}
.app-card{padding:var(--space-gutter);background:var(--color-surface-lowest);border:1px solid var(--color-border-subtle);border-radius:var(--radius-container)}.app-card--elevated{box-shadow:var(--shadow-ambient)}.app-card--tonal{background:var(--color-surface-low);box-shadow:none}
.app-badge{display:inline-flex;align-items:center;gap:var(--space-xs);width:fit-content;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-control);background:var(--color-neutral-subtle);color:var(--color-text);font-size:.75rem;line-height:1;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.app-badge--primary,.status-badge--success{background:var(--color-primary-subtle);color:var(--color-on-primary-subtle-variant)}.app-badge--secondary,.status-badge--warning{background:var(--color-secondary-subtle);color:var(--color-on-secondary-subtle)}.app-badge--error,.status-badge--error{background:var(--color-error-container);color:var(--color-on-error-container)}.app-badge[aria-disabled=true]{color:var(--color-text-muted);background:var(--color-surface-container)}
.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-gutter);margin-bottom:var(--space-xl)}.page-header__content{max-width:46rem}.page-header__eyebrow{margin-bottom:var(--space-sm);color:var(--color-secondary)}.page-header h1{margin-bottom:var(--space-sm)}.page-header p{margin-bottom:0}.page-header__actions,.section-header__actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.section-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-border-subtle)}.section-header h2{margin-bottom:var(--space-xs)}.section-header p{margin-bottom:0}
.money-display{display:flex;align-items:baseline;gap:var(--space-xs);min-width:0;font-variant-numeric:tabular-nums}.money-display__prefix{font-size:.875rem;color:var(--color-text-muted)}.money-display__value{min-width:0;overflow-wrap:anywhere;font-size:1.25rem;line-height:1.2;font-weight:500}
.state-panel{min-height:13rem;display:grid;place-items:center;padding:var(--space-lg);text-align:center;background:var(--color-surface-lowest);border:1px solid var(--color-border-subtle);border-radius:var(--radius-container)}.state-panel__content{max-width:28rem;display:grid;justify-items:center;gap:var(--space-sm)}.state-panel__icon{width:3rem;height:3rem;display:grid;place-items:center;color:var(--color-primary);background:var(--color-primary-subtle);border-radius:var(--radius-container);font-size:1.5rem}.state-panel--error .state-panel__icon{color:var(--color-on-error-container);background:var(--color-error-container)}.state-panel--offline .state-panel__icon{color:var(--color-on-secondary-subtle);background:var(--color-secondary-subtle)}.state-panel h3,.state-panel p{margin-bottom:0}
.skeleton{display:grid;gap:var(--space-sm);padding:var(--space-gutter);background:var(--color-surface-lowest);border:1px solid var(--color-border-subtle);border-radius:var(--radius-container);overflow:hidden}.skeleton__line{height:.875rem;background:linear-gradient(90deg,var(--color-surface-highest),var(--color-surface-low),var(--color-surface-highest));background-size:200% 100%;border-radius:var(--radius-control);animation:skeleton-shimmer 1.6s infinite linear}.skeleton__line--title{width:55%;height:1.5rem}.skeleton__line--short{width:75%}@keyframes skeleton-shimmer{to{background-position:-200% 0}}
.dialog-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:var(--space-md);background:color-mix(in srgb,var(--color-text) 42%,transparent)}.dialog-shell{width:min(100%,34rem);max-height:min(46rem,calc(100vh - 2rem));overflow:auto;background:var(--color-surface-lowest);border:1px solid var(--color-border-subtle);border-radius:var(--radius-container);box-shadow:var(--shadow-ambient)}.dialog-shell__header{position:sticky;top:0;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);padding:var(--space-gutter);border-bottom:1px solid var(--color-border-subtle)}.dialog-shell__header h2{margin-bottom:0}.dialog-shell__close{width:2rem;height:2rem;flex:0 0 2rem;border-radius:999px;background:var(--color-surface-low)}.dialog-shell__body{padding:var(--space-gutter)}.dialog-shell__footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-gutter);background:var(--color-surface-low);border-top:1px solid var(--color-border-subtle)}
.data-view__mobile{display:none}.filter-button{min-height:2.75rem;display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);color:var(--color-text);background:var(--color-surface-lowest);border:1px solid var(--color-border-subtle);border-radius:var(--radius-control);cursor:pointer}.filter-button:hover,.filter-button[aria-pressed=true]{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-surface-low)}.filter-button__count{min-width:1.5rem;height:1.5rem;display:grid;place-items:center;background:var(--color-primary-subtle);color:var(--color-on-primary-subtle);border-radius:var(--radius-control);font-size:.75rem;font-weight:700}
.stat-card{display:grid;gap:var(--space-sm)}.stat-card__label{color:var(--color-text-muted)}.stat-card__value{margin:0;font-family:var(--font-editorial);font-size:2rem;line-height:1.3}.stat-card__trend{font-size:.875rem;color:var(--color-primary)}.progress{display:grid;gap:var(--space-sm)}.progress__meta{display:flex;justify-content:space-between;gap:var(--space-md);font-size:.875rem}.progress__track{height:.5rem;overflow:hidden;background:var(--color-surface-highest);border-radius:var(--radius-control)}.progress__value{height:100%;background:var(--color-primary);transition:width var(--transition-standard)}
.breadcrumbs ol{display:flex;align-items:center;gap:var(--space-sm);margin:0;padding:0;list-style:none;font-size:.875rem;color:var(--color-text-muted)}.breadcrumbs li{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.breadcrumbs li:not(:last-child)::after{content:"/";color:var(--color-border)}.breadcrumbs a{min-height:2.75rem;display:inline-flex;align-items:center;color:var(--color-primary);text-underline-offset:.2em}.breadcrumbs [aria-current=page]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.data-cell--4{grid-column:span 4}
.definition-list{display:grid;grid-template-columns:minmax(8rem,1fr) minmax(0,2fr);gap:var(--space-sm) var(--space-gutter);margin:0}.definition-list dt{color:var(--color-text-muted);font-weight:500}.definition-list dd{margin:0;overflow-wrap:anywhere}

.progress__track{width:100%;height:.5rem;display:block;overflow:hidden;appearance:none;border:0;border-radius:var(--radius-control);background:var(--color-surface-highest)}
.progress__track::-webkit-progress-bar{background:var(--color-surface-highest)}.progress__track::-webkit-progress-value{background:var(--color-primary)}.progress__track::-moz-progress-bar{background:var(--color-primary)}
