:root {
    --rm-font-ui: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
    --rm-font-fa-ui: "IranSans", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

@font-face {
    font-family: "IranSans";
    src: url("./fonts/Iranian Sans.ttf") format("truetype");
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF;
}

@font-face {
    font-family: "Vazirmatn";
    src: url("./fonts/Vazirmatn-Regular.ttf") format("truetype");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "Vazirmatn";
    src: url("./fonts/Vazirmatn-Bold.ttf") format("truetype");
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

html {
    font-size: 12px;
}

@media (min-width: 768px) {
    html {
        font-size: 14px;
    }
}

html, body {
    font-family: var(--rm-font-ui);
    color: var(--rm-copy);
    background: var(--rm-page-bg);
}

html[lang^="fa"] body,
html[dir="rtl"] body,
body:lang(fa) {
    font-family: var(--rm-font-fa-ui);
}

a, .btn-link {
    color: var(--rm-accent-2);
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem var(--rm-surface), 0 0 0 0.25rem var(--rm-focus-ring);
}

.content {
    padding-top: 1.1rem;
}

.resident-app-page {
    display: grid;
    gap: 1rem;
    max-width: 920px;
    margin: 0 auto;
}

.resident-app-surface {
    background: linear-gradient(145deg, var(--rm-surface), var(--rm-surface-2));
    border: 1px solid var(--rm-line);
    border-radius: 16px;
    box-shadow: var(--rm-shadow-soft);
    color: var(--rm-copy);
}

.resident-app-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.15rem;
}

.resident-app-hero-copy {
    display: grid;
    gap: 0.2rem;
    min-width: 0;
}

.resident-app-hero h1 {
    margin: 0;
    color: var(--rm-copy);
    font-size: 1.28rem;
    font-weight: 900;
}

.resident-app-hero-copy h2 {
    margin: 0;
    color: var(--rm-copy);
    font-size: 1.08rem;
    font-weight: 900;
}

.resident-app-hero p {
    margin: 0.2rem 0 0;
    color: var(--rm-copy-muted);
    font-size: 0.92rem;
    line-height: 1.6;
}

.resident-app-eyebrow {
    color: var(--rm-accent-2);
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.12em;
    margin-bottom: 0.35rem;
    text-transform: uppercase;
}

.resident-app-panel {
    padding: 1rem;
}

@media (max-width: 640.98px) {
    .resident-app-page {
        gap: 0.8rem;
    }

    .resident-app-hero {
        padding: 0.95rem 1rem;
    }
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid red;
}

.validation-message {
    color: red;
}

#blazor-error-ui {
    color-scheme: light only;
    background: var(--rm-warning-soft);
    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 {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

.rm-reconnect-modal {
    align-items: center;
    background: color-mix(in srgb, var(--rm-page-bg) 72%, transparent);
    display: none;
    inset: 0;
    justify-content: center;
    padding: 1rem;
    position: fixed;
    z-index: 3000;
}

.rm-reconnect-modal.components-reconnect-show,
.rm-reconnect-modal.components-reconnect-failed,
.rm-reconnect-modal.components-reconnect-rejected {
    display: flex;
}

.rm-reconnect-card {
    background: linear-gradient(145deg, var(--rm-surface), var(--rm-surface-2));
    border: 1px solid var(--rm-line-strong);
    border-radius: 1rem;
    box-shadow: var(--rm-shadow, 0 18px 48px rgba(0, 0, 0, 0.18));
    color: var(--rm-copy);
    display: none;
    gap: 0.45rem;
    max-width: min(28rem, 100%);
    padding: 1rem 1.1rem;
    text-align: start;
}

.rm-reconnect-modal.components-reconnect-show .components-reconnect-show,
.rm-reconnect-modal.components-reconnect-failed .components-reconnect-failed,
.rm-reconnect-modal.components-reconnect-rejected .components-reconnect-rejected {
    display: grid;
}

.rm-reconnect-card strong {
    color: var(--rm-copy);
    font-size: 1rem;
    font-weight: 900;
}

.rm-reconnect-card span {
    color: var(--rm-copy-soft);
    font-size: 0.9rem;
}

.rm-reconnect-card button {
    background: var(--rm-accent);
    border: 0;
    border-radius: 999px;
    color: var(--rm-accent-on);
    font-weight: 900;
    justify-self: start;
    margin-top: 0.25rem;
    padding: 0.45rem 0.9rem;
}

.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."
    }

.loading-progress {
    position: absolute;
    display: block;
    width: 8rem;
    height: 8rem;
    inset: 20vh 0 auto 0;
    margin: 0 auto 0 auto;
}

    .loading-progress circle {
        fill: none;
        stroke: #e0e0e0;
        stroke-width: 0.6rem;
        transform-origin: 50% 50%;
        transform: rotate(-90deg);
    }

        .loading-progress circle:last-child {
            stroke: #1b6ec2;
            stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%) * 0.8), 500%;
            transition: stroke-dasharray 0.05s ease-in-out;
        }

.loading-progress-text {
    position: absolute;
    text-align: center;
    font-weight: bold;
    inset: calc(20vh + 3.25rem) 0 auto 0.2rem;
}

    .loading-progress-text:after {
        content: var(--blazor-load-percentage-text, "Loading");
    }

code {
    color: var(--rm-danger);
}

.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;
}

.buildings-page {
    min-height: 100vh;
    padding: 1.5rem;
    background:
        radial-gradient(circle at top left, rgba(122, 210, 255, 0.26), transparent 26%),
        radial-gradient(circle at bottom right, rgba(182, 155, 255, 0.22), transparent 26%),
        var(--rm-page-gradient);
}

.buildings-hero,
.buildings-toolbar,
.editor-card,
.buildings-table-card {
    max-width: 1200px;
    margin: 0 auto 1.25rem auto;
}

.buildings-hero,
.editor-card,
.buildings-table-card {
    border: 1px solid rgba(255, 255, 255, 0.46);
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.52);
    backdrop-filter: blur(18px);
    box-shadow: 0 22px 55px rgba(71, 98, 154, 0.12);
}

.buildings-hero {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    padding: 2rem;
}

.eyebrow {
    margin: 0 0 0.4rem 0;
    color: #6384a8;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.hero-copy {
    max-width: 40rem;
    margin: 0;
    color: #587291;
}

.hero-action {
    min-width: 12rem;
}

.buildings-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 220px;
    gap: 1rem;
}

.conditions-toolbar {
    grid-template-columns: minmax(0, 1.8fr) minmax(220px, 1fr) minmax(220px, 1fr);
}

.search-box,
.status-filter,
.editor-card .form-control,
.editor-card .form-select {
    min-height: 3rem;
    border-radius: 16px;
    border: 1px solid rgba(121, 156, 210, 0.2);
    background: rgba(255, 255, 255, 0.68);
}

.status-banner {
    max-width: 1200px;
    margin: 0 auto 1rem auto;
    padding: 0.9rem 1rem;
    border-radius: 16px;
    background: rgba(231, 243, 255, 0.74);
    color: #28517b;
    border: 1px solid rgba(106, 169, 234, 0.28);
}

.editor-card {
    padding: 1.5rem;
}

.editor-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1rem;
}

.editor-head h2 {
    margin: 0;
}

.editor-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.editor-grid-span {
    grid-column: 1 / -1;
}

.prompt-editor {
    min-height: 14rem;
    resize: vertical;
}

.prompt-cell {
    max-width: 56rem;
    white-space: pre-wrap;
    line-height: 1.5;
}

.ai-result-cell {
    min-width: 24rem;
}

.editor-actions {
    display: flex;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

.file-hint {
    margin: 1rem 0 0;
    color: #587291;
}

.logo-preview-wrap {
    margin-top: 1.25rem;
    padding: 1rem;
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(255,255,255,0.62), rgba(220, 235, 255, 0.5));
    display: inline-flex;
}

.logo-preview,
.table-logo {
    object-fit: cover;
    border-radius: 18px;
    border: 1px solid rgba(106, 146, 205, 0.18);
    background: white;
}

.logo-preview {
    width: 180px;
    height: 180px;
}

.buildings-table-card {
    padding: 1rem;
}

.logo-cell {
    width: 78px;
    height: 78px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(255,255,255,0.8), rgba(223, 236, 255, 0.72));
}

.table-logo {
    width: 64px;
    height: 64px;
}

