:root {
    color-scheme: dark;
    --cc-background: #050911;
    --cc-background-soft: #080d15;
    --cc-foreground: #f6f9fc;
    --cc-surface: #0c121b;
    --cc-surface-2: #141b26;
    --cc-surface-3: #1e2735;
    --cc-muted: #c2cad4;
    --cc-muted-disabled: #7e8794;
    --cc-primary: #00e5e6;
    --cc-accent: #9b8eff;
    --cc-success: #33cc7d;
    --cc-warning: #f3ba25;
    --cc-error: #f94144;
    --cc-info: #62b8ff;
    --cc-border: rgba(255, 255, 255, 0.08);
    --cc-border-strong: rgba(255, 255, 255, 0.16);
    --cc-input: rgba(255, 255, 255, 0.1);
    --cc-gradient: linear-gradient(135deg, #00e5e6, #9b8eff);
    --cc-ambient: radial-gradient(ellipse 80% 60% at 50% 0%, rgba(155, 142, 255, 0.25), transparent 60%),
                  radial-gradient(ellipse 60% 50% at 80% 30%, rgba(0, 229, 230, 0.18), transparent 60%);
    --cc-shadow-card: 0 20px 40px -20px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.05);
    --cc-shadow-glow: 0 0 60px -10px rgba(0, 229, 230, 0.4);
    --cc-radius: 14px;
    --cc-radius-sm: 9px;
    --cc-transition: 150ms cubic-bezier(0.4, 0, 0.2, 1);
    --cc-font-body: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --cc-font-display: "Inter Tight", "Inter", system-ui, sans-serif;
    --cc-font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
}

*, *::before, *::after {
    box-sizing: border-box;
}

html, body {
    min-height: 100%;
    margin: 0;
    background: var(--cc-background);
    color: var(--cc-foreground);
    font-family: var(--cc-font-body);
    font-synthesis: none;
    text-rendering: optimizeLegibility;
}

body {
    min-width: 320px;
    overflow-x: hidden;
}

body::before {
    position: fixed;
    z-index: -1;
    inset: 0;
    background: var(--cc-ambient);
    content: "";
    pointer-events: none;
}

button, input, optgroup, select, textarea {
    font-family: inherit;
}

h1, h2, h3, h4, h5, h6,
.mud-typography-h1, .mud-typography-h2, .mud-typography-h3,
.mud-typography-h4, .mud-typography-h5, .mud-typography-h6 {
    color: var(--cc-foreground);
    font-family: var(--cc-font-display);
    font-weight: 700;
    letter-spacing: -0.025em;
}

a, .btn-link {
    color: var(--mud-palette-primary, var(--cc-primary));
}

a:hover {
    color: color-mix(in srgb, var(--mud-palette-primary, var(--cc-primary)) 80%, white);
}

code, kbd, pre, samp,
.cc-mono,
.mud-table-cell[data-label*="ID"],
.mud-table-cell[data-label*="Date"],
.mud-table-cell[data-label*="Time"] {
    font-family: var(--cc-font-mono);
}

::selection {
    background: rgba(0, 229, 230, 0.28);
    color: var(--cc-foreground);
}

:focus-visible {
    outline: 2px solid var(--mud-palette-primary, var(--cc-primary));
    outline-offset: 3px;
}

.btn-primary {
    border-color: transparent;
    background: linear-gradient(135deg, var(--mud-palette-primary, var(--cc-primary)), color-mix(in srgb, var(--mud-palette-primary, var(--cc-primary)) 55%, var(--cc-accent)));
    color: var(--cc-background);
    font-weight: 700;
}

.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid var(--cc-success);
}

.invalid {
    outline: 1px solid var(--cc-error);
}

.validation-message {
    color: var(--cc-error);
}

/* Shared CanCleaning identity */
.cc-brand-logo {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
    color: var(--cc-foreground);
    line-height: 1;
    vertical-align: middle;
}

.cc-brand-logo__mark {
    display: inline-grid;
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    place-items: center;
    border-radius: 9px;
    background: var(--cc-gradient);
    box-shadow: 0 8px 24px -10px rgba(0, 229, 230, 0.7);
}

