/* Shared visual language for both MudBlazor and custom feature screens. */
:root {
    --fc-font: 'DM Sans', system-ui, sans-serif;
    --fc-ink: #211a1b;
    --fc-muted: #6e6465;
    --fc-border: #e8e4e4;
    --fc-radius: 10px;
    --mud-typography-default-family: var(--fc-font);
    --mud-typography-body1-family: var(--fc-font);
    --mud-typography-body2-family: var(--fc-font);
    --mud-typography-button-family: var(--fc-font);
}
body, input, button, select, textarea, .mud-typography { font-family: var(--fc-font); }
.fc-shell .mud-appbar { border-bottom: 1px solid #64152f; }
.fc-shell .mud-appbar :is(button, a, input, [tabindex]):focus-visible { outline-color: #ffffff; }
.fc-shell .mud-drawer { border-right: 1px solid #eadcde; }
.fc-shell .mud-navmenu { padding: 12px 8px; }
.fc-shell .mud-nav-link { border-radius: 8px; margin-bottom: 2px; }
.fc-shell .mud-nav-link.active { background: #f4eaec; color: #801d3d; font-weight: 600; }
.fc-content { padding: 24px !important; }
.fc-page-header { flex-wrap: wrap; gap: 16px; margin-bottom: 20px !important; }
.fc-page-title, .fc-content > .mud-typography-h5 { font-size: 22px; font-weight: 700; letter-spacing: -.01em; line-height: 1.35; }
.fc-page-actions { display: flex; flex-wrap: wrap; gap: 8px; max-width: 100%; }
.fc-page-actions > .mud-stack { flex-wrap: wrap; }
.mud-button-root { text-transform: none; letter-spacing: 0; border-radius: 6px; }
.mud-button-root:not(.mud-button-small) { min-height: 36px; }
.mud-button-filled { box-shadow: none; }
.fc-content :is(.mv-btn, .dash-btn) { height: 36px; border-radius: 6px; }
.fc-content :is(.mv-panel, .dash-panel, .dash-kpi) { border-radius: var(--fc-radius); }
.mud-dialog, .mud-popover, .mud-table, .mud-card { border-radius: var(--fc-radius); }
.fc-content > .mud-paper { border: 1px solid var(--fc-border); border-radius: var(--fc-radius); box-shadow: 0 1px 2px #211a1b08; }
.mud-dialog-title { border-bottom: 1px solid var(--fc-border); }
.mud-dialog-actions { padding: 16px 24px; gap: 8px; }
.mud-table-cell { font-variant-numeric: tabular-nums; border-bottom-color: var(--fc-border); }
.mud-table-head .mud-table-cell { color: var(--fc-muted); background: #faf9f9; font-weight: 600; }
.mud-table-dense .mud-table-body .mud-table-cell { padding-top: 12px; padding-bottom: 12px; }
.mud-table-striped .mud-table-body .mud-table-row:nth-of-type(odd) { background: #fcfbfb; }
.mud-table-hover .mud-table-body .mud-table-row:hover { background: #f7f2f3; }
.fc-amount { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.mv-customer, .mv-member-email { color: var(--fc-muted); }
.mv-member-name { font-weight: 600; }
.mv-member-link { padding: 0; border: 0; background: transparent; text-align: left; cursor: pointer; color: inherit; }
.mv-customer, .mv-phone, .dash-kpi-value { font-variant-numeric: tabular-nums; }
button, a, input, select, textarea, .mud-input-outlined-border { transition: background-color 140ms ease, border-color 140ms ease, box-shadow 140ms ease; }
:is(button, a, input, select, textarea, [tabindex]):focus-visible { outline: 2px solid #801d3d; outline-offset: 3px; }
.mv-search:focus-within { border-color: #801d3d; box-shadow: 0 0 0 3px #801d3d14; }
button:disabled { cursor: default; }
.fc-loading { padding: 16px; }
.fc-loading-row { display: flex; align-items: center; gap: 20px; min-height: 56px; border-bottom: 1px solid var(--fc-border); }
.fc-loading-cell { flex: 1; min-width: 0; }
.fc-loading-dashboard { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.fc-loading-card { padding: 16px; border: 1px solid var(--fc-border); border-radius: var(--fc-radius); background: white; }
.fc-loading-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; margin-bottom: 12px; }
.fc-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 600px) {
    .fc-content { padding: 16px !important; }
    .fc-page-actions { width: 100%; }
    .fc-loading-dashboard { grid-template-columns: 1fr; }
    .fc-loading-row .fc-loading-cell:nth-last-child(-n+2) { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