.image-gallery {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

.gallery-thumb {
    width: 120px;
    height: 120px;
    object-fit: cover;
    border-radius: 18px;
    border: 1px solid rgba(105, 76, 45, 0.12);
    background: white;
}

.table-image-stack .gallery-thumb {
    width: 72px;
    height: 72px;
}

.table-image-stack {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.table-image-more {
    color: #496a90;
    font-weight: 700;
}

.name-block {
    min-width: 200px;
}

.muted-id {
    margin-top: 0.35rem;
    color: #7690ac;
    font-size: 0.8rem;
}

.actions-col {
    white-space: nowrap;
}

.buildings-table th {
    color: #4b6488;
    font-weight: 700;
}

.buildings-table td,
.buildings-table th {
    vertical-align: middle;
}

@media (max-width: 900px) {
    .buildings-toolbar,
    .conditions-toolbar,
    .editor-grid {
        grid-template-columns: 1fr;
    }

    .buildings-hero,
    .editor-head {
        flex-direction: column;
        align-items: flex-start;
    }
}

:root {
    --rm-bg: #171821;
    --rm-bg-soft: #1f202b;
    --rm-card: #23242f;
    --rm-card-deep: #191a23;
    --rm-card-raised: #272934;
    --rm-border: rgba(255, 255, 255, 0.055);
    --rm-border-strong: rgba(169, 231, 222, 0.18);
    --rm-text: #f7f8fd;
    --rm-muted: #8e93a3;
    --rm-muted-2: #b2b8c8;
    --rm-mint: #a9e7de;
    --rm-blue: #23b4ff;
    --rm-gold: #ffb84d;
    --rm-pink: #f0b9e8;
    --rm-danger: #ff6b6b;
    --rm-shadow: 0 22px 58px rgba(0, 0, 0, 0.25);
}

html,
body {
    background: var(--rm-bg) !important;
    color: var(--rm-text) !important;
    font-family: "Aptos Display", "Aptos", "Bahnschrift", "Segoe UI", sans-serif;
    margin-bottom: 0 !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
strong,
.card-title,
.modal-title {
    color: var(--rm-text) !important;
}

p,
span,
small,
label,
td,
th {
    color: inherit;
}

a,
.btn-link {
    color: var(--rm-mint) !important;
}

.content {
    color: var(--rm-text);
}

.content > * {
    animation: rm-rise 260ms ease both;
}

@keyframes rm-rise {
    from {
        opacity: 0;
        transform: translateY(8px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.content :is(
    .buildings-page,
    .clean-logs-page,
    .ai-tasks-page,
    .monitor-page,
    .sleep-page,
    .sleep-rules-page,
    .recognition-page,
    .employees-page,
    .sightings-page,
    .area-page,
    .baseline-page,
    .prompts-page,
    .admin-users-page,
    .users-page,
    .permissions-page,
    .employee-roles-page,
    .role-permissions-page,
    .log-creator-page,
    .log-editor-page,
    .job-page,
    .page-shell,
    .test-page
) {
    min-height: auto !important;
    padding: 0 !important;
    background: transparent !important;
    color: var(--rm-text) !important;
}

.content :is(
    .buildings-hero,
    .buildings-toolbar,
    .editor-card,
    .buildings-table-card,
    .hero-card,
    .filter-shell,
    .status-card,
    .hour-card,
    .message-card,
    .loading-card,
    .panel,
    .library-panel,
    .range-panel,
    .range-card,
    .meta-card,
    .preview-box,
    .run-card,
    .prompt-box,
    .job-shell,
    .job-list,
    .ai-result-layer,
    .prompt-preview,
    .task-preview,
    .task-result-card,
    .monitor-hero,
    .control-card,
    .request-card,
    .section-panel,
    .inactive-panel,
    .inactive-row,
    .sleep-hero,
    .filter-card,
    .stats-row > article,
    .empty-card,
    .event-card,
    .detail-layer,
    .detail-card,
    .rules-hero,
    .rule-card,
    .rule-list,
    .hint-card,
    .mini-rule,
    .modal-panel,
    .confirm-panel,
    .card,
    .table-responsive,
    .list-card,
    .summary-card,
    .stat-card,
    .form-card
) {
    border: 1px solid var(--rm-border) !important;
    border-radius: 18px !important;
    background: var(--rm-card) !important;
    box-shadow: var(--rm-shadow) !important;
    color: var(--rm-text) !important;
    backdrop-filter: none !important;
}

.content :is(
    .users-page,
    .permissions-page,
    .employee-roles-page,
    .log-creator-page,
    .job-page,
    .page-shell
) :is(
    .users-hero,
    .permissions-hero,
    .permission-group,
    .roles-hero,
    .editor-card,
    .empty-card,
    .role-card,
    .user-card,
    .creator-card,
    .image-card,
    .result-box,
    .job-hero,
    .stat-card,
    .meta-card,
    .table-card,
    .response-layer,
    .job-row,
    .item-card,
    .inline-create,
    .guid-row code,
    .permission-row
) {
    border-color: var(--rm-border) !important;
    background: linear-gradient(145deg, var(--rm-card), var(--rm-card-deep)) !important;
    box-shadow: var(--rm-shadow) !important;
    color: var(--rm-text) !important;
}

.content :is(
    .users-page,
    .permissions-page,
    .employee-roles-page,
    .log-creator-page,
    .job-page,
    .page-shell
) :is(
    h1,
    h2,
    h3,
    strong,
    label,
    .item-title,
    .editor-head strong,
    .creator-head strong,
    .job-title strong,
    .response-layer h2,
    .role-card strong,
    .user-card strong,
    .permission-row strong
) {
    color: var(--rm-text) !important;
}

.content :is(
    .users-page,
    .permissions-page,
    .employee-roles-page,
    .log-creator-page,
    .job-page,
    .page-shell
) :is(
    p,
    span,
    .hint,
    .item-meta,
    .editor-head span,
    .creator-subtitle,
    .image-summary,
    .job-title span,
    .job-subtitle span,
    .job-times span,
    .table-header span,
    .response-layer p,
    .empty-card,
    .role-card p
) {
    color: var(--rm-muted-2) !important;
}

.content :is(
    .users-page,
    .permissions-page,
    .employee-roles-page,
    .log-creator-page,
    .job-page,
    .page-shell
) :is(
    .message-card,
    .soft-btn,
    .card-actions button,
    .refresh-btn,
    .close-response-btn,
    .state-chip,
    .employee-count
) {
    border-color: var(--rm-border-strong) !important;
    background: rgba(169, 231, 222, 0.12) !important;
    color: var(--rm-mint) !important;
}

.content :is(
    .users-page,
    .permissions-page,
    .employee-roles-page,
    .log-creator-page,
    .job-page,
    .page-shell
) :is(
    .danger,
    .reset-btn,
    .job-error,
    .response-error pre,
    .card-actions .danger
) {
    border-color: rgba(255, 107, 107, 0.3) !important;
    background: rgba(255, 107, 107, 0.13) !important;
    color: #ffb6b6 !important;
}

.content :is(
    .users-page,
    .permissions-page,
    .employee-roles-page,
    .log-creator-page,
    .job-page,
    .page-shell
) :is(.response-body pre) {
    border-color: var(--rm-border) !important;
    background: var(--rm-card-deep) !important;
    color: var(--rm-text) !important;
}

.content :is(
    .buildings-hero,
    .hero-card,
    .monitor-hero,
    .sleep-hero,
    .rules-hero,
    .ai-result-layer
) {
    background: linear-gradient(145deg, #242631 0%, #1b1c26 100%) !important;
}

.content :is(
    .task-item,
    .section-pill,
    .mini-rule,
    .request-card,
    .event-card,
    .task-result-card,
    .logo-cell,
    .image-placeholder,
    .empty-state,
    .today-note,
    .prompt-preview textarea,
    .ai-result-body pre,
    .ai-result-error pre
) {
    border-color: var(--rm-border) !important;
    background: var(--rm-card-deep) !important;
    color: var(--rm-text) !important;
    box-shadow: none !important;
}

.content :is(
    .task-item.selected,
    .section-pill.active,
    .preset-chip.active,
    .policy-strip.allowed,
    .event-card.legal
) {
    border-color: var(--rm-border-strong) !important;
    background: linear-gradient(145deg, rgba(169, 231, 222, 0.14), rgba(169, 231, 222, 0.04)) !important;
}

.content :is(
    .event-card.violation,
    .mini-rule.blocked,
    .policy-strip.blocked,
    .ai-result-error pre
) {
    border-color: rgba(255, 107, 107, 0.24) !important;
    background: linear-gradient(145deg, rgba(255, 107, 107, 0.12), rgba(255, 107, 107, 0.035)) !important;
}

.content :is(.eyebrow, .topbar-eyebrow) {
    color: var(--rm-muted) !important;
    letter-spacing: 0.15em;
}

.content :is(
    .hero-copy,
    .library-subtitle,
    .task-item-meta,
    .range-header span,
    .preview-title > div span,
    .task-result-meta,
    .task-result-top span:not(.status-pill),
    .empty-hour,
    .file-hint,
    .muted-id,
    .table-image-more,
    .sleep-hero p,
    .rules-hero p,
    .monitor-hero p,
    .event-body span,
    .detail-card span,
    .job-header p,
    .ai-result-header p
) {
    color: var(--rm-muted) !important;
}

.content :is(
    .form-control,
    .form-select,
    .search-box,
    .status-filter,
    .task-select,
    select,
    textarea,
    input[type="text"],
    input[type="number"],
    input[type="date"],
    input[type="time"],
    input[type="datetime-local"],
    input[type="search"],
    input[type="password"],
    input[type="email"]
) {
    min-height: 2.7rem;
    border: 1px solid rgba(255, 255, 255, 0.06) !important;
    border-radius: 13px !important;
    background-color: #1b1c26 !important;
    background-image: none !important;
    color: var(--rm-text) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.025) !important;
}

.content :is(.form-control, .form-select, input, textarea, select)::placeholder {
    color: #777d8f !important;
}

.content :is(.form-control, .form-select, input, textarea, select):focus {
    border-color: rgba(169, 231, 222, 0.55) !important;
    box-shadow: 0 0 0 4px rgba(169, 231, 222, 0.11) !important;
    outline: none !important;
}

.content input[type="checkbox"],
.content input[type="radio"],
.form-check-input {
    accent-color: var(--rm-mint);
}

.content input[type="file"] {
    color: var(--rm-muted-2) !important;
}

.content input[type="file"]::file-selector-button {
    margin-right: 0.8rem;
    border: 0;
    border-radius: 12px;
    padding: 0.55rem 0.85rem;
    background: var(--rm-mint);
    color: #11131b;
    font-weight: 800;
}

.btn,
.content :is(
    button,
    .primary-btn,
    .soft-btn,
    .danger-btn,
    .preset-chip,
    .filter-footer button,
    .toolbar-actions button,
    .detail-actions button,
    .modal-panel header button,
    .confirm-panel button
) {
    border-radius: 13px !important;
    border: 1px solid rgba(255, 255, 255, 0.06) !important;
    background: #1b1c26 !important;
    color: var(--rm-text) !important;
    font-weight: 800 !important;
    box-shadow: none !important;
}

.btn-primary,
.content :is(
    .primary-btn,
    .filter-footer button:first-of-type,
    .primary-action,
    button[type="submit"]
) {
    border-color: transparent !important;
    background: var(--rm-mint) !important;
    color: #11131b !important;
    box-shadow: 0 14px 28px rgba(169, 231, 222, 0.14) !important;
}

.btn-danger,
.content :is(.danger-btn, .btn-outline-danger) {
    border-color: rgba(255, 107, 107, 0.35) !important;
    background: rgba(255, 107, 107, 0.14) !important;
    color: #ffb6b6 !important;
}

.btn-secondary,
.btn-outline-secondary {
    background: #2b2d38 !important;
    color: var(--rm-muted-2) !important;
}

button:disabled,
.btn:disabled {
    opacity: 0.45 !important;
    cursor: not-allowed !important;
}

.table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--rm-text);
    --bs-table-border-color: rgba(255, 255, 255, 0.055);
    color: var(--rm-text) !important;
}

.table th {
    color: var(--rm-muted) !important;
    font-weight: 800 !important;
    border-bottom-color: rgba(255, 255, 255, 0.06) !important;
}

.table td {
    color: var(--rm-text) !important;
    border-color: rgba(255, 255, 255, 0.045) !important;
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
    --bs-table-bg-type: rgba(255, 255, 255, 0.018);
}

.status-pill,
.state-pill,
.badge {
    border-radius: 999px !important;
    border: 1px solid rgba(255, 255, 255, 0.06) !important;
    background: rgba(169, 231, 222, 0.13) !important;
    color: var(--rm-mint) !important;
}

.status-pill.violation,
.badge.bg-danger {
    background: rgba(255, 107, 107, 0.14) !important;
    color: #ffb6b6 !important;
}

.status-pill.legal,
.badge.bg-success {
    background: rgba(169, 231, 222, 0.13) !important;
    color: var(--rm-mint) !important;
}

.alert,
.status-banner,
.message-card {
    border-color: rgba(255, 184, 77, 0.2) !important;
    background: rgba(255, 184, 77, 0.09) !important;
    color: #ffd28a !important;
}

.progress,
.progress-stacked {
    background: #1b1c26 !important;
}

.progress-bar {
    background: linear-gradient(90deg, var(--rm-mint), var(--rm-blue)) !important;
}

pre,
code {
    color: #d8f6f1 !important;
}

hr {
    border-color: rgba(255, 255, 255, 0.06) !important;
}

::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-track {
    background: #171821;
}

::-webkit-scrollbar-thumb {
    background: #3a3c47;
    border-radius: 999px;
}

::-webkit-scrollbar-thumb:hover {
    background: #4a4d5b;
}

/* Final theme layer.
   Keep page-specific views using the same palette so dark/light themes can be swapped later. */
:root,
:root[data-theme="dark"] {
    --rm-page-bg: #121316;
    --rm-page-gradient: radial-gradient(circle at 16% 10%, rgba(45, 212, 191, 0.1), transparent 25%), radial-gradient(circle at 86% 8%, rgba(56, 189, 248, 0.1), transparent 22%), linear-gradient(135deg, #121316 0%, #1a1b20 46%, #23242a 100%);
    --rm-surface: #202126;
    --rm-surface-2: #191a1f;
    --rm-surface-3: #141519;
    --rm-surface-hover: #2a2b31;
    --rm-input: #17181d;
    --rm-input-border: rgba(45, 212, 191, 0.16);
    --rm-line: rgba(148, 163, 184, 0.16);
    --rm-line-strong: rgba(45, 212, 191, 0.35);
    --rm-copy: #f8fafc;
    --rm-copy-soft: #d6deeb;
    --rm-copy-muted: #93a4ba;
    --rm-accent: #2dd4bf;
    --rm-accent-2: #38bdf8;
    --rm-accent-on: #111827;
    --rm-success: #34d399;
    --rm-success-soft: rgba(52, 211, 153, 0.13);
    --rm-danger: #fb7185;
    --rm-danger-soft: rgba(251, 113, 133, 0.15);
    --rm-warning: #fbbf24;
    --rm-warning-soft: rgba(251, 191, 36, 0.16);
}

:root[data-theme="light"] {
    --rm-page-bg: #eef3f9;
    --rm-surface: #ffffff;
    --rm-surface-2: #f7faff;
    --rm-surface-3: #edf3fb;
    --rm-surface-hover: #eef6ff;
    --rm-input: #ffffff;
    --rm-input-border: rgba(82, 111, 148, 0.22);
    --rm-line: rgba(82, 111, 148, 0.18);
    --rm-line-strong: rgba(15, 118, 110, 0.24);
    --rm-copy: #14263d;
    --rm-copy-soft: #405674;
    --rm-copy-muted: #657890;
    --rm-accent: #0f766e;
    --rm-accent-2: #0369a1;
    --rm-accent-on: #ffffff;
    --rm-success: #0f9f58;
    --rm-success-soft: rgba(15, 159, 88, 0.11);
    --rm-danger-soft: rgba(220, 38, 38, 0.1);
    --rm-warning-soft: rgba(217, 119, 6, 0.11);
}

.rm-glass-panel,
:root:not([data-theme="light"]) .content :is(
    .page-card,
    .glass-card,
    .toolbar-card,
    .filter-panel,
    .filter-card,
    .filter-shell,
    .panel,
    .panel-card,
    .form-card,
    .form-panel,
    .editor-panel,
    .editor-card,
    .result-panel,
    .result-card,
    .mapping-card,
    .summary-card,
    .stat-card,
    .status-card,
    .request-card,
    .control-card,
    .section-panel,
    .rules-hero,
    .rule-card,
    .list-card,
    .table-card,
    .table-wrap,
    .buildings-table-card,
    .buildings-hero,
    .hero-card,
    .hour-card,
    .message-card,
    .loading-card,
    .monitor-hero,
    .sleep-hero,
    .modal-panel,
    .confirm-panel
) {
    background:
        linear-gradient(145deg, color-mix(in srgb, var(--rm-surface) 72%, transparent), color-mix(in srgb, var(--rm-surface-3) 58%, transparent)),
        radial-gradient(circle at 12% 8%, color-mix(in srgb, var(--rm-accent) 18%, transparent), transparent 34%),
        radial-gradient(circle at 92% 0%, color-mix(in srgb, var(--rm-accent-2) 12%, transparent), transparent 30%) !important;
    border-color: color-mix(in srgb, var(--rm-line-strong) 55%, transparent) !important;
    box-shadow: 0 22px 58px rgba(0, 0, 0, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
    backdrop-filter: blur(22px) saturate(1.18);
    -webkit-backdrop-filter: blur(22px) saturate(1.18);
}

:root[data-theme="light"] .content :is(
    .buildings-page,
    .clean-logs-page,
    .ai-tasks-page,
    .monitor-page,
    .sleep-page,
    .sleep-rules-page,
    .recognition-page,
    .employees-page,
    .sightings-page,
    .area-page,
    .baseline-page,
    .prompts-page,
    .admin-users-page,
    .users-page,
    .permissions-page,
    .employee-roles-page,
    .role-permissions-page,
    .log-creator-page,
    .log-editor-page,
    .job-page,
    .page-shell,
    .test-page
) {
    background: transparent !important;
    color: var(--rm-copy) !important;
}

:root[data-theme="light"] .content :is(
    .page-card,
    .glass-card,
    .toolbar,
    .toolbar-card,
    .filter-panel,
    .result-card,
    .saved-card,
    .history-card,
    .details-card,
    .settings-card,
    .actions-card,
    .wrapper-card,
    .image-card,
    .upload-panel,
    .form-panel,
    .table-card,
    .table-wrap,
    .card-body,
    .card-header,
    .card-footer,
    .modal-content,
    .dropdown-menu,
    .list-group-item,
    .card,
    .panel,
    .library-panel,
    .range-panel,
    .range-card,
    .meta-card,
    .preview-box,
    .run-card,
    .prompt-box,
    .job-shell,
    .job-list,
    .ai-result-layer,
    .prompt-preview,
    .task-preview,
    .task-result-card,
    .monitor-hero,
    .control-card,
    .request-card,
    .section-panel,
    .inactive-panel,
    .inactive-row,
    .sleep-hero,
    .filter-card,
    .stats-row > article,
    .empty-card,
    .event-card,
    .detail-layer,
    .detail-card,
    .rules-hero,
    .rule-card,
    .rule-list,
    .hint-card,
    .mini-rule,
    .modal-panel,
    .confirm-panel,
    .list-card,
    .summary-card,
    .stat-card,
    .form-card
) {
    border-color: var(--rm-line) !important;
    background: var(--rm-surface) !important;
    color: var(--rm-copy) !important;
    box-shadow: var(--rm-shadow-soft) !important;
}

.content :is(
    .modal-panel,
    .confirm-panel,
    .detail-grid div,
    .detail-grid label,
    .id-loader,
    .empty-hour,
    .section-group-head,
    .prompt-body,
    .inline-create,
    .rail-card,
    .filter-card,
    .prompt-card,
    .panel,
    .library-panel,
    .range-panel,
    .range-card,
    .meta-card,
    .preview-box,
    .run-card,
    .prompt-box,
    .section-picker,
    .job-shell,
    .job-list,
    .job-card,
    .run-history-card,
    .task-result-card,
    .today-note,
    .prompt-preview,
    .task-preview,
    .empty-list
) {
    border-color: var(--rm-line) !important;
    background: var(--rm-surface) !important;
    color: var(--rm-copy) !important;
}

.content :is(
    .filter-shell,
    .status-card,
    .hour-card,
    .message-card,
    .loading-card,
    .hero-card,
    .editor-card,
    .buildings-table-card,
    .buildings-hero
) {
    border-color: var(--rm-line) !important;
    background: linear-gradient(145deg, var(--rm-surface), var(--rm-surface-2)) !important;
    color: var(--rm-copy) !important;
}

.content :is(
    .form-control,
    .form-select,
    .task-select,
    .range-card .form-select,
    .prompt-preview textarea,
    .rich-editor,
    .rail-search,
    .section-search,
    .id-loader input,
    select,
    textarea,
    input[type="text"],
    input[type="number"],
    input[type="date"],
    input[type="time"],
    input[type="datetime-local"],
    input[type="search"],
    input[type="password"],
    input[type="email"]
) {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    border-color: var(--rm-input-border) !important;
    background-color: var(--rm-input) !important;
    color: var(--rm-copy) !important;
}

.content :is(
    .hero-card p,
    .status-card span,
    .empty-hour,
    .loading-card span,
    .filter-summary,
    .rail-summary,
    .editor-subtitle,
    .section-group-subtitle,
    .prompt-summary span,
    .section-summary,
    .section-chip-text small,
    .task-item-meta,
    .task-item-body,
    .card-grid,
    .card-top span:not(.status-pill),
    .run-history-title span,
    .history-empty,
    .run-history-card span,
    .task-result-meta,
    .task-result-top span:not(.status-pill),
    .today-note span,
    .preview-title > div span,
    .ai-result-header p,
    .job-header p
) {
    color: var(--rm-copy-muted) !important;
}

.content :is(
    .hero-card h1,
    .modal-panel h2,
    .confirm-panel h2,
    .filter-head strong,
    .rail-title strong,
    .editor-head strong,
    .selector-block label,
    .editor-block label,
    .section-group-head strong,
    .prompt-summary strong,
    .section-picker-head strong,
    .task-item-head strong,
    .card-top strong,
    .run-history-title strong,
    .task-result-top strong,
    .ai-result-header h2,
    .job-header h2,
    .ai-result-body strong,
    .ai-result-error strong
) {
    color: var(--rm-copy) !important;
}

.content :is(.rail-title, .filter-head, .editor-head, .prompt-body, .run-history, .hour-card header) {
    border-color: var(--rm-line) !important;
}

.content .clean-logs-page .filter-shell {
    overflow: hidden !important;
}

.content .clean-logs-page .filter-row,
.content .clean-logs-page .section-toolbar {
    grid-template-columns: repeat(auto-fit, minmax(175px, 1fr)) !important;
}

.content .clean-logs-page .section-toolbar {
    align-items: end !important;
}

.content .clean-logs-page :is(.filter-row label, .section-toolbar label, .check-line) {
    min-width: 0 !important;
    color: var(--rm-copy-soft) !important;
}

.content .clean-logs-page :is(.section-list, .log-chip-grid, .detail-grid, .image-grid) {
    min-width: 0 !important;
}

.content .clean-logs-page .modal-panel {
    box-sizing: border-box !important;
    width: min(96vw, 1300px) !important;
    max-width: 96vw !important;
    background: var(--rm-surface) !important;
}

.content .clean-logs-page .modal-panel * {
    box-sizing: border-box;
}

.content .clean-logs-page .detail-grid {
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)) !important;
}

.content .clean-logs-page .detail-grid :is(div, label) {
    min-width: 0 !important;
    overflow: hidden !important;
    background: var(--rm-surface-2) !important;
}

.content .clean-logs-page .text-block pre,
.content .clean-logs-page .text-block textarea {
    border-color: var(--rm-line) !important;
    background: var(--rm-surface-3) !important;
    color: var(--rm-copy) !important;
}

.content .clean-logs-page .image-grid button,
.content .clean-logs-page .image-grid img,
.content .clean-logs-page .image-lightbox img {
    background: var(--rm-surface-3) !important;
}

.content .clean-logs-page .image-grid img,
.content .clean-logs-page .image-lightbox img {
    border-color: var(--rm-line) !important;
}

.content .clean-logs-page .hour-card header span:last-child {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.1rem;
    border: 1px solid var(--rm-line-strong);
    border-radius: 999px;
    padding: 0.22rem 0.55rem;
    background: rgba(169, 231, 222, 0.12);
    color: var(--rm-accent) !important;
    font-weight: 900;
}

.content .clean-logs-page .log-chip {
    position: relative;
    overflow: hidden;
    border-color: var(--rm-line) !important;
    background: var(--rm-surface-3) !important;
}

.content .clean-logs-page .log-chip strong {
    color: var(--rm-copy) !important;
}

.content .clean-logs-page .log-chip span {
    color: var(--rm-copy-muted) !important;
}

.content .clean-logs-page .log-chip::after {
    content: "";
    position: absolute;
    top: 0.4rem;
    right: 0.45rem;
    width: 0.52rem;
    height: 0.52rem;
    border-radius: 999px;
    background: var(--rm-copy-muted);
}

.content .clean-logs-page .log-chip.state-on {
    border-color: rgba(80, 224, 138, 0.75) !important;
    background: linear-gradient(145deg, rgba(80, 224, 138, 0.14), var(--rm-surface-3)) !important;
}

.content .clean-logs-page .log-chip.state-off {
    border-color: rgba(255, 107, 107, 0.75) !important;
    background: linear-gradient(145deg, rgba(255, 107, 107, 0.14), var(--rm-surface-3)) !important;
}

.content .clean-logs-page .log-chip.state-on::after {
    background: var(--rm-success);
    box-shadow: 0 0 0 4px rgba(80, 224, 138, 0.16);
}

.content .clean-logs-page .log-chip.state-off::after {
    background: var(--rm-danger);
    box-shadow: 0 0 0 4px rgba(255, 107, 107, 0.16);
}

.content .prompts-page .section-group-head {
    border-left-color: var(--rm-accent) !important;
    background: linear-gradient(145deg, rgba(169, 231, 222, 0.14), var(--rm-surface-2)) !important;
    box-shadow: none !important;
}

.content .prompts-page .rail-chip,
.content .ai-tasks-page .preset-chip,
.content .ai-tasks-page .section-chip,
.content .clean-logs-page .section-pill {
    border-color: var(--rm-line) !important;
    background: var(--rm-surface-3) !important;
    color: var(--rm-copy-soft) !important;
}

.content .prompts-page .rail-chip.active,
.content .ai-tasks-page .preset-chip.active,
.content .ai-tasks-page .section-chip.active,
.content .clean-logs-page .section-pill.active {
    border-color: var(--rm-line-strong) !important;
    background: var(--rm-accent) !important;
    color: var(--rm-accent-on) !important;
}

.content .prompts-page .prompt-card summary:hover,
.content .ai-tasks-page .task-item:hover {
    background: var(--rm-surface-hover) !important;
}

.content .prompts-page .prompt-preview {
    color: var(--rm-copy-soft) !important;
}

.content .ai-tasks-page .section-picker-list,
.content .ai-tasks-page .task-browser {
    scrollbar-color: var(--rm-copy-muted) var(--rm-surface-3);
}

.content .ai-tasks-page .section-chip input,
.content .clean-logs-page .section-pill input {
    flex: 0 0 auto;
}

.content :is(.state-on, .status-pill.done, .status-pill.legal) {
    background: var(--rm-success-soft) !important;
    color: var(--rm-success) !important;
}

.content :is(.state-off, .status-pill.failed, .status-pill.off, .error-line) {
    background: var(--rm-danger-soft) !important;
    color: #ffb6b6 !important;
}

.content :is(.state-warn, .status-pill.working) {
    background: var(--rm-warning-soft) !important;
    color: #ffd28a !important;
}

/* Recognition pages still have several older light cards in scoped CSS.
   These overrides keep the whole recognition area on the same dashboard palette. */
.content :is(
    .monitor-page,
    .recognition-page,
    .sleep-page,
    .sleep-rules-page
) :is(
    .monitor-hero,
    .recognition-hero,
    .sleep-hero,
    .rules-hero,
    .control-card,
    .editor-card,
    .upload-card,
    .filter-card,
    .presence-board,
    .presence-card,
    .monitor-state-card,
    .bulk-review-card,
    .unknown-pager,
    .stats-grid > article,
    .stats-row > article,
    .stats-row > div,
    .request-card,
    .camera-card,
    .employee-card,
    .unknown-review,
    .unknown-card,
    .group-card,
    .event-card,
    .detail-layer,
    .detail-card,
    .rule-card,
    .rule-list,
    .hint-card,
    .mini-rule,
    .policy-strip,
    .empty-card,
    .message-card
) {
    border-color: var(--rm-line) !important;
    background: linear-gradient(145deg, var(--rm-surface), var(--rm-surface-2)) !important;
    box-shadow: var(--rm-shadow) !important;
    color: var(--rm-copy) !important;
}

.content :is(
    .monitor-page,
    .recognition-page,
    .sleep-page,
    .sleep-rules-page
) :is(.eyebrow) {
    color: var(--rm-accent) !important;
    opacity: 0.95;
    text-shadow: 0 0 18px rgba(169, 231, 222, 0.12);
}

.content :is(
    .monitor-page,
    .recognition-page,
    .sleep-page,
    .sleep-rules-page
) :is(
    label,
    .job-form label > span,
    .filter-card label,
    .form-grid label,
    .editor-grid label
) {
    color: var(--rm-copy-soft) !important;
}

.content :is(
    .monitor-page,
    .recognition-page,
    .sleep-page,
    .sleep-rules-page
) :is(
    h1,
    h2,
    strong,
    .section-title strong,
    .stats-grid strong,
    .stats-row strong,
    .request-card strong,
    .camera-card strong,
    .employee-card strong,
    .review-head strong,
    .unknown-body strong,
    .group-card header strong,
    .event-body strong,
    .detail-card strong,
    .policy-strip strong,
    .mini-rule strong,
    .hint-card strong,
    .presence-head strong,
    .presence-section-title strong,
    .presence-card strong,
    .monitor-state-card strong,
    .summary-chip strong
) {
    color: var(--rm-copy) !important;
}

.content :is(
    .monitor-page,
    .recognition-page,
    .sleep-page,
    .sleep-rules-page
) :is(
    p,
    span,
    .empty-card,
    .section-title span,
    .request-card p,
    .request-card span,
    .camera-card p,
    .camera-meta,
    .employee-card p,
    .upload-card span,
    .review-head span,
    .unknown-body span,
    .group-card span,
    .stats-grid span,
    .stats-row span,
    .event-body span,
    .detail-card span,
    .detail-card p,
    .policy-strip span,
    .mini-rule span,
    .hint-card p,
    .presence-head p,
    .presence-section-title span,
    .presence-card span,
    .presence-card small,
    .monitor-state-card span,
    .presence-clock span,
    .summary-chip span
) {
    color: var(--rm-copy-muted) !important;
}

.content :is(
    .monitor-page,
    .recognition-page,
    .sleep-page,
    .sleep-rules-page
) :is(
    .soft-btn,
    .card-actions button,
    .unknown-actions button,
    .pager-actions button
) {
    border-color: var(--rm-line) !important;
    background: var(--rm-surface-3) !important;
    color: var(--rm-copy-soft) !important;
}

.content :is(
    .monitor-page,
    .recognition-page,
    .sleep-page,
    .sleep-rules-page
) :is(.primary-btn) {
    border-color: transparent !important;
    background: var(--rm-accent) !important;
    color: var(--rm-accent-on) !important;
}

.content :is(
    .monitor-page,
    .recognition-page,
    .sleep-page,
    .sleep-rules-page
) :is(.danger-btn, .danger, .card-actions .danger, .unknown-actions .danger, .policy-strip.blocked, .mini-rule.blocked, .event-card.violation, .error-line) {
    border-color: rgba(255, 107, 107, 0.3) !important;
    background: var(--rm-danger-soft) !important;
    color: #ffcdcd !important;
}

.content :is(
    .monitor-page,
    .recognition-page,
    .sleep-page,
    .sleep-rules-page
) :is(.request-card.active, .event-card.legal, .policy-strip.allowed, .mini-rule:not(.blocked)) {
    border-left-color: var(--rm-success) !important;
}

.content :is(.monitor-page, .sleep-page) :is(.stats-grid > article, .stats-row > article, .stats-row > div) {
    background: linear-gradient(145deg, var(--rm-surface-2), var(--rm-surface-3)) !important;
}

.content :is(.monitor-page, .recognition-page, .sleep-page, .sleep-rules-page) :is(.state-pill, .status-pill, .total-badge, .person-pill, .sample-count) {
    border: 1px solid var(--rm-line) !important;
    background: rgba(169, 231, 222, 0.12) !important;
    color: var(--rm-accent) !important;
}

.content :is(.monitor-page, .sleep-page) :is(.status-pill.violation, .state-pill.off) {
    background: var(--rm-danger-soft) !important;
    color: #ffb6b6 !important;
}

.content :is(.monitor-page, .sleep-page) :is(.status-pill.legal, .request-card.active .state-pill) {
    background: var(--rm-success-soft) !important;
    color: var(--rm-success) !important;
}

.content .recognition-page :is(.person-pill strong, .unknown-card input, .unknown-card select, .face-placeholder, .image-placeholder) {
    border-color: var(--rm-line) !important;
    background: var(--rm-surface-3) !important;
    color: var(--rm-copy-soft) !important;
}

.content .recognition-page :is(
    .presence-clock,
    .presence-avatar,
    .monitor-state-card b,
    .count-pill,
    .history-date,
    .bulk-review-card input:not([type="checkbox"]),
    .bulk-review-card select,
    .bulk-actions > span,
    .bulk-actions .ghost,
    .unknown-select
) {
    border-color: var(--rm-line) !important;
    background: var(--rm-surface-3) !important;
    color: var(--rm-copy-soft) !important;
}

.content .recognition-page :is(.summary-chip.present, .presence-card.present b, .monitor-state-card.active b) {
    border-color: rgba(32, 196, 122, 0.28) !important;
    background: var(--rm-success-soft) !important;
    color: var(--rm-success) !important;
}

.content .recognition-page :is(.summary-chip.unknown, .presence-card.unknown b) {
    border-color: rgba(242, 163, 27, 0.28) !important;
    background: rgba(242, 163, 27, 0.12) !important;
    color: #ffd28a !important;
}

.content .recognition-page :is(.summary-chip.away, .presence-card.away b) {
    border-color: rgba(255, 107, 107, 0.26) !important;
    background: var(--rm-danger-soft) !important;
    color: #ffb6b6 !important;
}

.content :is(.recognition-page, .sleep-page) :is(img, .sample-strip img, .mini-sighting img, .event-image img, .image-grid img) {
    border-color: var(--rm-line) !important;
    background: var(--rm-surface-3) !important;
}

/* Last-pass contrast guard.
   This catches old scoped Bootstrap/light styles that still leak white cards or pale buttons. */
.login-shell,
.login-page {
    background: transparent !important;
    color: var(--rm-copy) !important;
}

.login-page :is(.login-card) {
    border-color: var(--rm-line) !important;
    background: linear-gradient(145deg, var(--rm-surface), var(--rm-surface-2)) !important;
    color: var(--rm-copy) !important;
    box-shadow: var(--rm-shadow) !important;
}

.login-page :is(h1, label, label span) {
    color: var(--rm-copy) !important;
}

.login-page :is(p) {
    color: var(--rm-copy-soft) !important;
}

.login-page :is(.form-control, input) {
    border-color: var(--rm-input-border) !important;
    background: var(--rm-input) !important;
    color: var(--rm-copy) !important;
    caret-color: var(--rm-copy) !important;
}

.login-page :is(.form-control, input):focus {
    border-color: var(--rm-line-strong) !important;
    background: var(--rm-input) !important;
    box-shadow: 0 0 0 0.18rem color-mix(in srgb, var(--rm-line-strong) 36%, transparent) !important;
    color: var(--rm-copy) !important;
    outline: none !important;
}

.login-page :is(.form-control, input)::placeholder {
    color: var(--rm-copy-muted) !important;
}

.login-page :is(.primary-btn, button) {
    border-color: transparent !important;
    background: var(--rm-accent) !important;
    color: var(--rm-accent-on) !important;
}

.login-page .error-box {
    border: 1px solid color-mix(in srgb, var(--rm-danger) 28%, transparent) !important;
    background: var(--rm-danger-soft) !important;
    color: var(--rm-copy) !important;
}

.content :is(
    .page-card,
    .glass-card,
    .toolbar,
    .toolbar-card,
    .filter-panel,
    .result-card,
    .saved-card,
    .history-card,
    .details-card,
    .settings-card,
    .actions-card,
    .wrapper-card,
    .image-card,
    .upload-panel,
    .form-panel,
    .table-card,
    .table-wrap,
    .card-body,
    .card-header,
    .card-footer,
    .modal-content,
    .dropdown-menu,
    .list-group-item
) {
    border-color: var(--rm-line) !important;
    background: var(--rm-surface) !important;
    color: var(--rm-copy) !important;
}

.content :is(
    .btn-outline-primary,
    .btn-outline-success,
    .btn-outline-info,
    .btn-outline-warning,
    .btn-outline-light,
    .btn-light,
    .btn-success,
    .btn-info,
    .btn-warning
) {
    border-color: var(--rm-line) !important;
    background: var(--rm-surface-3) !important;
    color: var(--rm-copy-soft) !important;
}

.content :is(.btn-success, .btn-outline-success) {
    border-color: rgba(80, 224, 138, 0.3) !important;
    color: var(--rm-success) !important;
}

.content :is(.btn-info, .btn-outline-info) {
    border-color: rgba(35, 180, 255, 0.28) !important;
    color: #8fdaff !important;
}

.content :is(.btn-warning, .btn-outline-warning) {
    border-color: rgba(255, 184, 77, 0.28) !important;
    color: #ffd28a !important;
}

.content :is(.bg-white, .text-bg-light, .alert-light) {
    background: var(--rm-surface) !important;
    color: var(--rm-copy) !important;
}

.content :is(.text-white) {
    color: var(--rm-copy) !important;
}

.confirm-overlay .confirm-panel,
.content .confirm-overlay .confirm-panel {
    border-color: var(--rm-line) !important;
    background: linear-gradient(145deg, var(--rm-surface), var(--rm-surface-2)) !important;
    color: var(--rm-copy) !important;
}

.confirm-overlay :is(.confirm-header, .confirm-footer),
.content .confirm-overlay :is(.confirm-header, .confirm-footer) {
    border-color: var(--rm-line) !important;
}

.confirm-overlay :is(.confirm-kicker),
.content .confirm-overlay :is(.confirm-kicker) {
    color: var(--rm-accent) !important;
}

.confirm-overlay :is(h1, h2, h3, strong, p, .confirm-body),
.content .confirm-overlay :is(h1, h2, h3, strong, p, .confirm-body) {
    color: var(--rm-copy) !important;
}

.confirm-overlay .confirm-body p,
.content .confirm-overlay .confirm-body p {
    color: #ffffff !important;
    font-weight: 850 !important;
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
}

.confirm-overlay .confirm-body small,
.content .confirm-overlay .confirm-body small {
    display: block;
    margin-top: 0.45rem;
    color: var(--rm-copy-muted) !important;
    line-height: 1.45;
}

.confirm-overlay,
.content .confirm-overlay,
.modal-backdrop,
.content .modal-backdrop,
.delete-layer,
.content .delete-layer,
.daily-section-modal-backdrop,
.content .daily-section-modal-backdrop {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    padding: clamp(1rem, 4vh, 2rem) !important;
    box-sizing: border-box !important;
}

.confirm-overlay,
.content .confirm-overlay,
.delete-layer,
.content .delete-layer {
    display: flex !important;
    z-index: 2147483000 !important;
}

.confirm-overlay .confirm-panel,
.content .confirm-overlay .confirm-panel,
.modal-backdrop .confirm-panel,
.content .modal-backdrop .confirm-panel,
.delete-layer .delete-panel,
.content .delete-layer .delete-panel {
    width: min(92vw, 480px) !important;
    max-height: min(82vh, 640px) !important;
    overflow: auto !important;
    margin: auto !important;
}

html.mh-overlay-open,
body.mh-overlay-open {
    overflow: hidden !important;
}

:root[data-theme="light"] .content :is(
    .buildings-hero,
    .buildings-toolbar,
    .editor-card,
    .buildings-table-card,
    .hero-card,
    .filter-shell,
    .status-card,
    .hour-card,
    .message-card,
    .loading-card,
    .panel,
    .library-panel,
    .range-panel,
    .range-card,
    .meta-card,
    .preview-box,
    .run-card,
    .prompt-box,
    .job-shell,
    .job-list,
    .ai-result-layer,
    .prompt-preview,
    .task-preview,
    .task-result-card,
    .monitor-hero,
    .control-card,
    .request-card,
    .section-panel,
    .inactive-panel,
    .inactive-row,
    .sleep-hero,
    .filter-card,
    .stats-row > article,
    .empty-card,
    .event-card,
    .detail-layer,
    .detail-card,
    .rules-hero,
    .rule-card,
    .rule-list,
    .hint-card,
    .mini-rule,
    .modal-panel,
    .confirm-panel,
    .card,
    .table-responsive,
    .list-card,
    .summary-card,
    .stat-card,
    .form-card,
    .page-card,
    .glass-card,
    .toolbar,
    .toolbar-card,
    .filter-panel,
    .result-card,
    .saved-card,
    .history-card,
    .details-card,
    .settings-card,
    .actions-card,
    .wrapper-card,
    .image-card,
    .upload-panel,
    .form-panel,
    .table-card,
    .table-wrap,
    .card-body,
    .card-header,
    .card-footer,
    .modal-content,
    .dropdown-menu,
    .list-group-item
) {
    background: var(--rm-surface) !important;
    background-image: none !important;
    box-shadow: var(--rm-shadow-soft) !important;
}

/* Late theme parity sweep.
   This intentionally overrides older page CSS that still hardcodes dark or white surfaces. */
.content :is(
    .home-hero,
    .metric-card,
    .chart-card,
    .login-card,
    .roles-hero,
    .editor-card,
    .empty-card,
    .message-card,
    .role-card,
    .baseline-hero,
    .results-card,
    .baseline-card,
    .result-row,
    .panel,
    .library-panel,
    .week-day-card,
    .daily-strip,
    .task-item,
    .task-card,
    .hero-card,
    .filter-card,
    .presence-board,
    .stats-row > div,
    .unknown-review,
    .unknown-card,
    .group-card,
    .job-shell,
    .job-list,
    .ai-result-layer,
    .users-hero,
    .permissions-hero,
    .permission-group,
    .permission-row,
    .admin-users-page .editor-card,
    .admin-users-page .empty-card,
    .ai-tasks-page .panel,
    .ai-tasks-page .library-panel,
    .ai-tasks-page .week-day-card,
    .ai-tasks-page .daily-strip,
    .ai-tasks-page .task-item,
    .logs-page .panel,
    .logs-page .toolbar,
    .logs-page .choice-picker,
    .clean-logs-page .hero-card,
    .clean-logs-page .filter-shell,
    .clean-logs-page .status-card,
    .clean-logs-page .hour-card,
    .clean-logs-page .loading-card,
    .recognition-page .recognition-hero,
    .recognition-page .filter-card,
    .recognition-page .presence-board,
    .recognition-page .stats-row > div,
    .recognition-page .empty-card,
    .recognition-page .unknown-review,
    .recognition-page .unknown-card,
    .recognition-page .group-card,
    .facility-report-page .hero-panel,
    .facility-report-page .panel-card,
    .facility-report-page .list-panel,
    .task-report-page .panel,
    .task-report-page .prompt-box,
    .task-report-page .summary-box,
    .task-report-page .task-card,
    .task-report-page .report-select,
    .availability-column,
    .availability-choice,
    .availability-item,
    .panel-card,
    .list-panel,
    .page-card,
    .glass-card,
    .toolbar,
    .toolbar-card,
    .filter-panel,
    .result-card,
    .saved-card,
    .history-card,
    .details-card,
    .settings-card,
    .actions-card,
    .wrapper-card,
    .image-card,
    .upload-panel,
    .form-panel,
    .table-card,
    .table-wrap,
    .card-body,
    .card-header,
    .card-footer,
    .modal-content,
    .dropdown-menu,
    .list-group-item,
    .section-panel,
    .rule-card,
    .detail-card,
    .summary-card,
    .stat-card,
    .form-card,
    .control-card,
    .request-card,
    .event-card,
    .task-result-card,
    .logo-cell,
    .image-placeholder,
    .empty-state,
    .today-note,
    .prompt-preview textarea,
    .ai-result-body pre,
    .ai-result-error pre
) {
    border-color: var(--rm-line) !important;
    background: linear-gradient(180deg, var(--rm-surface), var(--rm-surface-2)) !important;
    background-image: none !important;
    color: var(--rm-copy) !important;
    box-shadow: var(--rm-shadow-soft) !important;
}

.content :is(
    button,
    .btn,
    .primary-btn,
    .soft-btn,
    .danger-btn,
    .preset-chip,
    .filter-footer button,
    .toolbar-actions button,
    .detail-actions button,
    .modal-panel header button,
    .confirm-panel button,
    .action-row .btn,
    .availability-actions .btn,
    .panel-head .btn,
    .record-actions .btn,
    .tab-button
) {
    border-color: var(--rm-line) !important;
    background: var(--rm-surface-2) !important;
    color: var(--rm-copy) !important;
}

.content :is(.btn-primary, .primary-btn, .filter-footer button:first-of-type, .primary-action, button[type="submit"]) {
    border-color: transparent !important;
    background: linear-gradient(135deg, var(--rm-accent), var(--rm-accent-2)) !important;
    color: var(--rm-accent-on) !important;
    box-shadow: 0 12px 24px color-mix(in srgb, var(--rm-accent) 28%, transparent) !important;
}

.content :is(.btn-secondary, .btn-outline-secondary) {
    background: var(--rm-surface-3) !important;
    color: var(--rm-copy-soft) !important;
}

.content :is(.btn-danger, .danger-btn, .btn-outline-danger) {
    border-color: color-mix(in srgb, var(--rm-danger) 35%, transparent) !important;
    background: var(--rm-danger-soft) !important;
    color: var(--rm-danger) !important;
}

.content :is(.form-control, .form-select, input, textarea, select, .task-select) {
    border-color: var(--rm-input-border) !important;
    background-color: var(--rm-input) !important;
    background-image: none !important;
    color: var(--rm-copy) !important;
}

.content :is(.form-control, .form-select, input, textarea, select, .task-select)::placeholder {
    color: var(--rm-copy-muted) !important;
}

.content :is(.form-control, .form-select, input, textarea, select, .task-select):focus {
    border-color: var(--rm-accent) !important;
    box-shadow: 0 0 0 0.18rem color-mix(in srgb, var(--rm-accent) 18%, transparent) !important;
    color: var(--rm-copy) !important;
}

.content input[type="checkbox"],
.content input[type="radio"],
.form-check-input {
    accent-color: var(--rm-accent) !important;
}

.content input[type="file"] {
    color: var(--rm-copy-muted) !important;
}

.content input[type="file"]::file-selector-button {
    margin-right: 0.8rem;
    border: 0;
    border-radius: 12px;
    padding: 0.55rem 0.85rem;
    background: var(--rm-accent) !important;
    color: var(--rm-accent-on) !important;
    font-weight: 800;
}

.content :is(.status-pill, .state-pill, .badge) {
    border-color: var(--rm-line) !important;
    background: color-mix(in srgb, var(--rm-accent) 13%, transparent) !important;
    color: var(--rm-accent) !important;
}

.content :is(.status-pill.violation, .badge.bg-danger) {
    background: var(--rm-danger-soft) !important;
    color: var(--rm-danger) !important;
}

.content :is(.status-pill.legal, .badge.bg-success) {
    background: var(--rm-success-soft) !important;
    color: var(--rm-success) !important;
}

.content :is(.alert, .status-banner, .message-card) {
    border-color: color-mix(in srgb, var(--rm-warning) 22%, transparent) !important;
    background: var(--rm-warning-soft) !important;
    color: var(--rm-warning) !important;
}

.content :is(.progress, .progress-stacked) {
    background: var(--rm-surface-2) !important;
}

.content :is(.progress-bar) {
    background: linear-gradient(90deg, var(--rm-accent), var(--rm-accent-2)) !important;
}

.content ::-webkit-scrollbar-track {
    background: var(--rm-surface-2);
}

.content ::-webkit-scrollbar-thumb {
    background: var(--rm-line);
}

.content ::-webkit-scrollbar-thumb:hover {
    background: var(--rm-copy-muted);
}

:root[data-theme="light"] .content :is(
    .buildings-page,
    .clean-logs-page,
    .ai-tasks-page,
    .monitor-page,
    .sleep-page,
    .sleep-rules-page,
    .recognition-page,
    .employees-page,
    .sightings-page,
    .area-page,
    .baseline-page,
    .prompts-page,
    .admin-users-page,
    .users-page,
    .permissions-page,
    .employee-roles-page,
    .role-permissions-page,
    .log-creator-page,
    .log-editor-page,
    .job-page,
    .page-shell,
    .test-page
) {
    background: transparent !important;
}

:root[data-theme="light"] .content :is(
    .buildings-hero,
    .hero-card,
    .monitor-hero,
    .sleep-hero,
    .rules-hero,
    .ai-result-layer
) {
    background: linear-gradient(180deg, #ffffff 0%, #f6f9ff 100%) !important;
}

:root[data-theme="light"] .content :is(
    .task-item,
    .section-pill,
    .mini-rule,
    .request-card,
    .event-card,
    .task-result-card,
    .logo-cell,
    .image-placeholder,
    .empty-state,
    .today-note,
    .prompt-preview textarea,
    .ai-result-body pre,
    .ai-result-error pre
) {
    background: var(--rm-surface-2) !important;
    color: var(--rm-copy) !important;
}

.reservation-page {
    display: grid;
    gap: 1.25rem;
}

.reservation-minimal-page .reservation-hero,
.reservation-minimal-page .system-admin-help,
.reservation-minimal-page .calendar-layout {
    display: none !important;
}

.reservation-hero,
.reservation-page .panel-card {
    border: 1px solid var(--rm-line);
    background: linear-gradient(180deg, var(--rm-card), var(--rm-card-deep));
    color: var(--rm-copy);
    border-radius: 1.35rem;
    box-shadow: var(--rm-shadow, 0 18px 48px rgba(0, 0, 0, 0.18));
}

.reservation-hero {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: stretch;
    padding: 1.35rem;
}

.reservation-hero h1,
.reservation-page h2,
.reservation-page h3 {
    margin: 0;
}

.reservation-hero p,
.reservation-page p {
    color: var(--rm-copy-muted);
}

.reservation-page .eyebrow {
    color: var(--rm-accent);
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.reservation-page .hero-chip {
    min-width: 13rem;
    display: grid;
    align-content: center;
    gap: 0.35rem;
    padding: 1rem;
    border-radius: 1rem;
    background: var(--rm-surface-2);
    border: 1px solid var(--rm-line);
}

.reservation-page .hero-chip span,
.reservation-page label span,
.reservation-page .mini-card span {
    color: var(--rm-copy-muted);
    font-size: 0.85rem;
}

.reservation-page .panel-card {
    padding: 1.1rem;
}

.reservation-grid {
    display: grid;
    gap: 1rem;
}

.reservation-grid.two {
    grid-template-columns: minmax(20rem, 0.92fr) minmax(22rem, 1.08fr);
}

.reservation-grid.three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.reservation-page .panel-head {
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    align-items: start;
    margin-bottom: 1rem;
}

.reservation-page .form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
}

.reservation-page label {
    display: grid;
    gap: 0.35rem;
}

.reservation-page .wide {
    grid-column: 1 / -1;
}

.reservation-page .switch-line {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

.reservation-page .action-row {
    display: flex;
    gap: 0.55rem;
    justify-content: flex-end;
    align-items: center;
    margin-top: 1rem;
}

.reservation-page .compact-search {
    max-width: 16rem;
}

.reservation-page .card-list {
    display: grid;
    gap: 0.7rem;
}

.reservation-page .mini-card {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem;
    border: 1px solid var(--rm-line);
    border-radius: 1rem;
    background: var(--rm-surface-2);
}

.reservation-page .mini-card.selected {
    border-color: var(--rm-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--rm-accent) 18%, transparent);
}

.reservation-page .mini-card.muted {
    opacity: 0.62;
}

.reservation-page .mini-card > div:first-child {
    display: grid;
    gap: 0.2rem;
}

.reservation-page .mini-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-content: center;
    justify-content: flex-end;
}

.reservation-page .linked-panel,
.reservation-page .rule-strip {
    margin-top: 1rem;
    padding: 0.85rem;
    border: 1px dashed var(--rm-line);
    border-radius: 1rem;
    background: var(--rm-surface-2);
}

.reservation-page .empty-note {
    margin: 0;
    padding: 1rem;
    border: 1px dashed var(--rm-line);
    border-radius: 1rem;
    background: var(--rm-surface-2);
}

.reservation-page .status-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.22rem 0.55rem;
    border-radius: 999px;
    border: 1px solid var(--rm-line);
    background: var(--rm-surface-3);
    color: var(--rm-copy);
    font-size: 0.78rem;
    font-weight: 800;
}

.reservation-page .status-chip.ok {
    border-color: color-mix(in srgb, var(--rm-success) 48%, transparent);
    color: var(--rm-success);
}

.reservation-page .status-chip.warn {
    border-color: color-mix(in srgb, var(--rm-warning) 48%, transparent);
    color: var(--rm-warning);
}

.reservation-page .status-chip.bad {
    border-color: color-mix(in srgb, var(--rm-danger) 48%, transparent);
    color: var(--rm-danger);
}

.booking-unit-panel {
    background: color-mix(in srgb, var(--rm-card) 92%, transparent);
    border: 1px solid var(--rm-line);
    border-radius: 1rem;
    box-shadow: var(--rm-shadow, 0 18px 48px rgba(0, 0, 0, 0.18));
    padding: 0.7rem;
}

.booking-unit-field {
    display: grid;
    gap: 0.35rem;
    margin: 0;
    max-width: 16rem;
}

.booking-unit-field span {
    color: var(--rm-copy-muted);
    font-size: 0.82rem;
    font-weight: 800;
}

.reservation-booking-shell {
    align-items: start;
    display: grid;
    gap: 0.8rem;
    grid-template-columns: minmax(10rem, 13rem) minmax(0, 1fr);
}

.reservation-space-rail,
.reservation-booking-main {
    background: color-mix(in srgb, var(--rm-card) 92%, transparent);
    border: 1px solid var(--rm-line);
    border-radius: 1rem;
    box-shadow: var(--rm-shadow, 0 18px 48px rgba(0, 0, 0, 0.18));
    padding: 0.7rem;
}

.reservation-space-rail {
    align-content: start;
    display: grid;
    gap: 0.45rem;
}

.reservation-space-button {
    background: var(--rm-surface-2) !important;
    border: 1px solid var(--rm-line) !important;
    border-radius: 0.75rem;
    box-sizing: border-box;
    color: var(--rm-copy) !important;
    font-weight: 800;
    height: 3rem;
    overflow: hidden;
    padding: 0.65rem 0.75rem;
    position: relative;
    text-align: start;
    transition: border-color 120ms ease, box-shadow 120ms ease, transform 120ms ease;
}

.reservation-space-button:hover {
    border-color: color-mix(in srgb, var(--rm-accent) 46%, transparent) !important;
    box-shadow: 0 10px 20px rgba(169, 231, 222, 0.1);
    box-shadow: 0 10px 20px color-mix(in srgb, var(--rm-accent) 10%, transparent);
    transform: translateY(-1px);
}

.reservation-space-button.active,
.reservation-space-button.is-selected,
.reservation-space-button[aria-pressed="true"],
.reservation-space-button[aria-pressed="True"] {
    background: var(--rm-surface-3) !important;
    background: linear-gradient(145deg, color-mix(in srgb, var(--rm-accent) 18%, var(--rm-surface-2)), var(--rm-surface-3)) !important;
    border: 2px solid var(--rm-accent) !important;
    box-shadow: inset 0 0 0 1px var(--rm-accent), 0 0 0 3px rgba(169, 231, 222, 0.24);
    box-shadow: inset 0 0 0 1px var(--rm-accent), 0 0 0 3px color-mix(in srgb, var(--rm-accent) 24%, transparent);
    color: var(--rm-copy) !important;
    outline: none;
    transform: translateY(-1px);
}

.reservation-booking-main {
    display: grid;
    gap: 0.75rem;
}

.booking-unit-row {
    max-width: 16rem;
}

.booking-date-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.booking-date-chip {
    background: var(--rm-surface-2) !important;
    border: 1px solid var(--rm-line) !important;
    border-radius: 999px;
    color: var(--rm-copy) !important;
    display: grid;
    gap: 0.05rem;
    justify-items: center;
    min-height: 3.2rem;
    min-width: 6.6rem;
    padding: 0.45rem 1.35rem;
    position: relative;
    text-align: center;
    transition: border-color 120ms ease, box-shadow 120ms ease, transform 120ms ease;
}

.booking-date-chip:hover {
    border-color: color-mix(in srgb, var(--rm-accent) 44%, transparent) !important;
    box-shadow: 0 10px 20px color-mix(in srgb, var(--rm-accent) 9%, transparent);
    transform: translateY(-1px);
}

.booking-date-chip.active,
.booking-date-chip.is-selected,
.booking-date-chip[aria-pressed="true"],
.booking-date-chip[aria-pressed="True"] {
    background: linear-gradient(145deg, color-mix(in srgb, var(--rm-accent) 30%, var(--rm-surface-2)), color-mix(in srgb, var(--rm-accent) 14%, var(--rm-surface-3))) !important;
    border-color: var(--rm-accent) !important;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--rm-accent) 70%, transparent), 0 12px 24px color-mix(in srgb, var(--rm-accent) 10%, transparent), 0 0 0 3px color-mix(in srgb, var(--rm-accent) 16%, transparent);
    color: var(--rm-copy) !important;
    transform: translateY(-1px);
}

.booking-date-chip span {
    color: var(--rm-copy-muted);
    font-size: 0.72rem;
}

.booking-date-chip.active strong,
.booking-date-chip.is-selected strong,
.booking-date-chip[aria-pressed="true"] strong,
.booking-date-chip[aria-pressed="True"] strong,
.reservation-space-button.active,
.reservation-space-button.is-selected,
.reservation-space-button[aria-pressed="true"],
.reservation-space-button[aria-pressed="True"] {
    font-weight: 900;
}

.booking-date-chip .selected-mark {
    background: var(--rm-accent);
    border-radius: 999px;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--rm-accent) 18%, transparent);
    height: 0.55rem;
    inset-block-start: 50%;
    inset-inline-end: 0.8rem;
    position: absolute;
    transform: translateY(-50%);
    width: 0.55rem;
}