.cc-brand-logo__inset {
    display: grid;
    width: 27px;
    height: 27px;
    place-items: center;
    border-radius: 7px;
    background: var(--cc-background-soft);
}

.cc-brand-logo svg {
    width: 17px;
    height: 17px;
    stroke: var(--cc-primary);
}

.cc-brand-logo svg path + path {
    stroke: var(--cc-accent);
}

.cc-brand-logo__wordmark {
    display: inline-flex;
    min-width: 0;
    align-items: baseline;
    font-family: var(--cc-font-display);
    font-size: 1.16rem;
    white-space: nowrap;
}

.cc-brand-logo__can {
    font-weight: 800;
}

.cc-brand-logo__cleaning {
    color: var(--cc-muted);
    font-weight: 500;
}

.cc-brand-logo__tenant {
    max-width: 260px;
    overflow: hidden;
    color: var(--cc-foreground);
    font-weight: 700;
    text-overflow: ellipsis;
}

.cc-brand-logo__suffix {
    margin-left: 8px;
    padding: 4px 7px;
    border: 1px solid var(--cc-border-strong);
    border-radius: 999px;
    color: var(--cc-muted);
    font-family: var(--cc-font-body);
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cc-brand-logo--compact .cc-brand-logo__mark {
    width: 30px;
    height: 30px;
    flex-basis: 30px;
}

/* App shell and navigation */
.mud-layout,
.mud-main-content,
.cc-shell {
    background: transparent;
}

.cc-main-content {
    min-height: 100vh;
}

.cc-appbar {
    border-bottom: 1px solid var(--cc-border) !important;
    background: rgba(8, 13, 21, 0.84) !important;
    box-shadow: none !important;
    backdrop-filter: blur(18px) saturate(135%);
}

.cc-drawer {
    border-right: 1px solid var(--cc-border) !important;
    background: rgba(8, 13, 21, 0.94) !important;
    box-shadow: none !important;
}

.cc-main-nav {
    padding: 12px 9px 24px;
}

.mud-nav-link,
.mud-nav-group .mud-nav-link {
    min-height: 42px;
    margin: 2px 0;
    border-radius: var(--cc-radius-sm);
    color: var(--cc-muted);
    font-weight: 500;
    transition: background-color var(--cc-transition), color var(--cc-transition), transform var(--cc-transition);
}

.mud-nav-link:hover,
.mud-nav-group .mud-nav-link:hover {
    background: rgba(255, 255, 255, 0.055);
    color: var(--cc-foreground);
}

.mud-nav-link.active:not(.mud-nav-link-disabled),
.mud-nav-link.mud-ripple.active {
    background: linear-gradient(90deg, rgba(0, 229, 230, 0.14), rgba(155, 142, 255, 0.08));
    color: var(--mud-palette-primary, var(--cc-primary));
    box-shadow: inset 3px 0 0 var(--mud-palette-primary, var(--cc-primary));
}

.mud-nav-link.active .mud-nav-link-icon,
.mud-nav-link:hover .mud-nav-link-icon {
    color: inherit;
}

.mud-nav-group .mud-nav-group-header {
    border-radius: var(--cc-radius-sm);
    color: var(--cc-muted);
}

.cc-query-nav-item .mud-nav-link {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    text-decoration: none;
    padding: 8px 16px;
}

.cc-query-nav-item .mud-nav-link-text {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.cc-platform-nav-heading {
    padding: 8px 12px 4px;
}

.cc-platform-nav-heading .mud-typography-overline {
    letter-spacing: 0.08em;
    color: var(--cc-muted);
}

.cc-platform-nav-heading-warning .mud-typography-overline,
.cc-platform-nav-heading-warning .mud-typography-caption {
    color: var(--mud-palette-warning);
}

.cc-section-subnav-buttons {
    row-gap: 8px;
}

.cc-section-card {
    cursor: pointer;
    height: 100%;
    transition: border-color var(--cc-transition), box-shadow var(--cc-transition);
}

.cc-section-card:hover {
    border-color: var(--mud-palette-primary);
}

.cc-settings-card-emphasize {
    border-color: var(--mud-palette-primary);
    box-shadow: inset 3px 0 0 var(--mud-palette-primary);
}

.customer-profile-local-nav {
    gap: 6px;
}

.customer-profile-local-nav .mud-button {
    min-height: 40px;
}

.mud-drawer .mud-divider {
    border-color: var(--cc-border);
}

.customer-bottom-nav {
    border-top: 1px solid var(--cc-border) !important;
    background: rgba(12, 18, 27, 0.94) !important;
    box-shadow: 0 -18px 40px -30px rgba(0, 0, 0, 0.9) !important;
    backdrop-filter: blur(18px);
}

.customer-bottom-nav .mud-nav-link {
    min-height: 62px;
    border-radius: 0;
}

/* Surfaces and hierarchy */
.mud-paper,
.mud-card,
.mud-expansion-panel,
.mud-stepper,
.mud-table-container {
    border-color: var(--cc-border);
    background-color: var(--cc-surface);
}

.mud-card,
.mud-paper:not(.mud-appbar):not(.mud-drawer):not(.customer-bottom-nav),
.mud-expansion-panel,
.mud-stepper {
    border: 1px solid var(--cc-border);
    border-radius: var(--cc-radius);
    box-shadow: var(--cc-shadow-card);
}

.mud-card-header,
.mud-card-content,
.mud-card-actions {
    position: relative;
}

.mud-divider {
    border-color: var(--cc-border);
}

.cc-page-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
}

.cc-metric-card {
    position: relative;
    min-height: 118px;
    overflow: hidden;
    transition: border-color var(--cc-transition), transform var(--cc-transition), box-shadow var(--cc-transition);
}

.cc-metric-card::after {
    position: absolute;
    top: 0;
    right: 0;
    width: 70%;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--mud-palette-primary, var(--cc-primary)), var(--cc-accent));
    content: "";
    opacity: 0.75;
}

