/* /Components/Layout/EmptyLayout.razor.rz.scp.css */
.page[b-dymt97hadb] {
    position: relative;
    display: flex;
    flex-direction: column;
    background: #f8f9fa;
    color: #1e293b;
    min-height: 100vh;
    overflow: hidden;
}

main[b-dymt97hadb] {
    --embed-zoom: 0.8;
    flex: 1;
    zoom: var(--embed-zoom);
}

.content[b-dymt97hadb] {
    padding: 2rem !important;
    max-width: 1400px;
    margin: 0 auto;
}

/* Dark mode theme for page background */
.page:has(.theme-darkmode)[b-dymt97hadb] {
    background: #0a0f1e;
    color: #e5e7eb;
}

/* Wooden theme for page background */
.page:has(.theme-wooden)[b-dymt97hadb] {
    background: linear-gradient(180deg, #fefce8 0%, #fef3c7 100%);
    color: #6d4c3d;
}

/* Nature theme for page background */
.page:has(.theme-nature)[b-dymt97hadb] {
    background: linear-gradient(180deg, #ecfdf5 0%, #d1fae5 100%);
    color: #065f46;
}

#blazor-error-ui[b-dymt97hadb] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-dymt97hadb] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

@media (max-width: 800px) {
    main[b-dymt97hadb] {
        --embed-zoom: 0.7;
    }
}

@media (max-width: 450px) {
    main[b-dymt97hadb] {
        --embed-zoom: 0.65;
    }

    .content[b-dymt97hadb] {
        padding: 1rem !important;
    }
}
/* /Components/Pages/AdminSmtpSettings.razor.rz.scp.css */
.smtp-form-grid[b-3qlq4kd8a5] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.1rem 1.5rem;
    margin-bottom: 1rem;
}

.smtp-form-grid-full[b-3qlq4kd8a5] {
    grid-column: 1 / -1;
}

.smtp-password-input[b-3qlq4kd8a5] {
    position: relative;
    display: flex;
}

.smtp-password-input .input[b-3qlq4kd8a5] {
    flex: 1;
    padding-right: 4.25rem;
    font-family: inherit;
    letter-spacing: 0.02em;
}

.smtp-password-toggle[b-3qlq4kd8a5] {
    position: absolute;
    right: 0.4rem;
    top: 50%;
    transform: translateY(-50%);
    appearance: none;
    border: none;
    background: transparent;
    color: var(--bc-text-muted, #9aa0a6);
    font-size: 0.8rem;
    font-weight: 600;
    padding: 0.2rem 0.5rem;
    border-radius: 6px;
    cursor: pointer;
    transition: color 0.15s ease, background 0.15s ease;
}

.smtp-password-toggle:hover[b-3qlq4kd8a5] {
    color: var(--bc-text);
    background: rgba(255, 255, 255, 0.06);
}

.smtp-security-chips[b-3qlq4kd8a5] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.4rem;
}

.smtp-security-chip[b-3qlq4kd8a5] {
    appearance: none;
    border: 1px solid var(--bc-panel-border);
    background: rgba(255, 255, 255, 0.03);
    color: var(--bc-text);
    padding: 0.35rem 0.85rem;
    font-size: 0.85rem;
    font-weight: 600;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.smtp-security-chip:hover[b-3qlq4kd8a5] {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.25);
}

.smtp-security-chip.active[b-3qlq4kd8a5] {
    background: rgba(79, 70, 229, 0.25);
    border-color: rgba(99, 102, 241, 0.7);
    color: #fff;
}

.smtp-checks[b-3qlq4kd8a5] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 1.5rem;
}

.smtp-actions[b-3qlq4kd8a5] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

.smtp-test-action[b-3qlq4kd8a5] {
    align-self: end;
    display: flex;
}

@media (max-width: 700px) {
    .smtp-form-grid[b-3qlq4kd8a5] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Guest/GuestBookingRequests.razor.rz.scp.css */
.booking-row[b-mwcgdiiab4] {
    cursor: pointer;
}

.booking-row:hover[b-mwcgdiiab4] {
    background: rgba(96, 165, 250, 0.08) !important;
}

.guest-request-detail-body[b-mwcgdiiab4] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.guest-request-status-row[b-mwcgdiiab4],
.guest-request-house-row[b-mwcgdiiab4],
.guest-request-price-line[b-mwcgdiiab4],
.guest-request-price-total[b-mwcgdiiab4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.guest-request-house-row[b-mwcgdiiab4],
.guest-request-date-grid[b-mwcgdiiab4],
.guest-request-price-box[b-mwcgdiiab4] {
    border: 1px solid var(--bc-panel-border);
    border-radius: 10px;
    padding: 0.9rem 1rem;
}

.guest-request-house-name[b-mwcgdiiab4] {
    font-size: 1.05rem;
    font-weight: 700;
}

.guest-request-chat-button[b-mwcgdiiab4] {
    color: var(--bc-muted);
}

.guest-request-chat-button:hover[b-mwcgdiiab4] {
    color: var(--bc-accent);
}

.guest-request-date-grid[b-mwcgdiiab4] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.guest-request-notes[b-mwcgdiiab4] {
    margin: 0.25rem 0 0;
    white-space: pre-wrap;
}

.guest-request-price-line[b-mwcgdiiab4] {
    padding: 0.15rem 0;
    font-size: 0.88rem;
}

.guest-request-price-line.optional[b-mwcgdiiab4] {
    opacity: 0.78;
}

.guest-request-price-calc[b-mwcgdiiab4] {
    color: var(--bc-muted);
    font-size: 0.82rem;
}

.guest-request-price-total[b-mwcgdiiab4] {
    border-top: 1px solid var(--bc-panel-border);
    margin-top: 0.45rem;
    padding-top: 0.55rem;
    font-weight: 700;
}

@media (max-width: 560px) {
    .guest-request-date-grid[b-mwcgdiiab4] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Public/CalendarEmbed.razor.rz.scp.css */
/* Public calendar embed - fixed light theme, no theme switching */
.calendar-hero[b-pysbamlpjc] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    padding: 0.5rem;
    background: #f8f9fa;
    border-radius: 8px;
    flex-wrap: wrap;
}

.request-booking-btn[b-pysbamlpjc] {
    margin-top: 1rem;
    background: linear-gradient(120deg, darkgreen, limegreen);
    color: gold;
}

.hero-success-banner[b-pysbamlpjc] {
    flex-basis: 100%;
    order: 1;
    padding: 0.65rem 1rem;
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(34, 197, 94, 0.12), rgba(34, 197, 94, 0.06));
    border: 1px solid rgba(34, 197, 94, 0.35);
    color: #15803d;
    font-size: 0.9rem;
    font-weight: 500;
    text-align: center;
}

.hero-success-banner > span[b-pysbamlpjc] {
    font-weight: 700;
    margin-right: 0.25rem;
}

.calendar-hero > :first-child[b-pysbamlpjc] { order: 0; }
.calendar-hero > .legend-container[b-pysbamlpjc] { order: 0; }

.calendar-hero h1[b-pysbamlpjc] {
    color: #1e293b;
    margin: 0;
}

.calendar-hero p[b-pysbamlpjc] {
    color: #64748b;
    margin: 0.5rem 0;
}

.calendar-hero .badge[b-pysbamlpjc] {
    font-size: 0.85rem;
}

.legend-container[b-pysbamlpjc] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    flex-shrink: 0;
}

.legend[b-pysbamlpjc] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
}

.legend-swatch[b-pysbamlpjc] {
    display: inline-block;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    border: 1px solid #cbd5e1;
}

.legend .small[b-pysbamlpjc] {
    color: #64748b;
    font-weight: 500;
}

/* Available swatch - green */
.legend-swatch.available-swatch[b-pysbamlpjc] {
    background: #22c55e;
    border-color: #16a34a;
}