.booking-slot-grid {
    align-items: stretch;
    display: grid;
    gap: 0.45rem;
    grid-template-columns: repeat(auto-fill, minmax(10.5rem, 11.5rem));
    justify-content: start;
    max-width: 100%;
}

.booking-slot-card {
    display: grid;
    gap: 0.25rem;
    height: 5.45rem;
    min-height: 5.45rem;
    position: relative;
    width: min(11.5rem, 100%);
}

.booking-slot-button {
    align-content: start;
    height: 100%;
    min-height: 5.45rem;
    overflow: hidden;
    padding: 1.55rem 0.8rem 0.7rem;
    padding-inline-start: 0.8rem;
    padding-inline-end: 0.8rem;
}

.booking-slot-button strong {
    display: block;
}

.booking-slot-button small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.booking-slot-actions {
    align-items: center;
    display: flex;
    gap: 0.25rem;
    inset-block-start: 0.4rem;
    inset-inline-end: 0.45rem;
    inset-inline-start: auto;
    justify-content: flex-end;
    position: absolute;
    z-index: 4;
}

.slot-action-button {
    align-items: center;
    background: color-mix(in srgb, var(--rm-surface-3) 76%, transparent) !important;
    border: 1px solid var(--rm-line) !important;
    border-radius: 999px;
    color: var(--rm-copy) !important;
    display: inline-flex;
    font-size: 0.92rem;
    font-weight: 900;
    height: 1.55rem;
    justify-content: center;
    line-height: 1;
    padding: 0;
    transition: border-color 120ms ease, box-shadow 120ms ease, transform 120ms ease;
    width: 1.55rem;
}

