.operations-header-side {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    gap: 0.75rem;
}

.operations-header-action {
    align-items: center;
    background: var(--innvilo-teal);
    border-radius: 0.75rem;
    box-shadow: 0 1px 2px rgba(0, 24, 44, 0.1);
    color: #ffffff;
    display: inline-flex;
    font-weight: 700;
    gap: 0.4rem;
    justify-content: center;
    min-height: 2.6rem;
    padding: 0.45rem 1.25rem;
    text-decoration: none;
    transition: background-color 0.15s ease;
}

.operations-header-action:hover {
    background: #00504a;
    color: #ffffff;
}

.operations-header-action .local-icon {
    font-size: 20px;
}

.dxbl-btn-primary,
.dxbl-btn.dxbl-btn-primary {
    --dxbl-btn-bg: var(--innvilo-teal);
    --dxbl-btn-border-color: var(--innvilo-teal);
    --dxbl-btn-hover-bg: #00504a;
    --dxbl-btn-hover-border-color: #00504a;
    --dxbl-btn-active-bg: #003f3a;
    --dxbl-btn-active-border-color: #003f3a;
    --dxbl-btn-disabled-bg: #7cb8b2;
    --dxbl-btn-disabled-border-color: #7cb8b2;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid var(--dxds-color-border-success-default-rest);
}

.invalid {
    outline: 1px solid var(--dxds-color-border-danger-default-rest);
}

.validation-message {
    color: var(--dxds-color-content-danger-default-rest);
}

.button-link {
    text-decoration: unset;
}

.brand-link,
.brand-link:hover,
.brand-link:focus,
.brand-link.active {
    background: transparent;
    color: #ffffff !important;
    text-decoration: none !important;
}

.brand-link *,
.brand-link:hover *,
.brand-link:focus *,
.brand-link.active * {
    text-decoration: none !important;
}

.brand-link .brand-subtitle {
    color: #47d1c6 !important;
}

.title {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1rem 0;
}

.title.title-secondary {
    padding: 0.313rem 0 0;
    color: var(--dxds-color-content-secondary-default-rest);
}

.title-header-text {
    font-size: var(--dxds-font-size-headline-lg);
    font-weight: var(--dxds-font-weight-headline-default);
    letter-spacing: var(--dxds-letter-spacing-headline-lg);
    line-height: var(--dxds-line-height-headline-lg);
}

.title-content-text {
    font-size: var(--dxds-font-size-base-lg);
    font-weight: var(--dxds-font-weight-base-default);
    letter-spacing: var(--dxds-letter-spacing-base-lg);
    line-height: var(--dxds-line-height-base-lg);
}

.main-content {
    align-items: center;
    display: flex;
    height: 100%;
    justify-content: center;
    width: 100%;
}

.block-content {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    height: auto;
    max-width: 100%;
    width: 31.25rem;
}

.or {
    align-items: center;
    display: flex;
    flex-direction: row;
    padding: 0.3125rem 0;
}

.or .or-line {
    opacity: 0.2;
    width: 100%;
    border-bottom: 1px solid var(--dxds-color-content-neutral-default-rest);
}

.or .or-text {
    padding: 0 0.625rem 0 0.625rem;
    font-size: var(--dxds-font-size-caption-md);
    line-height: var(--dxds-line-height-caption-md);
    color: var(--dxds-color-content-neutral-subdued-rest);
}

.links-container {
    align-items: center;
    display: flex;
    gap: 0.25rem;
    justify-content: center;
}

.links-container .dot {
    border-radius: 50%;
    height: 0.3125rem;
    margin: 0 0.1875rem;
    opacity: 0.7;
    width: 0.3125rem;
    background-color: var(--dxds-color-surface-neutral-default-rest);
}

