
:root {
    --mud-typography-default-family: "Public Sans", Roboto, Arial, sans-serif;
    --mud-typography-button-family: "Public Sans", Roboto, Arial, sans-serif;
    --mud-typography-button-size: 0.875rem;
    --mud-typography-button-weight: 500;
    --mud-typography-button-letterspacing: 0.01em;
    --mud-typography-button-text-transform: none;
}

html, body {
    font-family: "Public Sans", Roboto, Arial, sans-serif;
    min-height: 100%;
    overflow-x: hidden;
}

a, .btn-link {
    color: var(--mud-palette-info);
}

.btn-primary {
    color: var(--mud-palette-primary-text);
    background-color: var(--mud-palette-primary);
    border-color: var(--mud-palette-primary-darken);
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem var(--color-focus);
}

.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid var(--color-success);
}

.invalid {
    outline: 1px solid var(--color-error);
}

.validation-message {
    color: var(--color-error);
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: var(--color-border);
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* Home page hero styles */
.hero-title {
    font-weight: 700;
    font-size: 4rem;
    line-height: 1.167;
    margin: 0;
    white-space: nowrap;
    color: var(--mud-palette-text-primary);
}

.gradient-text {
    background: linear-gradient(82deg, rgb(89, 74, 226) 0%, rgb(255, 102, 153) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.hero-description {
    max-width: 600px;
    font-size: 1.1rem;
    line-height: 1.75;
}

/* Hero section with stripe */
.hero-section {
    position: relative;
    min-height: 100vh;
    overflow: visible;
}

.hero-content {
    position: relative;
    z-index: 1;
    margin-left: 200px;
}

.section-background {
    position: absolute;
    top: 21.875rem;
    left: -18.75rem;
    right: -18.75rem;
    display: flex;
    flex-direction: column;
    transform: skewY(-10deg);
    transform-origin: 100% 0;
    overflow: visible;
    pointer-events: none;
}

.stripe.gradient {
    height: 12rem;
    background: linear-gradient(
        90deg, 
        transparent 0%,
        var(--color-primary-dark) 20%, 
        var(--color-primary) 100%
    );
}

/* ========================================
   Modern SaaS Sheet Layout
   Sidebar/appbar with gradient blend into content
   ======================================== */

/* Custom CSS variables - mapped to MudBlazor palette for consistency
   Use these for any custom styles that need theme colors.
   MudBlazor variables (--mud-palette-*) are automatically set by MudThemeProvider */
:root {
    /* Navigation */
    --nav-hover-color: var(--mud-palette-primary);
    
    /* Legacy aliases - prefer using --mud-palette-* directly */
    --color-primary: var(--mud-palette-primary);
    --color-primary-dark: var(--mud-palette-primary-darken);
    --color-accent: var(--mud-palette-secondary);
    
    /* Semantic color aliases for common use cases */
    --color-success: var(--mud-palette-success);
    --color-error: var(--mud-palette-error);
    --color-warning: var(--mud-palette-warning);
    --color-info: var(--mud-palette-info);
    
    /* Focus ring color - using info for accessibility */
    --color-focus: var(--mud-palette-info);
    
    /* Border/line color */
    --color-border: var(--mud-palette-lines-default);
}

/* Text utility classes using MudBlazor palette */
.text-secondary,
.mud-table-root .text-secondary,
.mud-table-cell .text-secondary {
    color: var(--mud-palette-text-secondary) !important;
}

/* App brand - top-left corner, scrolls with page */
.app-brand {
    position: absolute;
    top: 0;
    left: 0;
    height: 64px;
    padding: 0 25px;
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 1200; /* Lowered from 1400 to sit behind modal backdrop */
    background: transparent;
    pointer-events: auto;
}

    .app-brand .docs-brand-text {
        letter-spacing: .2rem;
        font-weight: 400;
        font-family: "Roboto";
        margin-inline-start: 12px;
        font-size: 24px;
        user-select: none;
        white-space: nowrap;
        overflow: hidden;
    }

/* Drawer toggle container - at top of drawer */
.drawer-toggle-container {
    display: flex;
    padding: 0.75rem 1rem;
}

/* Drawer toggle button */
.drawer-toggle-btn {
    opacity: 0.7;
    transition: opacity 0.2s ease;
}

.drawer-toggle-btn:hover {
    opacity: 1;
}

/* Layout background - gradient from left (lighter) to right (content color) */
.mud-layout {
    background: linear-gradient(90deg, var(--mud-palette-drawer-background) 0%, var(--mud-palette-background) 300px) !important;
    min-height: 100vh;
    overflow-y: auto !important;
    overflow-x: hidden !important;
}

/* Drawer (sidebar) - transparent to show layout gradient */
.mud-drawer {
    background: transparent !important;
    border-right: none !important;
    transition: width 0.2s ease !important;
}

/* Mini drawer width when collapsed */
.mud-drawer.mud-drawer-mini {
    --mud-drawer-mini-width: 72px;
}

/* Expanded drawer width */
.mud-drawer.mud-drawer--open {
    width: 240px !important;
}

/* Collapsed drawer width */
.mud-drawer:not(.mud-drawer--open) {
    width: 72px !important;
}

/* Nav icon only styling for collapsed state */
.nav-icon-only {
    justify-content: center !important;
    padding: 12px 0 !important;
}

.nav-icon-only .mud-nav-link-text {
    display: none;
}

.nav-icon-only .mud-nav-link-icon {
    margin: 0 !important;
}

/* Drawer header - transparent */
.mud-drawer-header {
    background-color: transparent !important;
}

/* NavMenu expand icon - match top nav arrow style */
.mud-nav-group .mud-nav-link .mud-nav-link-icon-expand {
    font-size: 1.25rem;
}

/* Top nav bar - hover highlight */
.mud-appbar .mud-button-root.mud-button-text:hover,
.mud-appbar .mud-button-root.mud-button-text:hover .mud-button-label,
.mud-appbar .mud-menu .mud-button-root:hover,
.mud-appbar .mud-menu .mud-button-root:hover .mud-button-label {
    color: var(--nav-hover-color) !important;
}

/* Top nav bar icon buttons - hover highlight */
.mud-appbar .nav-icon-btn:hover,
.mud-appbar .mud-icon-button:hover {
    color: var(--nav-hover-color) !important;
}

/* Top nav bar dropdown menu items - hover highlight */
.mud-menu-item:hover,
.mud-menu-item:hover .mud-typography {
    color: var(--nav-hover-color) !important;
}

/* Top nav main menu buttons */
.mud-appbar .mud-button-label {
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    text-transform: none !important;
}

/* Top nav dropdown menu items - smaller font size */
.mud-menu-item-text {
    font-size: 0.75rem !important;
    font-weight: 400 !important;
}

/* Side nav bar main level - same as top nav main menu */
.mud-nav-link-text {
    font-size: 0.875rem !important;
    font-weight: 500 !important;
}

/* Side nav bar sub-items - same as top nav dropdown */
.mud-navgroup-collapse .mud-nav-link-text {
    font-size: 0.75rem !important;
    font-weight: 400 !important;
}

/* Side nav bar - hover highlight */
.mud-nav-link:hover,
.mud-nav-link:hover .mud-nav-link-text {
    color: var(--nav-hover-color) !important;
}

/* Side nav bar icons - match hamburger menu size */
.mud-nav-group .mud-nav-link-icon-default {
    font-size: 1.25rem !important;
}

/* Appbar - solid background */
.mud-appbar {
    background-color: var(--mud-palette-background) !important;
    box-shadow: none !important;
    position: relative;
    z-index: 1100;
    transition: padding-left 0.2s ease;
}

/* AppBar padding based on drawer state */
.mud-appbar.drawer-expanded {
    padding-left: 240px !important;
}

.mud-appbar.drawer-collapsed {
    padding-left: 72px !important;
}

/* Main content padding based on drawer state */
.mud-main-content.drawer-expanded {
    margin-left: 240px;
    transition: margin-left 0.2s ease;
}

.mud-main-content.drawer-collapsed {
    margin-left: 72px;
    transition: margin-left 0.2s ease;
}

/* Bottom border - glow effect */
.mud-appbar::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, var(--mud-palette-divider) 30%, var(--mud-palette-divider) 70%, transparent 100%);
    pointer-events: none;
}

/* Main content area - default background, floating card effect */
.mud-main-content {
    background-color: var(--mud-palette-background) !important;
    min-height: calc(100vh - 64px);
    box-shadow: -4px -4px 24px rgba(0, 0, 0, 0.1);
    position: relative;
    z-index: 1;
    overflow: visible;
    padding-top: 0 !important; /* Override MudBlazor's default appbar-height padding */
}

/* ========================================
   Utility Classes
   ======================================== */

/* Overflow utilities */
.overflow-visible {
    overflow: visible !important;
}

/* Text transform utilities */
.text-transform-none {
    text-transform: none !important;
}

/* Button styles */
.btn-rounded {
    border-radius: 20px !important;
}

/* Global button styling - rounded with no uppercase transform */
/* Applies to all buttons except those on home page (.hero-section) and subscription pages */
.mud-main-content .mud-button-root {
    border-radius: 20px !important;
    text-transform: none !important;
}

/* Exclude hero section buttons (home page) - keep their original style */
/*.hero-section .mud-button-root {
    border-radius: 4px !important;
}*/

/* Exclude subscription page buttons - keep their original style */
/*.subscription-page .mud-button-root {
    border-radius: 4px !important;
}*/

/* ========================================
   CRM Table Styles
   ======================================== */

/* Table container with aligned padding */
.crm-table-container {
    padding: 0 0 16px 0;
}

.crm-table-container .mud-table {
    background: transparent;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 16px;
    overflow: hidden;
}

.crm-table-container .mud-table-container {
    padding: 0;
}

.crm-table-container .mud-table-head th {
    background: transparent;
}

.crm-table-container .mud-table-pagination {
    padding: 12px 16px;
}

/* ========================================
   CRM Dashboard Styles
   ======================================== */

/* Funnel chart styles */
.funnel-chart {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 8px 0;
}

.funnel-row {
    width: 100%;
    display: flex;
    justify-content: center;
}

.funnel-bar {
    height: 44px;
    border-radius: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s ease-in-out;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    cursor: pointer;
}

.funnel-bar:hover {
    transform: scale(1.02);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
}

.funnel-bar-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    padding: 0 20px;
}