.slot-action-button:hover {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--rm-accent) 14%, transparent);
    transform: translateY(-1px);
}

.slot-action-button.danger {
    border-color: color-mix(in srgb, var(--rm-danger) 58%, transparent) !important;
    color: var(--rm-danger) !important;
}

.slot-action-button.neutral {
    border-color: color-mix(in srgb, var(--rm-accent) 48%, transparent) !important;
    color: var(--rm-accent) !important;
}

.reservation-page .calendar-layout {
    grid-template-columns: minmax(0, 1fr);
}

.reservation-page .reservation-calendar-panel {
    display: grid;
    gap: 1rem;
}

.reservation-page .calendar-nav {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-end;
}

.reservation-page .calendar-nav strong {
    min-width: 8.25rem;
    text-align: center;
}

.reservation-page .calendar-controls {
    grid-template-columns: minmax(12rem, 1fr) minmax(12rem, 1fr) minmax(16rem, 1.4fr);
}

.reservation-page .calendar-step-grid {
    display: grid;
    gap: 0.55rem;
}

.reservation-page .calendar-step-grid.days {
    grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr));
}

.reservation-page .calendar-step-grid.weeks {
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
}

.reservation-page .calendar-period-card {
    background: linear-gradient(145deg, var(--rm-surface-2), var(--rm-surface-3)) !important;
    border: 1px solid var(--rm-line) !important;
    border-radius: 0.85rem;
    color: var(--rm-copy) !important;
    display: grid;
    gap: 0.18rem;
    justify-items: center;
    min-height: 4.2rem;
    padding: 0.68rem 0.75rem;
    text-align: center;
    transition: transform 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
}