.manage-layout {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.info-message {
    align-items: center;
    display: flex;
    justify-content: center;
    padding: 0.625rem 1rem 0.625rem 1rem;
    position: relative;
    background: var(--dxds-color-surface-info-subdued-rest);
}

.info-message.info-panel {
    margin-bottom: 0.625rem;
}

.manage-content {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.large-input {
    font-size: 1.875rem;
    height: 4.3125rem;
}

.title-content-text-secondary {
    font-size: var(--dxds-font-size-title-md);
    line-height: var(--dxds-line-height-title-md);
}

.button-group {
    display: flex;
    flex-direction: row;
    gap: 0.625rem;
}

.confirm-button {
    margin-top: 0.3125rem;
}

.operations-page,
.reports-page,
.room-access-page,
.housekeeping-page,
.front-office-page,
.time-tracking-page,
.hotel-profile-page,
.device-management-page,
.document-templates-page,
.corporate-accounts-page,
.schedule-page {
    color: var(--innvilo-text);
}

.operations-header,
.reports-hero,
.room-access-hero,
.housekeeping-hero,
.front-office-header,
.time-tracking-hero,
.hotel-profile-hero,
.device-management-hero,
.document-templates-hero,
.corporate-accounts-hero,
.schedule-hero {
    background: var(--innvilo-surface);
    border: 1px solid var(--innvilo-border);
    border-radius: var(--innvilo-radius);
    box-shadow: var(--innvilo-shadow);
    padding: 1.15rem 1.25rem;
}

.operations-header span,
.reports-hero span,
.room-access-hero span,
.housekeeping-hero span,
.front-office-header span,
.time-tracking-hero span,
.hotel-profile-hero span,
.device-management-hero span,
.document-templates-hero span,
.corporate-accounts-hero span,
.schedule-hero span {
    color: var(--innvilo-teal);
    letter-spacing: 0.08em;
}

.operations-header h1,
.reports-hero h1,
.room-access-hero h1,
.housekeeping-hero h1,
.front-office-header h1,
.time-tracking-hero h1,
.hotel-profile-hero h1,
.device-management-hero h1,
.document-templates-hero h1,
.corporate-accounts-hero h1,
.schedule-hero h1 {
    color: var(--innvilo-navy-deep);
    font-family: "Hanken Grotesk", Inter, "Segoe UI", system-ui, sans-serif;
    letter-spacing: 0;
}

.operations-header p,
.reports-hero p,
.room-access-hero p,
.housekeeping-hero p,
.front-office-header p,
.time-tracking-hero p,
.hotel-profile-hero p,
.device-management-hero p,
.document-templates-hero p,
.corporate-accounts-hero p,
.schedule-hero p {
    color: var(--innvilo-muted);
}

.operations-card,
.operations-empty,
.room-summary article,
.room-tile,
.housekeeping-column,
.housekeeping-task,
.housekeeping-room-card,
.housekeeping-task-card,
.housekeeping-plan-floor,
.housekeeping-task-column,
.housekeeping-empty,
.reports-kpis article,
.reports-panel,
.reports-worklist article,
.room-access-kpis article,
.room-access-panel,
.room-access-card,
.accounting-folio-card,
.front-office-kpis article,
.front-office-lane,
.front-office-card {
    background: var(--innvilo-surface);
    border-color: var(--innvilo-border);
    border-radius: var(--innvilo-radius);
    box-shadow: var(--innvilo-shadow);
}

.operations-card,
.room-tile,
.housekeeping-task,
.housekeeping-room-card,
.housekeeping-task-card,
.accounting-folio-card,
.front-office-card {
    border-left-color: var(--innvilo-teal);
}

.operations-card.is-reservation,
.operations-card.is-housekeeping,
.room-tile.is-dirty,
.housekeeping-room-card.is-dirty,
.housekeeping-task-card,
.front-office-card.is-departure {
    border-left-color: var(--innvilo-gold);
}

.operations-card.is-room,
.operations-card.is-channel,
.room-tile.is-occupied,
.housekeeping-room-card.is-occupied,
.housekeeping-task.is-progress,
.housekeeping-task-card.is-progress {
    border-left-color: var(--innvilo-navy);
}

.operations-card.is-folio,
.room-tile.is-blocked,
.housekeeping-room-card.is-blocked {
    border-left-color: var(--innvilo-danger);
}

.operations-header strong,
.reports-hero > strong,
.reports-panel header > span,
.reports-worklist small,
.room-access-hero > strong,
.room-access-panel > header > strong,
.room-access-card header strong,
.housekeeping-hero strong,
.housekeeping-room-card header strong,
.housekeeping-task-card header strong,
.housekeeping-plan-floor > header strong,
.housekeeping-task-column > header strong,
.room-state,
.housekeeping-column > header span,
.housekeeping-task header span,
.front-office-lane > header strong,
.front-office-card header strong {
    background: var(--innvilo-teal-soft);
    color: var(--innvilo-teal);
}

.room-toolbar button,
.room-tile footer button,
.housekeeping-task footer button {
    border-color: var(--innvilo-border-strong);
    color: var(--innvilo-navy);
}

.room-toolbar button.is-active,
.room-tile footer button:first-child,
.housekeeping-task footer button:first-child {
    background: var(--innvilo-teal);
    border-color: var(--innvilo-teal);
}

.housekeeping-tabs a.active {
    background: var(--innvilo-teal-soft);
    border-color: var(--innvilo-teal);
    box-shadow: inset 0 0 0 1px var(--innvilo-teal);
    color: var(--innvilo-teal);
}

@media (max-width: 768px) {
    html,
    body {
        height: auto;
        min-height: 100%;
        overflow-x: hidden;
        overflow-y: auto;
    }

    .operations-page {
        max-width: 100%;
        overflow-x: clip;
    }

    .operations-header,
    .operations-header > *,
    .time-tracking-page,
    .time-tracking-page *,
    .room-tile,
    .housekeeping-task,
    .reports-panel {
        min-width: 0;
    }

}

.housekeeping-work-page {
    gap: 0.9rem;
    max-width: 72rem;
}

.housekeeping-hero p {
    max-width: 42rem;
}

.housekeeping-priority-strip {
    display: grid;
    gap: 0.65rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.housekeeping-priority-strip article {
    background: #ffffff;
    border: 1px solid #dce7f1;
    border-radius: 0.75rem;
    box-shadow: 0 12px 30px rgba(8, 33, 59, 0.06);
    display: grid;
    gap: 0.15rem;
    padding: 0.9rem 1rem;
}

.housekeeping-priority-strip article.is-urgent {
    background: #fff8e8;
    border-color: #efd186;
}

.housekeeping-priority-strip span,
.housekeeping-done-section > header span {
    color: #50657d;
    font-size: 0.78rem;
    font-weight: 900;
}

.housekeeping-priority-strip strong {
    color: #08213b;
    font-size: 1.8rem;
    line-height: 1;
}

.housekeeping-worklist,
.housekeeping-done-list {
    display: grid;
    gap: 0.8rem;
}

.housekeeping-worklist {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.housekeeping-done-section {
    display: grid;
    gap: 0.75rem;
    margin-top: 0.3rem;
}

.housekeeping-done-section > header {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.housekeeping-done-section > header h2 {
    font-size: 1rem;
    margin: 0;
}

.housekeeping-done-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.housekeeping-work-page .housekeeping-task {
    border: 1px solid #d8e5ef;
    border-left: 0.45rem solid #c79a2b;
    border-radius: 0.75rem;
    box-shadow: 0 14px 34px rgba(8, 33, 59, 0.07);
    gap: 0.85rem;
    padding: 1rem;
}

.housekeeping-work-page .housekeeping-task.is-progress {
    border-left-color: #246b9f;
}

.housekeeping-work-page .housekeeping-task.is-done {
    border-left-color: #13a69b;
    opacity: 0.78;
}

.housekeeping-task-main {
    align-items: stretch;
    display: grid;
    gap: 0.9rem;
    grid-template-columns: 7.4rem minmax(0, 1fr);
}

.housekeeping-room {
    align-content: center;
    background: #f3f8fc;
    border: 1px solid #dce7f1;
    border-radius: 0.65rem;
    display: grid;
    min-height: 7rem;
    padding: 0.85rem;
}

.housekeeping-room span {
    color: #50657d;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.housekeeping-room strong {
    color: #08213b;
    font-size: 2.55rem;
    line-height: 1;
}

.housekeeping-task-copy {
    display: grid;
    gap: 0.55rem;
    min-width: 0;
}

.housekeeping-task-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.housekeeping-priority,
.housekeeping-status {
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 900;
    padding: 0.35rem 0.6rem;
    white-space: nowrap;
}

.housekeeping-priority.is-overdue {
    background: #fde8e8;
    color: #9a2f3a;
}

.housekeeping-priority.is-today {
    background: #fff1cc;
    color: #7a5200;
}

.housekeeping-priority.is-progress {
    background: #e5f1fb;
    color: #246b9f;
}

.housekeeping-priority.is-planned,
.housekeeping-status {
    background: #eef4fa;
    color: #314c67;
}

.housekeeping-work-page .housekeeping-task h2 {
    color: #08213b;
    font-size: 1.15rem;
    line-height: 1.2;
    margin: 0;
}

.housekeeping-work-page .housekeeping-task p {
    color: #415873;
    font-size: 0.95rem;
    line-height: 1.4;
}

.housekeeping-work-page .housekeeping-task dl {
    display: grid;
    gap: 0.55rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
}

.housekeeping-work-page .housekeeping-task dt {
    color: #60758a;
    font-size: 0.74rem;
    font-weight: 800;
}

.housekeeping-work-page .housekeeping-task dd {
    color: #08213b;
    font-weight: 900;
    margin: 0;
}

.housekeeping-work-page .housekeeping-task footer {
    display: grid;
    gap: 0.6rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.housekeeping-work-page .housekeeping-task footer .housekeeping-action {
    min-height: 3rem;
    width: 100%;
}

.housekeeping-work-page .housekeeping-task footer .housekeeping-action-primary {
    font-weight: 900;
}

.housekeeping-done-list .housekeeping-task-main {
    grid-template-columns: 5.6rem minmax(0, 1fr);
}

.housekeeping-done-list .housekeeping-room {
    min-height: 5.2rem;
}

.housekeeping-done-list .housekeeping-room strong {
    font-size: 1.9rem;
}

@media (max-width: 900px) {
    .housekeeping-priority-strip,
    .housekeeping-worklist,
    .housekeeping-done-list {
        grid-template-columns: 1fr;
    }

    .housekeeping-work-page .housekeeping-task {
        border-left-width: 0.35rem;
        padding: 0.9rem;
    }

    .housekeeping-task-main,
    .housekeeping-done-list .housekeeping-task-main {
        grid-template-columns: minmax(0, 1fr);
    }

    .housekeeping-room {
        min-height: 5.8rem;
    }

    .housekeeping-room strong {
        font-size: 2.8rem;
    }

    .housekeeping-work-page .housekeeping-task dl {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .housekeeping-work-page {
        gap: 0.75rem;
    }

    .housekeeping-hero h1 {
        font-size: 1.6rem;
    }

    .housekeeping-priority-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .housekeeping-priority-strip article {
        padding: 0.8rem;
    }

    .housekeeping-priority-strip strong {
        font-size: 1.6rem;
    }

    .housekeeping-work-page .housekeeping-task footer {
        grid-template-columns: 1fr;
    }

    .housekeeping-work-page .housekeeping-task footer .housekeeping-action {
        min-height: 3.25rem;
    }
}

/* INNVILO portal system normalization. Hotelprofil, Belegungsplan und Zimmerstatus folgen seit ihrem
   Redesign dem Blockrhythmus aus .pms-worklist und sind deshalb hier nicht mehr gelistet. */
.operations-page,
.reports-page,
.room-access-page,
.front-office-page,
.time-tracking-page,
.device-management-page,
.document-templates-page,
.corporate-page,
.corporate-accounts-page,
.schedule-page,
.workforce-page,
.accounting-page {
    color: var(--innvilo-text) !important;
    display: grid;
    gap: 1rem;
    padding: 0 0 2rem;
    width: 100%;
}

.operations-header,
.reports-hero,
.room-access-hero,
.housekeeping-hero,
.front-office-header,
.accounting-hero,
.time-tracking-hero,
.hotel-profile-hero,
.device-management-hero,
.document-templates-hero,
.templates-hero,
.corporate-hero,
.corporate-accounts-hero,
.schedule-hero,
.workforce-header {
    align-items: center !important;
    background: var(--innvilo-surface) !important;
    border: 1px solid var(--innvilo-border) !important;
    border-radius: var(--innvilo-radius) !important;
    box-shadow: var(--innvilo-shadow) !important;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    min-width: 0;
    padding: 1.15rem 1.25rem !important;
}

.operations-header h1,
.reports-hero h1,
.room-access-hero h1,
.housekeeping-hero h1,
.front-office-header h1,
.accounting-hero h1,
.time-tracking-hero h1,
.hotel-profile-hero h1,
.device-management-hero h1,
.document-templates-hero h1,
.templates-hero h1,
.corporate-hero h1,
.corporate-accounts-hero h1,
.schedule-hero h1,
.workforce-header h1 {
    color: var(--innvilo-navy-deep) !important;
    font-family: "Hanken Grotesk", Inter, "Segoe UI", system-ui, sans-serif !important;
    font-size: clamp(1.65rem, 2vw, 2.05rem);
    letter-spacing: 0 !important;
    line-height: 1.08;
    margin: 0.2rem 0 0.25rem !important;
}

.operations-header span,
.reports-hero span,
.room-access-hero span,
.housekeeping-hero span,
.front-office-header span,
.accounting-hero span,
.time-tracking-hero span,
.hotel-profile-hero span,
.device-management-hero span,
.document-templates-hero span,
.templates-hero span,
.corporate-hero span,
.corporate-accounts-hero span,
.schedule-hero span,
.workforce-header span,
.corporate-panel > header span,
.corporate-form label > span,
.front-office-table-panel > header span,
.front-office-detail-panel > header span {
    color: var(--innvilo-teal) !important;
    font-size: 0.72rem !important;
    font-weight: 900 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
}

.operations-header p,
.reports-hero p,
.room-access-hero p,
.housekeeping-hero p,
.front-office-header p,
.accounting-hero p,
.time-tracking-hero p,
.hotel-profile-hero p,
.device-management-hero p,
.document-templates-hero p,
.templates-hero p,
.corporate-hero p,
.corporate-accounts-hero p,
.schedule-hero p,
.workforce-header p {
    color: var(--innvilo-muted) !important;
    margin: 0 !important;
}

.operations-header strong,
.reports-hero > strong,
.accounting-hero > strong,
.room-access-hero > strong,
.housekeeping-hero strong,
.time-tracking-hero strong,
.hotel-profile-hero strong,
.device-management-hero strong,
.document-templates-hero strong,
.templates-hero strong,
.corporate-hero strong,
.schedule-hero strong,
.workforce-week strong,
.room-state,
.status-chip,
.front-office-lane > header strong,
.front-office-card header strong,
.corporate-reference span {
    background: var(--innvilo-teal-soft) !important;
    border: 1px solid #bfe7df !important;
    border-radius: 999px !important;
    color: var(--innvilo-teal) !important;
    display: inline-flex;
    font-weight: 900 !important;
    line-height: 1;
    padding: 0.4rem 0.65rem !important;
    white-space: nowrap;
}

.operations-card,
.operations-empty,
.reports-panel,
.reports-kpis article,
.reports-worklist article,
.room-access-kpis article,
.room-access-panel,
.room-access-card,
.accounting-folio-card,
.front-office-kpis article,
.front-office-lane,
.front-office-card,
.front-office-table-panel,
.front-office-detail-panel,
.accounting-kpis article,
.accounting-panel,
.accounting-folio-card,
.accounting-status-card,
.accounting-export-panel,
.accounting-export-preview,
.terminal-status-card,
.device-bridge-setup,
.housekeeping-column,
.housekeeping-task,
.housekeeping-room-card,
.housekeeping-task-card,
.housekeeping-plan-floor,
.housekeeping-task-column,
.housekeeping-empty,
.hotel-profile-panel,
.hotel-profile-card,
.device-panel,
.device-card,
.document-panel,
.templates-panel,
.templates-card,
.templates-preview-sheet,
.designer-card,
.template-card,
.corporate-kpis article,
.corporate-panel,
.corporate-card,
.corporate-empty,
.schedule-panel,
.schedule-card,
.workforce-alert,
.workforce-empty,
.workforce-panel,
.workforce-kpis article,
.employee-card,
.schedule-day,
.shift-card,
.mobile-shift-card {
    background: var(--innvilo-surface) !important;
    border: 1px solid var(--innvilo-border) !important;
    border-radius: var(--innvilo-radius) !important;
    box-shadow: var(--innvilo-shadow) !important;
    min-width: 0;
}

.operations-card,
.front-office-card,
.room-tile,
.housekeeping-task,
.housekeeping-room-card,
.corporate-card {
    border-left: 0.25rem solid var(--innvilo-teal) !important;
}

.operations-card.is-reservation,
.operations-card.is-housekeeping,
.front-office-card.is-departure,
.room-tile.is-dirty,
.housekeeping-task,
.housekeeping-room-card.is-dirty {
    border-left-color: var(--innvilo-gold) !important;
}

.operations-card.is-room,
.operations-card.is-channel,
.room-tile.is-occupied,
.housekeeping-task.is-progress,
.housekeeping-room-card.is-occupied {
    border-left-color: var(--innvilo-navy) !important;
}

.operations-card.is-folio,
.room-tile.is-blocked,
.housekeeping-room-card.is-blocked {
    border-left-color: var(--innvilo-danger) !important;
}

.operations-card h2,
.reports-panel h2,
.room-access-panel h2,
.housekeeping-column h2,
.front-office-card h3,
.front-office-table-panel h2,
.front-office-detail-panel h2,
.accounting-panel h2,
.accounting-folio-card h2,
.corporate-panel h2,
.corporate-card strong,
.hotel-profile-page h2,
.device-management-page h2,
.document-templates-page h2,
.schedule-page h2,
.workforce-page h2 {
    color: var(--innvilo-navy-deep) !important;
    font-family: "Hanken Grotesk", Inter, "Segoe UI", system-ui, sans-serif !important;
    letter-spacing: 0 !important;
}

.operations-card p,
.operations-card small,
.reports-panel p,
.room-access-card small,
.housekeeping-task p,
.housekeeping-task small,
.front-office-card p,
.front-office-card dt,
.front-office-table small,
.accounting-panel p,
.accounting-folio-card p,
.accounting-folio-card dt,
.terminal-status-card span,
.terminal-status-card p,
.device-bridge-setup p,
.corporate-card small,
.corporate-card em,
.corporate-empty,
.shift-card small,
.mobile-shift-card small,
.employee-card small {
    color: var(--innvilo-muted) !important;
}

.corporate-workspace,
.corporate-grid,
.front-office-lanes,
.housekeeping-board,
.reports-grid,
.room-access-grid,
.time-tracking-grid,
.schedule-workspace {
    gap: 1rem !important;
}

.workforce-header,
.workforce-kpis,
.workforce-grid,
.workforce-actions,
.lower-grid {
    width: 100% !important;
}

.workforce-week {
    background: var(--innvilo-surface-soft) !important;
    border: 1px solid var(--innvilo-border) !important;
    border-radius: var(--innvilo-radius) !important;
    padding: 0.35rem !important;
}

.workforce-week button,
.workforce-panel button,
.workforce-actions button {
    border-radius: 0.45rem !important;
    box-shadow: none !important;
}

.employee-card.selected,
.shift-card.conflict,
.mobile-shift-card.conflict {
    background: var(--innvilo-gold-soft) !important;
    border-color: var(--innvilo-gold) !important;
}

.corporate-panel,
.front-office-lane,
.front-office-detail-panel,
.reports-panel,
.room-access-panel,
.housekeeping-column {
    padding: 1rem !important;
}

.corporate-form,
.front-office-detail-panel dl,
.front-office-card dl {
    gap: 0.75rem !important;
}

.corporate-form input,
.corporate-form textarea,
.corporate-form select {
    background: #ffffff !important;
    border-color: var(--innvilo-border-strong) !important;
    border-radius: 0.45rem !important;
    color: var(--innvilo-text) !important;
    min-height: 2.35rem;
}

.corporate-panel button.secondary,
.room-toolbar button,
.room-tile footer button,
.housekeeping-task footer button,
.portal-action-link.secondary {
    background: #ffffff !important;
    border: 1px solid var(--innvilo-border-strong) !important;
    border-radius: 0.45rem !important;
    color: var(--innvilo-navy) !important;
    font-weight: 900 !important;
}

.room-toolbar button.is-active,
.housekeeping-tabs a.active,
.portal-action-link.portal-primary-action {
    background: var(--innvilo-teal) !important;
    border-color: var(--innvilo-teal) !important;
    color: #ffffff !important;
}

.corporate-card,
.front-office-row-button,
.table-action-link,
.panel-link {
    text-decoration: none !important;
}

.corporate-card:hover,
.corporate-card:focus-visible,
.front-office-table tbody tr:hover,
.front-office-table tbody tr.is-selected {
    background: #fbfaf7 !important;
    border-color: var(--innvilo-teal) !important;
    box-shadow: 0 1rem 2.25rem rgba(0, 106, 98, 0.12) !important;
}

@media (max-width: 900px) {
    .operations-header,
    .reports-hero,
    .room-access-hero,
    .housekeeping-hero,
    .front-office-header,
    .time-tracking-hero,
    .hotel-profile-hero,
    .device-management-hero,
    .document-templates-hero,
    .corporate-hero,
    .corporate-accounts-hero,
    .schedule-hero {
        align-items: stretch !important;
        display: grid !important;
    }
}

.operations-page {
    color: #08213b;
    display: grid;
    gap: 1rem;
    padding-bottom: 2rem;
    width: 100%;
}

.operations-header {
    align-items: end;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.operations-header span {
    color: #0e8f83;
    display: block;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.operations-header h1 {
    font-size: 2rem;
    line-height: 1.1;
    margin: 0.25rem 0 0.35rem;
}

.operations-header p {
    color: #50657d;
    margin: 0;
}

.operations-header strong,
.reports-panel header span,
.housekeeping-column > header span {
    background: #e9f8f5;
    border-radius: 999px;
    color: #0c6570;
    font-size: 0.85rem;
    font-weight: 900;
    padding: 0.45rem 0.7rem;
    white-space: nowrap;
}

.operations-empty {
    background: #ffffff;
    border: 1px solid #dce7f1;
    border-radius: 0.75rem;
    color: #50657d;
    padding: 1rem;
}

.room-summary {
    display: grid;
    gap: 0.85rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.room-summary article,
.room-tile,
.housekeeping-column,
.housekeeping-task,
.reports-panel {
    background: #ffffff;
    border: 1px solid #dce7f1;
    border-radius: 0.75rem;
    box-shadow: 0 16px 44px rgba(8, 33, 59, 0.06);
}

.room-summary article {
    display: grid;
    gap: 0.25rem;
    padding: 1rem;
}

.room-summary span {
    color: #50657d;
    font-size: 0.82rem;
    font-weight: 800;
}

.room-summary strong {
    font-size: 2rem;
    line-height: 1;
}

.room-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.room-toolbar button,
.room-tile footer button,
.housekeeping-task footer button {
    background: #ffffff;
    border: 1px solid #cfe0ee;
    border-radius: 999px;
    color: #12304b;
    font-weight: 900;
    min-height: 2.35rem;
    padding: 0 0.8rem;
}

.room-toolbar button.is-active,
.room-tile footer button:first-child,
.housekeeping-task footer button:first-child {
    background: #13a69b;
    border-color: #13a69b;
    color: #ffffff;
}

.room-rack {
    display: grid;
    gap: 0.85rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.room-tile {
    border-left: 0.35rem solid #13a69b;
    display: grid;
    gap: 0.7rem;
    padding: 1rem;
}

.room-tile.is-dirty {
    border-left-color: #c8a24d;
}

.room-tile.is-occupied {
    border-left-color: #246b9f;
}

.room-tile.is-blocked {
    border-left-color: #9a2f3a;
}

.room-tile header,
.housekeeping-column > header,
.housekeeping-task header,
.reports-panel header {
    align-items: start;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
}

.room-tile strong {
    display: block;
    font-size: 1.6rem;
    line-height: 1;
}

.room-tile header span,
.room-tile p,
.room-tile small,
.housekeeping-task p,
.housekeeping-task small,
.reports-panel p {
    color: #50657d;
    margin: 0;
}

.room-state,
.housekeeping-task header span {
    background: #eef4fa;
    border-radius: 999px;
    color: #314c67;
    font-size: 0.78rem;
    font-weight: 800;
    padding: 0.35rem 0.6rem;
    white-space: nowrap;
}

.room-attention {
    color: #9a6b00 !important;
    font-weight: 900;
}

.room-tile footer,
.housekeeping-task footer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.housekeeping-board,
.reports-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.reports-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.reports-kpis {
    display: grid;
    gap: 1rem;
}

.reports-kpis {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.reports-kpis article {
    background: #ffffff;
    border: 1px solid #dce7f1;
    border-radius: 0.9rem;
    box-shadow: 0 16px 44px rgba(8, 33, 59, 0.06);
    display: grid;
    gap: 0.35rem;
    padding: 1rem;
}

.reports-kpis span,
.reports-kpis small,
.reports-worklist span,
.reports-worklist small {
    color: #50657d;
}

.reports-kpis span {
    font-size: 0.82rem;
    font-weight: 800;
}

.reports-kpis strong {
    font-size: 2rem;
    line-height: 1;
}

.reports-chart-panel {
    min-height: 22rem;
}

.housekeeping-column,
.reports-panel {
    align-content: start;
    display: grid;
    gap: 0.75rem;
    padding: 1rem;
}

.housekeeping-column > header h2,
.reports-panel h2 {
    font-size: 1.1rem;
    margin: 0;
}

.housekeeping-task {
    border-left: 0.35rem solid #c8a24d;
    display: grid;
    gap: 0.6rem;
    padding: 0.85rem;
}

.housekeeping-task.is-progress {
    border-left-color: #246b9f;
}

.housekeeping-task.is-done {
    border-left-color: #13a69b;
    opacity: 0.82;
}

.report-bars,
.reports-kpi-list,
.reports-forecast {
    display: grid;
    gap: 0.75rem;
    margin: 0;
}

.report-bar {
    display: grid;
    gap: 0.35rem;
}

.report-bar div,
.reports-kpi-list div,
.reports-forecast div {
    align-items: center;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
}

.report-bar span,
.reports-kpi-list dt,
.reports-forecast span {
    color: #50657d;
}

.report-bar progress {
    accent-color: #13a69b;
    height: 0.6rem;
    width: 100%;
}

.reports-kpi-list dd {
    font-size: 1.25rem;
    font-weight: 900;
    margin: 0;
}

.reports-worklist {
    display: grid;
    gap: 0.75rem;
}

.reports-worklist article {
    background: #f8fbfe;
    border: 1px solid #dde8f3;
    border-radius: 0.75rem;
    display: grid;
    gap: 0.25rem;
    padding: 0.85rem;
}

.reports-worklist strong {
    color: #08213b;
}

.reports-worklist p {
    margin: 0;
}

@media (max-width: 768px) {
    .operations-header {
        align-items: start;
        display: grid;
    }

    .operations-header h1 {
        font-size: 1.75rem;
    }

    .room-summary,
    .room-rack,
    .housekeeping-board,
    .reports-grid,
    .reports-kpis {
        grid-template-columns: 1fr;
    }

    .room-toolbar {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .room-toolbar button,
    .room-tile footer button,
    .housekeeping-task footer button {
        border-radius: 0.65rem;
        width: 100%;
    }

    .room-tile footer,
    .housekeeping-task footer {
        display: grid;
        grid-template-columns: 1fr;
    }

}

/* Final portal overrides after legacy page blocks */
.room-summary article,
.room-tile,
.housekeeping-column,
.housekeeping-task,
.reports-panel {
    background: var(--innvilo-surface) !important;
    border-color: var(--innvilo-border) !important;
    border-radius: var(--innvilo-radius) !important;
    box-shadow: var(--innvilo-shadow) !important;
}

.room-tile,
.housekeeping-task {
    border-left: 0.25rem solid var(--innvilo-teal) !important;
}

.room-tile.is-dirty,
.housekeeping-task {
    border-left-color: var(--innvilo-gold) !important;
}

.room-tile.is-occupied,
.housekeeping-task.is-progress {
    border-left-color: var(--innvilo-navy) !important;
}

.room-tile.is-blocked {
    border-left-color: var(--innvilo-danger) !important;
}

.room-toolbar button,
.room-tile footer button,
.housekeeping-task footer button {
    border-radius: 0.45rem !important;
}

.time-tracking-page .time-tracking-input,
.time-tracking-page textarea.time-tracking-input,
.time-tracking-page input.time-tracking-input,
.time-tracking-page select.time-tracking-input {
    background: #ffffff !important;
    border: 1px solid var(--innvilo-border-strong) !important;
    border-radius: 0.45rem !important;
    color: var(--innvilo-text) !important;
    min-height: 2.5rem;
    padding: 0.6rem 0.75rem;
}

.time-tracking-page textarea.time-tracking-input {
    min-height: 3.25rem !important;
    resize: vertical;
}

.templates-hero,
.templates-panel,
.templates-command-strip article,
.templates-empty {
    background: var(--innvilo-surface, #ffffff) !important;
    border: 1px solid var(--innvilo-border, #dbdad6) !important;
    border-radius: var(--innvilo-radius, 0.5rem) !important;
    box-shadow: var(--innvilo-shadow, 0 1rem 2.5rem rgba(15, 45, 70, 0.05)) !important;
}

.templates-hero {
    align-items: end;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 1.15rem 1.25rem;
}

.templates-hero span,
.templates-hero-status span,
.templates-command-strip span,
.templates-panel header span,
.templates-selected-summary span,
.templates-form label > span,
.designer-card span,
.templates-data-groups article > span,
.templates-type-card span,
.templates-variant-list span {
    color: var(--innvilo-teal, #006a62);
    display: block;
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.templates-hero h1,
.templates-panel h2,
.templates-selected-summary h3 {
    color: var(--innvilo-navy-deep, #00182c);
    font-family: "Hanken Grotesk", Inter, "Segoe UI", system-ui, sans-serif;
    letter-spacing: 0;
    margin: 0;
}

.templates-hero h1 {
    font-size: clamp(1.75rem, 2.2vw, 2.45rem);
    line-height: 1.05;
    margin-top: 0.2rem;
}

.templates-hero p,
.templates-flow p,
.templates-notice p,
.templates-selected-summary p,
.designer-card p,
.templates-data-summary p,
.templates-type-card small,
.templates-type-card em,
.templates-variant-list small {
    color: var(--innvilo-muted, #43474d);
    margin: 0;
}

.templates-hero-status,
.templates-notice,
.designer-card,
.templates-data-summary,
.templates-selected-summary {
    background: var(--innvilo-surface-soft, #f5f3ef);
    border: 1px solid var(--innvilo-border, #dbdad6);
    border-radius: var(--innvilo-radius, 0.5rem);
}

.templates-hero-status {
    display: grid;
    gap: 0.2rem;
    min-width: 13rem;
    padding: 0.75rem 0.9rem;
}

.templates-hero-status strong,
.templates-command-strip strong,
.templates-panel header > strong,
.templates-type-card strong,
.templates-variant-list strong,
.designer-card strong,
.templates-data-summary strong,
.templates-notice strong,
.templates-flow strong,
.templates-selected-summary dd,
.templates-selected-summary h3 {
    color: var(--innvilo-navy-deep, #00182c);
}

.templates-command-strip {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.templates-command-strip article,
.templates-panel,
.templates-empty {
    padding: 1rem;
}

.templates-command-strip strong {
    font-size: 1.55rem;
    line-height: 1;
}

.templates-layout {
    align-items: start;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(18rem, 0.68fr) minmax(32rem, 1.35fr) minmax(20rem, 0.82fr);
}

.templates-panel {
    align-content: start;
    display: grid;
    gap: 1rem;
}

.templates-panel > header {
    align-items: start;
    display: flex;
    gap: 0.8rem;
    justify-content: space-between;
}

.templates-panel h2 {
    font-size: 1.1rem;
    line-height: 1.15;
    margin-top: 0.18rem;
}

.templates-panel header > strong {
    background: var(--innvilo-teal-soft, #e3fbf7);
    border: 1px solid rgba(0, 106, 98, 0.2);
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 900;
    padding: 0.35rem 0.65rem;
    white-space: nowrap;
}

.templates-type-list,
.templates-workspace,
.templates-variant-list,
.templates-data-groups {
    display: grid;
    gap: 0.7rem;
}

.templates-type-list {
    max-height: min(46rem, calc(100vh - 18rem));
    overflow: auto;
    padding-right: 0.15rem;
    scrollbar-gutter: stable;
}

.templates-type-card,
.templates-variant-list button {
    background: var(--innvilo-surface, #ffffff) !important;
    border: 1px solid var(--innvilo-border, #dbdad6) !important;
    border-radius: var(--innvilo-radius, 0.5rem) !important;
    color: var(--innvilo-text, #1b1c1a) !important;
    display: grid !important;
    gap: 0.25rem;
    padding: 0.85rem !important;
    text-align: left;
    white-space: normal !important;
    width: 100%;
}

.templates-type-card {
    border-left: 0.28rem solid transparent !important;
}

.templates-type-card em {
    font-size: 0.78rem;
    font-style: normal;
}

.templates-type-card:hover,
.templates-type-card.is-active,
.templates-variant-list button:hover,
.templates-variant-list button.is-active {
    border-color: var(--innvilo-teal, #006a62) !important;
    box-shadow: 0 0.7rem 1.5rem rgba(0, 106, 98, 0.12);
}

.templates-type-card.is-active {
    border-left-color: var(--innvilo-teal, #006a62) !important;
}

.templates-selected-summary {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) minmax(14rem, 0.42fr);
    padding: 1rem;
}

.templates-selected-summary h3 {
    font-size: 1.55rem;
    line-height: 1.1;
    margin: 0.15rem 0 0.45rem;
}

.templates-selected-summary dl {
    display: grid;
    gap: 0.55rem;
    margin: 0;
}

.templates-selected-summary dl div {
    background: var(--innvilo-surface, #ffffff);
    border: 1px solid var(--innvilo-border, #dbdad6);
    border-radius: var(--innvilo-radius, 0.5rem);
    padding: 0.65rem;
}

.templates-selected-summary dt {
    color: var(--innvilo-muted, #43474d);
    font-size: 0.78rem;
}

.templates-selected-summary dd {
    font-weight: 900;
    margin: 0.1rem 0 0;
}

.templates-flow {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.templates-flow article {
    align-items: start;
    background: var(--innvilo-surface, #ffffff);
    border: 1px solid var(--innvilo-border, #dbdad6);
    border-radius: var(--innvilo-radius, 0.5rem);
    display: grid;
    gap: 0.7rem;
    grid-template-columns: auto 1fr;
    padding: 0.85rem;
}

.templates-flow article > span {
    align-items: center;
    background: var(--innvilo-surface-soft, #f5f3ef);
    border-radius: 999px;
    color: var(--innvilo-teal, #006a62);
    display: inline-flex;
    font-weight: 900;
    height: 2rem;
    justify-content: center;
    width: 2rem;
}

.templates-flow article.is-complete {
    border-color: rgba(0, 106, 98, 0.24);
}

.templates-flow article.is-complete > span {
    background: var(--innvilo-teal-soft, #e3fbf7);
}

.templates-notice,
.designer-card,
.templates-data-summary {
    display: grid;
    gap: 0.45rem;
    padding: 0.85rem;
}

.templates-form {
    display: grid;
    gap: 0.85rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.templates-form label {
    display: grid;
    gap: 0.35rem;
}

.templates-form select {
    background: var(--innvilo-surface, #ffffff);
    border: 1px solid var(--innvilo-border, #dbdad6);
    border-radius: var(--innvilo-radius, 0.5rem);
    color: var(--innvilo-text, #1b1c1a);
    min-height: 2.35rem;
    padding: 0.35rem 0.55rem;
}

.templates-check {
    align-content: end;
    align-items: center;
    display: flex !important;
    gap: 0.55rem !important;
    grid-column: 1 / -1;
}

.templates-check input {
    height: 1rem;
    width: 1rem;
}

.designer-card {
    grid-template-columns: minmax(0, 1fr) auto;
}

.designer-actions,
.templates-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.designer-actions {
    justify-content: flex-end;
}

.templates-actions {
    justify-content: flex-start;
}

.templates-action-link {
    align-items: center;
    background: var(--innvilo-surface, #ffffff);
    border: 1px solid var(--innvilo-border, #dbdad6);
    border-radius: var(--innvilo-radius, 0.5rem);
    color: var(--innvilo-navy-deep, #00182c);
    display: inline-flex;
    font-weight: 800;
    min-height: 2.25rem;
    padding: 0.45rem 0.8rem;
    text-decoration: none;
}

.templates-action-link:not(.is-disabled):hover {
    border-color: var(--innvilo-teal, #006a62);
    box-shadow: 0 0.65rem 1.4rem rgba(0, 106, 98, 0.12);
}

.templates-action-link.is-disabled {
    color: var(--innvilo-muted, #43474d);
    opacity: 0.6;
}

.templates-data-groups article {
    border: 1px solid var(--innvilo-border, #dbdad6);
    border-radius: var(--innvilo-radius, 0.5rem);
    display: grid;
    gap: 0.45rem;
    padding: 0.8rem;
}

.templates-data-groups ul {
    display: grid;
    gap: 0.35rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.templates-data-groups li {
    color: var(--innvilo-text, #1b1c1a);
    font-size: 0.9rem;
    line-height: 1.3;
    padding-left: 1rem;
    position: relative;
}

.templates-data-groups li::before {
    background: var(--innvilo-teal, #006a62);
    border-radius: 999px;
    content: "";
    height: 0.35rem;
    left: 0;
    position: absolute;
    top: 0.45rem;
    width: 0.35rem;
}

@media (max-width: 1320px) {
    .templates-layout {
        grid-template-columns: minmax(17rem, 0.7fr) minmax(0, 1.3fr);
    }

    .templates-side {
        grid-column: 1 / -1;
    }
}

@media (max-width: 920px) {
    .templates-hero,
    .templates-layout,
    .templates-selected-summary,
    .designer-card {
        display: grid;
        grid-template-columns: 1fr;
    }

    .templates-command-strip,
    .templates-flow,
    .templates-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .templates-type-list {
        max-height: none;
        overflow: visible;
        padding-right: 0;
    }

    .designer-actions {
        justify-content: flex-start;
    }
}

@media (max-width: 640px) {
    .templates-command-strip,
    .templates-flow,
    .templates-form,
    .templates-panel > header,
    .designer-actions,
    .templates-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .templates-hero,
    .templates-panel,
    .templates-command-strip article {
        padding: 0.85rem;
    }
}