.cc-metric-card:hover {
    border-color: var(--cc-border-strong);
    box-shadow: var(--cc-shadow-card), 0 0 40px -24px rgba(0, 229, 230, 0.4);
    transform: translateY(-2px);
}

.cc-metric-card .mud-typography-h4 {
    margin-top: 8px;
    font-family: var(--cc-font-mono);
    font-weight: 500;
    letter-spacing: -0.045em;
}

.cc-data-card {
    overflow: hidden;
}

/* Buttons and actions */
.mud-button-root,
.mud-icon-button,
.mud-fab {
    border-radius: var(--cc-radius-sm);
    transition: transform var(--cc-transition), filter var(--cc-transition), background-color var(--cc-transition), border-color var(--cc-transition), color var(--cc-transition);
}

.mud-button-root {
    min-height: 38px;
    font-weight: 650;
    letter-spacing: -0.005em;
    text-transform: none;
}

.mud-button-filled.mud-button-filled-primary {
    border: 0;
    background: linear-gradient(135deg, var(--mud-palette-primary, var(--cc-primary)), color-mix(in srgb, var(--mud-palette-primary, var(--cc-primary)) 55%, var(--cc-accent)));
    color: var(--cc-background);
    box-shadow: 0 10px 24px -14px color-mix(in srgb, var(--mud-palette-primary, var(--cc-primary)) 70%, transparent);
}

.mud-button-filled.mud-button-filled-primary:hover,
.mud-fab-primary:hover {
    filter: brightness(1.08);
    transform: translateY(-1px);
}

.mud-button-outlined {
    border-color: var(--cc-border-strong);
    background: rgba(255, 255, 255, 0.015);
}

.mud-button-text:hover,
.mud-icon-button:hover {
    background: rgba(255, 255, 255, 0.06);
}

.mud-button-root:disabled,
.mud-icon-button:disabled {
    filter: saturate(0.35);
    opacity: 0.5;
}