.reservation-page .calendar-period-card:hover {
    border-color: var(--rm-accent) !important;
    box-shadow: 0 10px 22px color-mix(in srgb, var(--rm-accent) 10%, transparent), 0 0 0 3px color-mix(in srgb, var(--rm-accent) 16%, transparent);
    transform: translateY(-1px);
}

.reservation-page .calendar-period-card span {
    color: var(--rm-copy-muted);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.reservation-page .calendar-period-card small {
    color: var(--rm-copy-muted);
    font-size: 0.72rem;
}

.reservation-page .calendar-drill-head {
    align-items: center;
    background: linear-gradient(145deg, var(--rm-surface-2), color-mix(in srgb, var(--rm-surface-3) 72%, transparent));
    border: 1px solid var(--rm-line);
    border-radius: 1rem;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
    padding: 0.7rem 0.85rem;
}

.reservation-page .calendar-drill-head strong {
    color: var(--rm-copy);
    display: block;
}

.reservation-page .selected-unit-pill {
    align-items: center;
    border: 1px solid var(--rm-line);
    border-radius: 0.75rem;
    color: var(--rm-copy);
    display: flex;
    min-height: 2.4rem;
    padding: 0.45rem 0.75rem;
    background: var(--rm-surface-2);
}

.reservation-page .calendar-legend {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem 0.9rem;
    color: var(--rm-copy-muted);
    font-size: 0.86rem;
}

.reservation-page .calendar-legend span {
    align-items: center;
    display: inline-flex;
    gap: 0.35rem;
}

.reservation-page .legend-dot {
    border-radius: 999px;
    display: inline-flex;
    height: 0.7rem;
    width: 0.7rem;
}

.reservation-page .legend-dot.available {
    background: var(--rm-success);
}

.reservation-page .legend-dot.pending {
    background: var(--rm-warning);
}

.reservation-page .legend-dot.reserved {
    background: var(--rm-danger);
}

.reservation-page .legend-dot.public {
    background: var(--rm-accent-2);
}

.reservation-page .legend-dot.blocked {
    background: var(--rm-copy-muted);
}

.reservation-page .reservation-calendar-grid {
    display: grid;
    gap: 0.5rem;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.reservation-page .calendar-day-card {
    background: color-mix(in srgb, var(--rm-surface-2) 86%, transparent);
    border: 1px solid var(--rm-line);
    border-radius: 0.8rem;
    display: grid;
    gap: 0.45rem;
    min-width: 0;
    padding: 0.55rem;
}

.reservation-page .reservation-calendar-grid.monthly .calendar-day-card {
    min-height: 8rem;
}

.reservation-page .calendar-day-card.outside-month {
    opacity: 0.45;
}

.reservation-page .calendar-day-card.selected-day-card {
    background: linear-gradient(145deg, var(--rm-surface-2), color-mix(in srgb, var(--rm-surface-3) 76%, transparent));
    border-color: var(--rm-accent);
    border-radius: 1rem;
    box-shadow: 0 14px 30px color-mix(in srgb, var(--rm-accent) 10%, transparent), 0 0 0 3px color-mix(in srgb, var(--rm-accent) 14%, transparent);
    max-width: 42rem;
    padding: 0.65rem;
}

.reservation-page .selected-day-card .calendar-slot-stack {
    gap: 0.45rem;
}

.reservation-page .selected-day-card .calendar-slot-card {
    background: color-mix(in srgb, var(--rm-card) 58%, transparent);
    border: 1px solid var(--rm-line);
    border-radius: 0.85rem;
    padding: 0.25rem;
}

.reservation-page .selected-day-card .calendar-slot {
    align-items: center;
    border-radius: 0.7rem;
    gap: 0.18rem 0.65rem;
    grid-template-columns: minmax(5.75rem, 0.55fr) minmax(0, 1fr);
    min-height: 3rem;
    padding: 0.55rem 0.65rem;
}

.reservation-page .selected-day-card .calendar-slot strong {
    font-size: 0.86rem;
}

.reservation-page .selected-day-card .calendar-slot span {
    font-size: 0.75rem;
}

.reservation-page .selected-day-card .calendar-slot-meta {
    grid-column: 2;
}

.reservation-page .calendar-day-card header {
    display: grid;
    gap: 0.1rem;
    justify-items: center;
    text-align: center;
}

.reservation-page .calendar-day-card header span {
    color: var(--rm-copy-muted);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.reservation-page .calendar-slot-stack {
    display: grid;
    gap: 0.32rem;
}

.reservation-page .reservation-calendar-grid.monthly .calendar-slot-stack {
    max-height: 9rem;
    overflow: auto;
    padding-inline-end: 0.1rem;
}

.reservation-page .calendar-slot-card {
    display: grid;
    gap: 0.25rem;
    position: relative;
}

.reservation-page .calendar-slot {
    border: 1px solid var(--rm-line);
    border-radius: 0.65rem;
    color: var(--rm-copy);
    display: grid;
    gap: 0.08rem;
    min-height: 2.75rem;
    padding: 0.42rem 0.48rem;
    padding-inline-end: 2.65rem;
    text-align: start;
    transition: transform 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
    width: 100%;
}

.reservation-page .calendar-slot:not(:disabled):hover {
    border-color: var(--rm-accent) !important;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--rm-accent) 76%, transparent), 0 0 0 3px color-mix(in srgb, var(--rm-accent) 18%, transparent);
    transform: translateY(-1px);
}

.reservation-page .calendar-slot strong {
    font-size: 0.78rem;
}

.reservation-page .calendar-slot span {
    font-size: 0.68rem;
    font-weight: 800;
}

.reservation-page .booking-slot-button.calendar-slot span {
    font-size: 1rem;
    font-weight: 900;
    line-height: 1.22;
}

.reservation-page .calendar-slot-meta {
    color: var(--rm-copy-muted);
    font-size: 0.66rem;
    line-height: 1.2;
}

.reservation-page .calendar-slot-count {
    align-self: center;
    background: color-mix(in srgb, var(--rm-warning) 42%, transparent);
    border: 1px solid color-mix(in srgb, var(--rm-warning) 64%, transparent);
    border-radius: 999px;
    color: var(--rm-copy);
    font-size: 0.62rem;
    font-style: normal;
    font-weight: 900;
    line-height: 1;
    padding: 0.18rem 0.42rem;
    width: max-content;
}

.reservation-page .pending-request-details {
    inset-block-start: 0.42rem;
    inset-inline-end: 0.42rem;
    position: absolute;
    z-index: 3;
}

.reservation-page .pending-request-details summary {
    align-items: center;
    background: color-mix(in srgb, var(--rm-surface-3) 72%, transparent);
    border: 1px solid color-mix(in srgb, var(--rm-warning) 68%, transparent);
    border-radius: 999px;
    color: var(--rm-copy);
    cursor: pointer;
    display: inline-flex;
    font-size: 0.68rem;
    font-weight: 900;
    gap: 0.16rem;
    height: 1.55rem;
    justify-content: center;
    line-height: 1;
    list-style: none;
    min-width: 1.95rem;
    padding: 0 0.38rem;
}

.reservation-page .pending-request-details summary::-webkit-details-marker {
    display: none;
}

.reservation-page .pending-request-icon {
    align-items: center;
    border: 1px solid currentColor;
    border-radius: 999px;
    display: inline-flex;
    height: 0.8rem;
    justify-content: center;
    position: relative;
    width: 0.8rem;
}

.reservation-page .pending-request-icon::before,
.reservation-page .pending-request-icon::after {
    background: currentColor;
    border-radius: 999px;
    content: "";
    position: absolute;
}

.reservation-page .pending-request-icon::before {
    height: 0.16rem;
    inset-block-start: 0.16rem;
    width: 0.16rem;
}

.reservation-page .pending-request-icon::after {
    height: 0.32rem;
    inset-block-end: 0.16rem;
    width: 0.14rem;
}

.reservation-page .pending-request-popover {
    background: var(--rm-surface-2);
    border: 1px solid color-mix(in srgb, var(--rm-warning) 58%, var(--rm-line));
    border-radius: 0.7rem;
    box-shadow: var(--rm-shadow-soft);
    color: var(--rm-copy);
    display: grid;
    font-size: 0.72rem;
    gap: 0.28rem;
    inset-block-start: calc(100% + 0.28rem);
    inset-inline-end: 0;
    line-height: 1.25;
    min-width: 10rem;
    max-width: min(16rem, 76vw);
    padding: 0.55rem;
    position: absolute;
    z-index: 10;
}

.reservation-page .pending-request-popover span {
    color: var(--rm-copy);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.reservation-page .calendar-slot.available {
    background: color-mix(in srgb, var(--rm-success) 24%, var(--rm-surface-2)) !important;
    border-color: color-mix(in srgb, var(--rm-success) 64%, transparent) !important;
    color: var(--rm-copy) !important;
}

.reservation-page .calendar-slot.available:not(:disabled):focus,
.reservation-page .calendar-slot.available:not(:disabled):active {
    border-color: var(--rm-accent) !important;
    box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--rm-accent) 78%, transparent), 0 0 0 4px color-mix(in srgb, var(--rm-accent) 20%, transparent);
    outline: none;
}

