@import url("home.css");

:root {
    --mud-default-borderradius: 12px;
}

html, body {
    font-family: 'Quicksand', sans-serif;
}

*, *::before, *::after {
    font-family: inherit;
}

.mud-button-root.mud-button-filled.mud-button-filled-primary,
.mud-button-root.mud-button-filled.mud-button-filled-primary .mud-button-label,
.mud-button-root.mud-button-filled.mud-button-filled-primary .mud-button-label *,
.mud-button-root.mud-button-filled.mud-button-filled-primary span,
.mud-button-root.mud-button-filled.mud-button-filled-primary *,
.mud-button-root.mud-button-filled.mud-button-filled-primary .mud-icon-root,
.mud-button-root.mud-button-filled.mud-button-filled-primary .mud-svg-icon,
.mud-button-root.mud-button-filled.mud-button-filled-primary i {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.mud-button-root.mud-button-filled.mud-button-filled-primary .mud-svg-icon,
.mud-button-root.mud-button-filled.mud-button-filled-primary .mud-icon-root {
    fill: currentColor !important;
}

.mud-dialog .mud-dialog-actions .mud-button-root.mud-button-filled.mud-button-filled-primary,
.mud-dialog .mud-dialog-actions .mud-button-root.mud-button-filled.mud-button-filled-primary .mud-button-label,
.mud-dialog .mud-dialog-actions .mud-button-root.mud-button-filled.mud-button-filled-primary .mud-button-label *,
.mud-dialog .mud-dialog-actions .mud-button-root.mud-button-filled.mud-button-filled-primary span,
.mud-dialog .mud-dialog-actions .mud-button-root.mud-button-filled.mud-button-filled-primary *,
.mud-dialog .mud-dialog-actions .mud-button-root.mud-button-filled.mud-button-filled-primary .mud-icon-root,
.mud-dialog .mud-dialog-actions .mud-button-root.mud-button-filled.mud-button-filled-primary .mud-svg-icon,
.mud-dialog .mud-dialog-actions .mud-button-root.mud-button-filled.mud-button-filled-primary i {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.mud-dialog .mud-dialog-actions .mud-button-root.mud-button-filled.mud-button-filled-primary .mud-svg-icon,
.mud-dialog .mud-dialog-actions .mud-button-root.mud-button-filled.mud-button-filled-primary .mud-icon-root {
    fill: currentColor !important;
}

.mud-button-root.mud-button-filled.mud-button-filled-primary .dialog-save-button-text,
.mud-button-root.mud-button-filled.mud-button-filled-primary .dialog-save-button-text *,
.mud-button-root.mud-button-filled.mud-button-filled-primary .manage-account-save-button-text,
.mud-button-root.mud-button-filled.mud-button-filled-primary .manage-account-save-button-text * {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    fill: #ffffff !important;
}

.mud-button-root.mud-button-outlined.mud-button-outlined-secondary,
.mud-button-root.mud-button-outlined.mud-button-outlined-secondary .mud-button-label,
.mud-button-root.mud-button-outlined.mud-button-outlined-secondary .mud-icon-root,
.mud-button-root.mud-button-outlined.mud-button-outlined-secondary .mud-svg-icon,
.mud-button-root.mud-button-outlined.mud-button-outlined-secondary i {
    color: var(--mud-palette-primary) !important;
    border-color: var(--mud-palette-primary) !important;
}

.mud-button-root.mud-button-outlined.mud-button-outlined-secondary:hover,
.mud-button-root.mud-button-outlined.mud-button-outlined-secondary:focus-visible,
.targets-history-filter-button--secondary:hover,
.targets-history-filter-button--secondary:focus-visible,
.targets-history-filter-button.mud-button-outlined:hover,
.targets-history-filter-button.mud-button-outlined:focus-visible {
    background-color: color-mix(in srgb, var(--mud-palette-primary) 10%, transparent) !important;
    border-color: var(--mud-palette-primary) !important;
    color: var(--mud-palette-primary) !important;
}

.mud-button-root.mud-button-outlined.mud-button-outlined-secondary:hover .mud-button-label,
.mud-button-root.mud-button-outlined.mud-button-outlined-secondary:focus-visible .mud-button-label,
.targets-history-filter-button--secondary:hover .mud-button-label,
.targets-history-filter-button--secondary:focus-visible .mud-button-label,
.targets-history-filter-button.mud-button-outlined:hover .mud-button-label,
.targets-history-filter-button.mud-button-outlined:focus-visible .mud-button-label {
    color: var(--mud-palette-primary) !important;
    -webkit-text-fill-color: var(--mud-palette-primary) !important;
}

.mud-button-root.mud-button-filled.mud-button-filled-primary:hover,
.mud-button-root.mud-button-filled.mud-button-filled-primary:focus-visible,
.targets-history-filter-button--primary:hover,
.targets-history-filter-button--primary:focus-visible {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    filter: brightness(0.94);
}

.mud-button-root.mud-button-filled.mud-button-filled-primary:hover .mud-button-label,
.mud-button-root.mud-button-filled.mud-button-filled-primary:focus-visible .mud-button-label,
.targets-history-filter-button--primary:hover .mud-button-label,
.targets-history-filter-button--primary:focus-visible .mud-button-label {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

.mud-dialog .mud-dialog-actions {
    gap: 12px;
    flex-wrap: nowrap;
}

.mud-dialog .mud-dialog-actions .mud-button-root {
    min-width: 120px;
}

@media (max-width: 959.98px) {
    .mud-dialog .mud-dialog-actions {
        flex-wrap: wrap;
    }

    .mud-dialog .mud-dialog-actions .mud-button-root {
        flex: 0 1 auto;
        min-width: 120px;
    }
}

.mud-input-outlined-border {
    border-radius: var(--mud-default-borderradius);
    transition: border-color 150ms ease, box-shadow 150ms ease;
}

.mud-input-outlined:hover .mud-input-outlined-border {
    border-color: var(--mud-palette-primary);
}

.mud-input-outlined.mud-input-error .mud-input-outlined-border {
    border-color: var(--mud-palette-error);
}

.mud-input-outlined.mud-input-error:hover .mud-input-outlined-border {
    border-color: var(--mud-palette-error);
}

.mud-input-outlined.mud-input-disabled .mud-input-outlined-border {
    border-color: var(--mud-palette-lines-default);
    opacity: 0.6;
}

.mud-input:focus-within .mud-input-label {
    color: var(--mud-palette-primary);
    font-weight: 600;
}

.mud-input-label {
    transition: color 150ms ease, opacity 150ms ease;
}

.mud-input:hover .mud-input-label {
    color: var(--mud-palette-primary);
}

.mud-input:focus-within .mud-input-adornment .mud-icon-root,
.mud-input:focus-within .mud-input-adornment .mud-svg-icon,
.mud-input:focus-within .mud-input-adornment svg,
.mud-input:focus-within .mud-input-adornment i {
    color: var(--mud-palette-primary);
    fill: var(--mud-palette-primary);
}

.mud-input.mud-input-disabled .mud-input-label {
    color: var(--mud-palette-text-disabled);
}

.mud-input:hover .mud-input-adornment .mud-icon-root,
.mud-input:hover .mud-input-adornment .mud-svg-icon,
.mud-input:hover .mud-input-adornment svg,
.mud-input:hover .mud-input-adornment i {
    color: var(--mud-palette-primary);
    fill: var(--mud-palette-primary);
}

.mud-input .mud-input-adornment .mud-icon-root,
.mud-input .mud-input-adornment .mud-svg-icon,
.mud-input .mud-input-adornment svg,
.mud-input .mud-input-adornment i {
    color: var(--mud-palette-text-primary);
    fill: var(--mud-palette-text-primary);
}

.mud-input.mud-input-disabled .mud-input-adornment .mud-icon-root,
.mud-input.mud-input-disabled .mud-input-adornment .mud-svg-icon,
.mud-input.mud-input-disabled .mud-input-adornment svg,
.mud-input.mud-input-disabled .mud-input-adornment i {
    color: var(--mud-palette-text-disabled);
    fill: var(--mud-palette-text-disabled);
}

.mud-input.mud-input-error .mud-input-adornment .mud-icon-root,
.mud-input.mud-input-error .mud-input-adornment .mud-svg-icon,
.mud-input.mud-input-error .mud-input-adornment svg,
.mud-input.mud-input-error .mud-input-adornment i {
    color: var(--mud-palette-error);
    fill: var(--mud-palette-error);
}

/* M3-like switch styling (keep current theme color) */
.mud-switch-span {
    width: 48px;
    height: 28px;
    padding: 0;
}

.mud-switch-span .mud-switch-track {
    position: absolute;
    left: 4px;
    top: 50%;
    width: calc(100% - 8px);
    height: 20px;
    transform: translateY(-50%);
    border-radius: 999px;
    background-color: rgba(var(--mud-palette-primary-rgb), 0.24) !important;
    border: 2px solid rgba(var(--mud-palette-primary-rgb), 0.55) !important;
    box-sizing: border-box;
    opacity: 1;
    z-index: 0;
}

.mud-switch-base {
    padding: 0;
    top: 50%;
    left: 4px;
    transform: translateY(-50%);
    color: var(--mud-palette-text-secondary);
    box-shadow: none !important;
    z-index: 1;
}

.mud-switch-base.mud-checked {
    transform: translate(20px, -50%);
    color: #ffffff;
    box-shadow: none !important;
}

.mud-switch-base:not(.mud-checked)+.mud-switch-track {
    background-color: rgba(var(--mud-palette-primary-rgb), 0.24) !important;
    border-color: rgba(var(--mud-palette-primary-rgb), 0.55) !important;
}

.mud-switch-base.mud-checked+.mud-switch-track {
    background-color: var(--mud-palette-primary) !important;
    border-color: var(--mud-palette-primary) !important;
    opacity: 1;
}

/* Remove glow/halo ripple */
.mud-ripple-switch::after {
    display: none !important;
    opacity: 0 !important;
}

.mud-switch-base::before,
.mud-switch-base::after,
.mud-switch-base:hover::before,
.mud-switch-base:hover::after,
.mud-switch-base:focus::before,
.mud-switch-base:focus::after,
.mud-switch-base:focus-visible::before,
.mud-switch-base:focus-visible::after {
    display: none !important;
    opacity: 0 !important;
    box-shadow: none !important;
}

.mud-switch-base:hover,
.mud-switch-base:focus,
.mud-switch-base:focus-visible {
    box-shadow: none !important;
}

.mud-switch-button .mud-switch-thumb-small,
.mud-switch-button .mud-switch-thumb-medium,
.mud-switch-button .mud-switch-thumb-large {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background-color: currentColor;
    box-shadow: none;
    position: relative;
    z-index: 2;
}

.mud-switch-base:not(.mud-checked) .mud-switch-thumb-small,
.mud-switch-base:not(.mud-checked) .mud-switch-thumb-medium,
.mud-switch-base:not(.mud-checked) .mud-switch-thumb-large {
    width: 14px;
    height: 14px;
}

.mud-switch-base.mud-checked .mud-switch-thumb-small,
.mud-switch-base.mud-checked .mud-switch-thumb-medium,
.mud-switch-base.mud-checked .mud-switch-thumb-large {
    background-color: #ffffff !important;
}

.mud-switch-base.mud-checked .mud-switch-thumb-small::after,
.mud-switch-base.mud-checked .mud-switch-thumb-medium::after,
.mud-switch-base.mud-checked .mud-switch-thumb-large::after {
    content: "";
    position: absolute;
    inset: 2px;
    background-color: var(--mud-palette-primary);
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M9.0 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center / contain no-repeat;
    mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M9.0 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center / contain no-repeat;
}

.mud-switch.mud-disabled .mud-switch-track {
    background-color: var(--mud-palette-lines-default);
    border-color: var(--mud-palette-lines-default);
    opacity: 0.6;
}

.mud-switch.mud-disabled .mud-switch-base {
    color: var(--mud-palette-text-disabled);
}

.mud-picker-content .mud-typography,
.mud-picker-calendar-weekday,
.mud-picker-calendar-day,
.mud-picker-calendar-month,
.mud-picker-calendar-year,
.mud-picker-clock-number {
    color: var(--mud-palette-text-primary);
}

.mud-picker-calendar-day.mud-selected {
    color: var(--mud-palette-primary-contrast-text);
    background-color: var(--mud-palette-primary) !important;
    border-radius: 50%;
}

.mud-picker-calendar-day.mud-current {
    color: var(--mud-palette-primary);
    border: 1px solid var(--mud-palette-primary);
    border-radius: 50%;
}

.mud-picker-calendar-day.mud-disabled,
.mud-picker-clock-number.mud-disabled {
    color: var(--mud-palette-text-disabled);
}

.mud-picker-toolbar,
.mud-picker-toolbar *,
.mud-picker .mud-picker-toolbar,
.mud-picker .mud-picker-toolbar * {
    color: #ffffff !important;
    opacity: 1 !important;
}

.mud-date-picker-toolbar,
.mud-date-picker-toolbar *,
.mud-time-picker-toolbar,
.mud-time-picker-toolbar *,
.mud-picker-toolbar-title,
.mud-picker-toolbar-title * {
    color: #ffffff !important;
    opacity: 1 !important;
}

.mud-picker .mud-toolbar,
.mud-picker .mud-toolbar *,
.mud-picker .mud-dialog-content .mud-toolbar,
.mud-picker .mud-dialog-content .mud-toolbar * {
    color: #ffffff !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.mud-picker .mud-toolbar .mud-typography,
.mud-picker .mud-toolbar .mud-typography *,
.mud-picker .mud-toolbar .mud-text,
.mud-picker .mud-toolbar .mud-text * {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

.mud-picker-toolbar .mud-button-label,
.mud-picker-date-toolbar .mud-button-label {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

.rapid-theme {
    --app-font-size-base: 0.95rem;
    --app-font-size-sm: 0.875rem;
    --app-font-size-lg: 1.25rem;
}

.rapid-theme {
    font-family: "Quicksand", sans-serif;
    font-weight: 600;
    font-size: var(--app-font-size-base);
}

.rapid-theme .mud-typography,
.rapid-theme .mud-typography * {
    font-family: "Quicksand", sans-serif;
}

.rapid-theme .mud-table-head .mud-table-cell,
.rapid-theme .mud-data-grid .mud-table-head .mud-table-cell,
.rapid-theme .mud-data-grid-header .mud-table-cell {
    font-weight: 700;
    font-size: var(--app-font-size-sm);
}

.rapid-theme .mud-table-body .mud-table-cell,
.rapid-theme .mud-table .mud-table-body .mud-table-cell,
.rapid-theme .mud-data-grid .mud-table-body .mud-table-cell {
    font-weight: 600;
    font-family: "Quicksand", sans-serif;
}

/* Sorting arrows affordance (DataGrid + Table) */
.rapid-theme .mud-table-sort-label .mud-icon-root,
.rapid-theme .mud-table-sort-label .mud-svg-icon,
.rapid-theme .mud-table-sort-label svg,
.rapid-theme .mud-table-sort-label i {
    opacity: 1 !important;
    visibility: visible !important;
}

.rapid-theme .show-sort-arrows .mud-data-grid-header .mud-table-cell {
    position: relative;
}

.rapid-theme .show-sort-arrows .mud-data-grid-header .mud-table-cell::after {
    content: " ▲▼";
    font-size: 0.75em;
    opacity: 0.6;
    margin-left: 4px;
}

.rapid-theme .mud-nav-link,
.rapid-theme .mud-drawer .mud-nav-link {
    font-size: var(--app-font-size-base);
    font-weight: 600;
}

.rapid-theme .mud-nav-link .mud-nav-link-text,
.rapid-theme .mud-drawer .mud-nav-link .mud-nav-link-text {
    font-weight: 600;
}

.rapid-theme .mud-dialog-title {
    font-size: 1.125rem;
    font-weight: 700;
}

.rapid-theme .mud-nav-link-active,
.rapid-theme .mud-nav-link-active .mud-nav-link-text,
.rapid-theme .mud-nav-link-active .mud-nav-link-icon,
.rapid-theme .mud-nav-link-active .mud-icon-root,
.rapid-theme .mud-nav-link-active .mud-svg-icon,
.rapid-theme .mud-nav-link-active svg,
.rapid-theme .mud-nav-link-active i {
    color: var(--mud-palette-primary);
    fill: var(--mud-palette-primary);
}

.rapid-theme .mud-nav-link-active,
.rapid-theme .mud-nav-link-active .mud-nav-link-text {
    font-weight: 700;
}

.rapid-theme .mud-drawer .mud-nav-link-icon,
.rapid-theme .mud-drawer .mud-icon-root,
.rapid-theme .mud-drawer .mud-svg-icon,
.rapid-theme .mud-drawer svg,
.rapid-theme .mud-drawer i {
    color: var(--mud-palette-primary);
    fill: var(--mud-palette-primary);
}

.rapid-theme .mud-appbar {
    background-color: var(--mud-palette-primary);
    color: var(--mud-palette-primary-contrast-text);
}

.rapid-theme .mud-appbar .mud-icon-button .mud-icon-root,
.rapid-theme .mud-appbar .mud-icon-button .mud-svg-icon,
.rapid-theme .mud-appbar .mud-menu-activator .mud-icon-root,
.rapid-theme .mud-appbar .mud-menu-activator .mud-svg-icon {
    color: white;
}

.rapid-theme .mud-button-filled-primary {
    background-color: var(--mud-palette-primary);
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

.rapid-theme .mud-button-filled-primary .mud-button-label,
.rapid-theme .mud-button-filled-primary .mud-button-label *,
.rapid-theme .mud-button-filled-primary span,
.rapid-theme .mud-button-filled-primary *,
.rapid-theme .mud-button-filled-primary .mud-icon-root,
.rapid-theme .mud-button-filled-primary .mud-svg-icon,
.rapid-theme .mud-button-filled-primary i {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.rapid-theme .mud-button-filled-primary .mud-svg-icon,
.rapid-theme .mud-button-filled-primary .mud-icon-root {
    fill: currentColor !important;
}

.rapid-theme .mud-button-outlined-primary {
    color: var(--mud-palette-primary);
    border-color: var(--mud-palette-primary);
}

.rapid-theme .mud-button-text-primary {
    color: var(--mud-palette-primary);
}

.rapid-theme .mud-button-outlined {
    color: var(--mud-palette-primary);
    border-color: var(--mud-palette-primary);
}

.rapid-theme .mud-button-text {
    color: var(--mud-palette-primary);
}

.rapid-theme .mud-dialog .mud-button-outlined,
.rapid-theme .mud-dialog .mud-button-text {
    color: var(--mud-palette-primary) !important;
    border-color: var(--mud-palette-primary) !important;
}

.rapid-theme .mud-dialog .mud-button-text,
.rapid-theme .mud-dialog-actions .mud-button-text {
    background-color: transparent !important;
    border-color: var(--mud-palette-primary) !important;
    color: var(--mud-palette-primary) !important;
    border-width: 1px !important;
    border-style: solid !important;
}

.rapid-theme .mud-dialog-actions .mud-button-text .mud-button-label,
.rapid-theme .mud-dialog .mud-button-text .mud-button-label {
    color: var(--mud-palette-primary) !important;
}

.rapid-theme .mud-dialog .mud-icon-button {
    background-color: transparent !important;
    border-color: transparent !important;
    color: var(--mud-palette-text-primary) !important;
}

.rapid-theme .mud-dialog .mud-icon-button .mud-icon-root,
.rapid-theme .mud-dialog .mud-icon-button .mud-svg-icon {
    color: var(--mud-palette-text-primary) !important;
    fill: var(--mud-palette-text-primary) !important;
}

.rapid-theme .mud-dialog-container .mud-button-filled.mud-button-default,
.rapid-theme .mud-dialog-content .mud-button-filled.mud-button-default,
.rapid-theme .mud-button-filled.mud-button-default {
    background-color: var(--mud-palette-primary) !important;
    color: var(--mud-palette-primary-contrast-text) !important;
}

.rapid-theme .mud-button-filled.mud-button-default.mud-text-muted,
.rapid-theme .mud-dialog-container .mud-button-filled.mud-button-default.mud-text-muted,
.rapid-theme .mud-dialog-content .mud-button-filled.mud-button-default.mud-text-muted {
    background-color: var(--mud-palette-primary) !important;
    color: var(--mud-palette-primary-contrast-text) !important;
}

.rapid-theme .rapid-accent-button,
.rapid-theme .rapid-accent-button.mud-text-muted {
    background-color: var(--mud-palette-primary) !important;
    color: var(--mud-palette-primary-contrast-text) !important;
    border-color: var(--mud-palette-primary) !important;
}

.rapid-theme .rapid-accent-button .mud-button-root,
.rapid-theme .rapid-accent-button.mud-text-muted .mud-button-root {
    background-color: var(--mud-palette-primary) !important;
    color: var(--mud-palette-primary-contrast-text) !important;
    border-color: var(--mud-palette-primary) !important;
}

.rapid-theme .rapid-accent-button .mud-button-label {
    color: var(--mud-palette-primary-contrast-text) !important;
}

/* Map page: exact chrome color #f4f5fa (includes MudMainContent padding so no theme mismatch). */
.mud-main-content:has(.map-page-root) {
    background-color: #f4f5fa !important;
}

.map-summary-grid {
    flex-wrap: nowrap !important;
    overflow-x: auto;
    scrollbar-width: thin;
    max-width: 100%;
}

.map-summary-grid .map-summary-card {
    flex: 1 1 0 !important;
    min-width: 0 !important;
}

.map-action-btn.mud-button-filled-primary,
.map-action-btn.mud-button-filled-primary .mud-button-label,
.map-action-btn.mud-button-filled-primary .mud-button-label *,
.map-action-btn-text--light {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

@media (max-width: 959.98px) {
    .map-summary-grid {
        flex-wrap: wrap !important;
    }

    .map-summary-grid .map-summary-card {
        flex: 1 1 calc(50% - 8px) !important;
    }
}

/* Fallback: ensure light pages never show a white tail below content.
   Some browsers (or embedded webviews) can be unreliable with :has(). */
.mud-layout {
    background-color: #f4f5fa;
}

.mud-layout .mud-main-content:not(.login-layout-main),
.mud-main-content:not(.login-layout-main) {
    background-color: #f4f5fa;
}

/* Ride pages: keep the full page chrome grey, not only the card spacing. */
.mud-main-content:has(.targets-history-page-shell),
.mud-main-content:has(.targets-rides-page-root) {
    background-color: #f4f5fa !important;
}

.mud-main-content:has(.active-units-page-shell) {
    background-color: #f4f5fa !important;
}

.dashboard-dark-mode .mud-main-content:not(.login-layout-main),
body.mud-theme-dark .mud-main-content:not(.login-layout-main) {
    background-color: var(--mud-palette-background) !important;
}

.dashboard-dark-mode .mud-layout,
body.mud-theme-dark .mud-layout {
    background-color: var(--mud-palette-background) !important;
}

.dashboard-dark-mode .mud-main-content:has(.targets-history-page-shell),
.dashboard-dark-mode .mud-main-content:has(.targets-rides-page-root),
body.mud-theme-dark .mud-main-content:has(.targets-history-page-shell),
body.mud-theme-dark .mud-main-content:has(.targets-rides-page-root) {
    background-color: var(--mud-palette-background) !important;
}

.dashboard-dark-mode .mud-main-content:has(.active-units-page-shell),
body.mud-theme-dark .mud-main-content:has(.active-units-page-shell) {
    background-color: var(--mud-palette-background) !important;
}

.active-units-page-shell {
    min-height: calc(100vh - 96px);
    min-height: calc(100dvh - 96px);
    background: #f4f5fa;
    box-sizing: border-box;
}

.dashboard-dark-mode .active-units-page-shell,
body.mud-theme-dark .active-units-page-shell {
    background: var(--mud-palette-background);
}

/* Samsung Internet can be unreliable with :has() in mobile portrait; keep a plain dark-mode fallback. */
.dashboard-dark-mode .mud-main-content,
body.mud-theme-dark .mud-main-content {
    background-color: var(--mud-palette-background) !important;
}

body.account-manage-route #nav-drawer,
body.account-manage-route .mud-main-content {
    transition: transform 180ms ease, margin-left 180ms ease !important;
}

#account-manage-static-overlay {
    display: none;
}

@media (min-width: 960px) {
    body.account-manage-route.account-manage-drawer-closed #nav-drawer {
        transform: translateX(-100%) !important;
    }

    body.account-manage-route.account-manage-drawer-closed .mud-main-content {
        margin-left: 0 !important;
    }
}

@media (max-width: 959.98px) {
    .mud-overlay-drawer {
        top: 64px !important;
        height: calc(100dvh - 64px) !important;
    }

    body.account-manage-route #nav-drawer {
        z-index: 1201 !important;
    }

    body.account-manage-route.account-manage-drawer-closed #nav-drawer {
        transform: translateX(-100%) !important;
    }

    body.account-manage-route .mud-main-content {
        margin-left: 0 !important;
    }

    body.account-manage-route:not(.account-manage-drawer-closed) #account-manage-static-overlay {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 1200;
        background: rgba(0, 0, 0, 0.42);
    }
}

.rapid-theme .mud-dialog .mud-toggle-button,
.rapid-theme .mud-dialog .mud-toggle-button .mud-button-root {
    color: var(--mud-palette-primary) !important;
    border-color: var(--mud-palette-primary) !important;
}

.rapid-theme .mud-dialog .mud-chip,
.rapid-theme .mud-dialog .mud-chip-outlined,
.rapid-theme .mud-dialog .mud-chip-text {
    color: var(--mud-palette-primary) !important;
    border-color: var(--mud-palette-primary) !important;
}

.rapid-theme .mud-dialog .quick-message-template-chip,
.rapid-theme .mud-dialog .quick-message-template-chip *,
.rapid-theme .quick-message-template-chip,
.rapid-theme .quick-message-template-chip * {
    color: #ffffff !important;
    fill: #ffffff !important;
}

.quick-message-template-text {
    color: #ffffff !important;
}

.quick-message-template-chip .mud-chip-content {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

.quick-message-templates .mud-chip,
.quick-message-templates .mud-chip *,
.quick-message-templates .mud-chip-content,
.quick-message-templates .mud-chip-content * {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    fill: #ffffff !important;
}

.rapid-theme .mud-checkbox-color-primary .mud-checkbox-input:checked+.mud-checkbox-checkmark,
.rapid-theme .mud-checkbox-color-primary .mud-checkbox-input:checked+.mud-checkbox-checkmark::before,
.rapid-theme .mud-checkbox-color-primary .mud-checkbox-input:checked+.mud-checkbox-checkmark::after,
.rapid-theme .mud-checkbox-color-primary .mud-icon-root,
.rapid-theme .mud-checkbox-color-primary .mud-svg-icon,
.rapid-theme .mud-checkbox-color-primary svg,
.rapid-theme .mud-checkbox-color-primary i,
.rapid-theme .mud-checkbox.mud-checkbox-color-primary.mud-checkbox-checked .mud-checkbox-icon,
.rapid-theme .mud-checkbox.mud-checkbox-color-primary.mud-checkbox-checked .mud-icon-root,
.rapid-theme .mud-checkbox.mud-checkbox-color-primary.mud-checkbox-checked .mud-svg-icon,
.rapid-theme .mud-checkbox.mud-checkbox-color-primary.mud-checkbox-checked svg,
.rapid-theme .mud-checkbox.mud-checkbox-color-primary.mud-checkbox-checked i,
.rapid-theme .mud-checkbox.mud-checkbox-color-primary.mud-checkbox-indeterminate .mud-checkbox-icon,
.rapid-theme .mud-checkbox.mud-checkbox-color-primary.mud-checkbox-indeterminate .mud-icon-root,
.rapid-theme .mud-checkbox.mud-checkbox-color-primary.mud-checkbox-indeterminate .mud-svg-icon,
.rapid-theme .mud-checkbox.mud-checkbox-color-primary.mud-checkbox-indeterminate svg,
.rapid-theme .mud-checkbox.mud-checkbox-color-primary.mud-checkbox-indeterminate i,
.rapid-theme .mud-switch-color-primary .mud-switch-thumb,
.rapid-theme .mud-switch-color-primary .mud-switch-track,
.rapid-theme .mud-progress-linear-color-primary .mud-progress-linear-bar,
.rapid-theme .mud-progress-circular-color-primary .mud-progress-circular-svg {
    color: var(--mud-palette-primary) !important;
    background-color: var(--mud-palette-primary) !important;
    stroke: var(--mud-palette-primary) !important;
    fill: var(--mud-palette-primary) !important;
}

.rapid-theme .mud-data-grid .mud-progress-linear .mud-progress-linear-bar,
.rapid-theme .mud-data-grid .mud-progress-linear .mud-progress-linear-buffer,
.rapid-theme .mud-data-grid .mud-progress-linear .mud-progress-linear-dots,
.rapid-theme .mud-data-grid .mud-progress-linear .mud-progress-linear-indeterminate {
    background-color: var(--mud-palette-primary) !important;
}

.rapid-theme .mud-checkbox.mud-checkbox-checked .mud-checkbox-icon,
.rapid-theme .mud-checkbox.mud-checkbox-checked .mud-icon-root,
.rapid-theme .mud-checkbox.mud-checkbox-checked .mud-svg-icon,
.rapid-theme .mud-checkbox.mud-checkbox-checked svg,
.rapid-theme .mud-checkbox.mud-checkbox-checked i,
.rapid-theme .mud-checkbox.mud-checkbox-indeterminate .mud-checkbox-icon,
.rapid-theme .mud-checkbox.mud-checkbox-indeterminate .mud-icon-root,
.rapid-theme .mud-checkbox.mud-checkbox-indeterminate .mud-svg-icon,
.rapid-theme .mud-checkbox.mud-checkbox-indeterminate svg,
.rapid-theme .mud-checkbox.mud-checkbox-indeterminate i {
    color: var(--mud-palette-primary) !important;
    fill: var(--mud-palette-primary) !important;
}

.rapid-theme .mud-checkbox .mud-checkbox-input:checked+.mud-checkbox-icon,
.rapid-theme .mud-checkbox .mud-checkbox-input:indeterminate+.mud-checkbox-icon {
    color: var(--mud-palette-primary) !important;
    fill: var(--mud-palette-primary) !important;
    border-color: var(--mud-palette-primary) !important;
}

.rapid-theme .mud-checkbox .mud-checkbox-icon,
.rapid-theme .mud-checkbox .mud-icon-root,
.rapid-theme .mud-checkbox .mud-svg-icon,
.rapid-theme .mud-checkbox svg,
.rapid-theme .mud-checkbox i {
    color: var(--mud-palette-primary) !important;
    fill: var(--mud-palette-primary) !important;
    border-color: var(--mud-palette-primary) !important;
}

.rapid-theme .mud-icon-color-primary,
.rapid-theme .mud-icon-root.mud-icon-color-primary,
.rapid-theme .mud-svg-icon.mud-icon-color-primary {
    color: var(--mud-palette-primary);
    fill: var(--mud-palette-primary);
}

.rapid-theme .mud-selected,
.rapid-theme .mud-list-item-selected,
.rapid-theme .mud-table-row-selected,
.rapid-theme .mud-data-grid-row-selected {
    background-color: rgba(var(--mud-palette-primary-rgb), 0.12);
}

.rapid-theme ::selection {
    background-color: rgba(var(--mud-palette-primary-rgb), 0.35);
    color: var(--mud-palette-primary-contrast-text);
}

.rapid-theme .mud-input:focus-within .mud-input-underline:after,
.rapid-theme .mud-input:focus-within .mud-input-outlined-border {
    border-color: var(--mud-palette-primary);
}

/* Filter Grid 10-column layout */
.filter-grid-10 {
    display: grid;
    grid-template-columns: repeat(10, 1fr);
    gap: 16px;
    align-items: end;
    margin-top: 16px;
    margin-bottom: 24px;
}

.filter-grid-10>div {
    min-width: 0;
}

.filter-grid-10 .mud-input-control {
    margin-bottom: 0 !important;
}

.filter-grid-10-item-2 {
    grid-column: span 2;
}

.filter-grid-10-item-1 {
    grid-column: span 1;
}

@media (max-width: 960px) {
    .filter-grid-10 {
        grid-template-columns: repeat(2, 1fr);
    }

    .filter-grid-10-item-2,
    .filter-grid-10-item-1 {
        grid-column: span 1;
    }
}

/* ===== My Account Page ===== */

/* Left nav panel — card style matching Home.razor summary cards */
.account-nav-panel {
    border-radius: 14px;
    border: 1px solid var(--mud-palette-lines-default);
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--mud-palette-surface) 98%, rgba(var(--mud-palette-primary-rgb), 0.03)) 0%,
        color-mix(in srgb, var(--mud-palette-surface) 95%, rgba(15, 23, 42, 0.02)) 100%
    );
    box-shadow: 0 14px 36px rgba(148, 163, 184, 0.14);
    padding: 12px;
}

/* Nav buttons — op-stats-tab-button style stacked vertically */
.account-nav-panel .account-nav-stack {
    padding: 0;
}

.account-nav-panel .mud-nav-link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100%;
    height: 50px !important;
    min-height: 50px !important;
    border-radius: 12px !important;
    background-color: #666d79 !important;
    color: #fff !important;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700 !important;
    font-size: 0.875rem;
    text-transform: none;
    box-shadow: none;
    margin: 0 !important;
    padding: 0 16px !important;
    transition: background-color 0.15s ease;
    gap: 8px;
}

.account-nav-panel .mud-nav-link:not(.active):hover {
    background-color: #5a6068 !important;
}

.account-nav-panel .mud-nav-link.active {
    background-color: var(--mud-palette-primary) !important;
    color: var(--mud-palette-primary-contrast-text) !important;
}

.account-nav-panel .mud-nav-link .mud-icon-root,
.account-nav-panel .mud-nav-link .mud-nav-link-text {
    color: #fff !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Right content panel — filter-card style matching TargetsLive */
.account-content-panel {
    --targets-history-control-radius: 8px;
    border-radius: 22px;
    border: 1px solid var(--targets-history-border, rgba(15, 23, 42, 0.08));
    background: var(--targets-history-card-bg, linear-gradient(180deg, #ffffff 0%, #fbfcff 100%));
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.08);
    padding: 28px 32px;
}

/* Section title inside content panel */
.account-section-title {
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
    margin-bottom: 20px;
    color: var(--targets-history-text-primary, #0f172a);
}

/* ── Account panel: undo compact filter-bar styles from targets-history.css ──
   The profile inputs use targets-history-filter-control which was designed for
   compact filter bars (32px height, centered text, near-transparent border).
   Override every one of those behaviours here so the fields look like normal
   full-height MudBlazor outlined inputs instead. */

/* 1. Restore proper input slot height (targets-history.css forces 32px) */
.account-content-panel .targets-history-filter-control .mud-input-slot {
    height: auto !important;
    min-height: 40px !important;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
}

/* 2. Left-align label and input text (targets-history.css centers both) */
.account-content-panel .targets-history-filter-control .mud-input-label {
    text-align: left !important;
    font-family: 'Quicksand', sans-serif !important;
    width: auto !important;
    padding: 0 4px !important;
    z-index: 1;
}

/* Only paint the notch background when the label is floating (has value or focused).
   Without this scope, the full-width label paints a white bar over the placeholder
   and wipes out the entire top border. */
.account-content-panel .targets-history-filter-control .mud-input.mud-input-filled .mud-input-label,
.account-content-panel .targets-history-filter-control .mud-input:focus-within .mud-input-label {
    background: var(--mud-palette-surface, #fff) !important;
}

.account-content-panel .targets-history-filter-control .mud-input > input,
.account-content-panel .targets-history-filter-control input:not([type="hidden"]),
.account-content-panel .targets-history-filter-control textarea {
    text-align: left !important;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
    line-height: normal !important;
    font-family: 'Quicksand', sans-serif !important;
    font-size: 0.875rem !important;
    color: var(--mud-palette-text-primary) !important;
    outline: none !important;
    box-shadow: none !important;
    background: transparent !important;
    border: none !important;
}

/* 3. Visible outlined border (targets-history.css sets it to near-transparent rgba(148,163,184,0.16)) */
.account-content-panel .targets-history-filter-control .mud-input-outlined-border,
.account-content-panel .mud-input.mud-input-outlined .mud-input-outlined-border {
    border: 1px solid rgba(0, 0, 0, 0.23) !important;
    border-radius: 8px !important;
    transition: border-color 0.15s ease, border-width 0.1s ease;
}

.account-content-panel .mud-input.mud-input-outlined:hover .mud-input-outlined-border {
    border-color: var(--mud-palette-primary) !important;
}

.account-content-panel .mud-input.mud-input-outlined:focus-within .mud-input-outlined-border {
    border-color: var(--mud-palette-primary) !important;
    border-width: 2px !important;
}

.account-content-panel .mud-input.mud-input-outlined.mud-disabled .mud-input-outlined-border {
    border-color: rgba(0, 0, 0, 0.18) !important;
    opacity: 0.8;
}

.account-content-panel .targets-history-filter-control input:disabled,
.account-content-panel .targets-history-filter-control input[disabled] {
    color: rgba(0, 0, 0, 0.38) !important;
    cursor: not-allowed;
}

/* Dark mode */
.dashboard-dark-mode .account-content-panel .targets-history-filter-control .mud-input-outlined-border,
.dashboard-dark-mode .account-content-panel .mud-input.mud-input-outlined .mud-input-outlined-border,
body.mud-theme-dark .account-content-panel .targets-history-filter-control .mud-input-outlined-border,
body.mud-theme-dark .account-content-panel .mud-input.mud-input-outlined .mud-input-outlined-border {
    border-color: rgba(255, 255, 255, 0.23) !important;
}

.dashboard-dark-mode .account-content-panel .targets-history-filter-control input:disabled,
body.mud-theme-dark .account-content-panel .targets-history-filter-control input:disabled {
    color: rgba(255, 255, 255, 0.38) !important;
}

.dashboard-dark-mode .account-content-panel .targets-history-filter-control .mud-input.mud-input-filled .mud-input-label,
.dashboard-dark-mode .account-content-panel .targets-history-filter-control .mud-input:focus-within .mud-input-label,
body.mud-theme-dark .account-content-panel .targets-history-filter-control .mud-input.mud-input-filled .mud-input-label,
body.mud-theme-dark .account-content-panel .targets-history-filter-control .mud-input:focus-within .mud-input-label {
    background: var(--mud-palette-surface) !important;
}

/* MudStaticButton inside content panel — same styling as filter buttons on other pages */
.account-content-panel .targets-history-filter-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 116px;
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    padding: 0 14px !important;
    border-radius: var(--targets-history-control-radius, 8px);
    font-family: 'Quicksand', sans-serif;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    box-shadow: none;
    line-height: 32px !important;
    border: none;
    cursor: pointer;
}

.account-content-panel .targets-history-filter-button--primary {
    background: var(--mud-palette-primary) !important;
    color: var(--mud-palette-primary-contrast-text) !important;
    -webkit-text-fill-color: var(--mud-palette-primary-contrast-text) !important;
}

.account-content-panel .targets-history-filter-button--primary .mud-button-label,
.account-content-panel .targets-history-filter-button--primary span {
    color: var(--mud-palette-primary-contrast-text) !important;
    -webkit-text-fill-color: var(--mud-palette-primary-contrast-text) !important;
}

/* Dark mode */
.dashboard-dark-mode .account-nav-panel,
body.mud-theme-dark .account-nav-panel {
    border-color: rgba(255, 255, 255, 0.08);
    background: var(--mud-palette-surface);
}

.dashboard-dark-mode .account-content-panel,
body.mud-theme-dark .account-content-panel {
    background: var(--mud-palette-surface);
    border-color: rgba(255, 255, 255, 0.08);
}

.account-security-shell {
    display: grid;
    gap: 18px;
}

.account-security-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 20px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(var(--mud-palette-primary-rgb), 0.10), rgba(255, 255, 255, 0.92));
}

.account-security-eyebrow {
    margin-bottom: 4px;
    color: var(--mud-palette-primary);
    font-family: 'Quicksand', sans-serif;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.account-security-heading {
    margin: 0;
    color: var(--targets-history-text-primary, #0f172a);
    font-family: 'Quicksand', sans-serif;
    font-size: clamp(1.25rem, 2vw, 1.75rem);
    font-weight: 800;
}

.account-security-copy {
    margin: 6px 0 0;
    max-width: 720px;
    color: var(--mud-palette-text-secondary);
    font-family: 'Quicksand', sans-serif;
    font-size: 0.95rem;
    line-height: 1.55;
}

.account-security-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    padding: 9px 13px;
    border-radius: 999px;
    background: rgba(34, 197, 94, 0.12);
    color: #00a650;
    font-family: 'Quicksand', sans-serif;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.account-security-status-pill--disabled {
    background: rgba(239, 68, 68, 0.10);
    color: #ef4444;
}

.account-security-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.account-security-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 180px;
    padding: 18px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 18px;
    background: var(--mud-palette-surface, #fff);
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.06);
}

.account-security-card--wide {
    grid-column: 1 / -1;
    min-height: unset;
}

.account-security-card-title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    color: var(--targets-history-text-primary, #0f172a);
    font-family: 'Quicksand', sans-serif;
    font-size: 1rem;
    font-weight: 800;
}

.account-security-card-title .mud-icon-root {
    color: var(--mud-palette-primary);
}

.account-security-card-description {
    margin: 0;
    color: var(--mud-palette-text-secondary);
    font-family: 'Quicksand', sans-serif;
    font-size: 0.9rem;
    line-height: 1.5;
}

.account-security-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: auto;
}

.account-security-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--mud-palette-primary) !important;
    font-family: 'Quicksand', sans-serif;
    font-weight: 800;
    text-decoration: none !important;
}