/* Forms and controls */
.mud-input-control,
.mud-input,
.mud-input-label,
.mud-select,
.mud-picker {
    font-family: var(--cc-font-body);
}

.mud-input-outlined-border,
.mud-field .mud-input-outlined-border {
    border-color: var(--cc-border-strong) !important;
    border-radius: var(--cc-radius-sm) !important;
}

.mud-input-control:hover .mud-input-outlined-border,
.mud-field:hover .mud-input-outlined-border {
    border-color: rgba(255, 255, 255, 0.28) !important;
}

.mud-input-control.mud-input-control-margin-dense,
.mud-input-control > .mud-input-control-input-container {
    min-width: 0;
}

.mud-input-slot,
.mud-select-input,
.mud-input-label {
    color: var(--cc-foreground);
}

.mud-input-helper-text,
.mud-input-label:not(.mud-input-error) {
    color: var(--cc-muted);
}

.mud-input-root:focus-within,
.mud-field:focus-within {
    --mud-palette-lines-inputs: var(--mud-palette-primary, var(--cc-primary));
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--cc-foreground);
    box-shadow: 0 0 0 1000px var(--cc-surface-2) inset;
}

input[type="color"] {
    border: 1px solid var(--cc-border-strong);
    border-radius: var(--cc-radius-sm);
    background: var(--cc-surface-2);
}

.mud-checkbox .mud-icon-root,
.mud-radio .mud-icon-root,
.mud-switch .mud-icon-root {
    transition: color var(--cc-transition);
}

/* Tables, data grids, and pagination */
.mud-table,
.mud-table-container,
.mud-table-root {
    background: transparent;
    color: var(--cc-foreground);
}

.mud-table-head {
    background: rgba(255, 255, 255, 0.025);
}

.mud-table-head .mud-table-cell,
.mud-table-sticky-header .mud-table-cell {
    border-color: var(--cc-border);
    color: var(--cc-muted);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.055em;
    text-transform: uppercase;
}

.mud-table-cell {
    border-color: var(--cc-border);
}

.mud-table-row {
    transition: background-color var(--cc-transition);
}

.mud-table-row:hover,
.mud-table-hover .mud-table-row:hover {
    background: rgba(0, 229, 230, 0.035) !important;
}

.mud-table-pagination {
    border-top: 1px solid var(--cc-border);
    color: var(--cc-muted);
}

/* Dialogs, popovers, menus, and overlays */
.mud-dialog,
.mud-popover,
.mud-menu-list,
.mud-picker-container {
    border: 1px solid var(--cc-border-strong);
    border-radius: var(--cc-radius);
    background: var(--cc-surface-2);
    box-shadow: 0 24px 70px -24px rgba(0, 0, 0, 0.85);
}

.mud-dialog-title {
    font-family: var(--cc-font-display);
    font-weight: 700;
}

.mud-overlay-dark {
    background-color: rgba(2, 5, 10, 0.74);
    backdrop-filter: blur(4px);
}

.mud-list-item:hover,
.mud-menu-item:hover {
    background: rgba(255, 255, 255, 0.055);
}

.mud-tooltip-root,
.mud-tooltip {
    border: 1px solid var(--cc-border-strong);
    background: var(--cc-surface-3);
    color: var(--cc-foreground);
}

/* Tabs, panels, steppers, and progress */
.mud-tabs-tabbar {
    border-bottom: 1px solid var(--cc-border);
    background: transparent;
}

.mud-tab {
    min-height: 46px;
    color: var(--cc-muted);
    font-weight: 600;
    text-transform: none;
}

.mud-tab.mud-tab-active {
    color: var(--mud-palette-primary, var(--cc-primary));
}

.mud-tabs-tabbar .mud-tabs-tabbar-slider {
    height: 2px;
    border-radius: 999px 999px 0 0;
    background: linear-gradient(90deg, var(--mud-palette-primary, var(--cc-primary)), var(--cc-accent));
}

.mud-expansion-panel-header {
    min-height: 54px;
    font-weight: 600;
}

.mud-stepper-nav {
    border-bottom: 1px solid var(--cc-border);
}