.reservation-page .calendar-slot.pending {
    background: color-mix(in srgb, var(--rm-warning) 28%, var(--rm-surface-2)) !important;
    border-color: color-mix(in srgb, var(--rm-warning) 68%, transparent) !important;
    color: var(--rm-copy) !important;
}

.reservation-page .calendar-slot.reserved {
    background: color-mix(in srgb, var(--rm-danger) 30%, var(--rm-surface-2)) !important;
    border-color: color-mix(in srgb, var(--rm-danger) 72%, transparent) !important;
    color: var(--rm-copy) !important;
}

.reservation-page .calendar-slot.public {
    background: color-mix(in srgb, var(--rm-accent-2) 28%, var(--rm-surface-2)) !important;
    border-color: color-mix(in srgb, var(--rm-accent-2) 72%, transparent) !important;
    color: var(--rm-copy) !important;
}

.reservation-page .calendar-slot:disabled {
    opacity: 1 !important;
}

.reservation-page .calendar-slot.blocked {
    background: color-mix(in srgb, var(--rm-surface-3) 82%, transparent) !important;
    border-color: var(--rm-line) !important;
    color: var(--rm-copy-muted) !important;
    cursor: not-allowed !important;
}

.reservation-page .calendar-slot.cancelled {
    background: color-mix(in srgb, var(--rm-surface-3) 78%, transparent) !important;
    border-color: var(--rm-line) !important;
    color: var(--rm-copy-muted) !important;
}

