:root {
    --pos-ink: #2b2020;
    --pos-muted: #6f6060;
    --pos-primary: #9B0000;
    --pos-coral: #e76f51;
    --pos-line: #e5dada;
    --pos-radius: 8px;
}

* {
    box-sizing: border-box;
    font-family: 'Red Hat Display', 'Helvetica Neue', Arial, sans-serif !important;
    letter-spacing: 0 !important;
    --mud-default-borderradius: 8px !important;
}

html, body { min-height: 100%; margin: 0; }
body { background: var(--mud-palette-background); color: var(--mud-palette-text-primary); -webkit-font-smoothing: antialiased; }
a, .btn-link { color: var(--mud-palette-primary); }
h1:focus { outline: none; }
.mud-main-content { min-height: 100dvh; background: var(--mud-palette-background); }
.app-content { padding: 28px 24px 40px !important; }
.page-title { font-size: clamp(1.65rem, 2vw, 2rem) !important; line-height: 1.2 !important; }
.page-subtitle { color: var(--mud-palette-text-secondary); margin-top: 4px !important; }

.mud-paper {
    border: 1px solid var(--mud-palette-divider);
    border-radius: var(--pos-radius) !important;
    box-shadow: 0 1px 2px rgba(15, 35, 32, .035) !important;
}
.mud-button-root { min-height: 40px; border-radius: 6px !important; font-weight: 700 !important; text-transform: none !important; }
.mud-button-filled-primary { box-shadow: 0 4px 12px rgba(155, 0, 0, .18) !important; }
.mud-icon-button { --mud-default-borderradius: 6px !important; }
.mud-input-control > .mud-input-control-input-container > .mud-input-label { font-weight: 600; }
.mud-input-outlined-border { border-color: var(--mud-palette-lines-inputs) !important; }
.mud-input-root:hover .mud-input-outlined-border { border-color: var(--mud-palette-primary) !important; }
.mud-input.mud-input-outlined { border-radius: 6px !important; }
.mud-table-container { border-radius: 7px; }
.mud-table-root .mud-table-head { background: var(--mud-palette-background-gray); }
.mud-table-root .mud-table-head .mud-table-cell { color: var(--mud-palette-text-secondary); font-size: .74rem; font-weight: 800; text-transform: uppercase; }
.mud-table-root .mud-table-cell { border-color: var(--mud-palette-table-lines); }
.mud-table-root .mud-table-row:hover { background: rgba(155, 0, 0, .055) !important; }
.mud-dialog { border-radius: 8px !important; }
.mud-dialog-title { font-weight: 800; border-bottom: 1px solid var(--mud-palette-divider); }
.mud-dialog-actions { border-top: 1px solid var(--mud-palette-divider); padding: 12px 20px !important; }
.mud-tabs-tabbar { border-bottom: 1px solid var(--mud-palette-divider); }
.mud-chip { border-radius: 5px !important; font-weight: 700; }
.mud-alert, .mud-snackbar-content, .mud-skeleton { border-radius: 6px !important; }

.dashboard-page > .mud-grid-item > .mud-paper:not(.metric-card) { height: 100%; }
.dashboard-page .mud-typography-h5 { font-size: 1.05rem; }
.metric-card { position: relative; overflow: hidden; border: 0 !important; color: #fff !important; box-shadow: none !important; }
.metric-card::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 4px; background: rgba(255,255,255,.72); }
.metric-card .mud-typography { color: inherit !important; }
.metric-primary { background: #9B0000 !important; }
.metric-secondary { background: #6f2020 !important; }
.metric-neutral { background: #f1e7e7 !important; color: #2b2020 !important; }
.metric-accent { background: #f8e7e1 !important; color: #70382c !important; }
.metric-tip { background: #e8edf7 !important; color: #29466e !important; }

.valid.modified:not([type=checkbox]) { outline: 1px solid #17865b; }
.invalid { outline: 1px solid #d64b55; }
.validation-message { color: #d64b55; }
.blazor-error-boundary { background: #b8323d; padding: 1rem; color: white; }
.blazor-error-boundary::after { content: 'An error has occurred.'; }
.darker-border-checkbox.form-check-input { border-color: #7d8987; }

@media (max-width: 960px) {
    .app-content { padding: 16px 12px 28px !important; }
    .app-content-mobile { padding-top: 72px !important; }
    .dashboard-page > .mud-grid-item { padding: 8px !important; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