.account-security-link:hover {
    text-decoration: underline !important;
}

.account-security-alert {
    border-radius: 14px !important;
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
}

.account-security-login-page {
    display: flex;
    justify-content: center;
    padding: clamp(24px, 5vw, 64px) 16px;
}

.account-security-login-card {
    width: min(100%, 520px);
    padding: 28px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 22px;
    background: var(--mud-palette-surface, #fff);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.10);
}

.account-security-login-title {
    margin: 0 0 8px;
    font-family: 'Quicksand', sans-serif;
    font-size: 1.75rem;
    font-weight: 800;
}

.account-security-login-description {
    margin: 0 0 20px;
    color: var(--mud-palette-text-secondary);
    font-family: 'Quicksand', sans-serif;
    line-height: 1.5;
}

.account-security-input {
    width: 100%;
    min-height: 48px;
    padding: 10px 14px;
    border: 1px solid rgba(15, 23, 42, 0.18);
    border-radius: 12px;
    background: #fff;
    color: #0f172a;
    font-family: 'Quicksand', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    outline: none;
}

.account-security-input:focus {
    border-color: var(--mud-palette-primary);
    box-shadow: 0 0 0 3px rgba(var(--mud-palette-primary-rgb), 0.16);
}

.account-security-checkbox {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 14px 0 18px;
    color: var(--mud-palette-text-primary);
    font-family: 'Quicksand', sans-serif;
    font-weight: 700;
}

.account-security-login-actions {
    display: grid;
    gap: 10px;
    margin-top: 18px;
}

.dashboard-dark-mode .account-security-header,
body.mud-theme-dark .account-security-header,
.dashboard-dark-mode .account-security-card,
body.mud-theme-dark .account-security-card,
.dashboard-dark-mode .account-security-login-card,
body.mud-theme-dark .account-security-login-card {
    border-color: rgba(255, 255, 255, 0.10);
    background: var(--mud-palette-surface);
}

.dashboard-dark-mode .account-security-input,
body.mud-theme-dark .account-security-input {
    border-color: rgba(255, 255, 255, 0.20);
    background: rgba(255, 255, 255, 0.04);
    color: var(--mud-palette-text-primary);
}

@media (max-width: 959.98px) {
    .account-content-panel {
        padding: 20px;
    }

    .account-security-header {
        flex-direction: column;
    }

    .account-security-grid {
        grid-template-columns: 1fr;
    }
}