.reservation-page .calendar-slot.pending:not(:disabled) {
    cursor: pointer;
}

.reservation-page .calendar-slot.reserved:disabled,
.reservation-page .calendar-slot.public:disabled,
.reservation-page .calendar-slot.pending:disabled {
    cursor: not-allowed;
}

.reservation-page .calendar-slot-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.reservation-page .calendar-slot-actions .btn {
    border-radius: 0.55rem;
    font-size: 0.68rem;
    line-height: 1.1;
    padding: 0.18rem 0.42rem;
}

.reservation-page .calendar-empty {
    border: 1px dashed var(--rm-line);
    border-radius: 0.8rem;
    margin: 0;
    padding: 0.75rem;
    text-align: center;
}

.reservation-page .reservation-privacy-panel {
    background: color-mix(in srgb, var(--rm-card) 92%, transparent);
}

.reservation-page .privacy-points {
    display: grid;
    gap: 0.55rem;
}

.reservation-page .privacy-points span {
    border: 1px dashed var(--rm-line);
    border-radius: 0.85rem;
    color: var(--rm-copy-muted);
    padding: 0.7rem 0.8rem;
}

@media (max-width: 980px) {
    .reservation-hero,
    .reservation-page .mini-card {
        flex-direction: column;
    }

    .reservation-booking-shell {
        grid-template-columns: 1fr;
    }

    .reservation-space-rail {
        grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
    }

    .reservation-grid.two,
    .reservation-grid.three,
    .reservation-page .form-grid,
    .reservation-page .calendar-controls,
    .reservation-page .reservation-calendar-grid {
        grid-template-columns: 1fr;
    }

    .reservation-page .calendar-nav {
        justify-content: flex-start;
    }

    .reservation-page .compact-search {
        max-width: 100%;
    }
}