.mud-progress-linear-bar,
.mud-progress-circular-svg {
    filter: drop-shadow(0 0 8px rgba(0, 229, 230, 0.3));
}

.mud-skeleton {
    background: linear-gradient(90deg, var(--cc-surface-2), var(--cc-surface-3), var(--cc-surface-2));
}

/* Feedback, status, and messaging */
.mud-alert,
.mud-chip {
    border: 1px solid color-mix(in srgb, currentColor 22%, transparent);
}

.mud-alert {
    border-radius: var(--cc-radius-sm);
    background-image: linear-gradient(90deg, rgba(255, 255, 255, 0.025), transparent);
}

.mud-chip {
    font-weight: 600;
}

.mud-snackbar-content {
    border: 1px solid var(--cc-border-strong);
    border-radius: var(--cc-radius-sm);
    background: var(--cc-surface-3);
    color: var(--cc-foreground);
    box-shadow: var(--cc-shadow-card);
}

.messages-unread-badge {
    box-shadow: 0 0 0 2px var(--cc-background-soft);
}

/* Authentication and public flows */
.cc-app-loading,
.cc-auth-page {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cc-app-loading {
    height: 100vh;
    flex-direction: column;
    gap: 28px;
    background: var(--cc-background);
}

.cc-app-loading::before,
.cc-auth-page::before {
    position: absolute;
    z-index: 0;
    width: min(720px, 100vw);
    height: min(520px, 72vh);
    border-radius: 50%;
    background: var(--cc-ambient);
    content: "";
    filter: blur(12px);
    pointer-events: none;
}

.cc-app-loading > *,
.cc-auth-page > * {
    z-index: 1;
}

.cc-auth-card {
    overflow: hidden;
    border-color: var(--cc-border-strong);
    background: rgba(12, 18, 27, 0.86);
    box-shadow: var(--cc-shadow-card), var(--cc-shadow-glow);
    backdrop-filter: blur(18px);
}

.cc-auth-card::before {
    display: block;
    height: 2px;
    background: var(--cc-gradient);
    content: "";
}

.cc-auth-brand {
    display: flex;
    justify-content: center;
    padding: 30px 24px 12px;
}

.cc-auth-header .mud-card-header-content {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.cc-auth-actions {
    padding-bottom: 28px !important;
}

.empty-layout,
.signup-layout {
    position: relative;
    isolation: isolate;
}

.empty-layout::before,
.signup-layout::before {
    position: fixed;
    z-index: -1;
    inset: 0;
    background: var(--cc-ambient);
    content: "";
    opacity: 0.8;
    pointer-events: none;
}

.public-footer {
    border-top: 1px solid var(--cc-border);
    background: rgba(5, 9, 17, 0.6);
}

/* Bootstrap fallbacks used by a small number of pages */
.form-control,
.form-select {
    border-color: var(--cc-border-strong);
    border-radius: var(--cc-radius-sm);
    background-color: var(--cc-surface-2);
    color: var(--cc-foreground);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--mud-palette-primary, var(--cc-primary));
    background-color: var(--cc-surface-2);
    color: var(--cc-foreground);
    box-shadow: 0 0 0 3px rgba(0, 229, 230, 0.14);
}

.cursor-pointer {
    cursor: pointer;
}

.cursor-pointer:hover {
    background-color: rgba(0, 229, 230, 0.04);
}

.pricing-plan-card-drag {
    display: flex;
    flex: 1 1 auto;
    width: 100%;
    cursor: grab;
    user-select: none;
}

.pricing-plan-card-drag:active {
    cursor: grabbing;
}

.pricing-plan-card-drag.pricing-plan-dragging {
    opacity: 0.35;
}

.pricing-plan-card-drag .mud-button-root,
.pricing-plan-card-drag .mud-icon-button {
    cursor: pointer;
}

.blazor-error-boundary {
    padding: 1rem 1rem 1rem 3.7rem;
    border: 1px solid rgba(249, 65, 68, 0.4);
    background: linear-gradient(90deg, rgba(249, 65, 68, 0.18), var(--cc-surface));
    color: var(--cc-foreground);
}

.blazor-error-boundary::after {
    content: "An error has occurred.";
}

.darker-border-checkbox.form-check-input {
    border-color: var(--cc-border-strong);
}

.form-floating > .form-control-plaintext::placeholder,
.form-floating > .form-control::placeholder {
    color: var(--cc-muted);
    text-align: end;
}

/* Retire light-theme colors that still appear in legacy inline presentation.
   These selectors intentionally target only style attributes, leaving route and
   map data colors untouched. */
[style*="color:#0d47a1"],
[style*="color:#1565c0"],
[style*="color:#1976d2"],
[style*="color: #0d47a1"],
[style*="color: #1565c0"],
[style*="color: #1976d2"] {
    color: var(--mud-palette-primary, var(--cc-primary)) !important;
}

[style*="color:#2e7d32"],
[style*="color:#4caf50"],
[style*="color: #2e7d32"],
[style*="color: #4caf50"] {
    color: var(--cc-success) !important;
}

[style*="background:#0d47a1"],
[style*="background:#1565c0"],
[style*="background:#1976d2"],
[style*="background: #0d47a1"],
[style*="background: #1565c0"],
[style*="background: #1976d2"] {
    background: linear-gradient(135deg, rgba(0, 229, 230, 0.2), rgba(155, 142, 255, 0.12)), var(--cc-surface-2) !important;
}

[style*="background:#fafafa"],
[style*="background:#f8fafc"],
[style*="background:#f5f5f5"],
[style*="background:#f3f3f3"],
[style*="background:#f4f4f5"],
[style*="background:#f2f2f7"],
[style*="background:#f0f0f0"],
[style*="background:#eceff1"],
[style*="background:#e3f2fd"],
[style*="background:#e8f0fe"],
[style*="background:#e8f5e9"],
[style*="background:#fff3e0"],
[style*="background:#fff8e1"],
[style*="background:#ffebee"],
[style*="background:white"],
[style*="background: white"],
[style*="background:#fff;"],
[style*="background: #fff;"] {
    background: var(--cc-surface-2) !important;
}

[style*="border:1px solid #cfd8dc"],
[style*="border:1px solid #e0e0e0"],
[style*="border:1px solid #e8e8e8"],
[style*="border-color:#cbd5e1"],
[style*="border-color: #cbd5e1"] {
    border-color: var(--cc-border-strong) !important;
}

[style*="border-bottom:1px solid #cfd8dc"],
[style*="border-bottom:1px solid #e0e0e0"],
[style*="border-bottom:1px solid #f0f0f0"],
[style*="border-top:2px solid #e0e0e0"] {
    border-color: var(--cc-border) !important;
}

[style*="color:#1a1a1a"],
[style*="color:#263238"],
[style*="color:#374151"] {
    color: var(--cc-foreground) !important;
}

/* Dense feature surfaces with component-local light styles. */
.recent-pages-bar {
    border-color: var(--cc-border) !important;
    background: rgba(8, 13, 21, 0.74) !important;
}

.recent-pages-chip {
    border-color: var(--cc-border) !important;
    background: var(--cc-surface) !important;
    color: var(--cc-muted) !important;
}

.recent-pages-chip:hover {
    border-color: var(--cc-border-strong) !important;
    background: var(--cc-surface-2) !important;
    color: var(--cc-foreground) !important;
}

.recent-pages-chip-active {
    border-color: var(--mud-palette-primary, var(--cc-primary)) !important;
    background: rgba(0, 229, 230, 0.1) !important;
    color: var(--mud-palette-primary, var(--cc-primary)) !important;
}

.messages-shell {
    border-color: var(--cc-border-strong) !important;
    background: var(--cc-surface) !important;
    box-shadow: var(--cc-shadow-card);
}

.messages-list,
.messages-pane,
.sms-thread {
    border-color: var(--cc-border) !important;
    background: var(--cc-background-soft) !important;
}

.messages-list-toolbar,
.messages-pane-header,
.sms-composer {
    border-color: var(--cc-border) !important;
    background: var(--cc-surface) !important;
}

.conv-item {
    border-color: var(--cc-border) !important;
    color: var(--cc-foreground);
}

.conv-item:hover {
    background: rgba(255, 255, 255, 0.045) !important;
}

.conv-item.active {
    background: linear-gradient(90deg, rgba(0, 229, 230, 0.12), rgba(155, 142, 255, 0.06)) !important;
    box-shadow: inset 3px 0 0 var(--mud-palette-primary, var(--cc-primary));
}

.conv-item.unread .conv-preview,
.conv-name {
    color: var(--cc-foreground) !important;
}

.conv-time,
.conv-preview {
    color: var(--cc-muted) !important;
}

.conv-unread-count {
    background: var(--mud-palette-primary, var(--cc-primary)) !important;
    color: var(--cc-background) !important;
}

.sms-bubble {
    border: 1px solid var(--cc-border);
    box-shadow: 0 8px 20px -16px rgba(0, 0, 0, 0.9) !important;
}

.sms-bubble.out.sms {
    border-color: rgba(0, 229, 230, 0.24);
    background: linear-gradient(135deg, #087c80, #53508c) !important;
    color: var(--cc-foreground) !important;
}

.sms-bubble.in.sms {
    background: var(--cc-surface-3) !important;
    color: var(--cc-foreground) !important;
}

.sms-bubble.out.email,
.sms-bubble.in.email {
    border-color: rgba(98, 184, 255, 0.28) !important;
    background: rgba(98, 184, 255, 0.1) !important;
    color: #b9ddff !important;
}

.sms-bubble.out.call,
.sms-bubble.in.call {
    border-color: rgba(155, 142, 255, 0.32) !important;
    background: rgba(155, 142, 255, 0.11) !important;
    color: #d6d0ff !important;
}

.sms-error {
    background: rgba(249, 65, 68, 0.12) !important;
    color: #ffb0b2 !important;
}

/* Legal and long-form public content stays readable without becoming a light island. */
.mud-typography-body1,
.mud-typography-body2,
.mud-typography-subtitle1,
.mud-typography-subtitle2 {
    color: inherit;
}

/*
  Text hierarchy (dark-only app):
  - primary values/headings: --cc-foreground / TextPrimary
  - labels, captions, helpers, inactive nav: --cc-muted / TextSecondary
  - disabled controls: --cc-muted-disabled / TextDisabled
  MudText/MudIcon Color.Secondary is used as muted copy across admin UI, not the purple
  brand fill. Purple remains on secondary buttons, chips, and filled controls.
*/
.mud-secondary-text {
    color: var(--cc-muted) !important;
}

::-webkit-scrollbar {
    width: 11px;
    height: 11px;
}

::-webkit-scrollbar-track {
    background: var(--cc-background-soft);
}

::-webkit-scrollbar-thumb {
    border: 3px solid var(--cc-background-soft);
    border-radius: 999px;
    background: var(--cc-surface-3);
}

::-webkit-scrollbar-thumb:hover {
    background: color-mix(in srgb, var(--cc-surface-3) 75%, var(--cc-primary));
}

@media (max-width: 959.98px) {
    .cc-account-name {
        display: none;
    }

    .mud-main-content > .mud-container {
        padding: 20px 16px !important;
    }

    .mud-dialog {
        max-width: calc(100vw - 24px);
        margin: 12px;
    }
}

@media (max-width: 599.98px) {
    .cc-brand-logo__wordmark {
        font-size: 1rem;
    }

    .cc-brand-logo__tenant {
        max-width: 180px;
    }

    .cc-brand-logo__suffix {
        display: none;
    }

    .cc-page-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .mud-card-content,
    .mud-dialog-content {
        padding-right: 16px;
        padding-left: 16px;
    }

    .mud-button-root {
        min-height: 42px;
    }

    .mud-icon-button {
        min-width: 44px;
        min-height: 44px;
    }

    .mud-table-container {
        max-width: calc(100vw - 32px);
        overflow-x: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