/* Half-day swatch - diagonal split */
.legend-swatch.half-day-swatch.layout-greenred[b-pysbamlpjc] {
    background: linear-gradient(135deg, #22c55e 50%, #ef4444 50%);
    border-color: #16a34a;
}

.legend-swatch.half-day-swatch.layout-bluestripes[b-pysbamlpjc] {
    background: linear-gradient(135deg, #ffffff 50%, #4ca3dd 50%);
    border-color: #4ca3dd;
}

.legend-swatch.half-day-swatch.layout-darkmode[b-pysbamlpjc] {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 50%, #334155 50%);
    border-color: #7c3aed;
}

.legend-swatch.half-day-swatch.layout-woodenpattern[b-pysbamlpjc] {
    background: linear-gradient(135deg, #fefce8 50%, #8b5a3c 50%);
    border-color: #6d4c3d;
}

.legend-swatch.half-day-swatch.layout-naturegreen[b-pysbamlpjc] {
    background: linear-gradient(135deg, #ecfdf5 50%, #059669 50%);
    border-color: #047857;
}

/* Layout 1: GreenRed - Solid red */
.legend-swatch.layout-greenred[b-pysbamlpjc] {
    background: #ef4444;
    border-color: #dc2626;
}

/* Layout 2: BlueStripes - Blue diagonal stripes */
.legend-swatch.layout-bluestripes[b-pysbamlpjc] {
    background: repeating-linear-gradient(
        135deg,
        #4ca3dd,
        #4ca3dd 8px,
        #e3f0ff 8px,
        #e3f0ff 16px
    );
    border-color: #4ca3dd;
}

/* Layout 3: DarkMode - Dark gradient with purple */
.legend-swatch.layout-darkmode[b-pysbamlpjc] {
    background: linear-gradient(135deg, #1e293b 0%, #334155 100%);
    border-color: #7c3aed;
    box-shadow: inset 0 0 0 1px rgba(124, 58, 237, 0.3);
}

/* Layout 4: WoodenPattern - Wood grain pattern */
.legend-swatch.layout-woodenpattern[b-pysbamlpjc] {
    background: repeating-linear-gradient(
        90deg,
        #8b5a3c,
        #8b5a3c 4px,
        #a0684d 4px,
        #a0684d 8px,
        #6d4c3d 8px,
        #6d4c3d 12px
    );
    border-color: #6d4c3d;
}

/* Layout 5: NatureGreen - Leaves pattern */
.legend-swatch.layout-naturegreen[b-pysbamlpjc] {
    background: repeating-linear-gradient(
        -45deg,
        #059669,
        #059669 6px,
        #10b981 6px,
        #10b981 12px,
        #047857 12px,
        #047857 18px
    );
    border-color: #047857;
}

.calendar-container[b-pysbamlpjc] {
    position: relative;
}

.month-grid[b-pysbamlpjc] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin-bottom: 2rem;
}

/* Navigation arrows */
.nav-arrow[b-pysbamlpjc] {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    z-index: 10;
}

.nav-arrow:hover[b-pysbamlpjc] {
    background: #f8fafc;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    transform: translateY(-50%) scale(1.05);
}

.nav-arrow:active[b-pysbamlpjc] {
    transform: translateY(-50%) scale(0.95);
}

.nav-arrow-left[b-pysbamlpjc] {
    left: -24px;
}

.nav-arrow-right[b-pysbamlpjc] {
    right: -24px;
}

.arrow-icon[b-pysbamlpjc] {
    font-size: 1.75rem;
    font-weight: 300;
    color: #64748b;
    line-height: 1;
}

.nav-arrow:hover .arrow-icon[b-pysbamlpjc] {
    color: #3b82f6;
}

/* Dark theme navigation arrows */
.nav-arrow.nav-arrow-dark[b-pysbamlpjc] {
    background: #1e293b;
    border-color: rgba(124, 58, 237, 0.3);
}

.nav-arrow.nav-arrow-dark:hover[b-pysbamlpjc] {
    background: #334155;
    border-color: #7c3aed;
}

.nav-arrow.nav-arrow-dark .arrow-icon[b-pysbamlpjc] {
    color: #9ca3af;
}

.nav-arrow.nav-arrow-dark:hover .arrow-icon[b-pysbamlpjc] {
    color: #7c3aed;
}

/* Wooden theme navigation arrows */
.nav-arrow.nav-arrow-wooden[b-pysbamlpjc] {
    background: #fef3c7;
    border-color: #a0684d;
}

.nav-arrow.nav-arrow-wooden:hover[b-pysbamlpjc] {
    background: #fefce8;
}

.nav-arrow.nav-arrow-wooden .arrow-icon[b-pysbamlpjc] {
    color: #8b5a3c;
}

.nav-arrow.nav-arrow-wooden:hover .arrow-icon[b-pysbamlpjc] {
    color: #6d4c3d;
}

/* Nature theme navigation arrows */
.nav-arrow.nav-arrow-nature[b-pysbamlpjc] {
    background: #f0fdf4;
    border-color: #10b981;
}

.nav-arrow.nav-arrow-nature:hover[b-pysbamlpjc] {
    background: #ecfdf5;
}

.nav-arrow.nav-arrow-nature .arrow-icon[b-pysbamlpjc] {
    color: #059669;
}

.nav-arrow.nav-arrow-nature:hover .arrow-icon[b-pysbamlpjc] {
    color: #047857;
}

/* Theme-specific hero backgrounds */
.calendar-hero.theme-darkmode[b-pysbamlpjc] {
    background: #0f172a;
    border: 1px solid rgba(124, 58, 237, 0.3);
}

.calendar-hero.theme-darkmode h1[b-pysbamlpjc] {
    color: #e5e7eb;
}

.calendar-hero.theme-darkmode p[b-pysbamlpjc],
.calendar-hero.theme-darkmode .small[b-pysbamlpjc] {
    color: #9ca3af;
}

.calendar-hero.theme-wooden[b-pysbamlpjc] {
    background: linear-gradient(135deg, #fef3c7 0%, #fefce8 100%);
    border: 1px solid #a0684d;
}

.calendar-hero.theme-wooden h1[b-pysbamlpjc] {
    color: #6d4c3d;
}

.calendar-hero.theme-wooden p[b-pysbamlpjc],
.calendar-hero.theme-wooden .small[b-pysbamlpjc] {
    color: #8b5a3c;
}

.calendar-hero.theme-nature[b-pysbamlpjc] {
    background: linear-gradient(135deg, #f0fdf4 0%, #ecfdf5 100%);
    border: 1px solid #10b981;
}

.calendar-hero.theme-nature h1[b-pysbamlpjc] {
    color: #065f46;
}

.calendar-hero.theme-nature p[b-pysbamlpjc],
.calendar-hero.theme-nature .small[b-pysbamlpjc] {
    color: #059669;
}

@media (max-width: 800px) {
    .month-grid[b-pysbamlpjc] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 700px) {
    .calendar-hero[b-pysbamlpjc] {
        align-items: stretch;
    }

    .legend-container[b-pysbamlpjc],
    .request-booking-btn[b-pysbamlpjc] {
        width: 100%;
    }

    .request-booking-btn[b-pysbamlpjc] {
        text-align: center;
    }

    .month-grid[b-pysbamlpjc] {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
}

@media (max-width: 450px) {
    .legend-container[b-pysbamlpjc] {
        margin-top: 1rem;
    }
    
    .calendar-container[b-pysbamlpjc] {
        display: flex;
        flex-direction: column;
        align-items: stretch;
    }
    
    .month-grid[b-pysbamlpjc] {
        grid-template-columns: 1fr;
        order: 2;
    }
    
    .nav-arrow[b-pysbamlpjc] {
        position: static;
        transform: none;
        width: 100%;
        height: 44px;
        border-radius: 10px;
    }
    
    .nav-arrow:hover[b-pysbamlpjc] {
        transform: none;
    }
    
    .nav-arrow:active[b-pysbamlpjc] {
        transform: scale(0.98);
    }
    
    .nav-arrow-left[b-pysbamlpjc] {
        left: auto;
        order: 1;
        margin-bottom: 1rem;
    }
    
    .nav-arrow-right[b-pysbamlpjc] {
        right: auto;
        order: 3;
    }
    
    .arrow-icon[b-pysbamlpjc] {
        font-size: 1.5rem;
    }
}

/* booking request form */
:root[data-theme="dark"] .dialog-panel[b-pysbamlpjc] {
    color: whitesmoke;
}

.optional-prices[b-pysbamlpjc] {
    opacity: 0.8;
    margin-top: 0.4rem;
    padding-top: 0.4rem;
    border-top: 1px dashed rgba(255,255,255,0.08);
}

/* Center text for date, number and time inputs in the booking request form */
input[type="date"].form-control[b-pysbamlpjc],
input[type="number"].form-control[b-pysbamlpjc],
input[type="time"].form-control[b-pysbamlpjc] {
    text-align: center;
}

/* ── Guest house not found ── */
.gh-not-found[b-pysbamlpjc] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    min-height: 50vh;
    text-align: center;
    cursor: default;
}

.gh-not-found-image-wrap[b-pysbamlpjc] {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.5rem;
}

.gh-not-found-image[b-pysbamlpjc] {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    transition: opacity 0.6s ease;
    border-radius: 230px;
}

.gh-not-found-text[b-pysbamlpjc] {
    font-size: 1.15rem;
    color: #555;
    min-height: 2rem;
    transition: opacity 0.4s ease;
}

.gh-not-found-text p[b-pysbamlpjc] {
    margin: 0;
}

.gh-not-found-link[b-pysbamlpjc] {
    font-size: 1.15rem;
    color: #2563eb;
    text-decoration: underline;
    font-weight: 500;
    transition: color 0.2s;
}

.gh-not-found-link:hover[b-pysbamlpjc] {
    color: #1d4ed8;
}

/* ── Embed auth button in dialog header ── */
.embed-auth-btn[b-pysbamlpjc] {
    margin-left: auto;
    margin-right: 0.5rem;
    font-size: 0.8rem;
    padding: 0.2rem 0.65rem;
}

/* ── Embed login dialog overlay (sits above the booking request dialog) ── */
.embed-login-overlay[b-pysbamlpjc] {
    z-index: 1100;
}

.embed-login-panel[b-pysbamlpjc] {
    animation: embed-login-slide-in-b-pysbamlpjc 0.2s ease-out;
}

@keyframes embed-login-slide-in-b-pysbamlpjc {
    from { opacity: 0; transform: translateY(-20px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ── Growth-loop powered-by badge (additive, all 5 layout themes) ── */
.powered-by-badge[b-pysbamlpjc] {
    display: block;
    width: fit-content;
    margin: 1.5rem auto 0;
    padding: 0.3rem 0.75rem;
    border-radius: 999px;
    background: var(--bc-badge-bg, rgba(100, 116, 139, 0.1));
    color: var(--bc-badge-text, rgba(100, 116, 139, 0.85));
    font-size: 0.75rem;
    font-weight: 500;
    text-decoration: none;
    text-align: center;
    transition: opacity 0.15s ease;
}

.powered-by-badge:hover[b-pysbamlpjc] {
    opacity: 0.8;
    text-decoration: underline;
}

/* ── Guest-account-benefits line under the post-request confirmation ── */
.guest-account-benefits[b-pysbamlpjc] {
    margin: 0.35rem 0 0;
    font-size: 0.85rem;
    font-weight: 400;
    opacity: 0.85;
}
/* /Components/Public/CalendarMonth.razor.rz.scp.css */
/* Calendar month component - fixed light theme */
.calendar-month[b-9ma7ww8shh] {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 1rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.month-header[b-9ma7ww8shh] {
    margin-bottom: 0.75rem;
    color: #1e293b;
    font-weight: 600;
    font-size: 1.1rem;
    text-align: center;
}

.weekday-row[b-9ma7ww8shh] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
    margin-bottom: 0.5rem;
    gap: 2px;
}

.weekday[b-9ma7ww8shh] {
    padding: 0.4rem 0;
    color: #64748b;
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
}

.days-grid[b-9ma7ww8shh] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 3px;
}

.day-cell[b-9ma7ww8shh] {
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-radius: 6px;
    border: 1px solid #e2e8f0;
    background: #ffffff;
    color: #1e293b;
    font-size: 1.2rem;
    font-weight: 500;
    transition: all 0.2s ease;
    position: relative;
    overflow: hidden;
    cursor: default;
    user-select: none;
}

.day-cell.placeholder[b-9ma7ww8shh] {
    background: transparent;
    border: none;
}

/* ===== PAST DAYS - White/Neutral ===== */
.day-cell.past[b-9ma7ww8shh] {
    background: #ffffff;
    border-color: #e2e8f0;
    color: #94a3b8;
}

/* ===== TODAY - Highlighted ===== */
.day-cell.today[b-9ma7ww8shh] {
    border-color: #3b82f6;
    border-width: 2px;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
}

/* ===== AVAILABLE DAYS - Green for GreenRed layout ===== */
.day-cell.available.layout-greenred[b-9ma7ww8shh] {
    background: #22c55e;
    border-color: #16a34a;
    color: #ffffff;
    font-weight: 600;
}

/* ===== BOOKED DAYS ===== */

/* Layout 1: GreenRed - Solid red for booked */
.day-cell.booked.layout-greenred[b-9ma7ww8shh] {
    background: #ef4444;
    border-color: #dc2626;
    color: #ffffff;
    font-weight: 600;
}

.day-cell.booked.layout-greenred.past[b-9ma7ww8shh] {
    color: #94a3b8;
}

/* Layout 2: BlueStripes - Blue diagonal stripes for booked */
.day-cell.booked.layout-bluestripes[b-9ma7ww8shh] {
    background: repeating-linear-gradient(
        135deg,
        #4ca3dd,
        #4ca3dd 8px,
        #e3f0ff 8px,
        #e3f0ff 16px
    );
    border-color: #4ca3dd;
    color: #1e293b;
    font-weight: 600;
}

/* Layout 3: DarkMode - Dark theme with purple accent */
.day-cell.booked.layout-darkmode[b-9ma7ww8shh] {
    background: linear-gradient(135deg, #1e293b 0%, #334155 100%);
    border-color: #7c3aed;
    color: #e0e7ff;
    font-weight: 600;
    box-shadow: inset 0 0 0 1px rgba(124, 58, 237, 0.3);
}

/* Layout 4: WoodenPattern - Natural wood/brown pattern */
.day-cell.booked.layout-woodenpattern[b-9ma7ww8shh] {
    background: repeating-linear-gradient(
        90deg,
        #8b5a3c,
        #8b5a3c 4px,
        #a0684d 4px,
        #a0684d 8px,
        #6d4c3d 8px,
        #6d4c3d 12px
    );
    border-color: #6d4c3d;
    color: #fef3c7;
    font-weight: 600;
}

/* Layout 5: NatureGreen - Plants/leaves green theme */
.day-cell.booked.layout-naturegreen[b-9ma7ww8shh] {
    background: repeating-linear-gradient(
        -45deg,
        #059669,
        #059669 6px,
        #10b981 6px,
        #10b981 12px,
        #047857 12px,
        #047857 18px
    );
    border-color: #047857;
    color: #ecfdf5;
    font-weight: 600;
}

/* ===== HALF-DAY ARRIVAL (Diagonal split: green top-left, red bottom-right) ===== */

/* GreenRed layout - half arrival */
.day-cell.half-arrival.layout-greenred[b-9ma7ww8shh] {
    background: linear-gradient(135deg, #22c55e 50%, #ef4444 50%);
    border: 0 none;
    color: #ffffff;
    font-weight: 600;
}

/* GreenRed layout - half departure (red top-left, green bottom-right) */
.day-cell.half-departure.layout-greenred[b-9ma7ww8shh] {
    background: linear-gradient(135deg, #ef4444 50%, #22c55e 50%);
    border: 0 none;
    color: #ffffff;
    font-weight: 600;
}

/* BlueStripes layout - half arrival */
.day-cell.half-arrival.layout-bluestripes[b-9ma7ww8shh] {
    background: linear-gradient(135deg, #ffffff 50%, #4ca3dd 50%);
    border-color: #4ca3dd;
    color: #1e293b;
    font-weight: 600;
}

/* BlueStripes layout - half departure */
.day-cell.half-departure.layout-bluestripes[b-9ma7ww8shh] {
    background: linear-gradient(135deg, #4ca3dd 50%, #ffffff 50%);
    border-color: #4ca3dd;
    color: #1e293b;
    font-weight: 600;
}

/* DarkMode layout - half arrival */
.day-cell.half-arrival.layout-darkmode[b-9ma7ww8shh] {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 50%, #334155 50%);
    border-color: #7c3aed;
    color: #e0e7ff;
    font-weight: 600;
}

/* DarkMode layout - half departure */
.day-cell.half-departure.layout-darkmode[b-9ma7ww8shh] {
    background: linear-gradient(135deg, #334155 50%, rgba(255, 255, 255, 0.1) 50%);
    border-color: #7c3aed;
    color: #e0e7ff;
    font-weight: 600;
}

/* WoodenPattern layout - half arrival */
.day-cell.half-arrival.layout-woodenpattern[b-9ma7ww8shh] {
    background: linear-gradient(135deg, #fefce8 50%, #8b5a3c 50%);
    border-color: #6d4c3d;
    color: #6d4c3d;
    font-weight: 600;
}

/* WoodenPattern layout - half departure */
.day-cell.half-departure.layout-woodenpattern[b-9ma7ww8shh] {
    background: linear-gradient(135deg, #8b5a3c 50%, #fefce8 50%);
    border-color: #6d4c3d;
    color: #fef3c7;
    font-weight: 600;
}

/* NatureGreen layout - half arrival */
.day-cell.half-arrival.layout-naturegreen[b-9ma7ww8shh] {
    background: linear-gradient(135deg, #ecfdf5 50%, #059669 50%);
    border-color: #047857;
    color: #065f46;
    font-weight: 600;
}

/* NatureGreen layout - half departure */
.day-cell.half-departure.layout-naturegreen[b-9ma7ww8shh] {
    background: linear-gradient(135deg, #059669 50%, #ecfdf5 50%);
    border-color: #047857;
    color: #ecfdf5;
    font-weight: 600;
}

/* ===== TRANSITION DAY (departure + arrival on same day) ===== */
.day-cell.half-transition.layout-greenred[b-9ma7ww8shh] {
    background: linear-gradient(135deg, #ef4444 calc(50% - 2px), #22c55e calc(50% - 2px), #22c55e calc(50% + 2px), #ef4444 calc(50% + 2px));
    border-color: #dc2626;
    color: #ffffff;
    font-weight: 600;
}

.day-cell.half-transition.layout-bluestripes[b-9ma7ww8shh] {
    background: linear-gradient(135deg, #4ca3dd calc(50% - 2px), #ffffff calc(50% - 2px), #ffffff calc(50% + 2px), #4ca3dd calc(50% + 2px));
    border-color: #4ca3dd;
    color: #1e293b;
    font-weight: 600;
}

.day-cell.half-transition.layout-darkmode[b-9ma7ww8shh] {
    background: linear-gradient(135deg, #334155 calc(50% - 2px), rgba(255,255,255,0.15) calc(50% - 2px), rgba(255,255,255,0.15) calc(50% + 2px), #334155 calc(50% + 2px));
    border-color: #7c3aed;
    color: #e0e7ff;
    font-weight: 600;
}

.day-cell.half-transition.layout-woodenpattern[b-9ma7ww8shh] {
    background: linear-gradient(135deg, #8b5a3c calc(50% - 2px), #fefce8 calc(50% - 2px), #fefce8 calc(50% + 2px), #8b5a3c calc(50% + 2px));
    border-color: #6d4c3d;
    color: #fef3c7;
    font-weight: 600;
}

.day-cell.half-transition.layout-naturegreen[b-9ma7ww8shh] {
    background: linear-gradient(135deg, #059669 calc(50% - 2px), #ecfdf5 calc(50% - 2px), #ecfdf5 calc(50% + 2px), #059669 calc(50% + 2px));
    border-color: #047857;
    color: #ecfdf5;
    font-weight: 600;
}

/* ===== HALF-DAY FOR PAST DAYS ===== */
.day-cell.past.half-transition.layout-greenred[b-9ma7ww8shh] {
    background: linear-gradient(135deg, #ef4444 calc(50% - 2px), #ffffff calc(50% - 2px), #ffffff calc(50% + 2px), #ef4444 calc(50% + 2px));
    border-color: #dc2626;
    color: #94a3b8;
}

.day-cell.past.half-arrival.layout-greenred[b-9ma7ww8shh] {
    background: linear-gradient(135deg, #ffffff 50%, #ef4444 50%);
    border: 0 none;
    color: #94a3b8;
}

.day-cell.past.half-departure.layout-greenred[b-9ma7ww8shh] {
    background: linear-gradient(135deg, #ef4444 50%, #ffffff 50%);
    border: 0 none;
    color: #94a3b8;
}

.day-cell span[b-9ma7ww8shh] {
    position: relative;
    z-index: 1;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

/* Text shadow for better readability on diagonal backgrounds */
.day-cell.half-arrival span[b-9ma7ww8shh],
.day-cell.half-departure span[b-9ma7ww8shh],
.day-cell.half-transition span[b-9ma7ww8shh] {
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), 0 0 8px rgba(255, 255, 255, 0.3);
}

/* Hover effects */
.day-cell:not(.placeholder):hover[b-9ma7ww8shh] {
    transform: scale(1.2);
    z-index: 10;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

@media (hover: none), (pointer: coarse) {
    .day-cell:not(.placeholder):hover[b-9ma7ww8shh] {
        transform: none;
        z-index: auto;
    }
}

/* ===== DARK MODE THEME ===== */
.calendar-month.theme-darkmode[b-9ma7ww8shh] {
    background: #0f172a;
    border-color: rgba(255, 255, 255, 0.1);
}

.calendar-month.theme-darkmode .month-header[b-9ma7ww8shh] {
    color: #e5e7eb;
}

.calendar-month.theme-darkmode .weekday[b-9ma7ww8shh] {
    color: #9ca3af;
}

.calendar-month.theme-darkmode .day-cell.past[b-9ma7ww8shh] {
    background: rgba(255, 255, 255, 0.03);
    border-color: rgba(255, 255, 255, 0.1);
    color: #6b7280;
}

.calendar-month.theme-darkmode .day-cell.available[b-9ma7ww8shh] {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.15);
    color: #e5e7eb;
}

.calendar-month.theme-darkmode .day-cell.today[b-9ma7ww8shh] {
    border-color: #7c3aed;
    box-shadow: 0 0 0 2px rgba(124, 58, 237, 0.3);
}

.calendar-month.theme-darkmode .day-cell:not(.placeholder):not(.booked):not(.half-arrival):not(.half-departure):not(.half-transition):not(.past):hover[b-9ma7ww8shh] {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(124, 58, 237, 0.5);
}

/* ===== WOODEN THEME ===== */
.calendar-month.theme-wooden[b-9ma7ww8shh] {
    background: #fef3c7;
    border-color: #a0684d;
}

.calendar-month.theme-wooden .month-header[b-9ma7ww8shh] {
    color: #6d4c3d;
}

.calendar-month.theme-wooden .weekday[b-9ma7ww8shh] {
    color: #8b5a3c;
}

.calendar-month.theme-wooden .day-cell.past[b-9ma7ww8shh] {
    background: #fefce8;
    border-color: #d4a574;
    color: #a0684d;
}

.calendar-month.theme-wooden .day-cell.available[b-9ma7ww8shh] {
    background: #fefce8;
    border-color: #d4a574;
    color: #6d4c3d;
}

.calendar-month.theme-wooden .day-cell.today[b-9ma7ww8shh] {
    border-color: #8b5a3c;
    box-shadow: 0 0 0 2px rgba(139, 90, 60, 0.3);
}

/* ===== NATURE GREEN THEME ===== */
.calendar-month.theme-nature[b-9ma7ww8shh] {
    background: #f0fdf4;
    border-color: #10b981;
}

.calendar-month.theme-nature .month-header[b-9ma7ww8shh] {
    color: #065f46;
}

.calendar-month.theme-nature .weekday[b-9ma7ww8shh] {
    color: #059669;
}

.calendar-month.theme-nature .day-cell.past[b-9ma7ww8shh] {
    background: #ecfdf5;
    border-color: #6ee7b7;
    color: #047857;
}

.calendar-month.theme-nature .day-cell.available[b-9ma7ww8shh] {
    background: #ecfdf5;
    border-color: #6ee7b7;
    color: #065f46;
}

.calendar-month.theme-nature .day-cell.today[b-9ma7ww8shh] {
    border-color: #059669;
    box-shadow: 0 0 0 2px rgba(5, 150, 105, 0.3);
}

/* ===== AVAILABLE DAYS FOR OTHER LAYOUTS ===== */
.day-cell.available.layout-bluestripes[b-9ma7ww8shh] {
    background: #ffffff;
    border-color: #e2e8f0;
    color: #1e293b;
}

.day-cell.available.layout-darkmode[b-9ma7ww8shh] {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.15);
    color: #e5e7eb;
}

.day-cell.available.layout-woodenpattern[b-9ma7ww8shh] {
    background: #fefce8;
    border-color: #d4a574;
    color: #6d4c3d;
}

.day-cell.available.layout-naturegreen[b-9ma7ww8shh] {
    background: #ecfdf5;
    border-color: #6ee7b7;
    color: #065f46;
}

@media (max-width: 450px) {
    .calendar-month[b-9ma7ww8shh] {
        padding: 0.75rem;
    }

    .weekday-row[b-9ma7ww8shh],
    .days-grid[b-9ma7ww8shh] {
        gap: 2px;
    }

    .weekday[b-9ma7ww8shh] {
        font-size: 0.65rem;
        padding: 0.25rem 0;
    }

    .day-cell[b-9ma7ww8shh] {
        font-size: 0.95rem;
        border-radius: 5px;
    }

    .month-header[b-9ma7ww8shh] {
        font-size: 1rem;
    }
}
/* /Components/Public/SelectableCalendarMonth.razor.rz.scp.css */
/* Inherit all styles from CalendarMonth */
.calendar-month[b-2osixlq9ho] {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 1rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.month-header[b-2osixlq9ho] {
    margin-bottom: 0.75rem;
    color: #1e293b;
    font-weight: 600;
    font-size: 1.1rem;
    text-align: center;
}

.weekday-row[b-2osixlq9ho] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
    margin-bottom: 0.5rem;
    gap: 2px;
}

.weekday[b-2osixlq9ho] {
    padding: 0.4rem 0;
    color: #64748b;
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
}

.days-grid[b-2osixlq9ho] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 3px;
}

.day-cell[b-2osixlq9ho] {
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-radius: 6px;
    border: 1px solid #e2e8f0;
    background: #ffffff;
    color: #1e293b;
    font-size: 1.2rem;
    font-weight: 500;
    transition: all 0.15s ease;
    position: relative;
    overflow: hidden;
    user-select: none;
}

.day-cell.placeholder[b-2osixlq9ho] {
    background: transparent;
    border: none;
}

.day-cell.past[b-2osixlq9ho] {
    background: #ffffff;
    border-color: #e2e8f0;
    color: #94a3b8;
}

.day-cell.today[b-2osixlq9ho] {
    border-color: #3b82f6;
    border-width: 2px;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
    outline: 2px solid rgba(250, 204, 21, 0.75);
    outline-offset: -4px;
    z-index: 5;
}

/* Available days */
.day-cell.available.layout-greenred[b-2osixlq9ho] { background: #22c55e; border-color: #16a34a; color: #ffffff; font-weight: 600; }
.day-cell.available.layout-bluestripes[b-2osixlq9ho] { background: #ffffff; border-color: #e2e8f0; color: #1e293b; }
.day-cell.available.layout-darkmode[b-2osixlq9ho] { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.15); color: #e5e7eb; }
.day-cell.available.layout-woodenpattern[b-2osixlq9ho] { background: #fefce8; border-color: #d4a574; color: #6d4c3d; }
.day-cell.available.layout-naturegreen[b-2osixlq9ho] { background: #ecfdf5; border-color: #6ee7b7; color: #065f46; }

/* Booked days */
.day-cell.booked.layout-greenred[b-2osixlq9ho] { background: #ef4444; border-color: #dc2626; color: #ffffff; font-weight: 600; }
.day-cell.booked.layout-bluestripes[b-2osixlq9ho] { background: repeating-linear-gradient(135deg,#4ca3dd,#4ca3dd 8px,#e3f0ff 8px,#e3f0ff 16px); border-color: #4ca3dd; color: #1e293b; font-weight: 600; }
.day-cell.booked.layout-darkmode[b-2osixlq9ho] { background: linear-gradient(135deg,#1e293b,#334155); border-color: #7c3aed; color: #e0e7ff; font-weight: 600; }
.day-cell.booked.layout-woodenpattern[b-2osixlq9ho] { background: repeating-linear-gradient(90deg,#8b5a3c,#8b5a3c 4px,#a0684d 4px,#a0684d 8px,#6d4c3d 8px,#6d4c3d 12px); border-color: #6d4c3d; color: #fef3c7; font-weight: 600; }
.day-cell.booked.layout-naturegreen[b-2osixlq9ho] { background: repeating-linear-gradient(-45deg,#059669,#059669 6px,#10b981 6px,#10b981 12px,#047857 12px,#047857 18px); border-color: #047857; color: #ecfdf5; font-weight: 600; }

/* Half-day arrival/departure */
.day-cell.half-arrival.layout-greenred[b-2osixlq9ho] { background: linear-gradient(135deg,#22c55e 50%,#ef4444 50%); border-color: #16a34a; color: #ffffff; font-weight: 600; }
.day-cell.half-departure.layout-greenred[b-2osixlq9ho] { background: linear-gradient(135deg,#ef4444 50%,#22c55e 50%); border-color: #dc2626; color: #ffffff; font-weight: 600; }
.day-cell.half-arrival.layout-bluestripes[b-2osixlq9ho] { background: linear-gradient(135deg,#ffffff 50%,#4ca3dd 50%); border-color: #4ca3dd; color: #1e293b; font-weight: 600; }
.day-cell.half-departure.layout-bluestripes[b-2osixlq9ho] { background: linear-gradient(135deg,#4ca3dd 50%,#ffffff 50%); border-color: #4ca3dd; color: #1e293b; font-weight: 600; }
.day-cell.half-arrival.layout-darkmode[b-2osixlq9ho] { background: linear-gradient(135deg,rgba(255,255,255,0.1) 50%,#334155 50%); border-color: #7c3aed; color: #e0e7ff; font-weight: 600; }
.day-cell.half-departure.layout-darkmode[b-2osixlq9ho] { background: linear-gradient(135deg,#334155 50%,rgba(255,255,255,0.1) 50%); border-color: #7c3aed; color: #e0e7ff; font-weight: 600; }
.day-cell.half-arrival.layout-woodenpattern[b-2osixlq9ho] { background: linear-gradient(135deg,#fefce8 50%,#8b5a3c 50%); border-color: #6d4c3d; color: #6d4c3d; font-weight: 600; }
.day-cell.half-departure.layout-woodenpattern[b-2osixlq9ho] { background: linear-gradient(135deg,#8b5a3c 50%,#fefce8 50%); border-color: #6d4c3d; color: #fef3c7; font-weight: 600; }
.day-cell.half-arrival.layout-naturegreen[b-2osixlq9ho] { background: linear-gradient(135deg,#ecfdf5 50%,#059669 50%); border-color: #047857; color: #065f46; font-weight: 600; }
.day-cell.half-departure.layout-naturegreen[b-2osixlq9ho] { background: linear-gradient(135deg,#059669 50%,#ecfdf5 50%); border-color: #047857; color: #ecfdf5; font-weight: 600; }

/* Transition day (departure + arrival on same day) */
.day-cell.half-transition.layout-greenred[b-2osixlq9ho] { background: linear-gradient(135deg, #ef4444 calc(50% - 2px), #22c55e calc(50% - 2px), #22c55e calc(50% + 2px), #ef4444 calc(50% + 2px)); border-color: #dc2626; color: #ffffff; font-weight: 600; }
.day-cell.half-transition.layout-bluestripes[b-2osixlq9ho] { background: linear-gradient(135deg, #4ca3dd calc(50% - 2px), #ffffff calc(50% - 2px), #ffffff calc(50% + 2px), #4ca3dd calc(50% + 2px)); border-color: #4ca3dd; color: #1e293b; font-weight: 600; }
.day-cell.half-transition.layout-darkmode[b-2osixlq9ho] { background: linear-gradient(135deg, #334155 calc(50% - 2px), rgba(255,255,255,0.15) calc(50% - 2px), rgba(255,255,255,0.15) calc(50% + 2px), #334155 calc(50% + 2px)); border-color: #7c3aed; color: #e0e7ff; font-weight: 600; }
.day-cell.half-transition.layout-woodenpattern[b-2osixlq9ho] { background: linear-gradient(135deg, #8b5a3c calc(50% - 2px), #fefce8 calc(50% - 2px), #fefce8 calc(50% + 2px), #8b5a3c calc(50% + 2px)); border-color: #6d4c3d; color: #fef3c7; font-weight: 600; }
.day-cell.half-transition.layout-naturegreen[b-2osixlq9ho] { background: linear-gradient(135deg, #059669 calc(50% - 2px), #ecfdf5 calc(50% - 2px), #ecfdf5 calc(50% + 2px), #059669 calc(50% + 2px)); border-color: #047857; color: #ecfdf5; font-weight: 600; }

/* Past half-day */
.day-cell.past.half-transition.layout-greenred[b-2osixlq9ho] { background: linear-gradient(135deg, #ef4444 calc(50% - 2px), #ffffff calc(50% - 2px), #ffffff calc(50% + 2px), #ef4444 calc(50% + 2px)); border-color: #e2e8f0; color: #94a3b8; }
.day-cell.past.half-arrival.layout-greenred[b-2osixlq9ho] { background: linear-gradient(135deg,#ffffff 50%,#ef4444 50%); border-color: #e2e8f0; color: #94a3b8; }
.day-cell.past.half-departure.layout-greenred[b-2osixlq9ho] { background: linear-gradient(135deg,#ef4444 50%,#ffffff 50%); border-color: #e2e8f0; color: #94a3b8; }

.day-cell span[b-2osixlq9ho] {
    position: relative;
    z-index: 1;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.day-cell.half-arrival span[b-2osixlq9ho],
.day-cell.half-departure span[b-2osixlq9ho],
.day-cell.half-transition span[b-2osixlq9ho] {
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), 0 0 8px rgba(255, 255, 255, 0.3);
}

/* Theme variants */
.calendar-month.theme-darkmode[b-2osixlq9ho] { background: #0f172a; border-color: rgba(255,255,255,0.1); }
.calendar-month.theme-darkmode .month-header[b-2osixlq9ho] { color: #e5e7eb; }
.calendar-month.theme-darkmode .weekday[b-2osixlq9ho] { color: #9ca3af; }
.calendar-month.theme-darkmode .day-cell.past[b-2osixlq9ho] { background: rgba(255,255,255,0.03); border-color: rgba(255,255,255,0.1); color: #6b7280; }
.calendar-month.theme-darkmode .day-cell.available[b-2osixlq9ho] { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.15); color: #e5e7eb; }
.calendar-month.theme-darkmode .day-cell.today[b-2osixlq9ho] { border-color: #7c3aed; box-shadow: 0 0 0 2px rgba(124,58,237,0.3); }

.calendar-month.theme-wooden[b-2osixlq9ho] { background: #fef3c7; border-color: #a0684d; }
.calendar-month.theme-wooden .month-header[b-2osixlq9ho] { color: #6d4c3d; }
.calendar-month.theme-wooden .weekday[b-2osixlq9ho] { color: #8b5a3c; }
.calendar-month.theme-wooden .day-cell.past[b-2osixlq9ho] { background: #fefce8; border-color: #d4a574; color: #a0684d; }
.calendar-month.theme-wooden .day-cell.available[b-2osixlq9ho] { background: #fefce8; border-color: #d4a574; color: #6d4c3d; }
.calendar-month.theme-wooden .day-cell.today[b-2osixlq9ho] { border-color: #8b5a3c; box-shadow: 0 0 0 2px rgba(139,90,60,0.3); }

.calendar-month.theme-nature[b-2osixlq9ho] { background: #f0fdf4; border-color: #10b981; }
.calendar-month.theme-nature .month-header[b-2osixlq9ho] { color: #065f46; }
.calendar-month.theme-nature .weekday[b-2osixlq9ho] { color: #059669; }
.calendar-month.theme-nature .day-cell.past[b-2osixlq9ho] { background: #ecfdf5; border-color: #6ee7b7; color: #047857; }
.calendar-month.theme-nature .day-cell.available[b-2osixlq9ho] { background: #ecfdf5; border-color: #6ee7b7; color: #065f46; }
.calendar-month.theme-nature .day-cell.today[b-2osixlq9ho] { border-color: #059669; box-shadow: 0 0 0 2px rgba(5,150,105,0.3); }

/* ===== SELECTION STYLES ===== */
.day-cell.clickable:hover[b-2osixlq9ho] {
    transform: scale(1.08);
    box-shadow: 0 2px 10px rgba(34, 197, 94, 0.3);
    z-index: 2;
    overflow: visible;
}

@media (hover: none), (pointer: coarse) {
    .day-cell.clickable:hover[b-2osixlq9ho] {
        transform: none;
        box-shadow: none;
        z-index: auto;
        overflow: hidden;
    }
}

/* A tooltip is bigger than its cell, and .day-cell sets overflow: hidden. Un-clip any cell
   that hosts one while it is hovered. This used to ride along on .day-cell.clickable:hover,
   which silently tied the tooltip to the click affordance — the read-only dashboard months
   have no clickable cells, so their tooltips were rendered but clipped to nothing. */
.day-cell:has(.mc-tooltip):hover[b-2osixlq9ho] {
    overflow: visible;
    z-index: 2;
}

.day-cell:hover .mc-tooltip:not(.mc-tooltip-departing, .mc-tooltip-arriving)[b-2osixlq9ho] {
    display: flex;
}

/* Per-half click targets for single-guest changeover days. The clip-paths mirror the
   135deg half-day gradient, so the browser hit-tests the triangles for us and a click
   lands on whichever half was actually drawn under the cursor. Kept below .mc-hover-zone
   (z-index 4) so two-guest tooltip hovering is unaffected. */
.mc-click-zone[b-2osixlq9ho] {
    position: absolute;
    inset: 0;
    z-index: 3;
}

.mc-click-departing[b-2osixlq9ho] {
    clip-path: polygon(0 0, 100% 0, 0 100%);
}

.mc-click-arriving[b-2osixlq9ho] {
    clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.mc-hover-zone[b-2osixlq9ho] {
    position: absolute;
    inset: 0;
    z-index: 4;
}

.mc-hover-departing[b-2osixlq9ho] {
    clip-path: polygon(0 0, 100% 0, 0 100%);
}

.mc-hover-arriving[b-2osixlq9ho] {
    clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.mc-tooltip-departing[b-2osixlq9ho],
.mc-tooltip-arriving[b-2osixlq9ho] {
    display: none;
}

.mc-hover-departing:hover ~ .mc-tooltip-departing[b-2osixlq9ho] {
    display: flex;
}

.mc-hover-arriving:hover ~ .mc-tooltip-arriving[b-2osixlq9ho] {
    display: flex;
}

.day-cell:has(.mc-hover-zone) > .mc-tooltip:not(.mc-tooltip-departing):not(.mc-tooltip-arriving)[b-2osixlq9ho] {
    display: none !important;
}

.day-cell.selection-start[b-2osixlq9ho] {
    outline: 3px solid #22c55e;
    outline-offset: -2px;
    z-index: 3;
    box-shadow: 0 0 12px rgba(34, 197, 94, 0.5);
}

.day-cell.selection-range[b-2osixlq9ho] {
    background: rgba(34, 197, 94, 0.2) !important;
    border-color: rgba(34, 197, 94, 0.4) !important;
}

.day-cell.selection-range-start[b-2osixlq9ho] {
    background: rgba(34, 197, 94, 0.35) !important;
    border-color: #22c55e !important;
    border-radius: 6px 2px 2px 6px;
}

.day-cell.selection-range-end[b-2osixlq9ho] {
    background: rgba(34, 197, 94, 0.35) !important;
    border-color: #22c55e !important;
    border-radius: 2px 6px 6px 2px;
}

.day-cell.selection-range-start.selection-range-end[b-2osixlq9ho] {
    border-radius: 6px;
}

@media (max-width: 450px) {
    .calendar-month[b-2osixlq9ho] {
        padding: 0.75rem;
    }

    .weekday-row[b-2osixlq9ho],
    .days-grid[b-2osixlq9ho] {
        gap: 2px;
    }

    .weekday[b-2osixlq9ho] {
        font-size: 0.65rem;
        padding: 0.25rem 0;
    }

    .day-cell[b-2osixlq9ho] {
        font-size: 0.95rem;
        border-radius: 5px;
    }

    .month-header[b-2osixlq9ho] {
        font-size: 1rem;
    }
}
/* /Components/Shared/BookingRequestDetailDialog.razor.rz.scp.css */
/* ===== BookingRequestDetailDialog scoped styles ===== */

/* Body */
.brd-body[b-agsxw0w2yo] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

/* Status banner */
.brd-status-banner[b-agsxw0w2yo] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.brd-status-pill[b-agsxw0w2yo] {
    cursor: default;
    font-size: 0.85rem;
}

.brd-created-at[b-agsxw0w2yo] {
    margin-left: auto;
}

/* Section card (reusable panel) */
.brd-section-card[b-agsxw0w2yo] {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 10px;
    padding: 1rem;
}

:root[data-theme="light"] .brd-section-card[b-agsxw0w2yo] {
    background: #f8f9fa;
    border-color: rgba(15, 23, 42, 0.1);
}

/* Guest card */
.brd-guest-row[b-agsxw0w2yo] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.brd-guest-avatar[b-agsxw0w2yo] {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
}

.brd-guest-info[b-agsxw0w2yo] {
    min-width: 0;
    flex: 1;
}

.brd-chat-button[b-agsxw0w2yo] {
    color: var(--bc-muted);
}

.brd-chat-button:hover[b-agsxw0w2yo] {
    color: var(--bc-accent);
}

.brd-guest-name[b-agsxw0w2yo] {
    font-weight: 600;
    font-size: 0.95rem;
}

.brd-guest-email[b-agsxw0w2yo] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.brd-locale-panel[b-agsxw0w2yo] {
    margin-left: 48px;
}

.brd-locale-label[b-agsxw0w2yo] {
    margin-bottom: 0.35rem;
}

.brd-locale-list[b-agsxw0w2yo] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.brd-locale-pill[b-agsxw0w2yo] {
    max-width: 100%;
    font-size: 0.7rem;
    flex-shrink: 0;
    background: rgba(96, 165, 250, 0.1);
    border: 1px solid rgba(96, 165, 250, 0.25);
    color: #93c5fd;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.brd-flag-icon[b-agsxw0w2yo] {
    display: inline-flex;
    width: 1rem;
    justify-content: center;
    font-size: 0.85rem;
    line-height: 1;
}

.brd-locale-name[b-agsxw0w2yo] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.brd-locale-code[b-agsxw0w2yo] {
    opacity: 0.65;
    font-size: 0.65rem;
}

@media (max-width: 480px) {
    .brd-locale-panel[b-agsxw0w2yo] {
        margin-left: 0;
    }
}

/* Date range */
.brd-date-range[b-agsxw0w2yo] {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.brd-date-col[b-agsxw0w2yo] {
    flex: 1;
    text-align: center;
}

.brd-date-label[b-agsxw0w2yo] {
    margin-bottom: 0.15rem;
}

.brd-date-value[b-agsxw0w2yo] {
    font-weight: 600;
}

.brd-date-arrow[b-agsxw0w2yo] {
    font-size: 1.2rem;
    opacity: 0.4;
}

.brd-date-summary[b-agsxw0w2yo] {
    text-align: center;
    margin-top: 0.5rem;
}

.brd-days-pill[b-agsxw0w2yo] {
    font-size: 0.8rem;
}

/* Mini calendar */
.brd-calendar-label[b-agsxw0w2yo] {
    margin-bottom: 0.75rem;
}

.brd-months-wrap[b-agsxw0w2yo] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
}

.brd-month-col[b-agsxw0w2yo] {
    flex: 1;
    min-width: 220px;
    max-width: 260px;
}

.brd-month-header[b-agsxw0w2yo] {
    text-align: center;
    font-weight: 600;
    font-size: 0.85rem;
    margin-bottom: 0.4rem;
    color: var(--bc-text);
}

.brd-weekday-row[b-agsxw0w2yo] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;
    text-align: center;
    margin-bottom: 0.25rem;
}

.brd-weekday[b-agsxw0w2yo] {
    font-size: 0.6rem;
    color: var(--bc-muted);
    font-weight: 600;
}

.brd-days-grid[b-agsxw0w2yo] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
}

.brd-legend[b-agsxw0w2yo] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.75rem;
    justify-content: center;
}

/* Notes / custom fields */
.brd-notes-text[b-agsxw0w2yo] {
    white-space: pre-wrap;
    word-break: break-word;
    font-size: 0.9rem;
    line-height: 1.5;
}

.brd-custom-fields-text[b-agsxw0w2yo] {
    white-space: pre-wrap;
    font-size: 0.85rem;
    line-height: 1.6;
}

/* Price breakdown */
.brd-price-label[b-agsxw0w2yo] {
    margin-bottom: 0.5rem;
}

.brd-price-line[b-agsxw0w2yo] {
    display: flex;
    justify-content: space-between;
    font-size: 0.85rem;
    padding: 0.15rem 0;
}

.brd-price-calc[b-agsxw0w2yo] {
    opacity: 0.55;
    font-size: 0.8rem;
}

.brd-price-amount[b-agsxw0w2yo] {
    font-weight: 500;
}

.brd-price-total[b-agsxw0w2yo] {
    display: flex;
    justify-content: space-between;
    font-weight: 700;
    font-size: 0.95rem;
    padding-top: 0.4rem;
    margin-top: 0.3rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

:root[data-theme="light"] .brd-price-total[b-agsxw0w2yo] {
    border-top-color: rgba(15, 23, 42, 0.1);
}

/* Responded at */
.brd-responded-at[b-agsxw0w2yo] {
    font-size: 0.8rem;
}

/* Actions footer */
.brd-spacer[b-agsxw0w2yo] {
    flex: 1;
}

.brd-decline-btn[b-agsxw0w2yo] {
    color: #fca5a5;
}

.brd-accept-btn[b-agsxw0w2yo] {
    color: #86efac;
}
/* /Components/Shared/BookingRequestFormBuilder.razor.rz.scp.css */
.form-builder-area[b-sw9djhu8e6] {
    min-height: 80px;
    border: 2px dashed rgba(255, 255, 255, 0.1);
    border-radius: 10px;
    transition: border-color 0.2s;
}

.form-builder-area:empty[b-sw9djhu8e6]::after {
    content: "Drag fields here";
    color: rgba(255, 255, 255, 0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 80px;
}

/* Deliberately NOT linearized on narrow screens: the builder is a WYSIWYG of the form's
   column layout, so the grid keeps its real columns everywhere and the cards themselves
   slim down to fit (see FormBuilderCard.razor.css's mobile block). */

.removed-fields-section[b-sw9djhu8e6] {
    padding: 0.75rem 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    margin-top: 0.5rem;
}

.removed-fields-row[b-sw9djhu8e6] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.removed-field-card[b-sw9djhu8e6] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.6rem;
    background: rgba(250, 204, 21, 0.06);
    border: 1px dashed rgba(250, 204, 21, 0.3);
    border-radius: 8px;
    cursor: grab;
    font-size: 0.85rem;
}

.removed-field-card:hover[b-sw9djhu8e6] {
    background: rgba(250, 204, 21, 0.1);
}

.removed-field-card .drag-handle[b-sw9djhu8e6] {
    user-select: none;
    cursor: grab;
}

.removed-field-card .card-label[b-sw9djhu8e6] {
    font-weight: 500;
}

.preview-form[b-sw9djhu8e6] {
    padding: 1rem;
    background: rgba(255, 255, 255, 0.03);
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.empty-cell[b-sw9djhu8e6] {
    min-height: 44px;
    border: 2px dashed rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    transition: all 0.2s ease;
}

.empty-cell:hover[b-sw9djhu8e6],
.empty-cell.drag-over[b-sw9djhu8e6] {
    border-color: rgba(96, 165, 250, 0.4);
    background: rgba(96, 165, 250, 0.05);
    box-shadow: 0 0 0 2px rgba(96, 165, 250, 0.15);
}

/* Light theme overrides */
:global(:root[data-theme="light"]) .form-builder-area[b-sw9djhu8e6] {
    border-color: rgba(0, 0, 0, 0.12);
}

:global(:root[data-theme="light"]) .form-builder-area:empty[b-sw9djhu8e6]::after {
    color: rgba(0, 0, 0, 0.35);
}

:global(:root[data-theme="light"]) .removed-fields-section[b-sw9djhu8e6] {
    border-top-color: rgba(0, 0, 0, 0.1);
}

:global(:root[data-theme="light"]) .removed-field-card[b-sw9djhu8e6] {
    background: rgba(234, 179, 8, 0.06);
    border-color: rgba(234, 179, 8, 0.3);
}

:global(:root[data-theme="light"]) .removed-field-card:hover[b-sw9djhu8e6] {
    background: rgba(234, 179, 8, 0.12);
}

:global(:root[data-theme="light"]) .removed-field-card .drag-handle[b-sw9djhu8e6] {
    color: rgba(0, 0, 0, 0.35);
}

:global(:root[data-theme="light"]) .preview-form[b-sw9djhu8e6] {
    background: rgba(0, 0, 0, 0.02);
    border-color: rgba(0, 0, 0, 0.1);
}

:global(:root[data-theme="light"]) .empty-cell[b-sw9djhu8e6] {
    border-color: rgba(0, 0, 0, 0.1);
}
/* /Components/Shared/Bookings/BookingsCalendarView.razor.rz.scp.css */
/* Calendar grid / nav.
   These rules previously lived in ClientGuestHouseBookings.razor.css, but the
   markup moved into this component when the bookings page was split into tabs.
   Blazor scopes .razor.css to its own component's elements only, so they stopped
   matching and the month grid collapsed to display:block (one full-width month
   per row, blowing up the aspect-ratio:1 day cells). */

/* ===== Calendar grid ===== */
.select-calendar-grid[b-fmzzqpc8m8] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

/* The guest-bars view labels each stay with a name, so it needs a wider month than the
   tiles view to avoid truncating to "Schn…". Two across instead of three. */
.select-calendar-grid.guest-bars[b-fmzzqpc8m8] {
    grid-template-columns: repeat(2, 1fr);
}

.calendar-nav[b-fmzzqpc8m8] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.calendar-nav button[b-fmzzqpc8m8] {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 8px;
    color: var(--bc-text);
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 1.2rem;
    transition: all 0.2s ease;
}

.calendar-nav button:hover:not(:disabled)[b-fmzzqpc8m8] {
    background: rgba(255, 255, 255, 0.1);
    color: #f8fafc;
}

.calendar-nav button:disabled[b-fmzzqpc8m8] {
    opacity: 0.3;
    cursor: not-allowed;
}

/* ===== Light theme overrides ===== */
:root[data-theme="light"] .calendar-nav button[b-fmzzqpc8m8] {
    background: rgba(15, 23, 42, 0.05);
    border-color: rgba(15, 23, 42, 0.15);
    color: #1e293b;
}

/* ===== Responsive ===== */
@media (max-width: 800px) {
    .select-calendar-grid[b-fmzzqpc8m8] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 700px) {
    .select-calendar-grid[b-fmzzqpc8m8],
    .select-calendar-grid.guest-bars[b-fmzzqpc8m8] {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .calendar-nav[b-fmzzqpc8m8] {
        gap: 0.6rem;
    }
}
/* /Components/Shared/Bookings/BookingsListView.razor.rz.scp.css */
/* Bookings table styling. Same story as BookingsCalendarView.razor.css: these rules
   lived in ClientGuestHouseBookings.razor.css until the tab split moved the markup
   into this component, at which point Blazor's per-component scoping stopped them
   from matching (row hover, year separators and numeric alignment silently died).
   The base .table-modern / .table-wrap / .cell-* styles stay global in legacy.css. */

/* ===== Clickable booking rows ===== */
.booking-row[b-jp0l29111g] {
    cursor: pointer;
    transition: background 0.15s ease;
}

.booking-row:hover[b-jp0l29111g] {
    background: rgba(96, 165, 250, 0.08) !important;
}

.booking-row.expired[b-jp0l29111g] {
    opacity: 0.55;
}

.booking-row.cancelled[b-jp0l29111g] {
    opacity: 0.72;
}

.booking-row.cancelled .cell-title[b-jp0l29111g] {
    color: var(--bc-muted);
}

.numeric-cell[b-jp0l29111g] {
    text-align: right;
}

.numeric-cell .cell-title[b-jp0l29111g],
.numeric-cell .cell-sub[b-jp0l29111g] {
    text-align: right;
}

/* ===== Year separator ===== */
.year-separator-row[b-jp0l29111g] {
    cursor: default;
}

.year-separator-row:hover[b-jp0l29111g] {
    background: transparent !important;
}

.year-separator[b-jp0l29111g] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.25rem 0;
}

.year-separator[b-jp0l29111g]::before,
.year-separator[b-jp0l29111g]::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--bc-panel-border);
}

.year-separator-label[b-jp0l29111g] {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--bc-muted);
    letter-spacing: 0.05em;
    white-space: nowrap;
}

/* ===== Light theme overrides ===== */
:root[data-theme="light"] .booking-row:hover[b-jp0l29111g] {
    background: rgba(59, 130, 246, 0.06) !important;
}

.table-modern th[b-jp0l29111g] {
    text-align: left;
}

@media (max-width: 576px) {
    .table-modern[b-jp0l29111g] {
        min-width: 480px;
    }
}

.requestIconCell[b-jp0l29111g] {
    padding-right: 0;
    padding-left: 0.5rem;
}
/* /Components/Shared/Bookings/CalendarSelectionHint.razor.rz.scp.css */
.calendar-select-hint[b-518f5mnsfm] {
    text-align: center;
    padding: 0.75rem;
    color: var(--bc-muted);
    font-size: 0.9rem;
    border: 1px dashed var(--bc-panel-border);
    border-radius: 10px;
    margin-bottom: 1rem;
}
/* /Components/Shared/Bookings/HostOccupancyMonth.razor.rz.scp.css */
/* Host occupancy calendar — semantic design tokens (--primary/--panel/--border/...), not the
   public embed's --bc-* tokens. Booked ≠ danger for a host: bookings are brand-tinted bars with
   guest-name labels; red is reserved for cancellations and double-booking conflicts. */
.host-occupancy-month[b-026n36g7ej] {
    border: 1px solid var(--border);
    border-radius: 0.5rem;
    padding: 0.75rem;
    background: var(--panel);
}

.host-occupancy-header[b-026n36g7ej] {
    text-align: center;
    font-weight: 600;
    color: var(--foreground);
    margin-bottom: 0.5rem;
}

.host-occupancy-weekday-row[b-026n36g7ej],
.host-occupancy-day-row[b-026n36g7ej] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
}

.host-occupancy-weekday[b-026n36g7ej] {
    text-align: center;
    font-size: 0.7rem;
    color: var(--muted-foreground);
    padding-bottom: 0.25rem;
}

.host-occupancy-week[b-026n36g7ej] {
    margin-bottom: 0.15rem;
}

.host-occupancy-day[b-026n36g7ej] {
    text-align: center;
    font-size: 0.75rem;
    color: var(--foreground);
    padding: 0.15rem 0;
    border-radius: 0.25rem;
}

.host-occupancy-day.placeholder[b-026n36g7ej] {
    visibility: hidden;
}

.host-occupancy-day.past[b-026n36g7ej] {
    color: var(--muted-foreground);
    opacity: 0.5;
}

.host-occupancy-day.today[b-026n36g7ej] {
    font-weight: 700;
    box-shadow: inset 0 0 0 1px var(--primary);
}

.host-occupancy-day.clickable[b-026n36g7ej] {
    cursor: pointer;
}

.host-occupancy-day.clickable:hover[b-026n36g7ej] {
    background: color-mix(in srgb, var(--primary) 15%, transparent);
}

/* Two columns per day, so a changeover bar can start or stop on a day's midpoint and still
   line up with the 7-column day row above (which has no column gap, so 14 halves align
   exactly). Column gap stays 0: back-to-back stays should meet flush at the changeover
   midpoint, the way the tiles view's diagonal split does. */
.host-occupancy-bar-row[b-026n36g7ej] {
    display: grid;
    grid-template-columns: repeat(14, 1fr);
    grid-auto-rows: 1.25rem;
    row-gap: 2px;
    min-height: 1.25rem;
}

.host-occupancy-bar[b-026n36g7ej] {
    display: flex;
    align-items: center;
    overflow: hidden;
    border-radius: 4px;
    /* A flat var(--primary) fill read weak against the new glass card background — a subtle
       gradient (same brand color, just not perfectly flat) keeps it legible without touching
       the --destructive reserved for conflicts/cancelled below. */
    background: linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 78%, transparent));
    color: var(--primary-foreground);
    font-size: 0.65rem;
    font-weight: 500;
    padding: 0 4px;
    cursor: pointer;
    white-space: nowrap;
}

.host-occupancy-bar.conflict[b-026n36g7ej] {
    background: var(--destructive);
    color: #fff;
}

/* The half-day inset is grid placement now (see OccupancyBarSegment.StartHalfColumn); these
   only square off the edge that lands mid-day, so it reads as a changeover rather than an end. */
.host-occupancy-bar.starts-mid[b-026n36g7ej] {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.host-occupancy-bar.ends-mid[b-026n36g7ej] {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.host-occupancy-bar-label[b-026n36g7ej] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Components/Shared/CancellationTierEditDialog.razor.rz.scp.css */
.cancellation-slider-card[b-3lajlmb2af] {
    border: 1px solid var(--bc-panel-border);
    border-radius: 12px;
    padding: 0.9rem;
    background: rgba(96, 165, 250, 0.08);
}

.cancellation-slider-head[b-3lajlmb2af] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    color: var(--bc-muted);
    font-size: 0.86rem;
    margin-bottom: 0.75rem;
}

.cancellation-slider-head strong[b-3lajlmb2af] {
    color: var(--bc-text);
    font-size: 1rem;
}

.cancellation-slider[b-3lajlmb2af] {
    width: 100%;
    accent-color: var(--bc-accent);
}

.cancellation-slider-scale[b-3lajlmb2af] {
    display: flex;
    justify-content: space-between;
    color: var(--bc-muted);
    font-size: 0.72rem;
    margin-top: 0.35rem;
}

@media (max-width: 576px) {
    .cancellation-slider-card[b-3lajlmb2af] {
        padding: 0.85rem;
    }
}
/* /Components/Shared/EmailSettingsDialog.razor.rz.scp.css */
.email-settings-section-title[b-bsnwy517qj] {
    margin: 0 0 0.25rem;
    font-size: 1.05rem;
    color: var(--bc-text);
}

.email-toggle-grid[b-bsnwy517qj] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.email-toggle-row[b-bsnwy517qj] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    cursor: pointer;
    font-size: 0.92rem;
    color: var(--bc-text);
}

.email-toggle-row input[type="checkbox"][b-bsnwy517qj] {
    width: 1.1rem;
    height: 1.1rem;
    accent-color: var(--bc-accent);
    cursor: pointer;
    flex-shrink: 0;
}

.email-template-buttons[b-bsnwy517qj] {
    display: flex;
    flex-direction: row;
    gap: 0.5rem;
}

.email-template-btn[b-bsnwy517qj] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.75rem 1rem;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--bc-panel-border);
    border-radius: 10px;
    color: var(--bc-text);
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
    text-align: left;
}

.email-template-btn:hover[b-bsnwy517qj] {
    background: rgba(255, 255, 255, 0.07);
    border-color: var(--bc-accent);
}

.email-template-btn-icon[b-bsnwy517qj] {
    font-size: 1.3rem;
    flex-shrink: 0;
}

.email-template-btn-label[b-bsnwy517qj] {
    flex: 1;
    font-size: 0.92rem;
    font-weight: 500;
}
/* /Components/Shared/EmailTemplateEditorDialog.razor.rz.scp.css */
.template-lang-tabs[b-7h4319g9kl] {
    display: flex;
    gap: 0.25rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--bc-panel-border);
    padding-bottom: 0.5rem;
    flex-wrap: wrap;
}

.template-lang-tab[b-7h4319g9kl] {
    position: relative;
    padding: 0.45rem 0.85rem;
    border: 1px solid transparent;
    border-radius: 8px 8px 0 0;
    background: transparent;
    color: var(--bc-muted);
    cursor: pointer;
    font-size: 0.85rem;
    font-weight: 500;
    transition: background 0.15s, color 0.15s;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

/* Narrow screens: slim the tabs down so three fit per row (en/de/fr, then es/nl),
   and center the rows so the shorter second row doesn't hang off to the left. */
@media (max-width: 480px) {
    .template-lang-tabs[b-7h4319g9kl] {
        justify-content: center;
    }

    .template-lang-tab[b-7h4319g9kl] {
        padding: 0.4rem 0.5rem;
        font-size: 0.8rem;
        gap: 0.25rem;
    }
}

.template-tab-flag[b-7h4319g9kl] {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}

[b-7h4319g9kl] .template-flag-svg {
    width: 1.15rem;
    height: auto;
    border-radius: 2px;
    display: block;
}

.template-lang-tab:hover[b-7h4319g9kl] {
    background: rgba(255, 255, 255, 0.05);
    color: var(--bc-text);
}

.template-lang-tab.active[b-7h4319g9kl] {
    background: rgba(96, 165, 250, 0.12);
    color: var(--bc-accent);
    border-color: var(--bc-panel-border);
    border-bottom-color: transparent;
}

.template-tab-dot[b-7h4319g9kl] {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--bc-accent);
    margin-left: 0.35rem;
    vertical-align: middle;
}

.template-editor-pane[b-7h4319g9kl] {
    padding: 0.25rem 0;
}

.email-placeholder-hint[b-7h4319g9kl] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    margin-bottom: 1rem;
    font-size: 0.82rem;
    color: var(--bc-muted);
}

.email-placeholder-tag[b-7h4319g9kl] {
    background: rgba(96, 165, 250, 0.15);
    color: #93c5fd;
    padding: 0.15rem 0.45rem;
    border-radius: 4px;
    font-size: 0.8rem;
    font-family: monospace;
}

.email-placeholder-clickable[b-7h4319g9kl] {
    cursor: pointer;
    transition: background 0.15s, transform 0.1s;
}

.email-placeholder-clickable:hover[b-7h4319g9kl] {
    background: rgba(96, 165, 250, 0.35);
    transform: scale(1.05);
}

.email-template-textarea[b-7h4319g9kl] {
    font-family: monospace;
    font-size: 0.82rem;
    line-height: 1.5;
    resize: vertical;
    min-height: 150px;
}

.email-preview-frame[b-7h4319g9kl] {
    border: 1px solid var(--bc-panel-border);
    border-radius: 6px;
    overflow: hidden;
    background: #fff;
    min-height: 200px;
}

.email-preview-iframe[b-7h4319g9kl] {
    width: 100%;
    min-height: 250px;
    border: none;
    background: #fff;
}
/* /Components/Shared/FormBuilderCard.razor.rz.scp.css */
.form-builder-card[b-muqk4caaq5] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    /* Grid items refuse to shrink below their content without this, which pushed the
       whole builder grid out of the dialog on narrow screens. */
    min-width: 0;
    padding: 0.6rem 0.75rem;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 8px;
    cursor: grab;
    transition: all 0.15s ease;
    min-height: 44px;
}

.form-builder-card:hover[b-muqk4caaq5] {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(96, 165, 250, 0.3);
}

.form-builder-card.drag-over[b-muqk4caaq5] {
    border-color: rgba(96, 165, 250, 0.6);
    background: rgba(96, 165, 250, 0.1);
    box-shadow: 0 0 0 2px rgba(96, 165, 250, 0.15);
}

.form-builder-card:active[b-muqk4caaq5] {
    cursor: grabbing;
    opacity: 0.7;
}

.drag-handle[b-muqk4caaq5] {
    color: rgba(255, 255, 255, 0.3);
    font-size: 1.1rem;
    user-select: none;
    cursor: grab;
    flex-shrink: 0;
}

.card-label[b-muqk4caaq5] {
    flex: 1;
    font-weight: 500;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.badge-tag[b-muqk4caaq5] {
    font-size: 0.65rem;
    padding: 0.1rem 0.35rem;
    border-radius: 4px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.default-tag[b-muqk4caaq5] {
    background: rgba(96, 165, 250, 0.15);
    color: #93c5fd;
}

.optional-tag[b-muqk4caaq5] {
    background: rgba(250, 204, 21, 0.15);
    color: #fcd34d;
}

.required-star[b-muqk4caaq5] {
    color: #f87171;
    font-weight: bold;
}

.card-actions[b-muqk4caaq5] {
    display: flex;
    gap: 0.25rem;
    flex-shrink: 0;
}

/* Drag-and-drop's touch fallback: hidden wherever a mouse is available, shown on
   coarse-pointer devices and narrow screens (where dragging is also fiddly). */
.card-move[b-muqk4caaq5] {
    display: none;
    gap: 0.25rem;
}

@media (hover: none), (max-width: 640px) {
    .card-move[b-muqk4caaq5] {
        display: flex;
    }
}

/* Narrow screens keep the builder's real column layout (it's a WYSIWYG of the form), so
   the card compacts to make a ~150px cell workable: the drag handle goes (touch can't
   drag anyway — the ◀/▶ buttons reorder), the label takes its own full-width line, and
   the actions wrap onto a second line, right-aligned, in smaller type. */
@media (max-width: 640px) {
    .form-builder-card[b-muqk4caaq5] {
        flex-wrap: wrap;
        gap: 0.15rem 0.3rem;
        padding: 0.35rem 0.45rem;
        min-height: 0;
    }

    .form-builder-card > .drag-handle[b-muqk4caaq5] {
        display: none;
    }

    .card-label[b-muqk4caaq5] {
        flex: 1 1 100%;
        font-size: 0.78rem;
        gap: 0.25rem;
    }

    .badge-tag[b-muqk4caaq5] {
        font-size: 0.55rem;
        padding: 0.1rem 0.25rem;
    }

    .card-actions[b-muqk4caaq5] {
        margin-left: auto;
    }

    .card-actions .btn-icon[b-muqk4caaq5] {
        font-size: 0.75rem;
        padding: 0.1rem 0.2rem;
    }
}

.card-actions .btn-icon[b-muqk4caaq5] {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.15rem 0.3rem;
    border-radius: 4px;
    font-size: 0.85rem;
    opacity: 0.6;
    transition: opacity 0.15s;
}

.card-actions .btn-icon:hover[b-muqk4caaq5] {
    opacity: 1;
    background: rgba(255, 255, 255, 0.1);
}

/* Light theme overrides */
:root[data-theme="light"] .form-builder-card[b-muqk4caaq5] {
    background: rgba(0, 0, 0, 0.05);
    border-color: rgba(0, 0, 0, 0.12);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

:root[data-theme="light"] .form-builder-card:hover[b-muqk4caaq5] {
    background: rgba(0, 0, 0, 0.08);
    border-color: rgba(59, 130, 246, 0.4);
}

:root[data-theme="light"] .form-builder-card.drag-over[b-muqk4caaq5] {
    background: rgba(96, 165, 250, 0.08);
}

:root[data-theme="light"] .drag-handle[b-muqk4caaq5] {
    color: rgba(0, 0, 0, 0.35);
}

:root[data-theme="light"] .default-tag[b-muqk4caaq5] {
    background: rgba(59, 130, 246, 0.12);
    color: #2563eb;
}

:root[data-theme="light"] .optional-tag[b-muqk4caaq5] {
    background: rgba(234, 179, 8, 0.12);
    color: #a16207;
}

:root[data-theme="light"] .card-actions .btn-icon:hover[b-muqk4caaq5] {
    background: rgba(0, 0, 0, 0.08);
}
/* /Components/Shared/GuestHouseDesignCard.razor.rz.scp.css */
/* Layout-theme swatch strip: 3 representative colors per theme, shown inside its radio card. */
.layout-swatch-strip[b-d5x12ofb4w] {
    display: flex;
    height: 14px;
    width: 100%;
    overflow: hidden;
    border-radius: 4px;
    border: 1px solid rgba(0, 0, 0, 0.1);
}

.layout-swatch-strip > span[b-d5x12ofb4w] {
    flex: 1;
}

/* Changeover-day mini preview: two small cells — the first always "available", the
   second showing either a diagonal half-split or a solid full-day block. Component-local
   only; the frozen public embed keeps its own copy of this visual language in legacy.css. */
.changeover-preview[b-d5x12ofb4w] {
    display: flex;
    gap: 4px;
}

.changeover-cell[b-d5x12ofb4w] {
    width: 22px;
    height: 22px;
    border-radius: 4px;
    border: 1px solid rgba(0, 0, 0, 0.15);
}

.changeover-cell-available[b-d5x12ofb4w] {
    background: #22c55e;
}

.changeover-cell-diagonal[b-d5x12ofb4w] {
    background: linear-gradient(135deg, #22c55e 50%, #ef4444 50%);
}

.changeover-cell-full[b-d5x12ofb4w] {
    background: #ef4444;
}
/* /Components/Shared/PriceProfileCard.razor.rz.scp.css */
.price-profile-switch[b-lvc6t41nfb] {
    display: inline-flex;
    align-items: center;
    min-height: 31px;
    cursor: pointer;
}

.price-profile-switch input[b-lvc6t41nfb] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.price-profile-switch-track[b-lvc6t41nfb] {
    width: 44px;
    height: 24px;
    padding: 2px;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.5);
    background: rgba(148, 163, 184, 0.22);
    display: inline-flex;
    align-items: center;
    transition: background-color 0.18s ease, border-color 0.18s ease;
}

.price-profile-switch-thumb[b-lvc6t41nfb] {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.35);
    transform: translateX(0);
    transition: transform 0.18s ease;
}

.price-profile-switch input:checked + .price-profile-switch-track[b-lvc6t41nfb] {
    border-color: rgba(34, 197, 94, 0.65);
    background: rgba(34, 197, 94, 0.8);
}

.price-profile-switch input:checked + .price-profile-switch-track .price-profile-switch-thumb[b-lvc6t41nfb] {
    transform: translateX(20px);
}

.price-profile-switch input:focus-visible + .price-profile-switch-track[b-lvc6t41nfb] {
    outline: 2px solid rgba(96, 165, 250, 0.8);
    outline-offset: 2px;
}