@media (max-width: 640.98px) {
    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }

    *,
    *::before,
    *::after {
        box-sizing: border-box;
    }

    .content,
    .content > *,
    .content :is(section, article, form, header, footer, main, aside) {
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .content :is(
        [class*="page"],
        [class*="hero"],
        [class*="shell"],
        [class*="layout"],
        [class*="grid"],
        [class*="toolbar"],
        [class*="filter"],
        [class*="panel"],
        [class*="card"],
        [class*="list"],
        [class*="row"],
        [class*="actions"]
    ) {
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .content :is(
        [class$="-layout"],
        [class*="-layout "],
        .setup-layout,
        .locations-layout,
        .calendar-layout,
        .memory-layout,
        .report-layout,
        .reports-layout,
        .employee-layout,
        .camera-layout
    ) {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .content :is(
        [class$="-layout"],
        [class*="-layout "],
        .setup-layout,
        .locations-layout,
        .calendar-layout,
        .memory-layout,
        .report-layout,
        .reports-layout,
        .employee-layout,
        .camera-layout
    ) > * {
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .content :is(
        .table-responsive,
        .table-wrap,
        .table-card,
        .buildings-table-card,
        [class*="table"],
        [class*="calendar"]
    ) {
        max-width: 100% !important;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .content :is(table, .table, .calendar-table) {
        display: block;
        width: max-content;
        min-width: 100%;
        max-width: none !important;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .content :is(img, video, canvas, svg, iframe) {
        max-width: 100% !important;
        height: auto;
    }

    .content :is(input, select, textarea, button, .btn, .form-control, .form-select) {
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .content :is(.action-row, .actions-row, .button-row, .button-group, .toolbar-actions, .mini-actions) {
        flex-wrap: wrap;
    }
}

body .reservation-minimal-page .reservation-hero,
body .reservation-minimal-page .system-admin-help,
body .reservation-minimal-page .calendar-layout {
    display: none !important;
}