.funnel-stage-name {
    font-size: 0.875rem;
    font-weight: 600;
    color: white;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    white-space: nowrap;
}

.funnel-stage-value {
    font-size: 0.75rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.9);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
    white-space: nowrap;
}

/* Funnel bar colors */
.funnel-bar-info {
    background: var(--mud-palette-info);
}

.funnel-bar-primary {
    background: var(--mud-palette-primary);
}

.funnel-bar-secondary {
    background: var(--mud-palette-secondary);
}

.funnel-bar-warning {
    background: var(--mud-palette-warning);
}

.funnel-bar-tertiary {
    background: var(--mud-palette-tertiary);
}

.funnel-bar-success {
    background: var(--mud-palette-success);
}

.funnel-bar-error {
    background: var(--mud-palette-error);
}

.funnel-bar-default {
    background: var(--mud-palette-gray-default);
}

/* Ticket charts column - stretch to match funnel height */
.ticket-charts-column {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
    height: 100%;
}

.ticket-chart-card {
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Vertical Column Chart styles */
.column-chart {
    display: flex;
    flex: 1;
    min-height: 120px;
    gap: 8px;
}

.column-chart-y-axis {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-width: 20px;
    text-align: right;
    padding-right: 4px;
}

.y-axis-label {
    font-size: 0.75rem;
    color: var(--mud-palette-text-secondary);
    line-height: 1;
}

.column-chart-main {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.column-chart-plot {
    flex: 1;
    position: relative;
}

.column-chart-gridlines {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    pointer-events: none;
}

.gridline {
    height: 1px;
    background-color: var(--mud-palette-divider);
    opacity: 0.5;
}

.column-chart-bars {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: flex-end;
    justify-content: space-evenly;
    gap: 16px;
    padding: 0 16px;
}

.column-bar-wrapper {
    flex: 1;
    max-width: 60px;
    height: 100%;
    display: flex;
    align-items: flex-end;
}

.column-bar {
    width: 100%;
    border-radius: 6px 6px 0 0;
    min-height: 2px;
    transition: height 0.4s ease-in-out;
}

.column-chart-x-axis {
    display: flex;
    justify-content: space-evenly;
    gap: 16px;
    padding: 8px 16px 0;
    border-top: 1px solid var(--mud-palette-divider);
}

.x-axis-label {
    flex: 1;
    max-width: 60px;
    font-size: 0.7rem;
    color: var(--mud-palette-text-secondary);
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Ticket bar colors */
.ticket-bar-info {
    background: var(--mud-palette-info);
}

.ticket-bar-warning {
    background: var(--mud-palette-warning);
}

.ticket-bar-success {
    background: var(--mud-palette-success);
}

.ticket-bar-error {
    background: var(--mud-palette-error);
}

.ticket-bar-primary {
    background: var(--mud-palette-primary);
}

.ticket-bar-secondary {
    background: var(--mud-palette-secondary);
}

.ticket-bar-default {
    background: var(--mud-palette-gray-default);
}

/* Feed section styles */
.feed-grid {
    align-items: stretch;
}

.feed-grid > .mud-grid-item {
    display: flex;
}

/* Feed timeline styles */
.feed-timeline {
    margin-left: -8px;
}

.feed-timeline .mud-timeline-item-content {
    padding-bottom: 12px;
}

.feed-card {
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.feed-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    transform: translateX(4px);
}

/* Prevent uppercase transformation on tab labels */
.mud-tabs .mud-tab {
    text-transform: none;
}

/* Rounded tabs to match page style */
.mud-tabs.mud-tabs-rounded {
    border-radius: 20px;
    overflow: hidden;
}

.mud-tabs.mud-tabs-rounded .mud-tab {
    border-radius: 20px;
}

/* Deal Pipeline Styles */
.pipeline-container {
    min-height: 500px;
}

.pipeline-column {
    min-width: 320px;
    max-width: 320px;
    height: 100%;
}

.pipeline-dropzone {
    min-height: 200px;
}

.icon-1rem {
    font-size: 1rem !important;
}

/* Vertical Bar Chart */
.vertical-chart-container {
    height: 300px;
    display: flex;
    align-items: stretch;
    justify-content: space-around;
    padding-bottom: 0.5rem;
}

.vertical-bar-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    height: 100%;
}

.vertical-bar-area {
    flex-grow: 1;
    width: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: 4px;
}

.vertical-bar {
    width: 40px;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
    transition: height 0.5s ease-in-out;
    min-height: 4px;
    opacity: 0.9;
}

.vertical-bar:hover {
    opacity: 1;
    filter: brightness(1.1);
}

/* Payment Form Styles */
.plan-card {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 24px;
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    cursor: pointer;
    border: 2px solid var(--mud-palette-divider);
    background-color: var(--mud-palette-surface);
    opacity: 0.85;
}

.plan-card:hover {
    transform: translateY(-4px);
    opacity: 1;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12), inset 0 0 0 1000px var(--mud-palette-action-default-hover);
}

.plan-card-content {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 280px;
}

.plan-card-pricing {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 120px;
}

.plan-card-selected {
    border-color: var(--mud-palette-primary) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    transform: translateY(-4px);
    opacity: 1;
    background: linear-gradient(135deg, rgba(var(--mud-palette-primary-rgb), 0.05) 0%, rgba(var(--mud-palette-primary-rgb), 0.02) 100%);
}

.stripe-card-element {
    padding: 16px 0;
    min-height: 50px;
}

.stripe-card-errors {
    color: var(--mud-palette-error);
    margin-top: 12px;
    font-size: 0.875rem;
    min-height: 20px;
}

.StripeElement {
    padding: 14px;
    border: 1px solid var(--mud-palette-divider);
    border-radius: 24px;
    background: var(--mud-palette-background);
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.payment-section {
    border-radius: 24px;
    background: var(--glass-surface);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid var(--glass-border-subtle);
    padding: 24px;
}

.StripeElement--focus {
    border-color: var(--mud-palette-primary);
    box-shadow: 0 0 0 1px var(--mud-palette-primary);
}

.StripeElement--invalid {
    border-color: var(--mud-palette-error);
}

.StripeElement--webkit-autofill {
    background-color: var(--mud-palette-background) !important;
}

.font-weight-bold {
    font-weight: 600 !important;
}

.font-weight-medium {
    font-weight: 500 !important;
}

/* Layout Utilities */
.d-flex-stretch {
    display: flex;
    align-items: stretch;
}

.d-flex-grow {
    display: flex;
    width: 100%;
}

.d-flex-column-grow {
    display: flex;
    flex-direction: column;
}

.flex-grow-1 {
    flex-grow: 1;
}

.w-100 {
    width: 100%;
}

.cursor-pointer {
    cursor: pointer;
}

.position-relative {
    position: relative;
}

.position-absolute-top-right {
    position: absolute;
    top: 12px;
    right: 12px;
}

/* Calendar Component Styles */
.month-picker-popover {
    min-width: 280px;
}

.calendar-day-column-header {
    width: 14.28%;
}

.d-inline {
    display: inline;
}

/* Admin/MCP Test Output Styles */
.code-output-container {
    background-color: var(--mud-palette-background-grey);
    border-radius: 4px;
}

.code-output-pre {
    margin: 0;
    overflow-x: auto;
    white-space: pre-wrap;
}

/* Template Preview Styles */
.template-preview-html {
    background-color: white;
    color: black;
    min-height: 300px;
}

/* Sizing Utilities */
.min-w-200 {
    min-width: 200px;
}

.icon-size-2rem {
    font-size: 2rem;
}

/* Button Styles */
.btn-rounded-lg {
    border-radius: 8px;
    padding: 12px 32px;
}

/* Plan Card Styles */
.plan-card-content {
    position: relative;
    padding: 24px;
}

/* Text Colors */
.text-primary-color {
    color: var(--mud-palette-primary);
}

/* Text Utilities */
.white-space-pre-wrap {
    white-space: pre-wrap;
}

.line-height-1-2 {
    line-height: 1.2;
}

.opacity-70 {
    opacity: 0.7;
}

.font-monospace {
    font-family: 'Consolas', 'Monaco', monospace;
}

/* Flex Utilities */
.flex-1 {
    flex: 1;
}

/* Calendar Grid Styles */
.calendar-day-grid,
.calendar-week-grid {
    display: flex;
    flex-direction: column;
    background: var(--mud-palette-background);
}

.calendar-header-row {
    display: grid;
    grid-template-columns: 80px repeat(auto-fit, minmax(0, 1fr));
    border-bottom: 2px solid var(--mud-palette-divider);
    background: var(--mud-palette-surface);
    position: sticky;
    top: 0;
    z-index: 10;
}

.calendar-week-grid .calendar-header-row {
    grid-template-columns: 80px repeat(7, 1fr);
}

.calendar-time-header {
    width: 80px;
    border-right: 1px solid var(--mud-palette-divider);
}

.calendar-day-header {
    border-right: 1px solid var(--mud-palette-divider-light);
    min-height: 50px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.calendar-time-row {
    display: grid;
    grid-template-columns: 80px repeat(auto-fit, minmax(0, 1fr));
    border-bottom: 1px solid var(--mud-palette-divider-light);
    position: relative;
}

.calendar-week-grid .calendar-time-row {
    grid-template-columns: 80px repeat(7, 1fr);
}

.calendar-time-label {
    width: 80px;
    border-right: 1px solid var(--mud-palette-divider);
    display: flex;
    align-items: flex-start;
    padding-top: 4px;
}

.calendar-event-slot {
    border-right: 1px solid var(--mud-palette-divider-light);
    cursor: pointer;
    min-height: 100%;
    transition: background-color 0.2s;
    position: relative;
}

.calendar-event-slot:hover {
    background-color: var(--mud-palette-action-default-hover);
}

/* Month view styles */
.calendar-day-cell {
    min-height: 120px;
    border: 1px solid var(--mud-palette-divider-light);
    cursor: pointer;
    transition: all 0.2s;
}

.calendar-day-cell:hover {
    background-color: var(--mud-palette-action-default-hover);
    transform: scale(1.02);
}

.calendar-today {
    background-color: var(--mud-palette-primary-lighten);
    border: 2px solid var(--mud-palette-primary);
}

.calendar-other-month {
    opacity: 0.4;
}

.calendar-event-chip {
    width: 100%;
    justify-content: flex-start !important;
    cursor: pointer;
}

/* Dialog backdrop blur - applies to all MudDialog backdrops */
.mud-overlay-dialog {
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
}

/* ========================================
   BOOKING AGENT STYLES
   ======================================== */

.booking-agent-main {
    /* Full width - no max-width constraint */
}

.booking-query-input .mud-input-root {
    background: transparent !important;
    border: none !important;
}

.booking-query-input .mud-input {
    font-size: 1.1rem;
    line-height: 1.6;
    color: var(--glass-text-primary) !important;
}

.booking-query-input .mud-input::placeholder {
    color: var(--glass-text-tertiary) !important;
    opacity: 0.7;
}

.status-chip {
    background: var(--glass-subtle) !important;
    border: 1px solid var(--glass-border-subtle) !important;
    color: var(--glass-text-secondary) !important;
    font-weight: 500;
    padding: 0 16px;
    height: 32px;
}

.conversation-history {
    max-height: 600px;
    overflow-y: auto;
    padding-right: 8px;
}

.conversation-history::-webkit-scrollbar {
    width: 8px;
}

.conversation-history::-webkit-scrollbar-track {
    background: var(--glass-subtle);
    border-radius: 4px;
}

.conversation-history::-webkit-scrollbar-thumb {
    background: var(--glass-border-medium);
    border-radius: 4px;
}

.conversation-history::-webkit-scrollbar-thumb:hover {
    background: var(--glass-border-subtle);
}

.quick-action-button {
    height: auto !important;
    padding: 16px !important;
    border-radius: 16px !important;
    border: 1px solid var(--glass-border-subtle) !important;
    transition: all 0.2s ease;
    justify-content: flex-start !important;
}

.quick-action-button:hover {
    background: var(--glass-bg) !important;
    border-color: var(--glass-border-medium) !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 16px var(--glass-shadow);
}

.quick-action-button .mud-button-label {
    width: 100%;
}

.feature-card {
    height: 100%;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.feature-card:hover {
    transform: translateY(-8px) !important;
}

.booking-input-panel {
    border-radius: 20px;
}

.conversation-message-panel {
    border-radius: 16px;
}

.conversation-icon-container {
    width: 32px;
    height: 32px;
}

.text-opacity-70 {
    opacity: 0.7;
}

.booking-agent-start-button {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
}

/* Voice Activity Indicator for ElevenLabs Integration */
.voice-activity-panel {
    background: rgba(var(--mud-palette-primary-rgb), 0.1);
    border-radius: 16px;
    animation: pulse-glow 2s ease-in-out infinite;
}

.voice-indicator {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(var(--mud-palette-surface-rgb), 0.3);
    transition: all 0.3s ease;
}

.voice-indicator-listening {
    background: rgba(var(--mud-palette-primary-rgb), 0.2);
    animation: listening-pulse 1.5s ease-in-out infinite;
}

.voice-indicator-speaking {
    background: rgba(var(--mud-palette-success-rgb), 0.2);
    animation: speaking-wave 0.5s ease-in-out infinite;
}

@keyframes listening-pulse {
    0%, 100% {
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(var(--mud-palette-primary-rgb), 0.4);
    }
    50% {
        transform: scale(1.05);
        box-shadow: 0 0 0 20px rgba(var(--mud-palette-primary-rgb), 0);
    }
}

@keyframes speaking-wave {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1);
    }
}

@keyframes pulse-glow {
    0%, 100% {
        box-shadow: 0 0 10px rgba(var(--mud-palette-primary-rgb), 0.2);
    }
    50% {
        box-shadow: 0 0 20px rgba(var(--mud-palette-primary-rgb), 0.4);
    }
}

.status-chip-connected {
    border-color: var(--mud-palette-success) !important;
    color: var(--mud-palette-success) !important;
}

@media (max-width: 600px) {
    .booking-agent-main { padding: 1rem !important; }
}

/* ========================================
   RESPONSIVE: HERO SECTION
   ======================================== */

@media (max-width: 599px) {
    .hero-section {
        min-height: auto;
        padding: 32px 16px;
    }
    
    .hero-content {
        margin-left: 0;
        text-align: center;
    }
    
    .hero-content h1,
    .hero-content .mud-typography-h1 {
        font-size: 2rem !important;
        white-space: normal !important;
        line-height: 1.2 !important;
    }
    
    .hero-content h2,
    .hero-content .mud-typography-h2 {
        font-size: 1.5rem !important;
        white-space: normal !important;
    }
    
    .hero-content p,
    .hero-content .mud-typography-body1 {
        font-size: 1rem !important;
        white-space: normal !important;
    }
    
    .section-background {
        display: none;
    }
}

@media (min-width: 600px) and (max-width: 959px) {
    .hero-content {
        margin-left: 0;
    }
    
    .hero-content h1,
    .hero-content .mud-typography-h1 {
        font-size: 2.5rem !important;
    }
}

/* ========================================
   RESPONSIVE: DASHBOARD
   ======================================== */

@media (max-width: 599px) {
    /* Dashboard metric cards stack */
    .dashboard-metrics .mud-grid-item {
        flex-basis: 100% !important;
        max-width: 100% !important;
    }
    
    /* Reduce metric text size */
    .metric-large,
    .mud-typography.metric-large {
        font-size: 1.75rem !important;
    }
    
    /* Chart containers */
    .dashboard-chart {
        min-height: 250px !important;
        max-height: 300px !important;
    }
}

@media (min-width: 600px) and (max-width: 959px) {
    /* Two columns on tablet */
    .dashboard-metrics .mud-grid-item {
        flex-basis: 50% !important;
        max-width: 50% !important;
    }
}