:root {
    --hotel-ink: #132c2c;
    --hotel-ink-soft: #365150;
    --hotel-petrol: #0d6b66;
    --hotel-petrol-dark: #07534f;
    --hotel-mint: #dff1ec;
    --hotel-paper: #f5f2ea;
    --hotel-canvas: #ebe7dd;
    --hotel-warm: #c96f3b;
    --hotel-border: rgba(19, 44, 44, 0.12);
    --hotel-shadow: 0 18px 45px rgba(32, 49, 45, 0.08);
    --hotel-radius: 18px;
}

/* Monthly planning keeps the existing HotelOS palette and readable comparisons. */
.budget-page .module-panel > p { max-width: 78ch; }
.budget-page #budgets-workspace > section,
.budget-page #budget-month-workspace > section { margin-bottom: 1rem; }
.budget-page table th:not(:first-child),
.budget-page table td:not(:first-child),
.budget-page input[type="number"] { text-align: right; font-variant-numeric: tabular-nums; }
.budget-page table input[type="number"] { min-width: 8.5rem; }

/* Financial reconciliation control desk */
.reconciliation-page { --reconcile-ink: #123837; --reconcile-mint: #e2f4ef; }
.reconciliation-overview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: 1rem;
}
.reconciliation-filter {
    display: grid;
    grid-template-columns: repeat(2, minmax(12rem, 1fr)) auto auto;
    align-items: end;
    gap: .75rem;
    padding: .85rem 1rem;
    margin-bottom: 1rem;
}
.reconciliation-filter .form-field { margin: 0; }
.reconciliation-batches { overflow: hidden; margin-bottom: 1rem; }
.reconciliation-batch-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    padding: 1rem;
}
.reconciliation-batch-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas: "icon copy state" "icon copy difference";
    gap: .2rem .75rem;
    min-height: 6.2rem;
    padding: .9rem;
    color: var(--reconcile-ink);
    text-decoration: none;
    background: #fff;
    border: 1px solid #dbe3e0;
    border-radius: .8rem;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.reconciliation-batch-card:hover,
.reconciliation-batch-card:focus-visible {
    color: var(--reconcile-ink);
    border-color: #82bdb1;
    box-shadow: 0 .45rem 1.2rem rgba(25, 67, 62, .09);
}
.reconciliation-batch-card.active {
    border-color: #08776d;
    box-shadow: inset 0 0 0 1px #08776d;
    background: #f7fcfa;
}
.reconciliation-source-icon {
    grid-area: icon;
    display: grid;
    place-items: center;
    align-self: start;
    width: 2.55rem;
    height: 2.55rem;
    color: #08776d;
    background: var(--reconcile-mint);
    border-radius: .7rem;
    font-size: 1.15rem;
}
.reconciliation-source-icon.source-card { color: #376ca5; background: #e8f1fa; }
.reconciliation-source-icon.source-cash { color: #9b6127; background: #faefe1; }
.reconciliation-source-icon.source-voucher { color: #6e55a8; background: #f0ebfa; }
.reconciliation-batch-copy { grid-area: copy; display: flex; min-width: 0; flex-direction: column; }
.reconciliation-batch-copy small,
.reconciliation-batch-copy span { color: #687b79; font-size: .72rem; }
.reconciliation-batch-copy strong { margin: .15rem 0 .25rem; font-family: var(--font-display); font-size: 1rem; }
.reconciliation-batch-state {
    grid-area: state;
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    align-self: start;
    color: #786d54;
    font-size: .7rem;
    font-weight: 700;
}
.reconciliation-batch-state.status-approved { color: #08776d; }
.reconciliation-batch-difference { grid-area: difference; align-self: end; justify-self: end; font-size: .8rem; font-weight: 750; }
.reconciliation-batch-difference.is-different { color: #bd5c2c; }
.reconciliation-control { overflow: hidden; margin-bottom: 1rem; }
.reconciliation-control-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid #dce3e1;
}
.reconciliation-control-head h2 { margin: .15rem 0; font-family: var(--font-display); font-size: clamp(1.3rem, 2vw, 1.75rem); }
.reconciliation-control-head p { margin: 0; color: #617674; font-size: .8rem; }
.reconciliation-control-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .5rem; }
.reconciliation-ledger {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    background: #dce3e1;
    border-bottom: 1px solid #dce3e1;
}
.reconciliation-ledger article { display: grid; grid-template-columns: 1fr auto; gap: .1rem .5rem; padding: 1rem 1.15rem; background: #fbfcfb; }
.reconciliation-ledger small { grid-column: 1 / -1; color: #667a78; font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; }
.reconciliation-ledger strong { font-family: var(--font-display); font-size: 1.55rem; line-height: 1; }
.reconciliation-ledger span { align-self: end; color: #687b79; font-size: .72rem; }
.reconciliation-ledger article.critical { color: #a74e25; background: #fff7ee; }
.reconciliation-ledger article.balanced { color: #08776d; background: #f0faf6; }
.reconciliation-warning,
.reconciliation-balanced,
.reconciliation-approval-seal {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin: .9rem 1rem;
    padding: .8rem 1rem;
    border-radius: .65rem;
}
.reconciliation-warning { color: #8f4929; background: #fff0e4; }
.reconciliation-balanced,
.reconciliation-approval-seal { color: #086b62; background: #e5f6f0; }
.reconciliation-warning > i,
.reconciliation-balanced > i,
.reconciliation-approval-seal > i { font-size: 1.45rem; }
.reconciliation-warning div,
.reconciliation-balanced div,
.reconciliation-approval-seal div { display: flex; flex-direction: column; }
.reconciliation-warning span,
.reconciliation-balanced span,
.reconciliation-approval-seal span { opacity: .8; font-size: .76rem; }
.reconciliation-table-wrap { border-top: 1px solid #e0e6e4; }
.reconciliation-table td { vertical-align: middle; }
.reconciliation-table td:first-child { min-width: 13rem; }
.reconciliation-table td:nth-child(3) { min-width: 17rem; }
.reconciliation-match,
.reconciliation-suggestion { display: inline-flex; align-items: center; gap: .5rem; color: #214b48; }
.reconciliation-match > i,
.reconciliation-suggestion > i { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: .55rem; background: #e5f4f0; }
.reconciliation-suggestion > i { color: #9b6127; background: #faefe1; }
.reconciliation-match span,
.reconciliation-suggestion span { display: flex; flex-direction: column; }
.reconciliation-match small,
.reconciliation-suggestion small { max-width: 26rem; }
.money-value.negative { color: #b34f32; }
.muted-placeholder,
.locked-action { color: #7f8e8d; font-size: .75rem; }
.resolution-note { display: block; max-width: 15rem; margin-top: .3rem; color: #6c7776; overflow-wrap: anywhere; }
.inline-form { display: inline-flex; margin-left: .25rem; }
.posfull-control-strip { margin-bottom: 1rem; overflow: hidden; }
.posfull-control-strip > p { margin: -.25rem 1rem .9rem; color: #667a78; font-size: .8rem; }
.posfull-run-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; padding: 0 1rem 1rem; }
.posfull-run-strip article { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .65rem; padding: .75rem; background: #f7faf9; border: 1px solid #dfe6e4; border-radius: .65rem; }
.posfull-run-strip article > span { display: grid; place-items: center; width: 2rem; height: 2rem; color: #08776d; background: #e2f4ef; border-radius: .55rem; }
.posfull-run-strip article.status-differences > span,
.posfull-run-strip article.status-failed > span { color: #b6542b; background: #fae9df; }
.posfull-run-strip article div { display: flex; min-width: 0; flex-direction: column; }
.posfull-run-strip article small { color: #687b79; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.posfull-run-strip article b { color: #687b79; }
.form-help-link { display: inline-flex; align-items: center; gap: .35rem; margin-bottom: 1rem; font-size: .8rem; }
.approval-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: .4rem; margin-bottom: 1rem; }
.approval-summary span { display: flex; flex-direction: column; padding: .65rem; color: #687b79; background: #f2f6f4; border-radius: .55rem; font-size: .7rem; }
.approval-summary strong { color: #173b39; font-family: var(--font-display); font-size: 1rem; }

@media (max-width: 1180px) {
    .reconciliation-overview,
    .reconciliation-ledger { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .reconciliation-batch-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .posfull-run-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
    .reconciliation-overview,
    .reconciliation-batch-grid,
    .reconciliation-ledger,
    .posfull-run-strip { grid-template-columns: 1fr; }
    .reconciliation-filter { grid-template-columns: 1fr 1fr; }
    .reconciliation-filter .form-field { grid-column: 1 / -1; }
    .reconciliation-control-head { align-items: stretch; flex-direction: column; }
    .reconciliation-control-actions { justify-content: flex-start; }
    .reconciliation-batch-card { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "icon copy" "state difference"; }
    .reconciliation-batch-state { align-self: end; }
}

/* Conference, banquet & events */
.events-page {
    --event-accent: #087a70;
    --event-ink: #183c39;
    --event-warm: #ca6b38;
}

.events-header {
    position: relative;
}

.events-header::after {
    content: "";
    position: absolute;
    right: min(4vw, 3rem);
    bottom: -.9rem;
    width: clamp(120px, 18vw, 260px);
    height: 3px;
    background: linear-gradient(90deg, transparent, var(--event-warm));
}

.event-metrics {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: 1rem;
}

.event-metrics .compact-status-card {
    min-width: 0;
}

.metric-icon.violet {
    color: #655493;
    background: #eee9f8;
}

.event-filter {
    display: grid;
    grid-template-columns: minmax(130px, .7fr) minmax(130px, .7fr) minmax(170px, 1fr) auto auto;
    gap: .75rem;
    align-items: end;
    margin-bottom: 1rem;
    padding: .8rem;
}

.event-filter .form-field {
    margin: 0;
}

.event-filter .btn {
    min-height: 42px;
}

.event-workspace-grid {
    display: grid;
    grid-template-columns: minmax(250px, 320px) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
    min-width: 0;
}

.event-pipeline,
.event-detail,
.event-detail-main,
.event-side-stack {
    min-width: 0;
}

.event-pipeline {
    position: sticky;
    top: 76px;
    max-height: calc(100vh - 96px);
    overflow: hidden;
}

.event-booking-list {
    max-height: calc(100vh - 190px);
    overflow-y: auto;
    overscroll-behavior: contain;
}

.event-booking-link {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    gap: .7rem;
    align-items: center;
    padding: .85rem .9rem;
    color: var(--hotel-ink);
    border-top: 1px solid var(--hotel-border);
    text-decoration: none;
    transition: background-color 160ms ease, box-shadow 160ms ease;
}

.event-booking-link:hover,
.event-booking-link:focus-visible {
    color: var(--hotel-ink);
    background: #f7faf8;
}

.event-booking-link:focus-visible {
    position: relative;
    z-index: 1;
    outline: 3px solid rgba(8, 122, 112, .3);
    outline-offset: -3px;
}

.event-booking-link.active {
    background: linear-gradient(90deg, #e3f2ed 0, #f8fbf9 100%);
    box-shadow: inset 4px 0 var(--event-accent);
}

.event-booking-link time {
    display: grid;
    min-height: 44px;
    place-content: center;
    text-align: center;
    color: var(--event-accent);
    background: #e7f2ef;
    border-radius: 10px;
}

.event-booking-link time strong,
.event-booking-link time small,
.event-booking-copy strong,
.event-booking-copy small {
    display: block;
}

.event-booking-link time strong {
    font-size: 1.1rem;
    line-height: 1;
}

.event-booking-link time small {
    margin-top: .15rem;
    font-size: .65rem;
    font-weight: 800;
    text-transform: uppercase;
}

.event-booking-copy {
    min-width: 0;
}

.event-booking-copy strong,
.event-booking-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.event-booking-copy small {
    margin-top: .15rem;
    color: var(--hotel-muted);
    font-size: .72rem;
}

.event-booking-link > .status-pill {
    font-size: .62rem;
}

.event-detail {
    display: grid;
    gap: 1rem;
}

.event-hero {
    position: relative;
    overflow: hidden;
    padding: 1.15rem 1.25rem;
}

.event-hero::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, var(--event-accent), #9acdc4 58%, var(--event-warm));
}

.event-hero-main,
.event-row-title,
.event-action-bar,
.event-row-actions,
.event-inline-tools,
.panel-heading-actions {
    display: flex;
    align-items: center;
    gap: .55rem;
}

.event-hero-main {
    justify-content: space-between;
    align-items: flex-start;
}

.event-hero-main h2 {
    margin: .15rem 0 .35rem;
    font-family: var(--hotel-display-font);
    font-size: clamp(1.65rem, 3vw, 2.55rem);
    font-weight: 400;
    letter-spacing: -.035em;
}

.event-hero-main p:last-child {
    margin: 0;
    color: var(--hotel-muted);
}

.event-hero-facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .6rem;
    margin-top: 1rem;
}

.event-hero-facts span {
    min-width: 0;
    padding: .7rem .75rem;
    background: #f6f8f6;
    border: 1px solid #e1e7e3;
    border-radius: 10px;
}

.event-hero-facts small,
.event-hero-facts strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.event-hero-facts small {
    color: var(--hotel-muted);
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.event-hero-facts strong {
    margin-top: .2rem;
}

.event-action-bar {
    flex-wrap: wrap;
    margin-top: .9rem;
    padding-top: .9rem;
    border-top: 1px solid var(--hotel-border);
}

.event-action-bar form {
    display: inline-flex;
    margin: 0;
}

.event-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(230px, .65fr);
    gap: 1rem;
    align-items: start;
    min-width: 0;
}

.event-detail-main,
.event-side-stack {
    display: grid;
    gap: 1rem;
}

.event-detail .panel-heading h3 {
    margin: 0;
    font-family: var(--hotel-display-font);
    font-size: 1.25rem;
    font-weight: 400;
}

.event-function-row {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    gap: .85rem;
    align-items: center;
    padding: .9rem 1rem;
    border-top: 1px solid var(--hotel-border);
}

.event-function-row > time {
    color: var(--event-accent);
    text-align: center;
}

.event-function-row > time strong,
.event-function-row > time small,
.event-function-row > div > small {
    display: block;
}

.event-function-row > time strong {
    font-size: 1.05rem;
}

.event-function-row > div > small {
    margin-top: .2rem;
    color: var(--hotel-muted);
}

.event-row-title {
    flex-wrap: wrap;
}

.event-resource-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .45rem;
}

.event-resource-chips span {
    padding: .25rem .45rem;
    color: #3d5f5b;
    background: #edf4f1;
    border-radius: 999px;
    font-size: .7rem;
}

.event-row-actions {
    justify-content: flex-end;
    flex-wrap: wrap;
}

.event-row-actions form {
    margin: 0;
}

.event-inline-tools {
    justify-content: flex-end;
    padding: .75rem 1rem;
    border-top: 1px solid var(--hotel-border);
}

.event-service-table > article {
    display: grid;
    grid-template-columns: minmax(160px, 1.6fr) minmax(90px, .7fr) minmax(100px, .7fr) auto auto;
    gap: .65rem;
    align-items: center;
    padding: .8rem 1rem;
    border-top: 1px solid var(--hotel-border);
}

.event-service-table [role="cell"] {
    min-width: 0;
}

.event-service-table [role="cell"] strong,
.event-service-table [role="cell"] small {
    display: block;
}

.event-service-table [role="cell"] small {
    margin-top: .15rem;
    color: var(--hotel-muted);
}

.event-task-list > article {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto auto;
    gap: .7rem;
    align-items: center;
    padding: .75rem 1rem;
    border-top: 1px solid var(--hotel-border);
}

.event-task-icon {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    color: var(--event-accent);
    background: #e6f2ee;
    border-radius: 9px;
}

.event-task-list strong,
.event-task-list small {
    display: block;
}

.event-task-list small {
    color: var(--hotel-muted);
}

.event-finance-card,
.event-side-stack .panel {
    padding-bottom: .8rem;
}

.event-finance-card dl,
.event-contact-list {
    margin: 0;
    padding: 0 .9rem;
}

.event-finance-card dl > div,
.event-contact-list > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
    gap: .6rem;
    padding: .6rem 0;
    border-top: 1px solid var(--hotel-border);
}

.event-finance-card dt,
.event-contact-list dt {
    color: var(--hotel-muted);
}

.event-finance-card dd,
.event-contact-list dd {
    margin: 0;
    overflow-wrap: anywhere;
    text-align: right;
    font-weight: 700;
}

.event-finance-card > form {
    padding: .75rem .9rem 0;
}

.event-finance-card > form .btn {
    width: 100%;
}

.event-config-summary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .65rem;
    padding: 0 .9rem;
}

.event-config-summary span {
    padding: .75rem;
    text-align: center;
    background: #f4f7f5;
    border-radius: 10px;
}

.event-config-summary strong,
.event-config-summary small {
    display: block;
}

.event-config-summary strong {
    font: 400 1.65rem var(--hotel-display-font);
}

.event-empty-detail {
    min-height: 360px;
}

.status-inquiry,
.status-quoted {
    color: #3d6175;
    background: #e4eef4;
}

.status-in_progress {
    color: #8b4f28;
    background: #f8e7dc;
}

.status-planned,
.status-pending {
    color: #795720;
    background: #f7eccf;
}

@media (max-width: 1250px) {
    .event-metrics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .event-detail-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .event-side-stack {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .event-workspace-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .event-pipeline {
        position: static;
        max-height: none;
    }

    .event-booking-list {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-height: none;
    }

    .event-side-stack {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 720px) {
    .event-metrics,
    .event-hero-facts,
    .event-booking-list {
        grid-template-columns: minmax(0, 1fr);
    }

    .event-filter {
        grid-template-columns: 1fr 1fr;
    }

    .event-filter .form-field:nth-child(3) {
        grid-column: 1 / -1;
    }

    .event-filter .btn {
        width: 100%;
    }

    .event-hero-main {
        gap: .75rem;
    }

    .event-function-row,
    .event-task-list > article,
    .event-service-table > article {
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
    }

    .event-function-row > time {
        text-align: left;
    }

    .event-function-row > time strong,
    .event-function-row > time small {
        display: inline;
    }

    .event-row-actions {
        justify-content: flex-start;
    }

    .event-service-table > article {
        gap: .35rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .event-booking-link {
        transition: none;
    }
}

/* Guest requests: a time-led shared queue, deliberately denser than setup pages. */
.guest-request-heading {
    align-items: flex-end;
}

.guest-request-pulse {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin: 1.25rem 0;
}

.guest-request-pulse article {
    display: flex;
    align-items: center;
    gap: .8rem;
    min-width: 0;
    padding: .9rem 1rem;
    border: 1px solid var(--hotel-border);
    border-radius: 14px;
    background: rgba(255, 255, 255, .76);
}

.guest-request-pulse small,
.guest-request-pulse strong {
    display: block;
}

.guest-request-pulse strong {
    color: var(--hotel-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.65rem;
    line-height: 1;
}

.request-pulse-icon {
    display: grid;
    place-items: center;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    border-radius: 11px;
    color: var(--hotel-petrol);
    background: var(--hotel-mint);
    font-size: 1.15rem;
}

.request-pulse-icon.tone-coral { color: #b84f25; background: #fff0e8; }
.request-pulse-icon.tone-amber { color: #9a641b; background: #fff5d9; }
.request-pulse-icon.tone-blue { color: #266b93; background: #e8f4fb; }

.guest-request-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(280px, .65fr);
    align-items: start;
    gap: 1rem;
}

.request-list {
    display: grid;
}

.request-card {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: .9rem;
    padding: 1rem;
    border-top: 1px solid var(--hotel-border);
    border-left: 3px solid transparent;
}

.request-card:first-child { border-top: 0; }
.request-card.priority-high { border-left-color: #d98232; }
.request-card.priority-critical,
.request-card.is-overdue { border-left-color: #c45531; background: rgba(255, 246, 241, .6); }

.request-card-marker {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 13px;
    color: var(--hotel-petrol);
    background: var(--hotel-mint);
    font-size: 1.25rem;
}

.request-card.is-overdue .request-card-marker {
    color: #b84f25;
    background: #fff0e8;
}

.request-card-main,
.request-card-topline {
    min-width: 0;
}

.request-card-topline {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
}

.request-tags,
.request-meta,
.request-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
}

.request-tags > span:not(.status-pill) {
    padding: .2rem .45rem;
    border-radius: 999px;
    color: var(--hotel-ink-soft);
    background: #f2f4f3;
    font-size: .72rem;
    font-weight: 700;
}

.request-tags .escalation-tag {
    color: #8b4f10;
    background: #fff0cc;
}

.request-sla {
    flex: 0 0 auto;
    color: var(--hotel-ink-soft);
    font-size: .76rem;
    font-weight: 700;
}

.request-sla.overdue { color: #b84f25; }

.request-card h3 {
    margin: .45rem 0 .15rem;
    color: var(--hotel-ink);
    font-size: 1.05rem;
}

.request-guest,
.request-details { margin: 0; }
.request-guest span { margin-left: .5rem; color: var(--hotel-ink-soft); font-size: .8rem; }
.request-details { margin-top: .55rem; color: var(--hotel-ink-soft); }

.request-meta {
    margin-top: .75rem;
    color: var(--hotel-ink-soft);
    font-size: .76rem;
}

.request-meta span { display: inline-flex; align-items: center; gap: .25rem; }
.request-meta .notified { color: var(--hotel-petrol); font-weight: 700; }
.request-actions { margin-top: .9rem; }
.request-actions form { margin: 0; }

.notification-review-panel { padding: 1.1rem; margin-bottom: 1.2rem; }
.notification-review-panel > p { max-width: 78ch; }
.notification-review-item { padding: .7rem 0; border-top: 1px solid var(--hotel-border); }
.notification-review-item > summary { cursor: pointer; overflow-wrap: anywhere; }
.notification-review-item > form { max-width: 42rem; padding-top: 1rem; }
.notification-review-item label { display: block; margin-bottom: .4rem; }
.notification-review-item small { display: block; margin-top: .4rem; }
.notification-review-item select { max-width: 100%; }
.trace-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem; }
.trace-page .panel { margin-bottom: 1rem; min-width: 0; }
.trace-page p { max-width: 78ch; overflow-wrap: anywhere; }
.trace-row { border-top: 1px solid var(--hotel-border); padding: 1rem 0; }
.trace-row h3 { font-size: 1.05rem; }
.trace-page label, .trace-page small { display: block; }
.trace-page .form-field { margin-bottom: 1rem; }
.standing-charge-page > .panel { margin-bottom: 1rem; min-width: 0; }
.standing-charge-page > section.panel { padding: 1.25rem; }
.departure-exception-page > .panel { padding: 1.25rem; margin-top: 1rem; }
.departure-exception-page .module-heading { display: flex; align-items: start; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
.departure-exception-page .panel > p,
.departure-exception-page form { max-width: 78ch; }
.departure-exception-page .btn { max-width: 100%; white-space: normal; }
.stay-timing-page > .panel { margin-bottom: 1rem; min-width: 0; }
.stay-timing-page > section.panel { padding: 1.25rem; }
.stay-timing-page .form-panel form { padding: 0; }
.stay-timing-page .panel > p,
.stay-timing-page form { max-width: 78ch; }
.stay-timing-page .btn { max-width: 100%; white-space: normal; }
.timing-history-entry { padding-block: 1rem; border-bottom: 1px solid var(--line); }
.timing-history-entry p { overflow-wrap: anywhere; }
.partner-finance-page .commission-history-panel,
.commission-revision-grid > .panel { padding: 1.25rem; }
.commission-history-panel > p,
.commission-revision-page > p { max-width: 78ch; }
.commission-history-entry { padding-block: 1rem; border-bottom: 1px solid var(--line); }
.commission-history-entry .btn { max-width: 100%; white-space: normal; }
.commission-revision-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 1rem; }
.commission-revision-grid dd { margin: .25rem 0 1rem; overflow-wrap: anywhere; }
.standing-charge-page .panel-heading { padding: 0 0 1rem; margin-bottom: 1rem; }
.standing-charge-page p { max-width: 78ch; overflow-wrap: anywhere; }
.standing-charge-page .form-field { margin: 1rem 0; }
.standing-charge-page label { display: block; margin-bottom: .4rem; }
.standing-charge-page .form-control { max-width: 100%; }
.standing-charge-page .form-field > form { max-width: 42rem; }
.standing-charge-page .form-field button { margin-top: .6rem; }
@media (max-width: 900px) { .trace-layout { grid-template-columns: minmax(0, 1fr); } }
.request-action-menu { position: relative; }
.request-action-menu > summary { list-style: none; cursor: pointer; }
.request-action-menu > summary::-webkit-details-marker { display: none; }
.request-action-menu[open] > form,
.request-action-menu[open] > .request-more-actions {
    position: absolute;
    z-index: 8;
    top: calc(100% + .4rem);
    right: 0;
    width: min(340px, calc(100vw - 3rem));
    padding: .85rem;
    border: 1px solid var(--hotel-border);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(21, 43, 42, .18);
}

.request-action-menu label {
    display: block;
    margin-bottom: .35rem;
    color: var(--hotel-ink);
    font-size: .78rem;
    font-weight: 700;
}

.request-action-menu textarea,
.request-action-menu input { margin-bottom: .6rem; }
.request-more-actions { display: grid; gap: .9rem; }
.request-more-actions form + form { padding-top: .9rem; border-top: 1px solid var(--hotel-border); }

.request-history ol { margin: 0; padding: 0; list-style: none; }
.request-history li {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: .65rem;
    padding: .85rem 1rem;
    border-top: 1px solid var(--hotel-border);
}

.request-history li:first-child { border-top: 0; }
.request-history strong,
.request-history small { display: block; }
.request-history small { color: var(--hotel-ink-soft); }

@media (max-width: 1050px) {
    .guest-request-layout { grid-template-columns: minmax(0, 1fr); }
    .request-history ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .guest-request-heading { align-items: stretch; }
    .guest-request-heading .btn { width: 100%; }
    .guest-request-pulse { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .request-card { grid-template-columns: 38px minmax(0, 1fr); padding: .85rem; }
    .request-card-marker { width: 38px; height: 38px; }
    .request-card-topline { align-items: flex-start; flex-direction: column; }
    .request-actions > form,
    .request-actions > form .btn,
    .request-actions > details,
    .request-actions > details > summary { width: 100%; }
    .request-action-menu[open] > form,
    .request-action-menu[open] > .request-more-actions { position: static; width: 100%; margin-top: .4rem; }
    .request-history ol { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
    .guest-request-pulse { grid-template-columns: 1fr; }
    .request-guest span { display: block; margin: .15rem 0 0; }
}

* {
    box-sizing: border-box;
}

html {
    min-width: 100%;
    min-height: 100%;
    max-width: 100%;
    overflow-x: clip;
    background: var(--hotel-ink);
    scrollbar-color: rgba(255, 255, 255, 0.3) var(--hotel-ink);
}

body {
    width: 100%;
    min-height: 100%;
    max-width: 100%;
    overflow-x: clip;
    margin: 0;
    color: var(--hotel-ink);
    background:
        radial-gradient(circle at 90% 8%, rgba(13, 107, 102, 0.10), transparent 28rem),
        var(--hotel-paper);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.5;
}

a {
    color: inherit;
    text-decoration: none;
}

.skip-link {
    position: fixed;
    z-index: 1000;
    top: 0.75rem;
    left: 0.75rem;
    padding: 0.75rem 1rem;
    color: #fff;
    background: var(--hotel-petrol-dark);
    border-radius: 0.5rem;
    transform: translateY(-150%);
}

.skip-link:focus {
    transform: translateY(0);
}

/* Compact desktop workspace; browser zoom and printed documents remain independent. */
@media screen and (min-width: 1101px) {
    html.hotel-staff-ui {
        zoom: .8;
        margin: 0;
    }

    .hotel-staff-ui .app-shell {
        left: 0;
        width: 100%;
        min-height: calc(100dvh / .8);
    }

    .hotel-staff-ui .app-sidebar {
        height: calc(100dvh / .8);
    }

    .hotel-staff-ui .config-drawer {
        height: calc(100dvh / .8);
        max-height: calc(100dvh / .8);
    }
}

.app-shell {
    position: relative;
    left: calc((100vw - 100%) * -1);
    width: 100vw;
    min-height: 100vh;
    min-height: 100dvh;
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
}

.app-sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    padding: 1.5rem 1rem;
    color: rgba(255, 255, 255, 0.78);
    background:
        linear-gradient(155deg, rgba(255, 255, 255, 0.04), transparent 34%),
        var(--hotel-ink);
}

.brand {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    padding: 0.2rem 0.4rem 1.5rem;
    color: #fff;
}

.brand-mark {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    color: var(--hotel-ink);
    background: #d8c7a1;
    border-radius: 13px 13px 4px 13px;
    font-size: 1.45rem;
}

.brand strong,
.brand small,
.user-chip strong,
.user-chip small {
    display: block;
}

.brand strong {
    letter-spacing: 0.12em;
    font-size: 0.88rem;
}

.brand small {
    margin-top: 0.2rem;
    color: rgba(255, 255, 255, 0.52);
    font-size: 0.78rem;
}

.main-nav {
    flex: 1;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-color: rgba(255, 255, 255, 0.22) transparent;
    scrollbar-width: thin;
}

.nav-label {
    margin: 1.2rem 0.65rem 0.45rem;
    color: rgba(255, 255, 255, 0.36);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.nav-link {
    min-height: 44px;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0.15rem 0;
    padding: 0.72rem 0.75rem;
    border-radius: 11px;
    font-size: 0.94rem;
    font-weight: 600;
    transition: color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.nav-link .ti {
    font-size: 1.2rem;
}

.nav-link:hover,
.nav-link:focus-visible,
.nav-link.active {
    color: #fff;
    background: rgba(255, 255, 255, 0.09);
}

.nav-link:hover {
    transform: translateX(2px);
}

.nav-link.active {
    box-shadow: inset 3px 0 #d8c7a1;
}

.nav-count {
    min-width: 1.5rem;
    margin-left: auto;
    padding: 0.12rem 0.4rem;
    color: var(--hotel-ink);
    background: #d8c7a1;
    border-radius: 1rem;
    text-align: center;
    font-size: 0.75rem;
}

.status-dot {
    width: 9px;
    height: 9px;
    background: #63d6a2;
    border-radius: 50%;
    box-shadow: 0 0 0 5px rgba(99, 214, 162, 0.12);
}

.app-main {
    min-width: 0;
    background:
        radial-gradient(circle at 90% 8%, rgba(13, 107, 102, 0.10), transparent 28rem),
        var(--hotel-paper);
}

.topbar {
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.8rem clamp(1.2rem, 3vw, 3rem);
    background: rgba(245, 242, 234, 0.82);
    border-bottom: 1px solid var(--hotel-border);
    backdrop-filter: blur(16px);
}

.business-date span,
.business-date strong {
    display: block;
}

.business-date span {
    color: var(--hotel-ink-soft);
    font-size: 0.74rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.business-date strong {
    margin-top: 0.18rem;
    font-size: 0.94rem;
}

.topbar-actions,
.user-chip {
    display: flex;
    align-items: center;
}

.topbar-property-context,
.property-switcher {
    display: flex;
    align-items: center;
}

.topbar-property-context {
    gap: 1.25rem;
}

.property-switcher {
    gap: 0.5rem;
}

.property-switcher label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.property-switcher .form-select {
    min-width: 210px;
    min-height: 42px;
    background-color: rgba(255, 255, 255, 0.72);
}

.property-switcher .icon-button {
    flex: 0 0 42px;
}

.topbar-actions {
    gap: 1rem;
}

.icon-button {
    position: relative;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    color: var(--hotel-ink);
    background: #fff;
    border: 1px solid var(--hotel-border);
    border-radius: 50%;
    font-size: 1.15rem;
}

.icon-button:hover,
.icon-button:focus-visible {
    border-color: var(--hotel-petrol);
}

.logout-button {
    color: var(--hotel-ink-soft);
}

.notification-popover {
    position: fixed;
    inset: 5rem 1.5rem auto auto;
    margin: 0;
    width: min(460px, calc(100% - 3rem));
    max-height: min(760px, calc(100dvh - 7rem));
    overflow: hidden;
    padding: 0;
    color: var(--hotel-ink);
    background: #fff;
    border: 1px solid #dce5e2;
    border-radius: 16px;
    box-shadow: 0 20px 64px rgba(19, 44, 44, .18), 0 3px 10px rgba(19, 44, 44, .06);
}

.notification-popover:popover-open { display: flex; flex-direction: column; }
.notification-popover::backdrop { background: transparent; }
.notification-popover-heading { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem .5rem; flex-shrink: 0; }
.notification-popover-heading h2 { margin: 0; font: 700 1.15rem/1.4 var(--tblr-font-sans-serif, sans-serif); letter-spacing: -.02em; }
#notification-popover-content { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.notification-popover-footer { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; flex-shrink: 0; border-top: 1px solid #e7eeeb; background: #f7faf9; color: var(--hotel-petrol); font-size: .85rem; font-weight: 600; }
.notification-page-intro { margin: .65rem 0 0; color: var(--hotel-ink-soft); }
.notification-surface { background: #fff; border: 1px solid #dce5e2; border-radius: 16px; overflow: hidden; box-shadow: 0 4px 20px rgba(19, 44, 44, .04); }
.notification-toolbar { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .5rem 1.25rem; }
.notification-surface .notification-toolbar { padding-top: 1rem; }
.notification-toolbar form, .notification-entry-action { margin: 0; }
.notification-summary { display: inline-flex; align-items: center; gap: .5rem; font-size: .8rem; color: var(--hotel-ink-soft); white-space: nowrap; }
.notification-status-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--hotel-petrol); }
.notification-text-action { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; padding: .4rem .5rem; border: 0; border-radius: 7px; background: transparent; color: var(--hotel-petrol); font: inherit; font-size: .8rem; font-weight: 600; cursor: pointer; }
.notification-text-action:disabled { color: #657773; cursor: default; }
.notification-tabs { display: flex; gap: 1.5rem; padding: 0 1.25rem; border-bottom: 1px solid #e7eeeb; }
.notification-tabs a { display: flex; align-items: center; min-height: 44px; padding: .65rem .15rem; border-bottom: 2px solid transparent; color: var(--hotel-ink-soft); font-size: .85rem; font-weight: 600; text-decoration: none; }
.notification-tabs a[aria-current="page"] { color: var(--hotel-petrol); border-bottom-color: var(--hotel-petrol); }
.notification-entry { display: grid; grid-template-columns: 36px minmax(0, 1fr) 44px; align-items: start; gap: .75rem; padding: 1.2rem 1.25rem; border-bottom: 1px solid #e7eeeb; background: #fff; }
.notification-entry:last-child { border-bottom: 0; }
.notification-entry-unread { background: #f5faf8; }
.notification-entry-icon { position: relative; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; color: #536b65; background: #edf2f0; font-size: 1.05rem; }
.notification-entry-unread .notification-entry-icon { color: var(--hotel-petrol); background: #e1f0eb; }
.notification-entry-unread .notification-entry-icon::after { content: ""; position: absolute; top: -2px; right: -2px; width: 8px; height: 8px; border-radius: 50%; background: var(--hotel-petrol); border: 2px solid #f5faf8; }
.notification-entry-copy { min-width: 0; overflow-wrap: anywhere; }
.notification-entry-link, .notification-entry-link:visited { display: block; color: var(--hotel-ink); text-decoration: none; }
.notification-entry-link strong { display: block; font-size: .9rem; font-weight: 600; line-height: 1.5; }
.notification-entry-unread .notification-entry-link strong { font-weight: 700; }
.notification-entry-link span { display: block; margin-top: .2rem; color: var(--hotel-ink-soft); font-size: .82rem; line-height: 1.55; }
.notification-entry-link:hover strong { text-decoration: underline; text-underline-offset: 3px; }
.notification-entry-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .75rem; margin-top: .6rem; color: #586f68; font-size: .73rem; line-height: 1.5; }
.notification-resolved { display: inline-flex; align-items: center; gap: .2rem; }
.notification-read-toggle { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 9px; background: transparent; color: var(--hotel-ink-soft); font-size: 1.15rem; cursor: pointer; }
.notification-read-toggle:hover, .notification-text-action:not(:disabled):hover { background: #e1eee8; color: var(--hotel-petrol-dark); }
.notification-center-content :focus-visible, .notification-popover :focus-visible { outline: 2px solid var(--hotel-petrol); outline-offset: 3px; }
.notification-pagination { display: flex; align-items: center; justify-content: flex-end; gap: 1rem; padding: .75rem 1.25rem; border-top: 1px solid #e7eeeb; font-size: .8rem; }
.notification-pagination > span { margin-right: auto; color: var(--hotel-ink-soft); }
.notification-pagination a { display: inline-flex; align-items: center; min-height: 44px; color: var(--hotel-petrol); }
.notification-empty { padding: 3rem 1.5rem; text-align: center; }
.notification-empty-icon { display: inline-grid; place-items: center; width: 56px; height: 56px; margin-bottom: 1rem; border-radius: 50%; background: #e1f0eb; color: var(--hotel-petrol); font-size: 1.5rem; }
.notification-empty h2 { font-size: 1rem; margin: 0 0 .5rem; }
.notification-empty p { font-size: .85rem; color: var(--hotel-ink-soft); margin: 0; }
.notification-help { display: flex; gap: .5rem; margin: 0; padding: 1rem 1.25rem; border-top: 1px solid #e7eeeb; color: #586f68; font-size: .75rem; line-height: 1.5; }
.notification-help > i { flex-shrink: 0; margin-top: .15rem; }
@media (max-width: 600px) {
    .notification-popover { inset: auto .75rem max(.75rem, env(safe-area-inset-bottom)); width: auto; max-height: min(70dvh, calc(100dvh - 2rem)); border-radius: 18px; }
    .notification-popover::backdrop { background: rgba(19, 44, 44, .22); }
    .notification-entry { gap: .6rem; padding: 1rem; grid-template-columns: 32px minmax(0, 1fr) 44px; }
    .notification-entry-icon { width: 32px; height: 32px; }
}

/* Keep the polling wrapper out of the button's grid: the bell is its only cell. */
#notification-badge {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.notification-count {
    position: absolute;
    top: -.2rem;
    right: -.35rem;
    min-width: 1.25rem;
    padding: .1rem .25rem;
    border-radius: 1rem;
    color: #fff;
    background: #a53c25;
    font-size: .7rem;
    font-weight: 700;
}

.notification-dot {
    position: absolute;
    top: 7px;
    right: 7px;
    width: 7px;
    height: 7px;
    background: var(--hotel-warm);
    border: 2px solid #fff;
    border-radius: 50%;
}

.user-chip {
    gap: 0.65rem;
}

.user-chip .avatar {
    color: #fff;
    background: var(--hotel-petrol);
}

.user-chip strong {
    font-size: 0.86rem;
}

.user-chip small {
    color: var(--hotel-ink-soft);
    font-size: 0.75rem;
}

.page-wrap {
    width: 100%;
    margin: 0;
    padding: clamp(1.5rem, 3vw, 3rem);
}

.permission-denied {
    max-width: 720px;
    margin: clamp(2rem, 8vh, 7rem) auto;
    padding: clamp(1.5rem, 4vw, 3rem);
    text-align: center;
}

.permission-denied-icon {
    width: 64px;
    height: 64px;
    display: grid;
    place-items: center;
    margin: 0 auto 1.25rem;
    color: var(--hotel-warm);
    background: #f8e5d9;
    border-radius: 20px;
    font-size: 1.8rem;
}

.permission-denied h1 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 5vw, 3.25rem);
    font-weight: 500;
    letter-spacing: -0.04em;
}

.permission-denied > p:not(.eyebrow) {
    max-width: 560px;
    margin: 1rem auto 1.5rem;
    color: var(--hotel-ink-soft);
}

.page-intro {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 2rem;
}

.eyebrow {
    margin: 0 0 0.55rem;
    color: var(--hotel-petrol);
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.eyebrow-warm {
    color: var(--hotel-warm);
}

.page-intro h1 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 3.6rem);
    font-weight: 500;
    letter-spacing: -0.045em;
    line-height: 1.05;
}

.page-intro p:not(.eyebrow) {
    max-width: 680px;
    margin: 0.8rem 0 0;
    color: var(--hotel-ink-soft);
    font-size: 1rem;
}

.intro-actions {
    display: flex;
    gap: 0.65rem;
    flex-shrink: 0;
}

.btn {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.72rem 1rem;
    border-radius: 11px;
    font-weight: 700;
}

.btn-primary {
    background: var(--hotel-petrol);
    border-color: var(--hotel-petrol);
}

.btn-primary:hover,
.btn-primary:focus-visible {
    background: var(--hotel-petrol-dark);
    border-color: var(--hotel-petrol-dark);
}

.btn-ghost {
    background: rgba(255, 255, 255, 0.64);
    border: 1px solid var(--hotel-border);
}

.metric-grid {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.85rem;
    padding-bottom: 1.55rem;
}

.metric-card {
    min-height: 132px;
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.2rem;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid var(--hotel-border);
    border-radius: var(--hotel-radius);
    box-shadow: 0 10px 28px rgba(32, 49, 45, 0.04);
}

.metric-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    color: var(--metric-color);
    background: color-mix(in srgb, var(--metric-color) 12%, white);
    border-radius: 12px;
    font-size: 1.35rem;
}

.metric-teal { --metric-color: #0d6b66; }
.metric-blue { --metric-color: #3277a8; }
.metric-amber { --metric-color: #b6662c; }
.metric-violet { --metric-color: #7865a5; }

.metric-copy span,
.metric-copy strong,
.metric-copy small {
    display: block;
}

.metric-copy span {
    color: var(--hotel-ink-soft);
    font-size: 0.8rem;
    font-weight: 700;
}

.metric-copy strong {
    margin: 0.15rem 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
    font-weight: 500;
    letter-spacing: -0.035em;
}

.metric-copy small {
    color: #718180;
    font-size: 0.76rem;
}

.refresh-note {
    position: absolute;
    right: 0.2rem;
    bottom: 0.25rem;
    color: #758582;
    font-size: 0.72rem;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(300px, 0.75fr);
    gap: 1rem;
}

.panel {
    overflow: hidden;
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid var(--hotel-border);
    border-radius: var(--hotel-radius);
    box-shadow: var(--hotel-shadow);
}

.panel-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.35rem 1.5rem;
    border-bottom: 1px solid var(--hotel-border);
}

.panel-heading.compact {
    padding-bottom: 1rem;
}

.panel-heading h2,
.quick-actions h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
    font-weight: 500;
    letter-spacing: -0.025em;
}

.panel-count {
    min-width: 2.15rem;
    height: 2.15rem;
    display: grid;
    place-items: center;
    color: #fff;
    background: var(--hotel-warm);
    border-radius: 50%;
    font-size: 0.8rem;
    font-weight: 800;
}

.attention-item {
    min-height: 90px;
    display: grid;
    grid-template-columns: 3.2rem 2.5rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.8rem;
    padding: 1rem 1.35rem;
    border-bottom: 1px solid var(--hotel-border);
    transition: background-color 160ms ease;
}

.attention-item:last-child {
    border-bottom: 0;
}

.attention-item:hover,
.attention-item:focus-visible {
    background: rgba(13, 107, 102, 0.045);
}

.attention-time {
    color: var(--hotel-ink-soft);
    font-size: 0.8rem;
    font-weight: 800;
}

.attention-marker {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    color: var(--hotel-petrol);
    background: var(--hotel-mint);
    border-radius: 11px;
    font-size: 1.15rem;
}

.attention-item.is-critical .attention-marker {
    color: #a84d27;
    background: #f8e5d9;
}

.attention-copy strong,
.attention-copy small {
    display: block;
}

.attention-copy strong {
    font-size: 0.92rem;
}

.attention-copy small {
    margin-top: 0.25rem;
    color: var(--hotel-ink-soft);
    font-size: 0.8rem;
}

.notification-list {
    padding: 0.2rem 1.35rem;
}

.notification-item {
    display: grid;
    grid-template-columns: 2.5rem minmax(0, 1fr);
    gap: 0.75rem;
    padding: 1rem 0;
    border-bottom: 1px solid var(--hotel-border);
}

.notification-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    font-size: 1.1rem;
}

.notification-success { color: #267654; background: #def1e8; }
.notification-warning { color: #a85f24; background: #f7ead7; }
.notification-info { color: #366e9f; background: #e1edf7; }

.notification-item strong,
.notification-item small,
.notification-item time {
    display: block;
}

.notification-item strong {
    font-size: 0.86rem;
}

.notification-item small {
    margin-top: 0.22rem;
    color: var(--hotel-ink-soft);
    font-size: 0.77rem;
    line-height: 1.45;
}

.notification-item time {
    margin-top: 0.35rem;
    color: #86928f;
    font-size: 0.75rem;
}

.panel-footer-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.95rem 1.35rem;
    color: var(--hotel-petrol);
    background: rgba(13, 107, 102, 0.04);
    font-size: 0.8rem;
    font-weight: 800;
}

.quick-actions {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
    margin-top: 1rem;
    padding: 1.25rem 1.5rem;
    background: var(--hotel-ink);
    border-radius: var(--hotel-radius);
    color: #fff;
}

.quick-actions .eyebrow {
    color: #d8c7a1;
}

.action-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.55rem;
}

.action-grid a {
    min-height: 76px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    padding: 0.75rem;
    color: rgba(255, 255, 255, 0.82);
    background: rgba(255, 255, 255, 0.065);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    font-size: 0.78rem;
    font-weight: 700;
    text-align: center;
}

.action-grid a:hover,
.action-grid a:focus-visible {
    color: #fff;
    background: rgba(255, 255, 255, 0.11);
}

.action-grid .ti {
    font-size: 1.25rem;
}

.htmx-indicator {
    opacity: 0;
    transition: opacity 120ms ease;
}

.htmx-request .htmx-indicator,
.htmx-request.htmx-indicator {
    opacity: 1;
}

:focus-visible {
    outline: 3px solid rgba(13, 107, 102, 0.34);
    outline-offset: 3px;
}

@media (max-width: 1100px) {
    .app-shell {
        grid-template-columns: 86px minmax(0, 1fr);
    }

    .app-sidebar {
        align-items: center;
        padding-inline: 0.7rem;
    }

    .brand > span:last-child,
    .nav-link span:not(.nav-count),
    .nav-label {
        display: none;
    }

    .brand {
        padding-inline: 0;
    }

    .nav-link {
        width: 48px;
        justify-content: center;
        padding-inline: 0;
    }

    .nav-count {
        position: absolute;
        margin: -2rem 0 0 2rem;
        min-width: 1.2rem;
        padding-inline: 0.25rem;
    }

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

    .dashboard-grid {
        grid-template-columns: 1fr;
    }

    .quick-actions {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .app-shell {
        left: 0;
        width: 100%;
        display: block;
    }

    .app-sidebar {
        position: static;
        width: 100%;
        height: auto;
        min-height: auto;
        overflow: visible;
        display: block;
        padding: 0.75rem 1rem;
    }

    .brand {
        padding-bottom: 0.7rem;
    }

    .brand > span:last-child {
        display: block;
    }

    .main-nav {
        display: flex;
        gap: 0.25rem;
        overflow-x: auto;
        overflow-y: hidden;
        overscroll-behavior-x: contain;
        padding-bottom: 0.25rem;
    }

    .business-date,
    .user-chip span:last-child {
        display: none;
    }

    .nav-link {
        flex: 0 0 46px;
    }

    .topbar {
        min-height: 60px;
        justify-content: flex-end;
    }

    .page-wrap {
        padding: 1.2rem;
    }

    .page-intro {
        display: block;
    }

    .intro-actions {
        margin-top: 1.2rem;
    }

    .metric-grid {
        grid-template-columns: 1fr;
    }

    .attention-item {
        grid-template-columns: 2.6rem 2.5rem minmax(0, 1fr);
        padding-inline: 1rem;
    }

    .attention-item > .ti:last-child {
        display: none;
    }

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

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

.auth-page {
    min-height: 100vh;
    background: var(--hotel-paper);
}

.auth-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(360px, 0.9fr) minmax(440px, 1.1fr);
}

.auth-story {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: clamp(2rem, 5vw, 5rem);
    color: #fff;
    background:
        radial-gradient(circle at 75% 15%, rgba(216, 199, 161, 0.18), transparent 24rem),
        linear-gradient(150deg, #173b39, var(--hotel-ink));
}

.auth-brand {
    align-self: flex-start;
    padding: 0;
}

.auth-story h1 {
    max-width: 700px;
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 6vw, 6rem);
    font-weight: 500;
    letter-spacing: -0.055em;
    line-height: 0.98;
}

.auth-story > div > p:last-child {
    max-width: 580px;
    margin: 1.5rem 0 0;
    color: rgba(255, 255, 255, 0.68);
    font-size: 1.05rem;
}

.auth-assurance {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.82rem;
}

.auth-form-side {
    display: grid;
    place-items: center;
    padding: clamp(1.5rem, 5vw, 5rem);
}

.auth-card {
    width: min(440px, 100%);
    padding: clamp(1.5rem, 4vw, 2.5rem);
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid var(--hotel-border);
    border-radius: 22px;
    box-shadow: var(--hotel-shadow);
}

.auth-card-heading {
    margin-bottom: 2rem;
}

.auth-card-heading h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.25rem;
    font-weight: 500;
    letter-spacing: -0.04em;
}

.auth-card-heading > p:last-child {
    margin: 0.55rem 0 0;
    color: var(--hotel-ink-soft);
}

.auth-card .form-label {
    margin-bottom: 0.45rem;
    color: var(--hotel-ink);
    font-size: 0.86rem;
    font-weight: 750;
}

.auth-card .form-control {
    min-height: 52px;
    padding-inline: 1rem;
    border-color: rgba(19, 44, 44, 0.18);
    border-radius: 12px;
    font-size: 1rem;
}

.auth-card .form-control:focus {
    border-color: var(--hotel-petrol);
    box-shadow: 0 0 0 0.25rem rgba(13, 107, 102, 0.12);
}

.auth-card .alert {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    border-radius: 12px;
}

.auth-submit {
    width: 100%;
    min-height: 52px;
    justify-content: space-between;
    padding-inline: 1.1rem;
}

@media (max-width: 820px) {
    .auth-shell {
        display: block;
    }

    .auth-story {
        min-height: auto;
        padding: 1.25rem;
    }

    .auth-story > div,
    .auth-assurance {
        display: none;
    }

    .auth-form-side {
        min-height: calc(100vh - 88px);
        padding: 1.25rem;
    }
}

.module-page {
    max-width: none;
}

.manager-sections {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr));
    align-items: start;
    gap: 1.25rem;
}

.manager-section {
    min-width: 0;
}

.manager-page .manager-links {
    grid-template-columns: minmax(0, 1fr);
    border-top: 0;
}

.manager-page .manager-links a {
    min-height: 64px;
    overflow-wrap: anywhere;
}

.manager-integration-note {
    margin-top: 1.5rem;
}

.manager-note-body {
    padding: 1rem 1.5rem;
    color: var(--hotel-ink-soft);
}

.manager-note-body p {
    max-width: 85ch;
    margin: 0;
}

.module-header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
}

.module-header h1 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.1rem, 4vw, 3.5rem);
    font-weight: 500;
    letter-spacing: -0.045em;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.module-header h1 + p {
    margin: .75rem 0 1rem;
    color: var(--hotel-ink-soft);
    line-height: 1.5;
}

.module-header > div { min-width: 0; }
.front-office-header-links { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }

.module-header p:last-child {
    margin: 0.55rem 0 0;
    color: var(--hotel-ink-soft);
}

.module-header-actions,
.rooms-header-actions {
    display: flex;
    align-items: end;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.65rem;
}

.panel-heading-actions {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

.config-drawer {
    width: min(480px, 100%);
    max-width: 100%;
    height: 100dvh;
    max-height: 100dvh;
    margin: 0 0 0 auto;
    padding: 0;
    overflow-y: auto;
    color: var(--hotel-ink);
    background: #fff;
    border: 0;
    border-left: 1px solid var(--hotel-border);
    box-shadow: -24px 0 60px rgba(19, 44, 44, 0.18);
}

.config-drawer:popover-open {
    display: block;
}

.config-drawer::backdrop {
    background: rgba(19, 44, 44, 0.42);
    backdrop-filter: blur(2px);
}

.drawer-header {
    position: sticky;
    z-index: 2;
    top: 0;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.4rem;
    background: rgba(255, 255, 255, 0.94);
    border-bottom: 1px solid var(--hotel-border);
    backdrop-filter: blur(12px);
}

.drawer-header h2,
.drawer-header p {
    margin: 0;
}

.drawer-header h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.65rem;
}

.drawer-description {
    margin: 0;
    padding: 1.15rem 1.4rem 0;
    color: var(--hotel-ink-soft);
}

.config-drawer > form {
    padding: 1.4rem;
}

.drawer-submit {
    width: 100%;
    justify-content: center;
}

.efactura-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.8rem;
    margin-bottom: 1rem;
}

.compact-status-card {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    min-width: 0;
    padding: 1rem;
}

.compact-status-card > div {
    display: grid;
    min-width: 0;
}

.compact-status-card small,
.compact-status-card span,
.efactura-table td > small {
    color: var(--hotel-ink-soft);
    font-size: 0.72rem;
}

.compact-status-card strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.metric-icon.green {
    color: #167c61;
    background: #e0f3ec;
}

.efactura-list-panel {
    min-width: 0;
}

.efactura-table td > small {
    display: block;
    margin-top: 0.18rem;
}

.efactura-table .table-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.35rem;
}

.efactura-table .table-actions form {
    margin: 0;
}

.status-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.28rem 0.55rem;
    border-radius: 999px;
    color: #42515a;
    background: #edf0ef;
    font-size: 0.72rem;
    font-weight: 700;
}

.status-pill .status-dot {
    width: 0.42rem;
    height: 0.42rem;
}

.status-ready,
.status-accepted {
    color: #12654f;
    background: #daf0e8;
}

.status-processing,
.status-submitting,
.status-submitted,
.status-validating {
    color: #17678d;
    background: #deedf5;
}

.status-rejected,
.status-blocked,
.status-retry {
    color: #a64027;
    background: #f8e3dc;
}

.operation-success {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin-bottom: 0.8rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid #b9ded1;
    border-radius: 0.7rem;
    color: #12654f;
    background: #e7f5f0;
}

.connection-details {
    display: grid;
    gap: 0.25rem;
    margin: 0 1.4rem 1rem;
}

.connection-details > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.65rem 0;
    border-bottom: 1px solid var(--hotel-border);
}

.connection-details dt {
    color: var(--hotel-ink-soft);
    font-weight: 600;
}

.connection-details dd {
    margin: 0;
    text-align: right;
    font-weight: 700;
}

.config-drawer > .drawer-submit {
    width: calc(100% - 2.8rem);
    margin: 1.4rem;
}

.property-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.property-summary-grid article {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    align-items: center;
    gap: 0.15rem 0.85rem;
    padding: 1rem 1.1rem;
    background: rgba(255, 255, 255, 0.74);
    border: 1px solid var(--hotel-border);
    border-radius: var(--hotel-radius);
    box-shadow: 0 10px 28px rgba(32, 49, 45, 0.04);
}

.property-summary-grid .ti {
    grid-row: 1 / 3;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    color: var(--hotel-petrol);
    background: var(--hotel-mint);
    border-radius: 13px;
    font-size: 1.35rem;
}

.property-summary-grid span,
.property-summary-grid strong {
    display: block;
}

.property-summary-grid span {
    color: var(--hotel-ink-soft);
    font-size: 0.76rem;
}

.property-summary-grid strong {
    font-size: 1.2rem;
}

.property-organization-list {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    border-bottom: 1px solid var(--hotel-border);
}

.settings-page {
    --settings-accent: #0d756d;
}

.settings-status-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .8rem;
    margin-bottom: 1rem;
}

.settings-status-card {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: 1rem;
}

.settings-status-card > div {
    min-width: 0;
    display: grid;
}

.settings-status-card small,
.settings-status-card span {
    overflow: hidden;
    color: var(--hotel-ink-soft);
    font-size: .68rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.settings-status-card strong {
    overflow: hidden;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1rem;
    font-weight: 500;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.settings-status-card .metric-icon.orange {
    color: #a45b2f;
    background: #f8e8dc;
}

.settings-layout {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(300px, .55fr);
    gap: 1rem;
    align-items: start;
}

.settings-tabs {
    display: flex;
    gap: .35rem;
    margin-bottom: 1rem;
    padding: .35rem;
    overflow-x: auto;
    background: rgba(255, 255, 255, .68);
    border: 1px solid var(--hotel-border);
    border-radius: 14px;
    scrollbar-width: thin;
}

.settings-tabs a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    padding: .65rem 1rem;
    color: var(--hotel-ink-soft);
    border-radius: 10px;
    font-size: .74rem;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.settings-tabs a:hover,
.settings-tabs a:focus-visible {
    color: var(--hotel-petrol-dark);
    background: #edf6f2;
}

.settings-tabs a:focus-visible {
    outline: 3px solid rgba(13, 107, 102, .25);
    outline-offset: -2px;
}

.settings-tabs a.active {
    color: #fff;
    background: var(--hotel-petrol-dark);
    box-shadow: 0 6px 16px rgba(7, 83, 79, .16);
}

.settings-tab-panel {
    min-width: 0;
}

.settings-action-grid,
.settings-link-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .8rem;
    padding: 1rem;
    border-top: 1px solid var(--hotel-border);
}

.settings-link-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.settings-action-grid button,
.settings-link-grid a {
    min-width: 0;
    min-height: 94px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .9rem;
    color: var(--hotel-ink);
    background: #fffdfa;
    border: 1px solid var(--hotel-border);
    border-radius: 12px;
    text-align: left;
    text-decoration: none;
}

.settings-action-grid button:hover,
.settings-action-grid button:focus-visible,
.settings-link-grid a:hover,
.settings-link-grid a:focus-visible {
    color: var(--hotel-petrol-dark);
    background: #f1f7f4;
    border-color: rgba(13, 107, 102, .28);
}

.settings-action-grid button:focus-visible,
.settings-link-grid a:focus-visible {
    outline: 3px solid rgba(13, 107, 102, .25);
    outline-offset: 2px;
}

.settings-action-grid button > span,
.settings-link-grid a > span {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: .7rem;
}

.settings-action-grid button > span > i,
.settings-link-grid a > i:first-child {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    color: var(--settings-accent);
    background: var(--hotel-mint);
    border-radius: 11px;
    font-size: 1.05rem;
}

.settings-action-grid strong,
.settings-action-grid small,
.settings-link-grid strong,
.settings-link-grid small {
    display: block;
    overflow-wrap: anywhere;
}

.settings-action-grid strong,
.settings-link-grid strong {
    font-size: .76rem;
}

.settings-action-grid small,
.settings-link-grid small {
    margin-top: .15rem;
    color: var(--hotel-ink-soft);
    font-size: .63rem;
}

.settings-section,
.settings-action-rail {
    min-width: 0;
}

.settings-action-rail {
    display: grid;
    gap: 1rem;
}

.settings-section-copy {
    margin: 0;
    padding: 0 1rem 1rem;
    color: var(--hotel-ink-soft);
    font-size: .74rem;
    line-height: 1.55;
}

.settings-action-list,
.settings-link-list {
    display: grid;
    border-top: 1px solid var(--hotel-border);
}

.settings-action-list button,
.settings-link-list a {
    width: 100%;
    min-width: 0;
    min-height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .75rem 1rem;
    color: var(--hotel-ink);
    background: #fffdfa;
    border: 0;
    border-bottom: 1px solid var(--hotel-border);
    text-align: left;
    text-decoration: none;
    transition: background-color 160ms ease, color 160ms ease;
}

.settings-action-list button:last-child,
.settings-link-list a:last-child {
    border-bottom: 0;
}

.settings-action-list button:hover,
.settings-action-list button:focus-visible,
.settings-link-list a:hover,
.settings-link-list a:focus-visible {
    color: var(--hotel-petrol-dark);
    background: #f1f7f4;
}

.settings-action-list button:focus-visible,
.settings-link-list a:focus-visible {
    position: relative;
    z-index: 1;
    outline: 3px solid rgba(13, 107, 102, .25);
    outline-offset: -3px;
}

.settings-action-list button > span,
.settings-link-list a > span {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: .7rem;
}

.settings-action-list button > span > i,
.settings-link-list a > i:first-child {
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    color: var(--settings-accent);
    background: var(--hotel-mint);
    border-radius: 10px;
    font-size: 1rem;
}

.settings-action-list button span span,
.settings-link-list a span {
    min-width: 0;
}

.settings-action-list strong,
.settings-action-list small,
.settings-link-list strong,
.settings-link-list small {
    display: block;
    overflow-wrap: anywhere;
}

.settings-action-list strong,
.settings-link-list strong {
    font-size: .76rem;
}

.settings-action-list small,
.settings-link-list small {
    margin-top: .12rem;
    color: var(--hotel-ink-soft);
    font-size: .63rem;
}

.settings-existing-list {
    display: grid;
    gap: .45rem;
    margin: 0 1.4rem 1rem;
    padding: .75rem;
    background: var(--hotel-paper);
    border: 1px solid var(--hotel-border);
    border-radius: 10px;
}

.settings-existing-list span {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    font-size: .7rem;
}

.settings-existing-list small {
    color: var(--hotel-ink-soft);
}

@media (max-width: 1180px) {
    .settings-status-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .settings-layout {
        grid-template-columns: minmax(0, 1fr);
    }

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

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

@media (max-width: 700px) {
    .settings-status-grid,
    .settings-action-rail {
        grid-template-columns: minmax(0, 1fr);
    }

    .settings-action-grid,
    .settings-link-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .settings-tabs a {
        flex: 1 0 auto;
    }

    .settings-page .module-header-actions,
    .settings-page .module-header-actions .btn {
        width: 100%;
    }
}

.room-type-overview {
    display: grid;
    grid-template-columns: minmax(190px, 0.3fr) minmax(0, 1.7fr);
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.68);
    border: 1px solid var(--hotel-border);
    border-radius: var(--hotel-radius);
}

.room-type-overview-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.room-type-overview-heading h2,
.room-type-overview-heading p {
    margin: 0;
}

.room-type-overview-heading h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.25rem;
}

.room-type-overview-heading > span {
    min-width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    color: #fff;
    background: var(--hotel-petrol);
    border-radius: 50%;
    font-weight: 750;
}

.room-type-chip-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 0.65rem;
}

.room-type-chip-list article {
    min-width: 0;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.65rem;
    padding: 0.75rem;
    background: var(--hotel-paper);
    border-radius: 12px;
}

.room-type-chip-list .ti {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    color: var(--hotel-petrol);
    background: var(--hotel-mint);
    border-radius: 10px;
}

.room-type-chip-list strong,
.room-type-chip-list small {
    display: block;
}

.room-type-chip-list small {
    color: var(--hotel-ink-soft);
    font-size: 0.72rem;
}

.room-type-chip-list b {
    color: var(--hotel-ink-soft);
    font-size: 0.74rem;
    white-space: nowrap;
}

.workspace-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(320px, 0.72fr);
    align-items: start;
    gap: 1rem;
}

.workspace-grid-single,
.operations-board.single-column {
    grid-template-columns: minmax(0, 1fr);
}

.workspace-grid.wide-form {
    grid-template-columns: minmax(0, 1.45fr) minmax(390px, 0.75fr);
}

.module-panel,
.form-panel {
    min-width: 0;
}

.module-panel > .panel-heading h2,
.form-panel > .panel-heading h2 {
    margin: 0;
}

.form-stack {
    display: grid;
    gap: 1rem;
}

.form-panel form {
    padding: 1.25rem;
}

.form-field {
    margin-bottom: 1rem;
}

.form-field > label {
    display: block;
    margin-bottom: 0.4rem;
    color: var(--hotel-ink);
    font-size: 0.82rem;
    font-weight: 750;
}

.form-field .form-control,
.form-field .form-select,
.property-filter .form-select {
    min-height: 46px;
    border-color: rgba(19, 44, 44, 0.18);
    border-radius: 10px;
}

.field-error {
    display: block;
    margin-top: 0.35rem;
    color: #b42318;
    font-size: 0.78rem;
}

.entity-list {
    display: grid;
    gap: 0.65rem;
    padding: 1.25rem;
}

.entity-card {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    padding: 0.9rem;
    background: rgba(13, 107, 102, 0.045);
    border: 1px solid var(--hotel-border);
    border-radius: 12px;
}

.entity-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    color: var(--hotel-petrol);
    background: var(--hotel-mint);
    border-radius: 11px;
    font-size: 1.2rem;
}

.entity-card strong,
.entity-card small,
.module-table td strong,
.module-table td small,
.compact-list strong,
.compact-list small,
.reservation-card strong,
.reservation-card small {
    display: block;
}

.entity-card small,
.module-table td small,
.compact-list small,
.reservation-card small {
    margin-top: 0.2rem;
    color: var(--hotel-ink-soft);
    font-size: 0.76rem;
}

.module-table {
    margin: 0;
}

.module-table th {
    padding: 0.8rem 1.2rem;
    color: #667875;
    background: rgba(19, 44, 44, 0.035);
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.module-table td {
    padding: 0.95rem 1.2rem;
    vertical-align: middle;
}

.status-pill {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0.25rem 0.65rem;
    color: var(--hotel-petrol-dark);
    background: var(--hotel-mint);
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 750;
    white-space: nowrap;
}

.status-ready::before {
    width: 7px;
    height: 7px;
    margin-right: 0.4rem;
    content: "";
    background: #2f9e70;
    border-radius: 50%;
}

.empty-state {
    display: grid;
    place-items: center;
    min-height: 220px;
    padding: 2rem;
    color: var(--hotel-ink-soft);
    text-align: center;
}

.empty-state.compact {
    min-height: 170px;
}

.empty-state .ti {
    margin-bottom: 0.7rem;
    color: var(--hotel-petrol);
    font-size: 2rem;
}

.empty-state strong {
    color: var(--hotel-ink);
}

.empty-state p {
    max-width: 420px;
    margin: 0.35rem 0 0;
}

.property-filter {
    min-width: 260px;
}

.property-filter label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.78rem;
    font-weight: 750;
}

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

.compact-list {
    display: grid;
    gap: 0.5rem;
    padding: 0 1.25rem 1.25rem;
}

.compact-list > span {
    padding: 0.7rem 0.85rem;
    background: rgba(19, 44, 44, 0.035);
    border-radius: 10px;
}

.status-select {
    min-width: 190px;
}

.search-bar {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.9rem 1.2rem;
    border-bottom: 1px solid var(--hotel-border);
}

.search-bar .form-control {
    border: 0;
    box-shadow: none;
}

.sticky-form {
    position: sticky;
    top: 1rem;
}

.reservation-list {
    display: grid;
}

.reservation-card {
    display: grid;
    grid-template-columns: 52px minmax(180px, 1fr) minmax(130px, 0.65fr) auto;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.2rem;
    border-bottom: 1px solid var(--hotel-border);
}

.reservation-card-actions {
    grid-template-columns: 52px minmax(180px, 1fr) minmax(130px, 0.65fr) auto 42px;
}

.reservation-actions {
    position: relative;
}

.reservation-actions > summary {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    cursor: pointer;
    border: 1px solid var(--hotel-border);
    border-radius: 10px;
    list-style: none;
}

.reservation-actions > summary::-webkit-details-marker {
    display: none;
}

.reservation-actions[open] {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.75rem;
    background: rgba(19, 44, 44, 0.035);
    border-radius: 10px;
}

.reservation-actions[open] > summary {
    display: none;
}

.reservation-actions form {
    display: flex;
    flex: 1;
    gap: 0.5rem;
    min-width: 240px;
}

.reservation-actions .form-control {
    min-width: 130px;
}

.reservation-date {
    width: 48px;
    height: 52px;
    display: grid;
    place-items: center;
    align-content: center;
    color: var(--hotel-petrol-dark);
    background: var(--hotel-mint);
    border-radius: 12px;
}

.reservation-date strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.25rem;
    line-height: 1;
}

.reservation-date span {
    margin-top: 0.1rem;
    font-size: 0.66rem;
    font-weight: 800;
    text-transform: uppercase;
}

.front-office-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 1rem;
}

.operation-error {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 1rem;
    padding: 0.9rem 1rem;
    color: #8f331d;
    background: #fae7df;
    border: 1px solid #efc0ae;
    border-radius: 12px;
    font-weight: 700;
}

.operation-list {
    display: grid;
}

.operation-card {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto;
    align-items: center;
    gap: 0.9rem 1rem;
    padding: 1.1rem 1.25rem;
    border-bottom: 1px solid var(--hotel-border);
}

.operation-card:last-child {
    border-bottom: 0;
}

.operation-identity {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.operation-identity .avatar {
    color: #fff;
    background: var(--hotel-petrol);
}

.operation-identity strong,
.operation-identity small {
    display: block;
}

.operation-identity small {
    margin-top: 0.2rem;
    color: var(--hotel-ink-soft);
    font-size: 0.76rem;
}

.operation-dates {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
    color: var(--hotel-ink-soft);
    font-size: 0.78rem;
    font-weight: 750;
}

.assignment-form {
    display: grid;
    grid-template-columns: minmax(150px, 1fr) auto;
    gap: 0.5rem;
}

.assignment-form .form-select {
    min-height: 44px;
    border-color: rgba(19, 44, 44, 0.18);
    border-radius: 10px;
}

.operation-card > form:last-child {
    justify-self: end;
}

.room-chip {
    display: inline-flex;
    align-items: center;
    justify-self: end;
    gap: 0.4rem;
    min-height: 34px;
    padding: 0.35rem 0.7rem;
    color: var(--hotel-petrol-dark);
    background: var(--hotel-mint);
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 800;
}

.room-move-control {
    position: relative;
    justify-self: end;
}

.room-move-control > summary {
    cursor: pointer;
    list-style: none;
}

.room-move-control > summary::-webkit-details-marker {
    display: none;
}

.room-move-control[open] {
    grid-column: 1 / -1;
    justify-self: stretch;
    padding: 0.85rem;
    background: rgba(19, 44, 44, 0.035);
    border-radius: 10px;
}

.room-move-control[open] > summary {
    display: none;
}

.room-move-control form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
    align-items: end;
    gap: 0.75rem;
}

.folio-layout {
    display: grid;
    grid-template-columns: minmax(260px, 330px) minmax(0, 1fr);
    align-items: start;
    gap: 1rem;
}

.folio-list-panel {
    position: sticky;
    top: 1rem;
    overflow: hidden;
}

.folio-list {
    display: grid;
}

.folio-list-item {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.65rem;
    padding: 0.9rem 1rem;
    color: var(--hotel-ink);
    border-top: 1px solid var(--hotel-border);
    text-decoration: none;
}

.folio-list-item:hover,
.folio-list-item.active {
    color: var(--hotel-petrol-dark);
    background: var(--hotel-mint);
}

.folio-list-item .avatar {
    color: #fff;
    background: var(--hotel-petrol);
}

.folio-list-item strong,
.folio-list-item small {
    display: block;
}

.folio-list-item small {
    margin-top: 0.15rem;
    color: var(--hotel-ink-soft);
    font-size: 0.7rem;
}

.folio-list-item > b {
    font-size: 0.85rem;
    white-space: nowrap;
}

.folio-main {
    display: grid;
    gap: 1rem;
    min-width: 0;
}

.folio-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.2rem 1.4rem;
}

.folio-summary h2,
.folio-summary p {
    margin: 0;
}

.folio-summary h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.35rem, 2.5vw, 2rem);
}

.folio-summary-actions,
.ledger-row-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
}

.folio-summary-actions {
    margin-top: 0.9rem;
}

.folio-payment-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.7rem;
}

.folio-payment-strip article {
    min-width: 0;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid var(--hotel-border);
    border-radius: 13px;
}

.folio-payment-strip small,
.folio-payment-strip strong {
    display: block;
}

.folio-payment-strip small {
    color: var(--hotel-ink-soft);
    font-size: 0.72rem;
}

.folio-payment-strip strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.folio-money-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    color: var(--hotel-petrol);
    background: var(--hotel-mint);
    border-radius: 11px;
    font-size: 1.15rem;
}

.folio-money-icon.refunded {
    color: #a3482d;
    background: #f8e5d9;
}

.folio-money-icon.guaranteed {
    color: #75549e;
    background: #ede7f6;
}

.folio-balance {
    min-width: 180px;
    padding: 0.8rem 1rem;
    text-align: right;
    border-radius: 14px;
}

.folio-balance.due {
    color: #8f331d;
    background: #fae7df;
}

.folio-balance.settled {
    color: #21624f;
    background: #e1f3eb;
}

.folio-balance span,
.folio-balance small {
    display: block;
    font-size: 0.7rem;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.folio-balance strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.85rem;
}

.ledger-panel {
    overflow: hidden;
}

.ledger-table {
    width: 100%;
    margin: 0;
    table-layout: fixed;
}

.ledger-table th,
.ledger-table td {
    padding: 0.85rem 1rem;
    vertical-align: middle;
    overflow-wrap: anywhere;
}

.ledger-table th:nth-child(1) {
    width: 10%;
}

.ledger-table th:nth-child(2) {
    width: 25%;
}

.ledger-table th:nth-child(3) {
    width: 14%;
}

.ledger-table th:nth-child(4) {
    width: 8%;
}

.ledger-table th:nth-child(5) {
    width: 17%;
}

.ledger-table th:nth-child(6) {
    width: 26%;
}

.ledger-table td small {
    display: block;
    color: var(--hotel-ink-soft);
}

.reversal-row {
    color: #8f331d;
    background: #fff8f5;
}

.payment-row {
    color: #21624f;
    background: #f3fbf7;
}

.payment-row.payment-refund {
    color: #8f331d;
    background: #fff8f5;
}

.payment-row.payment-authorization {
    color: #6b521a;
    background: #fffaf0;
}

.status-authorized {
    color: #70531b;
    background: #f7eccf;
}

.status-captured,
.status-posted {
    color: #21624f;
    background: #e1f3eb;
}

.status-voided,
.status-expired,
.status-failed {
    color: #8f331d;
    background: #fae7df;
}

.ledger-row-actions {
    justify-content: flex-end;
}

.reversal-form {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.reversal-form .form-control {
    width: min(135px, 100%);
    min-height: 38px;
}

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

.compact-form-panel {
    padding-bottom: 1.25rem;
}

.compact-form-panel form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
    padding: 0 1.25rem;
}

.compact-form-panel form .btn {
    align-self: end;
    justify-content: center;
    min-height: 44px;
}

.payment-form-panel form {
    grid-template-columns: 1fr;
}

.transfer-form-panel form {
    grid-template-columns: 1fr;
}

.folio-create-control {
    margin-bottom: 1rem;
}

.attention-strip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 1rem 1.2rem;
    color: #fff;
    background: var(--hotel-petrol-dark);
    border-radius: 16px;
}

.attention-strip h2,
.attention-strip p {
    margin: 0;
}

.attention-strip .eyebrow {
    color: rgba(255, 255, 255, 0.65);
}

.attention-room-list {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.attention-room {
    min-width: 92px;
    padding: 0.5rem 0.65rem;
    color: var(--hotel-ink);
    background: #fff;
    border-radius: 10px;
}

.attention-room strong,
.attention-room small {
    display: block;
}

.attention-room small {
    margin-top: 0.1rem;
    color: var(--hotel-ink-soft);
    font-size: 0.62rem;
}

.all-clear {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-weight: 750;
}

.operations-board {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 1rem;
}

.operation-column {
    overflow: hidden;
}

.task-card-list {
    display: grid;
}

.task-card {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.9rem;
    padding: 1rem 1.2rem;
    border-top: 1px solid var(--hotel-border);
    border-left: 4px solid #98aaa6;
}

.task-card.priority-high {
    border-left-color: #e39c50;
}

.task-card.priority-urgent {
    border-left-color: #c44f3b;
}

.task-room {
    display: grid;
    place-items: center;
    min-height: 60px;
    padding: 0.45rem;
    color: var(--hotel-petrol-dark);
    background: var(--hotel-mint);
    border-radius: 12px;
}

.task-room strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.45rem;
}

.task-room small {
    max-width: 58px;
    overflow: hidden;
    font-size: 0.58rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.task-meta {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    color: var(--hotel-ink-soft);
    font-size: 0.68rem;
}

.task-copy h3,
.task-copy p {
    margin: 0.25rem 0 0;
}

.task-copy h3 {
    font-size: 1rem;
}

.task-copy p,
.task-copy > small {
    color: var(--hotel-ink-soft);
    font-size: 0.74rem;
}

.task-actions .btn {
    justify-content: center;
    min-width: 104px;
}

.inline-create {
    border-top: 1px solid var(--hotel-border);
}

.inline-create summary {
    padding: 1rem 1.2rem;
    color: var(--hotel-petrol-dark);
    cursor: pointer;
    font-weight: 800;
    list-style: none;
}

.inline-create summary::-webkit-details-marker {
    display: none;
}

.inline-create form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    padding: 0 1.2rem 1.2rem;
}

.inline-create form .btn {
    align-self: end;
    justify-content: center;
}

.maintenance-card {
    display: grid;
    gap: 0.65rem;
    padding: 1rem 1.2rem;
    border-top: 1px solid var(--hotel-border);
}

.maintenance-title {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
}

.maintenance-title h3 {
    margin: 0.3rem 0 0.1rem;
    font-size: 1rem;
}

.maintenance-title small,
.maintenance-card > p {
    color: var(--hotel-ink-soft);
    font-size: 0.74rem;
}

.maintenance-card > p {
    margin: 0;
}

.severity-dot {
    width: 11px;
    height: 11px;
    margin-top: 0.35rem;
    background: #98aaa6;
    border-radius: 50%;
}

.severity-high .severity-dot {
    background: #e39c50;
}

.severity-critical .severity-dot {
    background: #c44f3b;
    box-shadow: 0 0 0 5px rgba(196, 79, 59, 0.12);
}

.room-blocked-badge {
    display: inline-flex;
    align-items: center;
    justify-self: start;
    gap: 0.35rem;
    padding: 0.3rem 0.55rem;
    color: #8f331d;
    background: #fae7df;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
}

.maintenance-actions,
.resolution-form {
    display: flex;
    gap: 0.5rem;
}

.resolution-form {
    flex: 1;
}

.resolution-form .form-control {
    min-width: 0;
}

.checkbox-field {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

.checkbox-field label {
    margin: 0;
}

.availability-search-panel {
    margin-bottom: 1rem;
    padding-bottom: 1.2rem;
}

.availability-search-panel form {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    align-items: end;
    gap: 0.75rem;
    padding: 0 1.2rem;
}

.availability-search-panel .btn {
    justify-content: center;
    min-height: 44px;
}

.rate-product-grid {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 0.8fr);
    gap: 1rem;
    margin-bottom: 1rem;
}

.rate-plan-catalog,
.package-catalog {
    min-width: 0;
    overflow: hidden;
}

.rate-product-list,
.package-list {
    display: grid;
}

.rate-product-card {
    min-width: 0;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.8rem;
    padding: 0.85rem 1rem;
    border-top: 1px solid var(--hotel-border);
}

.rate-product-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    color: var(--hotel-petrol);
    background: var(--hotel-mint);
    border-radius: 12px;
    font-size: 1.15rem;
}

.rate-product-icon.warm {
    color: #a84d27;
    background: #f8e5d9;
}

.rate-product-card > div,
.rate-product-card strong,
.rate-product-card small,
.rate-product-card p {
    min-width: 0;
    display: block;
}

.rate-product-card > div > strong {
    font-size: 0.8rem;
}

.rate-product-card small,
.rate-product-card p,
.rate-rule-summary span,
.package-heading small,
.package-components span {
    color: var(--hotel-ink-soft);
    font-size: 0.68rem;
}

.rate-product-card p {
    margin: 0.15rem 0 0;
}

.rate-rule-summary {
    min-width: 118px;
    text-align: right;
}

.rate-rule-summary > strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.25rem;
    font-weight: 500;
}

.package-list > article {
    padding: 0.85rem 1rem;
    border-top: 1px solid var(--hotel-border);
}

.package-heading {
    min-width: 0;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.7rem;
}

.package-heading > div,
.package-heading strong,
.package-heading small {
    min-width: 0;
    display: block;
}

.package-heading > b {
    font-size: 0.75rem;
    white-space: nowrap;
}

.package-components {
    display: grid;
    gap: 0.25rem;
    margin: 0.65rem 0 0 3.1rem;
}

.package-components span {
    overflow-wrap: anywhere;
}

.package-components em {
    margin-left: 0.35rem;
    padding: 0.16rem 0.35rem;
    color: #12654f;
    background: #daf0e8;
    border-radius: 999px;
    font-size: 0.61rem;
    font-style: normal;
    font-weight: 700;
}

.package-components .package-warning {
    color: #9c3d24;
}

.availability-results {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.availability-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.75rem;
    padding: 1.1rem;
    background: #fff;
    border: 1px solid var(--hotel-border);
    border-radius: 16px;
    box-shadow: var(--hotel-shadow);
}

.availability-card.sold-out {
    opacity: 0.68;
}

.availability-card h2,
.availability-card p {
    margin: 0;
}

.room-type-icon {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    margin-bottom: 0.55rem;
    color: var(--hotel-petrol-dark);
    background: var(--hotel-mint);
    border-radius: 9px;
}

.availability-number {
    text-align: right;
}

.availability-number strong,
.availability-number span,
.availability-rate strong,
.availability-rate small {
    display: block;
}

.availability-number strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
}

.availability-number span,
.availability-rate small {
    color: var(--hotel-ink-soft);
    font-size: 0.7rem;
}

.availability-rate {
    grid-column: 1 / -1;
    padding-top: 0.7rem;
    border-top: 1px solid var(--hotel-border);
}

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

.rate-calendar-panel {
    overflow: hidden;
}

.rate-day-list {
    display: grid;
}

.rate-day-row {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1.1rem;
    border-top: 1px solid var(--hotel-border);
}

.rate-day-row time {
    display: grid;
    place-items: center;
    min-height: 44px;
    color: var(--hotel-petrol-dark);
    background: var(--hotel-mint);
    border-radius: 10px;
}

.rate-day-row time strong,
.rate-day-row time small,
.rate-day-row > span strong,
.rate-day-row > span small {
    display: block;
}

.rate-day-row time strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.15rem;
}

.rate-day-row time small,
.rate-day-row > span small {
    color: var(--hotel-ink-soft);
    font-size: 0.66rem;
}

.rate-day-row > b {
    font-size: 0.78rem;
    white-space: nowrap;
}

.rate-form-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: 1rem;
    margin-top: 1rem;
}

.meal-desk {
    min-width: 0;
    margin-bottom: 1rem;
    overflow: hidden;
}

.meal-desk-summary {
    display: grid;
    grid-template-columns: auto auto;
    align-items: baseline;
    gap: 0 0.4rem;
    text-align: right;
}

.meal-desk-summary strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.3rem;
    font-weight: 500;
}

.meal-desk-summary span {
    color: var(--hotel-ink-soft);
    font-size: 0.68rem;
}

.meal-desk-summary b {
    grid-column: 1 / -1;
    color: var(--hotel-ink-soft);
    font-size: 0.65rem;
    font-weight: 500;
}

.meal-entitlement-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--hotel-border);
}

.meal-entitlement-card {
    min-width: 0;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.7rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--hotel-border);
}

.meal-entitlement-card:nth-child(odd) {
    border-right: 1px solid var(--hotel-border);
}

.meal-entitlement-card.consumed {
    background: rgba(226, 241, 237, 0.36);
}

.meal-type-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    color: #875b14;
    background: #f6edd7;
    border-radius: 12px;
    font-size: 1.1rem;
}

.meal-entitlement-card > div,
.meal-entitlement-card strong,
.meal-entitlement-card small {
    min-width: 0;
    display: block;
}

.meal-entitlement-card > div > strong {
    overflow: hidden;
    font-size: 0.78rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.meal-entitlement-card small {
    color: var(--hotel-ink-soft);
    font-size: 0.67rem;
}

.meal-person-count {
    text-align: right;
}

.meal-person-count strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.15rem;
    font-weight: 500;
}

.meal-actions {
    grid-column: 2 / -1;
    display: flex;
    justify-content: flex-end;
    gap: 0.4rem;
}

.meal-actions form {
    margin: 0;
}

.meal-complete {
    color: #12654f;
    font-size: 0.7rem;
    font-weight: 800;
}

.billing-overview {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(300px, 0.6fr);
    align-items: start;
    gap: 1rem;
}

.invoice-list-panel {
    overflow: hidden;
}

.invoice-issue-panel {
    padding-bottom: 1.2rem;
}

.invoice-issue-panel form {
    display: grid;
    gap: 0.75rem;
    padding: 0 1.2rem;
}

.invoice-issue-panel .btn {
    justify-content: center;
}

.billing-config {
    margin-top: 1.5rem;
}

.billing-config h2,
.billing-config p {
    margin: 0;
}

.billing-config-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: start;
    gap: 1rem;
    margin-top: 0.8rem;
}

.billing-config-grid .inline-create form {
    grid-template-columns: 1fr;
}

.invoice-document-wrap {
    max-width: 1040px;
}

.invoice-document-actions {
    display: flex;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.invoice-document {
    padding: clamp(1.5rem, 4vw, 3.5rem);
    background: #fff;
    border: 1px solid var(--hotel-border);
    border-radius: 18px;
    box-shadow: var(--hotel-shadow);
}

.invoice-document > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1.5rem;
    border-bottom: 2px solid var(--hotel-petrol-dark);
}

.invoice-document h1,
.invoice-document h2,
.invoice-document p {
    margin: 0;
}

.invoice-document h1 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.4rem;
}

.invoice-total {
    min-width: 180px;
    padding: 1rem;
    color: #fff;
    text-align: right;
    background: var(--hotel-petrol-dark);
    border-radius: 14px;
}

.invoice-total span,
.invoice-total small,
.invoice-total strong {
    display: block;
}

.invoice-total strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
}

.invoice-parties {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
    padding: 2rem 0;
}

.invoice-parties section {
    padding: 1.2rem;
    background: rgba(19, 44, 44, 0.035);
    border-radius: 12px;
}

.invoice-parties h2 {
    margin-bottom: 0.5rem;
    font-size: 1.1rem;
}

.invoice-lines th,
.invoice-lines td {
    padding: 0.8rem;
}

.invoice-document footer {
    margin-top: 2rem;
    padding-top: 1rem;
    color: var(--hotel-ink-soft);
    border-top: 1px solid var(--hotel-border);
    font-size: 0.72rem;
}

.registration-list {
    display: grid;
}

.registration-card {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto 40px;
    align-items: center;
    gap: 0.75rem;
    padding: 0.9rem 1.1rem;
    border-top: 1px solid var(--hotel-border);
}

.registration-card .avatar {
    color: #fff;
    background: var(--hotel-petrol);
}

.registration-card strong,
.registration-card small {
    display: block;
}

.registration-card small {
    color: var(--hotel-ink-soft);
    font-size: 0.7rem;
}

.registration-stay {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    color: var(--hotel-ink-soft);
    font-size: 0.72rem;
    font-weight: 750;
}

.registration-form-panel {
    position: sticky;
    top: 1rem;
}

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

.registration-form-panel form .form-field:first-child,
.registration-form-panel form .form-field:nth-child(8),
.registration-form-panel form .btn {
    grid-column: 1 / -1;
}

.registration-form-panel form .btn {
    justify-content: center;
}

.privacy-note {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    margin: 0 1.2rem 1rem;
    padding: 0.75rem;
    color: var(--hotel-petrol-dark);
    background: var(--hotel-mint);
    border-radius: 10px;
}

.privacy-note p {
    margin: 0;
    font-size: 0.72rem;
}

.registration-ready {
    display: inline-flex;
    align-items: center;
    justify-self: end;
    gap: 0.35rem;
    color: #21624f;
    font-size: 0.72rem;
    font-weight: 800;
}

.registration-document-wrap {
    max-width: 920px;
}

.registration-document {
    padding: clamp(1.5rem, 4vw, 3.5rem);
    background: #fff;
    border: 1px solid var(--hotel-border);
    border-radius: 18px;
    box-shadow: var(--hotel-shadow);
}

.registration-document > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1.5rem;
    border-bottom: 2px solid var(--hotel-petrol-dark);
}

.registration-document h1,
.registration-document p {
    margin: 0;
}

.registration-document h1 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
}

.document-seal {
    display: grid;
    place-items: center;
    min-width: 90px;
    padding: 0.7rem;
    color: #21624f;
    background: #e1f3eb;
    border-radius: 12px;
    font-weight: 800;
}

.document-seal i {
    font-size: 1.6rem;
}

.registration-data {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin: 2rem 0;
    overflow: hidden;
    background: var(--hotel-border);
    border: 1px solid var(--hotel-border);
    border-radius: 12px;
}

.registration-data > div {
    padding: 0.85rem;
    background: #fff;
}

.registration-data > .wide {
    grid-column: span 3;
}

.registration-data dt {
    color: var(--hotel-ink-soft);
    font-size: 0.66rem;
    font-weight: 800;
    text-transform: uppercase;
}

.registration-data dd {
    margin: 0.2rem 0 0;
    font-weight: 700;
}

.registration-document footer {
    color: var(--hotel-ink-soft);
    font-size: 0.7rem;
}

.business-date-large {
    min-width: 190px;
    padding: 0.85rem 1rem;
    color: #fff;
    background: var(--hotel-petrol-dark);
    border-radius: 14px;
}

.business-date-large span,
.business-date-large strong {
    display: block;
}

.business-date-large span {
    color: rgba(255, 255, 255, 0.65);
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
}

.business-date-large strong {
    margin-top: 0.2rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.3rem;
}

.audit-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(290px, 0.6fr);
    align-items: start;
    gap: 1rem;
}

.audit-preview-panel,
.audit-history-panel {
    overflow: hidden;
}

.audit-state {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.65rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
}

.audit-state.blocked {
    color: #8f331d;
    background: #fae7df;
}

.audit-state.ready {
    color: #21624f;
    background: #e1f3eb;
}

.audit-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    background: var(--hotel-border);
    border-top: 1px solid var(--hotel-border);
    border-bottom: 1px solid var(--hotel-border);
}

.audit-metrics > div {
    padding: 1rem;
    background: #fff;
}

.audit-metrics span,
.audit-metrics strong {
    display: block;
}

.audit-metrics span {
    color: var(--hotel-ink-soft);
    font-size: 0.7rem;
}

.audit-metrics strong {
    margin-top: 0.2rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.6rem;
}

.audit-blockers {
    display: grid;
}

.audit-blockers > a {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.7rem;
    padding: 0.85rem 1.1rem;
    color: var(--hotel-ink);
    border-bottom: 1px solid var(--hotel-border);
    text-decoration: none;
}

.audit-blockers > a:hover {
    background: rgba(19, 44, 44, 0.035);
}

.audit-blockers strong,
.audit-blockers small {
    display: block;
}

.audit-blockers small {
    color: var(--hotel-ink-soft);
    font-size: 0.7rem;
}

.audit-run-form {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) auto;
    align-items: end;
    gap: 0.75rem;
    padding: 1.1rem;
}

.audit-run-form small {
    grid-column: 1 / -1;
    color: #8f331d;
}

.audit-run-form .btn {
    justify-content: center;
    min-height: 44px;
}

.audit-history-list {
    display: grid;
}

.audit-history-list article {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
    border-top: 1px solid var(--hotel-border);
}

.audit-history-list strong,
.audit-history-list small {
    display: block;
}

.audit-history-list small {
    color: var(--hotel-ink-soft);
    font-size: 0.68rem;
}

.audit-run-icon {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    color: var(--hotel-petrol-dark);
    background: var(--hotel-mint);
    border-radius: 9px;
}

.tax-rule-config {
    margin-top: 1rem;
}

.tax-rule-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 0.6fr);
    gap: 1rem;
    padding: 0 1.2rem 1.2rem;
}

.tax-rule-layout > form {
    padding: 0;
}

.tax-rule-list {
    display: grid;
    align-content: start;
    border: 1px solid var(--hotel-border);
    border-radius: 12px;
}

.tax-rule-list > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem;
    border-bottom: 1px solid var(--hotel-border);
}

.tax-rule-list > div:last-child {
    border-bottom: 0;
}

.tax-rule-list strong,
.tax-rule-list small {
    display: block;
}

.tax-rule-list small {
    color: var(--hotel-ink-soft);
    font-size: 0.67rem;
}

.report-filter-panel {
    margin-bottom: 1rem;
}

.report-filter-panel form {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(180px, 0.65fr) auto;
    align-items: end;
    gap: 0.85rem;
}

.report-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 1.4rem 1.6rem;
    color: #fff;
    background:
        linear-gradient(120deg, rgba(255, 255, 255, 0.08), transparent 55%),
        var(--hotel-ink);
    border-radius: var(--hotel-radius);
    box-shadow: var(--hotel-shadow);
}

.report-hero h2 {
    margin: 0.2rem 0 0;
    color: #fff;
}

.report-main-metric {
    min-width: 170px;
    text-align: right;
}

.report-main-metric span,
.report-main-metric small,
.report-metric-grid span,
.report-metric-grid small {
    display: block;
}

.report-main-metric span,
.report-main-metric small {
    color: rgba(255, 255, 255, 0.68);
}

.report-main-metric strong {
    display: block;
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1;
}

.report-metric-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.report-metric-grid article {
    position: relative;
    min-height: 150px;
    padding: 1.15rem;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--hotel-border);
    border-radius: var(--hotel-radius);
    box-shadow: var(--hotel-shadow);
}

.report-metric-grid .ti {
    position: absolute;
    top: 0.8rem;
    right: 0.9rem;
    color: rgba(13, 107, 102, 0.18);
    font-size: 2.4rem;
}

.report-metric-grid span,
.report-metric-grid small {
    color: var(--hotel-ink-soft);
}

.report-metric-grid strong {
    display: block;
    margin: 1rem 0 0.2rem;
    font-size: 1.7rem;
}

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

.report-table-panel,
.report-operations-panel {
    min-width: 0;
    overflow: hidden;
}

.report-operation-stats,
.room-status-report {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    padding: 1rem;
}

.report-operation-stats > div,
.room-status-report > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    min-height: 62px;
    padding: 0.8rem;
    background: var(--hotel-paper);
    border-radius: 12px;
}

.report-operation-stats strong,
.room-status-report strong {
    font-size: 1.35rem;
}

.access-onboarding {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 1.2rem;
    border-color: rgba(201, 111, 59, 0.28);
}

.access-onboarding h2,
.access-onboarding p {
    margin: 0;
}

.access-onboarding p:last-child {
    margin-top: 0.35rem;
    color: var(--hotel-ink-soft);
}

.access-onboarding-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.access-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.access-summary-grid article {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: center;
    gap: 0.2rem 0.85rem;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid var(--hotel-border);
    border-radius: var(--hotel-radius);
}

.access-summary-grid .ti {
    grid-row: 1 / 3;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    color: var(--hotel-petrol);
    background: var(--hotel-mint);
    border-radius: 12px;
    font-size: 1.35rem;
}

.access-summary-grid span {
    color: var(--hotel-ink-soft);
    font-size: 0.78rem;
}

.access-summary-grid strong {
    font-size: 1.25rem;
}

.access-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(340px, 0.65fr);
    align-items: start;
    gap: 1rem;
}

.access-role-heading {
    border-top: 1px solid var(--hotel-border);
}

.role-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
    padding: 1rem;
}

.role-card {
    min-width: 0;
    padding: 0.85rem;
    background: var(--hotel-paper);
    border-radius: 12px;
}

.role-card strong,
.role-card small,
.role-card span {
    display: block;
}

.role-card small {
    overflow: hidden;
    color: var(--hotel-ink-soft);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.role-card span {
    margin-top: 0.55rem;
    color: var(--hotel-petrol);
    font-size: 0.74rem;
    font-weight: 700;
}

.role-create-panel > summary {
    padding: 1rem;
    cursor: pointer;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.15rem;
}

.role-create-panel > form {
    padding-top: 0;
}

.form-check-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.4rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.form-check-list > div label {
    min-height: 40px;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem;
    background: var(--hotel-paper);
    border-radius: 9px;
    font-size: 0.76rem;
    cursor: pointer;
}

@media (max-width: 1100px) {
    .workspace-grid,
    .workspace-grid.wide-form {
        grid-template-columns: 1fr;
    }

    .sticky-form {
        position: static;
    }

    .front-office-grid {
        grid-template-columns: 1fr;
    }

    .folio-layout,
    .folio-actions-grid,
    .operations-board,
    .rate-product-grid,
    .rate-management-grid,
    .rate-form-grid,
    .billing-overview,
    .audit-grid,
    .access-layout {
        grid-template-columns: 1fr;
    }

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

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

    .availability-search-panel form {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

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

    .folio-list-panel {
        position: static;
    }

    .folio-payment-strip {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .module-header {
        display: block;
    }

    .module-header-actions,
    .rooms-header-actions {
        justify-content: stretch;
        margin-top: 1rem;
    }

    .module-header-actions .btn,
    .rooms-header-actions .btn,
    .rooms-header-actions .property-filter {
        flex: 1 1 100%;
        justify-content: center;
    }

    .module-header > :last-child:not(div) {
        margin-top: 1rem;
    }

    .property-filter {
        min-width: 0;
        margin-top: 1rem;
    }

    .rooms-header-actions .property-filter {
        margin-top: 0;
    }

    .property-summary-grid,
    .room-type-overview {
        grid-template-columns: 1fr;
    }

    .room-type-chip-list {
        grid-template-columns: 1fr;
    }

    .table-responsive:has(.module-table) {
        overflow: visible;
    }

    .module-table,
    .module-table tbody,
    .module-table tr,
    .module-table td {
        width: 100%;
        display: block;
    }

    .module-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }

    .module-table tbody {
        display: grid;
        gap: 0.75rem;
        padding: 0.75rem;
    }

    .module-table tr {
        overflow: hidden;
        background: #fff;
        border: 1px solid var(--hotel-border);
        border-radius: 12px;
    }

    .module-table td {
        display: grid;
        grid-template-columns: minmax(105px, 0.6fr) minmax(0, 1fr);
        align-items: center;
        gap: 0.75rem;
        padding: 0.7rem 0.8rem;
        overflow-wrap: anywhere;
        border-bottom: 1px solid var(--hotel-border);
        text-align: left !important;
    }

    .module-table td:last-child {
        border-bottom: 0;
    }

    .module-table td::before {
        color: var(--hotel-ink-soft);
        content: attr(data-label);
        font-size: 0.68rem;
        font-weight: 800;
        letter-spacing: 0.05em;
        text-transform: uppercase;
    }

    .module-table td[colspan] {
        display: block;
    }

    .module-table td[colspan]::before {
        content: none;
    }

    .status-select {
        width: 100%;
        min-width: 0;
    }

    .two-form-grid {
        grid-template-columns: 1fr;
    }

    .reservation-card {
        grid-template-columns: 48px minmax(0, 1fr);
    }

    .reservation-card-actions {
        grid-template-columns: 48px minmax(0, 1fr) 42px;
    }

    .reservation-room,
    .reservation-card > .status-pill {
        grid-column: 2;
    }

    .reservation-card-actions > .reservation-actions {
        grid-column: 3;
        grid-row: 1;
    }

    .reservation-card-actions > .reservation-actions[open] {
        grid-column: 1 / -1;
        grid-row: auto;
    }

    .operation-card {
        grid-template-columns: 1fr;
    }

    .operation-dates {
        justify-content: flex-start;
    }

    .operation-card > form:last-child,
    .room-chip,
    .room-move-control {
        justify-self: stretch;
    }

    .operation-card > form:last-child .btn {
        width: 100%;
        justify-content: center;
    }

    .room-move-control form {
        grid-template-columns: 1fr;
    }

    .folio-summary {
        align-items: stretch;
        flex-direction: column;
    }

    .folio-summary-actions .btn,
    .folio-payment-strip {
        width: 100%;
    }

    .folio-summary-actions .btn {
        flex: 1 1 100%;
        justify-content: center;
    }

    .folio-payment-strip {
        grid-template-columns: 1fr;
    }

    .ledger-table th,
    .ledger-table td {
        padding: 0.65rem 0.45rem;
        font-size: 0.76rem;
    }

    .ledger-table th:nth-child(3),
    .ledger-table td:nth-child(3),
    .ledger-table th:nth-child(4),
    .ledger-table td:nth-child(4) {
        display: none;
    }

    .ledger-table th:nth-child(1) {
        width: 14%;
    }

    .ledger-table th:nth-child(2) {
        width: 31%;
    }

    .ledger-table th:nth-child(5) {
        width: 22%;
    }

    .ledger-table th:nth-child(6) {
        width: 33%;
    }

    .folio-balance {
        text-align: left;
    }

    .ledger-row-actions {
        justify-content: flex-start;
    }

    .compact-form-panel form {
        grid-template-columns: 1fr;
    }

    .attention-strip {
        align-items: flex-start;
        flex-direction: column;
    }

    .attention-room-list {
        justify-content: flex-start;
    }

    .task-card {
        grid-template-columns: 58px minmax(0, 1fr);
    }

    .task-actions {
        grid-column: 1 / -1;
    }

    .task-actions .btn,
    .task-actions form {
        width: 100%;
    }

    .inline-create form {
        grid-template-columns: 1fr;
    }

    .maintenance-actions {
        flex-direction: column;
    }

    .availability-search-panel form,
    .availability-results,
    .billing-config-grid,
    .invoice-parties {
        grid-template-columns: 1fr;
    }

    .meal-entitlement-list {
        grid-template-columns: 1fr;
    }

    .meal-entitlement-card:nth-child(odd) {
        border-right: 0;
    }

    .rate-product-card {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    .rate-rule-summary {
        grid-column: 2;
        text-align: left;
    }

    .invoice-document > header {
        flex-direction: column;
    }

    .invoice-total {
        width: 100%;
        text-align: left;
    }

    .registration-card {
        grid-template-columns: 40px minmax(0, 1fr) 40px;
    }

    .registration-stay {
        grid-column: 2;
    }

    .registration-form-panel {
        position: static;
    }

    .registration-form-panel form,
    .registration-data {
        grid-template-columns: 1fr;
    }

    .registration-data > .wide {
        grid-column: auto;
    }

    .audit-metrics,
    .audit-run-form,
    .tax-rule-layout,
    .report-filter-panel form,
    .report-metric-grid,
    .report-sections-grid {
        grid-template-columns: 1fr;
    }

    .report-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .report-main-metric {
        min-width: 0;
        text-align: left;
    }

    .access-onboarding,
    .topbar-property-context {
        align-items: stretch;
        flex-direction: column;
    }

    .access-onboarding-actions,
    .access-onboarding-actions .btn {
        width: 100%;
    }

    .access-summary-grid,
    .role-card-grid,
    .form-check-list {
        grid-template-columns: 1fr;
    }
}

@media print {
    .app-sidebar,
    .topbar,
    .invoice-document-actions,
    .skip-link {
        display: none !important;
    }

    .app-shell,
    .app-main {
        display: block;
    }

    .invoice-document-wrap {
        max-width: none;
        padding: 0;
    }

    .invoice-document {
        border: 0;
        box-shadow: none;
    }

    .registration-document-wrap {
        max-width: none;
        padding: 0;
    }

    .registration-document {
        border: 0;
        box-shadow: none;
    }
}

@media (max-width: 980px) {
    .efactura-summary {
        grid-template-columns: 1fr;
    }
}

/* Commercial workspace */
.commerce-page,
#commerce-workspace,
.commerce-layout,
.commerce-reference-grid,
.commerce-groups-panel,
.commerce-side-stack {
    min-width: 0;
}

.operation-notice {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 1rem;
    padding: 0.8rem 1rem;
    color: #12654f;
    background: #e5f4ee;
    border: 1px solid rgba(18, 101, 79, 0.18);
    border-radius: 12px;
}

.commerce-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.commerce-summary > article {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.76);
    border: 1px solid var(--hotel-border);
    border-radius: 15px;
}

.commerce-summary > article > div {
    min-width: 0;
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: baseline;
    gap: 0 0.45rem;
}

.commerce-summary small,
.commerce-summary span,
.allotment-heading small,
.negotiated-rate-list small,
.commerce-table small {
    color: var(--hotel-ink-soft);
    font-size: 0.72rem;
}

.commerce-summary > article > div > small {
    grid-column: 1 / -1;
}

.commerce-summary strong {
    overflow: hidden;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.55rem;
    font-weight: 500;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.commerce-summary-icon {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: grid;
    place-items: center;
    color: var(--hotel-petrol);
    background: var(--hotel-mint);
    border-radius: 12px;
    font-size: 1.2rem;
}

.commerce-summary-icon.warm {
    color: #a84d27;
    background: #f8e5d9;
}

.commerce-summary-icon.blue {
    color: #17678d;
    background: #deedf5;
}

.commerce-summary-icon.violet {
    color: #6c51a3;
    background: #ede7f6;
}

.commercial-command-center {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(360px, 0.85fr);
    align-items: start;
    gap: 1rem;
    margin-bottom: 1rem;
}

.commercial-alert-center,
.pickup-report-panel {
    min-width: 0;
    overflow: hidden;
}

.alert-counter {
    min-width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    color: #875b14;
    background: #f6edd7;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 800;
}

.alert-counter.has-critical {
    color: #9c3d24;
    background: #fae5dc;
}

.commercial-alert-list {
    display: grid;
}

.commercial-alert {
    min-width: 0;
    min-height: 62px;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 0.65rem;
    padding: 0.72rem 1rem;
    color: inherit;
    border-top: 1px solid var(--hotel-border);
    text-decoration: none;
}

.commercial-alert:hover,
.commercial-alert:focus-visible {
    color: inherit;
    background: rgba(13, 107, 102, 0.045);
}

.commercial-alert-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    color: #17678d;
    background: #deedf5;
    border-radius: 11px;
    font-size: 1.05rem;
}

.commercial-alert.severity-warning .commercial-alert-icon {
    color: #875b14;
    background: #f6edd7;
}

.commercial-alert.severity-critical .commercial-alert-icon {
    color: #9c3d24;
    background: #fae5dc;
}

.commercial-alert > span:nth-child(2),
.commercial-alert strong,
.commercial-alert small {
    min-width: 0;
    display: block;
}

.commercial-alert strong {
    overflow: hidden;
    font-size: 0.78rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.commercial-alert small,
.commercial-alert time,
.commercial-more-alerts {
    color: var(--hotel-ink-soft);
    font-size: 0.69rem;
}

.commercial-alert time {
    white-space: nowrap;
}

.commercial-more-alerts {
    margin: 0;
    padding: 0.65rem 1rem;
    border-top: 1px solid var(--hotel-border);
}

.commercial-clear-state {
    min-height: 126px;
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 1rem;
}

.commercial-clear-state > .ti {
    color: var(--hotel-petrol);
    font-size: 1.75rem;
}

.commercial-clear-state span,
.commercial-clear-state strong,
.commercial-clear-state small {
    display: block;
}

.commercial-clear-state small {
    max-width: 48ch;
    margin-top: 0.15rem;
    color: var(--hotel-ink-soft);
    font-size: 0.72rem;
}

.pickup-overview {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    border-top: 1px solid var(--hotel-border);
}

.pickup-score {
    min-height: 92px;
    display: grid;
    place-items: center;
    align-content: center;
    background: rgba(226, 241, 237, 0.66);
    border: 7px solid var(--hotel-mint);
    border-radius: 50%;
}

.pickup-score strong,
.pickup-score span {
    display: block;
}

.pickup-score strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.45rem;
    font-weight: 500;
}

.pickup-score span {
    color: var(--hotel-ink-soft);
    font-size: 0.65rem;
}

.pickup-progress-copy {
    min-width: 0;
    display: grid;
    gap: 0.55rem;
}

.pickup-progress-copy > div {
    min-width: 0;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.72rem;
}

.pickup-progress-copy span {
    color: var(--hotel-ink-soft);
}

.pickup-progress-copy progress {
    width: 100%;
    height: 9px;
    overflow: hidden;
    appearance: none;
    background: var(--hotel-mint);
    border: 0;
    border-radius: 999px;
}

.pickup-progress-copy progress::-webkit-progress-bar {
    background: var(--hotel-mint);
}

.pickup-progress-copy progress::-webkit-progress-value {
    background: var(--hotel-petrol);
    border-radius: 999px;
}

.pickup-progress-copy progress::-moz-progress-bar {
    background: var(--hotel-petrol);
    border-radius: 999px;
}

.pickup-breakdown {
    border-top: 1px solid var(--hotel-border);
}

.pickup-breakdown > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.72rem 1rem;
    list-style: none;
    cursor: pointer;
    font-size: 0.74rem;
}

.pickup-breakdown > summary::-webkit-details-marker {
    display: none;
}

.pickup-breakdown > summary span {
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

.pickup-breakdown[open] > summary > .ti {
    transform: rotate(180deg);
}

.pickup-breakdown-body {
    max-height: 340px;
    overflow: auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--hotel-border);
}

.pickup-breakdown-body > section {
    min-width: 0;
    padding: 0.8rem;
}

.pickup-breakdown-body > section + section {
    border-left: 1px solid var(--hotel-border);
}

.pickup-breakdown-body h3 {
    margin: 0 0 0.45rem;
    color: var(--hotel-ink-soft);
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.pickup-breakdown-body p {
    color: var(--hotel-ink-soft);
    font-size: 0.72rem;
}

.pickup-row {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    padding: 0.5rem 0;
    border-top: 1px solid rgba(20, 53, 51, 0.08);
}

.pickup-row > span,
.pickup-row strong,
.pickup-row small {
    min-width: 0;
    display: block;
}

.pickup-row strong {
    overflow: hidden;
    font-size: 0.72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pickup-row small {
    color: var(--hotel-ink-soft);
    font-size: 0.64rem;
}

.pickup-row-metric {
    flex: 0 0 auto;
    text-align: right;
}

#commercial-contracts,
#negotiated-rates,
[id^="group-"],
[id^="allotment-"] {
    scroll-margin-top: 5rem;
}

.commerce-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.75fr) minmax(310px, 0.7fr);
    align-items: start;
    gap: 1rem;
}

.commerce-side-stack {
    display: grid;
    gap: 1rem;
}

.group-pipeline,
.allotment-list,
.negotiated-rate-list {
    display: grid;
}

.group-card {
    min-width: 0;
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    gap: 0.85rem 1rem;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid var(--hotel-border);
}

.group-card:last-child,
.allotment-list > article:last-child,
.negotiated-rate-list > article:last-child {
    border-bottom: 0;
}

.group-card.status-definite,
.group-card.status-in_house {
    box-shadow: inset 3px 0 var(--hotel-petrol);
}

.group-date {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    align-content: center;
    color: var(--hotel-petrol-dark);
    background: var(--hotel-mint);
    border-radius: 15px;
}

.group-date strong,
.group-date span {
    line-height: 1;
}

.group-date strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.45rem;
}

.group-date span {
    margin-top: 0.22rem;
    font-size: 0.67rem;
    font-weight: 800;
    text-transform: uppercase;
}

.group-main {
    min-width: 0;
}

.group-title-line,
.allotment-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.group-title-line h3 {
    margin: 0.4rem 0 0;
    font-size: 1rem;
}

.group-code {
    color: var(--hotel-ink-soft);
    font-size: 0.72rem;
    letter-spacing: 0.06em;
}

.group-main > p,
.allotment-list article > p {
    margin: 0.35rem 0 0;
    color: var(--hotel-ink-soft);
    font-size: 0.78rem;
}

.block-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.8rem;
}

.block-chip {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.45rem 0.45rem 0.45rem 0.65rem;
    background: rgba(13, 107, 102, 0.07);
    border: 1px solid rgba(13, 107, 102, 0.12);
    border-radius: 10px;
}

.block-chip > span {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 0 0.35rem;
}

.block-chip small {
    grid-column: 2;
    color: var(--hotel-ink-soft);
    font-size: 0.67rem;
}

.block-chip.released {
    opacity: 0.58;
    background: #eef0ef;
    border-color: transparent;
}

.block-chip em {
    color: var(--hotel-ink-soft);
    font-size: 0.68rem;
    font-style: normal;
}

.rooming-list {
    margin-top: 0.85rem;
    overflow: hidden;
    background: rgba(244, 247, 245, 0.72);
    border: 1px solid var(--hotel-border);
    border-radius: 12px;
}

.rooming-list > summary {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.65rem 0.8rem;
    list-style: none;
    cursor: pointer;
}

.rooming-list > summary::-webkit-details-marker {
    display: none;
}

.rooming-list > summary > span {
    min-width: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 0 0.5rem;
}

.rooming-list > summary .ti {
    color: var(--hotel-petrol);
}

.rooming-list > summary small {
    grid-column: 2;
    color: var(--hotel-ink-soft);
    font-size: 0.7rem;
}

.rooming-list[open] > summary > .ti {
    transform: rotate(180deg);
}

.rooming-list-body {
    border-top: 1px solid var(--hotel-border);
}

.rooming-entry {
    min-width: 0;
    display: grid;
    grid-template-columns: auto minmax(150px, 1.1fr) minmax(180px, 0.9fr) auto auto;
    align-items: center;
    gap: 0.7rem;
    padding: 0.7rem 0.8rem;
    background: rgba(255, 255, 255, 0.72);
    border-bottom: 1px solid var(--hotel-border);
}

.rooming-entry:last-child {
    border-bottom: 0;
}

.rooming-entry.status-cancelled {
    opacity: 0.58;
}

.rooming-reference {
    padding: 0.28rem 0.42rem;
    color: var(--hotel-petrol-dark);
    background: var(--hotel-mint);
    border-radius: 7px;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.rooming-guest,
.rooming-stay {
    min-width: 0;
    display: grid;
}

.rooming-guest strong,
.rooming-stay strong,
.rooming-confirmation {
    overflow: hidden;
    font-size: 0.76rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rooming-guest small,
.rooming-stay small {
    overflow: hidden;
    color: var(--hotel-ink-soft);
    font-size: 0.68rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rooming-actions,
.rooming-actions form,
.rooming-footer,
.rooming-footer form {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
}

.rooming-footer {
    justify-content: space-between;
    padding: 0.65rem 0.8rem;
    border-top: 1px solid var(--hotel-border);
}

.rooming-empty {
    min-height: 74px;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.85rem;
    color: var(--hotel-ink-soft);
}

.rooming-empty > .ti {
    font-size: 1.35rem;
}

.rooming-empty span,
.rooming-empty strong,
.rooming-empty small {
    display: block;
}

.rooming-empty strong {
    color: var(--hotel-ink);
    font-size: 0.78rem;
}

.rooming-empty small {
    font-size: 0.7rem;
}

.rooming-import-help {
    display: grid;
    gap: 0.45rem;
    margin: 1rem 0;
    padding: 0.85rem;
    color: var(--hotel-ink-soft);
    background: var(--hotel-paper);
    border-radius: 11px;
}

.rooming-import-help code {
    overflow-wrap: anywhere;
    color: var(--hotel-petrol-dark);
    font-size: 0.7rem;
}

.rooming-import-help small {
    font-size: 0.7rem;
}

.group-finance-strip {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(210px, 1.4fr) repeat(3, minmax(92px, 0.45fr));
    align-items: center;
    gap: 0.65rem;
    margin-top: 0.85rem;
    padding: 0.75rem;
    background: linear-gradient(120deg, rgba(248, 229, 217, 0.58), rgba(255, 255, 255, 0.76));
    border: 1px solid rgba(168, 77, 39, 0.14);
    border-radius: 12px;
}

.group-finance-heading,
.group-finance-empty {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.group-finance-heading > div,
.group-finance-heading strong,
.group-finance-heading small,
.group-finance-empty > div,
.group-finance-empty strong,
.group-finance-empty small {
    min-width: 0;
    display: block;
}

.group-finance-heading strong,
.group-finance-empty strong {
    overflow: hidden;
    font-size: 0.76rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.group-finance-heading small,
.group-finance-empty small,
.group-finance-metric small,
.group-finance-metric span,
.group-routing-chips small {
    color: var(--hotel-ink-soft);
    font-size: 0.66rem;
}

.group-finance-metric {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    padding-left: 0.65rem;
    border-left: 1px solid rgba(168, 77, 39, 0.14);
}

.group-finance-metric small {
    grid-column: 1 / -1;
}

.group-finance-metric strong {
    overflow: hidden;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.02rem;
    font-weight: 500;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.group-finance-metric.due strong {
    color: #a84d27;
}

.group-finance-metric.credit strong {
    color: #12654f;
}

.group-routing-chips {
    grid-column: 1 / 3;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.group-routing-chips > span {
    padding: 0.25rem 0.45rem;
    color: var(--hotel-petrol-dark);
    background: rgba(13, 107, 102, 0.09);
    border-radius: 999px;
    font-size: 0.66rem;
    font-weight: 700;
}

.group-finance-actions {
    grid-column: 3 / -1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.group-finance-actions form,
.group-finance-empty form {
    margin: 0;
}

.group-finance-empty {
    grid-column: 1 / -1;
}

.group-finance-empty > span {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: grid;
    place-items: center;
    color: #a84d27;
    background: #f8e5d9;
    border-radius: 12px;
}

.group-finance-empty > div {
    flex: 1;
}

.routing-category-field .form-check-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
    padding: 0;
}

.routing-category-field .form-check-list > div {
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: 0.55rem 0.65rem;
    background: var(--hotel-paper);
    border: 1px solid var(--hotel-border);
    border-radius: 10px;
}

.no-blocks {
    color: var(--hotel-ink-soft);
    font-size: 0.76rem;
}

.group-pickup {
    min-width: 56px;
    display: grid;
    align-content: start;
    justify-items: end;
}

.group-pickup strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.4rem;
    font-weight: 500;
}

.group-pickup span {
    color: var(--hotel-ink-soft);
    font-size: 0.68rem;
}

.group-actions {
    grid-column: 2 / -1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.45rem;
}

.group-actions form {
    margin: 0;
}

.group-secondary-actions {
    position: relative;
}

.group-secondary-actions > summary {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    list-style: none;
    cursor: pointer;
    border: 1px solid var(--hotel-border);
    border-radius: 9px;
}

.group-secondary-actions > summary::-webkit-details-marker {
    display: none;
}

.group-secondary-actions[open] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.allotment-list > article,
.negotiated-rate-list > article {
    padding: 1rem;
    border-bottom: 1px solid var(--hotel-border);
}

.allotment-heading {
    align-items: center;
}

.allotment-heading > div {
    min-width: 0;
    display: grid;
    flex: 1;
}

.allotment-mode-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.commerce-reference-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.65fr);
    gap: 1rem;
    margin-top: 1rem;
}

.commerce-table td > strong,
.commerce-table td > small {
    display: block;
}

.negotiated-rate-list > article {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.negotiated-rate-list > article > div {
    min-width: 0;
    display: grid;
}

.negotiated-price {
    text-align: right;
}

.drawer-form-section {
    margin: 1rem 1.4rem;
    overflow: hidden;
    border: 1px solid var(--hotel-border);
    border-radius: 13px;
}

.drawer-form-section > summary {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.9rem 1rem;
    list-style: none;
    cursor: pointer;
    background: var(--hotel-paper);
}

.drawer-form-section > summary::-webkit-details-marker {
    display: none;
}

.drawer-form-section > summary > .ti {
    color: var(--hotel-petrol);
    font-size: 1.2rem;
}

.drawer-form-section > summary span,
.drawer-form-section > summary strong,
.drawer-form-section > summary small {
    display: block;
}

.drawer-form-section > summary small {
    color: var(--hotel-ink-soft);
    font-size: 0.7rem;
}

.drawer-form-section > form {
    padding: 1rem;
    border-top: 1px solid var(--hotel-border);
}

.status-lead,
.status-option {
    color: #6c51a3;
    background: #ede7f6;
}

.status-tentative,
.status-on_request {
    color: #875b14;
    background: #f6edd7;
}

.status-definite,
.status-in_house,
.status-active,
.status-free_sale,
.status-ready,
.status-reserved {
    color: #12654f;
    background: #daf0e8;
}

.status-completed,
.status-expired,
.status-lost,
.status-cancelled,
.status-stop_sale {
    color: #596462;
    background: #e9eceb;
}

@media (max-width: 1180px) {
    .commerce-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .commercial-command-center,
    .commerce-layout,
    .commerce-reference-grid {
        grid-template-columns: 1fr;
    }

    .commerce-groups-panel .panel-heading {
        align-items: flex-start;
    }

    .commerce-groups-panel .panel-heading-actions {
        flex-wrap: wrap;
        justify-content: flex-end;
    }
}

@media (max-width: 720px) {
    .commerce-summary {
        grid-template-columns: 1fr;
    }

    .pickup-overview {
        grid-template-columns: 92px minmax(0, 1fr);
    }

    .pickup-score {
        min-height: 78px;
    }

    .pickup-breakdown-body {
        grid-template-columns: 1fr;
    }

    .pickup-breakdown-body > section + section {
        border-top: 1px solid var(--hotel-border);
        border-left: 0;
    }

    .commercial-alert {
        grid-template-columns: 38px minmax(0, 1fr) auto;
    }

    .commercial-alert time {
        grid-column: 2;
    }

    .commercial-alert > .ti {
        grid-column: 3;
        grid-row: 1 / span 2;
    }

    .group-card {
        grid-template-columns: 48px minmax(0, 1fr);
        padding-inline: 0.8rem;
    }

    .group-date {
        width: 48px;
        height: 48px;
    }

    .group-title-line {
        display: block;
    }

    .group-code {
        display: block;
        margin-top: 0.35rem;
    }

    .group-pickup {
        grid-column: 1;
        grid-row: 2;
        justify-items: center;
    }

    .group-actions {
        grid-column: 1 / -1;
        justify-content: stretch;
        flex-wrap: wrap;
    }

    .group-actions .btn,
    .group-actions form {
        flex: 1 1 auto;
    }

    .group-actions form .btn {
        width: 100%;
        justify-content: center;
    }

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

    .rooming-stay {
        grid-column: 2 / -1;
    }

    .rooming-actions,
    .rooming-confirmation {
        grid-column: 2 / -1;
        justify-self: stretch;
    }

    .rooming-actions form:first-child,
    .rooming-actions form:first-child .btn {
        width: 100%;
    }

    .rooming-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .rooming-footer .btn,
    .rooming-footer form,
    .rooming-footer form .btn {
        width: 100%;
        justify-content: center;
    }

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

    .group-finance-heading,
    .group-routing-chips,
    .group-finance-actions,
    .group-finance-empty {
        grid-column: 1 / -1;
    }

    .group-finance-metric {
        border-left: 0;
        border-top: 1px solid rgba(168, 77, 39, 0.14);
        padding: 0.55rem 0 0;
    }

    .group-finance-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .group-finance-actions .btn,
    .group-finance-actions form,
    .group-finance-actions form .btn,
    .group-finance-empty form,
    .group-finance-empty form .btn {
        width: 100%;
        justify-content: center;
    }

    .group-finance-empty {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .group-finance-empty > div {
        width: calc(100% - 54px);
        flex: 0 0 calc(100% - 54px);
    }

    .routing-category-field .form-check-list {
        grid-template-columns: 1fr;
    }

    .allotment-heading,
    .negotiated-rate-list > article {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .negotiated-price {
        text-align: left;
    }
}

/* Extended room operations */
.service-operations-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: 1rem;
    margin-top: 1rem;
}

.service-operation-panel {
    min-width: 0;
}

.service-record-list {
    display: grid;
}

.service-record-list > article {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--hotel-border);
}

.service-record-list > article:last-child {
    border-bottom: 0;
}

.service-record-list > article > div {
    min-width: 0;
    display: grid;
    flex: 1;
}

.service-record-list strong,
.service-record-list small {
    overflow-wrap: anywhere;
}

.service-record-list small {
    margin-top: 0.2rem;
    color: var(--hotel-ink-soft);
    font-size: 0.72rem;
}

.service-record-icon {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    display: grid;
    place-items: center;
    color: var(--hotel-petrol);
    background: var(--hotel-mint);
    border-radius: 10px;
}

.service-record-value {
    flex: 0 0 auto;
    font-size: 0.78rem;
}

.service-record-stacked,
.incident-record {
    align-items: flex-start !important;
    flex-direction: column;
}

.compact-action-form {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.45rem;
}

.incident-record > div > strong,
.incident-record > div > small {
    display: block;
}

.incident-record > div > strong {
    margin-top: 0.45rem;
}

.incident-resolution {
    width: 100%;
}

.incident-resolution > summary {
    list-style: none;
    cursor: pointer;
}

.incident-resolution > summary::-webkit-details-marker {
    display: none;
}

.incident-resolution > form {
    display: grid;
    gap: 0.5rem;
    margin-top: 0.65rem;
    padding-top: 0.65rem;
    border-top: 1px solid var(--hotel-border);
}

.incident-resolution label {
    font-size: 0.75rem;
    font-weight: 700;
}

@media (max-width: 1280px) {
    .service-operations-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .service-record-list > article {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .service-record-value {
        width: 100%;
        padding-left: 2.7rem;
    }
}

/* Shift handover */
.handover-heading {
    align-items: flex-end;
}

.handover-heading > div {
    max-width: 760px;
}

.handover-pulse {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.handover-pulse article {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.9rem 1rem;
    background: rgba(255, 255, 255, 0.76);
    border: 1px solid var(--hotel-border);
    border-radius: 14px;
    box-shadow: 0 8px 24px rgba(32, 49, 45, 0.04);
}

.handover-pulse-icon {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: grid;
    place-items: center;
    color: var(--hotel-petrol-dark);
    background: var(--hotel-mint);
    border-radius: 12px;
    font-size: 1.2rem;
}

.handover-pulse-icon.tone-amber {
    color: #87511f;
    background: #f8ead5;
}

.handover-pulse-icon.tone-coral {
    color: #9c3f30;
    background: #f8e3dc;
}

.handover-pulse small,
.handover-pulse strong {
    display: block;
    overflow-wrap: anywhere;
}

.handover-pulse small {
    color: var(--hotel-ink-soft);
    font-size: 0.72rem;
}

.handover-pulse strong {
    margin-top: 0.12rem;
    font-size: 1rem;
}

.active-handover {
    min-width: 0;
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    overflow: hidden;
    border-color: rgba(13, 107, 102, 0.2);
}

.active-handover.status-ready {
    border-color: rgba(201, 111, 59, 0.32);
}

.active-handover-rail {
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255, 255, 255, 0.74);
    background: var(--hotel-petrol-dark);
}

.status-ready .active-handover-rail {
    background: #9b542f;
}

.active-handover-rail span {
    font-size: 0.67rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
}

.active-handover-body {
    min-width: 0;
    padding: 1.25rem;
}

.active-handover-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.active-handover-header h2,
.active-handover-header p,
.handover-summary-copy p,
.handover-acknowledgement h3 {
    margin: 0;
}

.active-handover-header h2 {
    margin-top: 0.5rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.65rem, 3vw, 2.35rem);
    font-weight: 500;
}

.active-handover-header > div:first-child > p {
    margin-top: 0.28rem;
    color: var(--hotel-ink-soft);
}

.handover-kicker,
.handover-header-actions,
.handover-item-tags {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.handover-kicker > span:not(.status-pill) {
    color: var(--hotel-ink-soft);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.handover-page .status-pill.status-open {
    color: var(--hotel-petrol-dark);
    background: var(--hotel-mint);
}

.handover-page .status-pill.status-ready {
    color: #8d421f;
    background: #f7e2d4;
}

.handover-cash-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    margin-top: 1.15rem;
    overflow: hidden;
    background: var(--hotel-border);
    border: 1px solid var(--hotel-border);
    border-radius: 13px;
}

.handover-cash-summary > div {
    min-width: 0;
    padding: 0.8rem 0.9rem;
    background: #f9faf8;
}

.handover-cash-summary small,
.handover-cash-summary strong {
    display: block;
}

.handover-cash-summary small {
    color: var(--hotel-ink-soft);
    font-size: 0.68rem;
    text-transform: uppercase;
}

.handover-cash-summary strong {
    margin-top: 0.12rem;
    font-variant-numeric: tabular-nums;
}

.handover-cash-summary.has-variance > div:last-child {
    color: #8c321f;
    background: #fff1eb;
}

.handover-cash-summary.is-opening-only {
    grid-template-columns: minmax(220px, 300px);
    overflow: visible;
    background: transparent;
    border: 0;
}

.handover-cash-summary.is-opening-only > div {
    border: 1px solid var(--hotel-border);
    border-radius: 12px;
}

.handover-ready-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
    gap: 1rem;
    margin-top: 1rem;
}

.handover-summary-copy,
.handover-acknowledgement {
    min-width: 0;
    padding: 1rem;
    border-radius: 14px;
}

.handover-summary-copy {
    background: #f6f4ee;
    border: 1px solid var(--hotel-border);
}

.handover-summary-copy > p:not(.eyebrow) {
    margin-top: 0.5rem;
}

.handover-summary-copy > small {
    display: block;
    margin-top: 0.75rem;
    color: var(--hotel-ink-soft);
}

.cash-explanation {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    margin-top: 0.8rem;
    padding: 0.7rem;
    color: #713c21;
    background: #f8eadc;
    border-radius: 10px;
}

.cash-explanation i {
    margin-top: 0.15rem;
}

.handover-acknowledgement {
    display: flex;
    align-items: flex-start;
    gap: 0.8rem;
    color: #fff;
    background: var(--hotel-petrol-dark);
}

.handover-acknowledgement > div {
    min-width: 0;
    flex: 1;
}

.handover-acknowledgement .eyebrow,
.handover-acknowledgement label {
    color: rgba(255, 255, 255, 0.7);
}

.handover-acknowledgement form {
    display: grid;
    gap: 0.7rem;
    margin-top: 0.75rem;
}

.handover-acknowledgement textarea {
    min-height: 78px;
    color: var(--hotel-ink);
    background: #fff;
}

.handover-ack-icon {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: grid;
    place-items: center;
    color: var(--hotel-petrol-dark);
    background: #fff;
    border-radius: 12px;
    font-size: 1.2rem;
}

.handover-separation-note {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0.7rem 0 0;
    color: rgba(255, 255, 255, 0.82);
}

.handover-log {
    margin-top: 1.25rem;
    border-top: 1px solid var(--hotel-border);
}

.handover-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 0 0.75rem;
}

.handover-section-heading h3,
.handover-section-heading p {
    margin: 0;
}

.handover-log-list {
    display: grid;
    gap: 0.55rem;
}

.handover-log-item {
    min-width: 0;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 0.75rem;
    padding: 0.85rem;
    background: #fbfbf8;
    border: 1px solid var(--hotel-border);
    border-left: 4px solid #93a6a2;
    border-radius: 11px;
}

.handover-log-item.priority-high {
    border-left-color: #d98c3d;
}

.handover-log-item.priority-critical {
    border-left-color: #b84431;
}

.handover-log-item.is-resolved {
    opacity: 0.68;
}

.handover-item-icon {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    color: var(--hotel-petrol);
    background: var(--hotel-mint);
    border-radius: 10px;
}

.handover-item-copy {
    min-width: 0;
}

.handover-item-copy > strong,
.handover-item-copy > p,
.handover-item-copy > small {
    display: block;
    overflow-wrap: anywhere;
}

.handover-item-copy > strong {
    margin-top: 0.4rem;
}

.handover-item-copy > p {
    margin: 0.25rem 0;
    color: var(--hotel-ink-soft);
}

.handover-item-copy > small {
    margin-top: 0.35rem;
    color: var(--hotel-ink-soft);
}

.handover-item-tags span {
    padding: 0.18rem 0.42rem;
    color: var(--hotel-ink-soft);
    background: #edf1ee;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.handover-item-tags .resolved-tag {
    color: var(--hotel-petrol-dark);
    background: var(--hotel-mint);
}

.handover-empty {
    min-width: 0;
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem;
}

.handover-empty h2,
.handover-empty p {
    margin: 0;
}

.handover-empty h2 {
    margin-top: 0.2rem;
}

.handover-empty > div > p:last-child {
    max-width: 720px;
    margin-top: 0.35rem;
    color: var(--hotel-ink-soft);
}

.handover-empty-mark {
    width: 64px;
    height: 64px;
    display: grid;
    place-items: center;
    color: #7c5028;
    background: #f5e7cf;
    border-radius: 18px 18px 6px 18px;
    font-size: 1.65rem;
}

.handover-support-grid {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr);
    align-items: start;
    gap: 1rem;
    margin-top: 1rem;
}

.handover-task-list,
.handover-history-list {
    display: grid;
    margin: 0;
    padding: 0;
}

.handover-queue-item {
    min-width: 0;
    display: grid;
    grid-template-columns: 8px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    padding: 0.9rem 1rem;
    border-top: 1px solid var(--hotel-border);
}

.queue-priority {
    width: 8px;
    height: 38px;
    background: #9bada9;
    border-radius: 999px;
}

.priority-high .queue-priority {
    background: #d98c3d;
}

.priority-critical .queue-priority {
    background: #b84431;
}

.handover-queue-item > div {
    min-width: 0;
}

.handover-queue-item strong,
.handover-queue-item small {
    display: block;
    overflow-wrap: anywhere;
}

.handover-queue-item strong {
    margin-top: 0.35rem;
}

.handover-queue-item small {
    margin-top: 0.2rem;
    color: var(--hotel-ink-soft);
}

.handover-history-list {
    list-style: none;
}

.handover-history-list li {
    min-width: 0;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.65rem;
    padding: 0.8rem 1rem;
    border-top: 1px solid var(--hotel-border);
}

.handover-history-list strong,
.handover-history-list small {
    display: block;
    overflow-wrap: anywhere;
}

.handover-history-list small {
    margin-top: 0.12rem;
    color: var(--hotel-ink-soft);
}

.history-state {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    color: var(--hotel-petrol-dark);
    background: var(--hotel-mint);
    border-radius: 50%;
}

.history-variance {
    font-size: 0.72rem;
    font-variant-numeric: tabular-nums;
    font-weight: 750;
}

.history-variance.has-variance {
    color: #9c3f30;
}

.history-empty {
    color: var(--hotel-ink-soft);
}

@media (max-width: 1100px) {
    .handover-ready-grid,
    .handover-support-grid {
        grid-template-columns: 1fr;
    }

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

@media (max-width: 720px) {
    .handover-heading,
    .active-handover-header {
        align-items: stretch;
        flex-direction: column;
    }

    .handover-heading .btn,
    .handover-header-actions,
    .handover-header-actions .btn {
        width: 100%;
    }

    .handover-header-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .handover-pulse {
        grid-template-columns: 1fr;
    }

    .active-handover {
        grid-template-columns: 1fr;
    }

    .active-handover-rail {
        min-height: 34px;
    }

    .active-handover-rail span {
        writing-mode: horizontal-tb;
        transform: none;
    }

    .active-handover-body {
        padding: 1rem;
    }

    .handover-cash-summary {
        grid-template-columns: 1fr;
    }

    .handover-cash-summary.is-opening-only {
        grid-template-columns: 1fr;
    }

    .handover-ready-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .handover-acknowledgement {
        flex-direction: column;
    }

    .handover-empty {
        grid-template-columns: 1fr;
    }

    .handover-empty .btn {
        width: 100%;
    }

    .handover-queue-item {
        grid-template-columns: 8px minmax(0, 1fr);
    }

    .handover-queue-item form {
        grid-column: 2;
    }

    .handover-queue-item form .btn {
        width: 100%;
        min-height: 44px;
    }

    .handover-history-list li {
        grid-template-columns: 34px minmax(0, 1fr);
    }

    .history-variance {
        grid-column: 2;
    }
}

/* Linen & laundry: a utilitarian circulation ledger inside the editorial shell. */
.linen-header-actions,
.linen-pulse,
.linen-cost-strip,
.batch-top,
.linen-config-menu > div {
    display: flex;
    align-items: center;
    gap: .65rem;
}

.linen-header-actions { flex-wrap: wrap; justify-content: flex-end; }

.linen-pulse {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 1rem;
}

.linen-pulse article {
    display: flex;
    align-items: center;
    gap: .8rem;
    min-width: 0;
    padding: .9rem 1rem;
    background: rgba(255, 255, 255, .78);
    border: 1px solid var(--hotel-border);
    border-radius: 14px;
}

.linen-pulse article > span {
    display: grid;
    place-items: center;
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    color: var(--hotel-petrol);
    background: var(--hotel-mint);
    border-radius: 11px;
    font-size: 1.15rem;
}

.linen-pulse .dirty > span { color: #865524; background: #f8ead5; }
.linen-pulse .laundry > span { color: #2b6786; background: #e5f2f8; }
.linen-pulse .alerting > span { color: #9c3f30; background: #f8e3dc; }
.linen-pulse small,
.linen-pulse strong { display: block; }
.linen-pulse small { color: var(--hotel-ink-soft); font-size: .72rem; }
.linen-pulse strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.6rem; line-height: 1.05; }

.linen-cost-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
    margin-bottom: 1rem;
    overflow: hidden;
    background: var(--hotel-ink);
    border-radius: 15px;
    box-shadow: var(--hotel-shadow);
}

.linen-cost-strip > div { min-width: 0; padding: .85rem 1rem; border-right: 1px solid rgba(255, 255, 255, .12); }
.linen-cost-strip small,
.linen-cost-strip strong { display: block; }
.linen-cost-strip small { color: rgba(255, 255, 255, .56); font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; }
.linen-cost-strip strong { margin-top: .15rem; color: #fff; font-size: 1rem; font-variant-numeric: tabular-nums; }
.linen-cost-strip .featured { background: rgba(13, 107, 102, .45); }
.linen-cost-strip .btn { margin-right: .65rem; color: #fff; border-color: rgba(255, 255, 255, .22); }

.linen-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(290px, .65fr);
    align-items: start;
    gap: 1rem;
    margin-bottom: 1rem;
}

.linen-config-menu { position: relative; }
.linen-config-menu > summary { list-style: none; cursor: pointer; }
.linen-config-menu > summary::-webkit-details-marker { display: none; }
.linen-config-menu[open] > div {
    position: absolute;
    z-index: 8;
    top: calc(100% + .4rem);
    right: 0;
    width: 230px;
    flex-direction: column;
    align-items: stretch;
    padding: .65rem;
    background: #fff;
    border: 1px solid var(--hotel-border);
    border-radius: 12px;
    box-shadow: 0 18px 40px rgba(21, 43, 42, .18);
}

.linen-stock-table { min-width: 0; }
.linen-stock-row {
    display: grid;
    grid-template-columns: minmax(190px, 1.4fr) repeat(4, minmax(58px, .45fr)) minmax(90px, .65fr);
    align-items: center;
    gap: .65rem;
    min-width: 0;
    padding: .8rem 1rem;
    border-top: 1px solid var(--hotel-border);
}

.linen-stock-row.header {
    padding-top: .55rem;
    padding-bottom: .55rem;
    color: var(--hotel-ink-soft);
    background: #f7f7f3;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.linen-stock-row:not(.header):hover { background: rgba(223, 241, 236, .3); }
.linen-stock-row.has-deficit { border-left: 3px solid var(--hotel-warm); }
.linen-stock-row > div:first-child { display: flex; align-items: center; gap: .65rem; min-width: 0; }
.linen-stock-row > div:first-child strong,
.linen-stock-row > div:first-child small,
.linen-stock-row > div:last-child strong,
.linen-stock-row > div:last-child small { display: block; }
.linen-stock-row small { color: var(--hotel-ink-soft); }
.linen-stock-row [role="cell"] { font-variant-numeric: tabular-nums; }
.linen-swatch { display: grid; place-items: center; flex: 0 0 36px; width: 36px; height: 36px; color: var(--hotel-petrol); background: var(--hotel-mint); border-radius: 10px; }
.linen-stock-row .deficit { color: #9c3f30; font-weight: 800; }
.linen-stock-row .healthy { color: var(--hotel-petrol); }

.laundry-batch-list { display: grid; }
.laundry-batch { padding: 1rem; border-top: 1px solid var(--hotel-border); }
.laundry-batch:first-child { border-top: 0; }
.laundry-batch.overdue { border-left: 3px solid var(--hotel-warm); background: #fff9f5; }
.batch-top { justify-content: space-between; margin-bottom: .5rem; }
.batch-reference { color: var(--hotel-petrol); font-size: .7rem; font-weight: 800; letter-spacing: .08em; }
.laundry-batch > strong,
.laundry-batch > small { display: block; }
.laundry-batch > small { color: var(--hotel-ink-soft); }
.batch-warning { margin: .55rem 0; color: #9c3f30; font-size: .76rem; font-weight: 700; }
.laundry-batch ul { margin: .7rem 0 0; padding: 0; list-style: none; }
.laundry-batch li { display: flex; justify-content: space-between; gap: .6rem; padding-top: .45rem; font-size: .76rem; }
.laundry-return-button { width: calc(100% - 2rem); margin: 0 1rem 1rem; }

.linen-ledger-list article {
    display: grid;
    grid-template-columns: 38px minmax(160px, 1fr) minmax(190px, .7fr) auto;
    align-items: center;
    gap: .75rem;
    padding: .75rem 1rem;
    border-top: 1px solid var(--hotel-border);
}

.linen-ledger-list article:first-child { border-top: 0; }
.movement-icon { display: grid; place-items: center; width: 38px; height: 38px; color: var(--hotel-petrol); background: var(--hotel-mint); border-radius: 10px; }
.movement-icon.reason-lost,
.movement-icon.reason-damaged,
.movement-icon.reason-discard { color: #9c3f30; background: #f8e3dc; }
.linen-ledger-list article > div:nth-child(2) strong,
.linen-ledger-list article > div:nth-child(2) small,
.linen-ledger-list time small { display: block; }
.linen-ledger-list small { color: var(--hotel-ink-soft); }
.movement-route { display: flex; align-items: center; justify-content: center; gap: .4rem; color: var(--hotel-ink-soft); font-size: .76rem; }
.linen-ledger-list time { text-align: right; color: var(--hotel-ink); font-size: .75rem; font-weight: 700; }
.linen-ledger-list time small { font-weight: 400; }

@media (max-width: 1100px) {
    .linen-layout { grid-template-columns: minmax(0, 1fr); }
    .linen-cost-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .linen-cost-strip .btn { grid-column: 1 / -1; width: calc(100% - 1.3rem); margin: 0 .65rem .65rem; }
}

@media (max-width: 760px) {
    .linen-header { align-items: stretch; flex-direction: column; }
    .linen-header-actions,
    .linen-header-actions .btn { width: 100%; }
    .linen-header-actions { display: grid; grid-template-columns: 1fr; }
    .linen-pulse { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .linen-cost-strip { grid-template-columns: 1fr; }
    .linen-cost-strip > div { border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .12); }
    .linen-stock-row.header { display: none; }
    .linen-stock-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem .75rem; }
    .linen-stock-row > div:first-child { grid-column: 1 / -1; }
    .linen-stock-row [data-label]::before { content: attr(data-label); display: block; color: var(--hotel-ink-soft); font-size: .65rem; font-weight: 700; text-transform: uppercase; }
    .linen-config-menu[open] > div { position: fixed; inset: auto 1rem 1rem; width: auto; }
    .linen-ledger-list article { grid-template-columns: 38px minmax(0, 1fr); }
    .movement-route,
    .linen-ledger-list time { grid-column: 2; justify-content: flex-start; text-align: left; }
}

@media (max-width: 420px) {
    .linen-pulse { grid-template-columns: 1fr; }
}

/* Mobility control board — parking, valet and dispatch */
.mobility-page {
    --mobility-asphalt: #253332;
    --mobility-line: #d8e0db;
    --mobility-hazard: #e4a936;
}

.mobility-header-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .65rem;
}

.mobility-alert {
    margin-bottom: 1rem;
}

.mobility-integration-strip {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: 1.2rem;
}

.mobility-integration-strip article {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: .8rem;
    min-width: 0;
    padding: .85rem 1rem;
    background: rgba(255, 255, 255, .66);
    border: 1px solid var(--hotel-border);
    border-radius: 13px;
}

.mobility-integration-strip strong,
.mobility-integration-strip small {
    display: block;
}

.mobility-integration-strip small {
    margin-top: .15rem;
    color: var(--hotel-ink-soft);
    font-size: .74rem;
}

.integration-mark {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    color: var(--hotel-petrol);
    background: var(--hotel-mint);
    border-radius: 11px;
    font-size: 1.2rem;
}

.integration-mark.offline {
    color: #8a5a25;
    background: #f7ecd5;
}

.status-not_configured {
    color: #77531e;
    background: #f7ecd5;
}

.mobility-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 1.15rem;
}

.mobility-domain {
    display: grid;
    min-width: 0;
    gap: 1rem;
}

.mobility-domain-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    min-width: 0;
}

.mobility-domain-heading h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.7rem, 2.4vw, 2.35rem);
    font-weight: 500;
    letter-spacing: -.035em;
}

.mobility-config-menu {
    position: relative;
    flex: 0 0 auto;
}

.mobility-config-menu summary {
    list-style: none;
    cursor: pointer;
}

.mobility-config-menu summary::-webkit-details-marker {
    display: none;
}

.mobility-config-menu[open] > div {
    position: absolute;
    z-index: 12;
    top: calc(100% + .45rem);
    right: 0;
    width: 210px;
    display: grid;
    gap: .25rem;
    padding: .4rem;
    background: #fff;
    border: 1px solid var(--hotel-border);
    border-radius: 12px;
    box-shadow: 0 18px 45px rgba(22, 47, 46, .16);
}

.mobility-config-menu button {
    min-height: 42px;
    padding: .65rem .75rem;
    color: var(--hotel-ink);
    text-align: left;
    background: transparent;
    border: 0;
    border-radius: 8px;
    font-weight: 700;
}

.mobility-config-menu button:hover,
.mobility-config-menu button:focus-visible {
    background: var(--hotel-mint);
    outline: 0;
}

.mobility-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .55rem;
}

.mobility-metrics article {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-width: 0;
    padding: .8rem;
    background: rgba(255, 255, 255, .75);
    border: 1px solid var(--hotel-border);
    border-radius: 12px;
}

.mobility-metrics article > span {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    flex: 0 0 34px;
    color: var(--hotel-petrol);
    background: var(--hotel-mint);
    border-radius: 9px;
}

.mobility-metrics .good > span { color: #08745c; background: #dff2eb; }
.mobility-metrics .busy > span { color: #a1512a; background: #f8e7dc; }
.mobility-metrics .electric > span { color: #6554a2; background: #ebe7fa; }
.mobility-metrics .alerting > span { color: #9b6720; background: #f7ecd5; }
.mobility-metrics small,
.mobility-metrics strong { display: block; }
.mobility-metrics small { color: var(--hotel-ink-soft); font-size: .68rem; font-weight: 700; }
.mobility-metrics strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.55rem; font-weight: 500; line-height: 1; }

.mobility-page .panel-heading h3 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.3rem;
    font-weight: 500;
}

.parking-map {
    background:
        repeating-linear-gradient(135deg, rgba(31, 55, 53, .025) 0 8px, transparent 8px 16px),
        rgba(255, 255, 255, .78);
}

.parking-lots {
    display: grid;
    gap: .8rem;
    padding: 1rem;
}

.parking-lot {
    min-width: 0;
    padding: .85rem;
    background: rgba(248, 249, 246, .9);
    border: 1px solid var(--mobility-line);
    border-radius: 12px;
}

.parking-lot > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .75rem;
}

.parking-lot > header strong,
.parking-lot > header small { display: block; }
.parking-lot > header small { color: var(--hotel-ink-soft); font-size: .72rem; }
.parking-lot > header > span { color: var(--hotel-petrol); font-size: 1.15rem; }

.parking-space-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(76px, 1fr));
    gap: .45rem;
}

.parking-space {
    position: relative;
    min-height: 78px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: .05rem;
    padding: .5rem;
    color: #16685e;
    background: #e3f2ed;
    border: 1px solid #c8dfd8;
    border-radius: 9px;
    text-align: center;
}

.parking-space::before,
.parking-space::after {
    content: "";
    position: absolute;
    top: 8px;
    bottom: 8px;
    width: 1px;
    background: currentColor;
    opacity: .2;
}

.parking-space::before { left: 6px; }
.parking-space::after { right: 6px; }
.parking-space > i { font-size: 1.15rem; }
.parking-space strong { font-size: .82rem; }
.parking-space small { font-size: .59rem; text-transform: uppercase; }
.parking-space.status-occupied { color: #8d4425; background: #f7e5da; border-color: #eccdbd; }
.parking-space.status-blocked,
.parking-space.status-out_of_service { color: #64706e; background: #ecefed; border-color: #d9dfdc; }
.parking-space.type-ev.status-available { color: #6451a0; background: #ece9f9; border-color: #d9d2f1; }

.mobility-card-list {
    display: grid;
}

.mobility-job {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    min-width: 0;
    border-top: 1px solid var(--hotel-border);
}

.mobility-job:first-child { border-top: 0; }
.mobility-job-rail {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .4rem;
    padding: 1.1rem .35rem;
    color: var(--hotel-petrol);
    background: rgba(218, 237, 231, .38);
    border-right: 1px solid var(--hotel-border);
}
.mobility-job-rail span { width: 12px; height: 12px; background: currentColor; border: 3px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px currentColor; }
.mobility-job-rail small,
.mobility-job-rail time { font-size: .62rem; font-weight: 900; writing-mode: vertical-rl; }
.mobility-job.status-checked_in .mobility-job-rail,
.transport-job.status-dispatched .mobility-job-rail,
.transport-job.status-arrived .mobility-job-rail,
.transport-job.status-picked_up .mobility-job-rail { color: var(--hotel-warm); background: #fbeee5; }

.mobility-job-main {
    min-width: 0;
    padding: 1rem;
}

.mobility-job-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .8rem;
}

.mobility-job-top > div { min-width: 0; }
.mobility-job-top strong,
.mobility-job-top small { display: block; }
.mobility-job-top strong { margin-top: .2rem; }
.mobility-job-top small { margin-top: .15rem; color: var(--hotel-ink-soft); font-size: .73rem; }
.plate-number { display: inline-flex; padding: .2rem .42rem; color: #fff; background: var(--mobility-asphalt); border: 2px solid #cbd1ce; border-radius: 5px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .76rem; font-weight: 800; letter-spacing: .07em; }
.plate-number.small { align-self: center; font-size: .66rem; }

.status-reserved,
.status-requested { color: #3d6175; background: #e4eef4; }
.status-checked_in,
.status-dispatched,
.status-arrived,
.status-picked_up { color: #915027; background: #f8e7dc; }
.status-confirmed,
.status-available { color: #0d6b5b; background: #dff2eb; }
.status-checked_out,
.status-completed { color: #4e645f; background: #e9efec; }
.status-cancelled,
.status-no_show,
.status-inactive,
.status-maintenance,
.status-out_of_service { color: #6f5a56; background: #eee8e6; }

.mobility-facts {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .8rem;
    margin-top: .7rem;
    color: var(--hotel-ink-soft);
    font-size: .71rem;
}

.mobility-facts span {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    min-width: 0;
}

.mobility-job-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin-top: .8rem;
}

.mobility-job-actions form { margin: 0; }
.parking-checkin-form { display: grid; grid-template-columns: minmax(150px, 1fr) auto; gap: .5rem; flex: 1 1 360px; }
.parking-checkin-form .form-select { min-height: 44px; }

.route-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: .45rem;
    margin-top: .7rem;
    padding: .6rem .7rem;
    color: #284c49;
    background: #eff5f2;
    border-radius: 9px;
    font-size: .74rem;
    font-weight: 700;
}
.route-line span { min-width: 0; overflow-wrap: anywhere; }
.route-line span:last-child { text-align: right; }

.fleet-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.fleet-grid > div { min-width: 0; padding: .9rem; }
.fleet-grid > div + div { border-left: 1px solid var(--hotel-border); }
.fleet-grid h4 { margin: 0 0 .55rem; color: var(--hotel-ink-soft); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.fleet-grid article { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: .55rem; padding: .55rem 0; border-top: 1px solid var(--hotel-border); }
.fleet-grid article:nth-of-type(1) { border-top: 0; }
.fleet-grid strong,
.fleet-grid small { display: block; }
.fleet-grid strong { font-size: .78rem; }
.fleet-grid small { color: var(--hotel-ink-soft); font-size: .65rem; }
.fleet-icon { width: 36px; height: 36px; display: grid; place-items: center; color: var(--hotel-petrol); background: var(--hotel-mint); border-radius: 9px; }
.fleet-icon.status-maintenance,
.fleet-icon.inactive { color: #6f5a56; background: #eee8e6; }
.status-dot { width: 9px; height: 9px; background: #aab4b0; border-radius: 50%; }
.status-dot.on { background: #1b9b78; box-shadow: 0 0 0 4px #def2eb; }
.empty-copy { margin: .6rem 0; color: var(--hotel-ink-soft); font-size: .76rem; }

.mobility-history > summary {
    min-height: 58px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    padding: .85rem 1rem;
    cursor: pointer;
    list-style: none;
}
.mobility-history > summary::-webkit-details-marker { display: none; }
.mobility-history > summary span { display: inline-flex; align-items: center; gap: .55rem; }
.mobility-history > summary small { color: var(--hotel-ink-soft); }
.mobility-history[open] > summary { border-bottom: 1px solid var(--hotel-border); }
.mobility-history > div article { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .7rem; padding: .7rem 1rem; border-top: 1px solid var(--hotel-border); }
.mobility-history > div article:first-child { border-top: 0; }
.mobility-history article strong,
.mobility-history article small { display: block; }
.mobility-history article strong { font-size: .76rem; }
.mobility-history article small,
.mobility-history article time { color: var(--hotel-ink-soft); font-size: .66rem; }
.history-route-icon { width: 34px; height: 34px; display: grid; place-items: center; color: var(--hotel-petrol); background: var(--hotel-mint); border-radius: 9px; }

@media (max-width: 1500px) {
    .mobility-columns { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 820px) {
    .mobility-header { align-items: stretch; flex-direction: column; }
    .mobility-header-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
    .mobility-header-actions .btn { justify-content: center; }
    .mobility-integration-strip { grid-template-columns: minmax(0, 1fr); }
    .mobility-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fleet-grid { grid-template-columns: minmax(0, 1fr); }
    .fleet-grid > div + div { border-top: 1px solid var(--hotel-border); border-left: 0; }
}

@media (max-width: 560px) {
    .mobility-integration-strip article { grid-template-columns: 42px minmax(0, 1fr); }
    .mobility-integration-strip .status-pill { grid-column: 2; justify-self: start; }
    .mobility-domain-heading { align-items: stretch; flex-direction: column; }
    .mobility-config-menu,
    .mobility-config-menu summary { width: 100%; }
    .mobility-config-menu summary { justify-content: center; }
    .mobility-config-menu[open] > div { position: fixed; inset: auto 1rem 1rem; width: auto; }
    .mobility-job { grid-template-columns: 38px minmax(0, 1fr); }
    .mobility-job-main { padding: .85rem .75rem; }
    .mobility-job-top { align-items: stretch; flex-direction: column; }
    .mobility-job-top .status-pill { align-self: flex-start; }
    .parking-checkin-form { grid-template-columns: minmax(0, 1fr); flex-basis: 100%; }
    .mobility-job-actions,
    .mobility-job-actions form,
    .mobility-job-actions .btn { width: 100%; }
    .mobility-job-actions .btn { justify-content: center; }
    .route-line { grid-template-columns: minmax(0, 1fr); }
    .route-line i { transform: rotate(90deg); }
    .route-line span:last-child { text-align: left; }
    .mobility-history > div article { grid-template-columns: auto minmax(0, 1fr); }
    .mobility-history article time { grid-column: 2; }
}

@media (max-width: 420px) {
    .mobility-header-actions,
    .mobility-metrics { grid-template-columns: minmax(0, 1fr); }
}

/* Restaurant control pass — Hotel OS remains the financial/guest boundary. */
.restaurant-page {
    --restaurant-pass: #172f2d;
    --restaurant-ticket: #fffdf7;
    --restaurant-heat: #d06d38;
}

.restaurant-header {
    align-items: flex-end;
}

.integration-secret {
    display: grid;
    grid-template-columns: minmax(240px, .65fr) minmax(0, 1.35fr);
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 1rem 1.1rem;
    color: #eef7f4;
    background:
        repeating-linear-gradient(135deg, rgba(255, 255, 255, .025) 0 7px, transparent 7px 14px),
        var(--restaurant-pass);
    border-radius: 14px;
}

.integration-secret h2,
.integration-secret p { margin: 0; }
.integration-secret h2 { color: #fff; font-size: 1.05rem; }
.integration-secret p { margin-top: .25rem; color: #c2d1cc; font-size: .76rem; }
.integration-secret code {
    min-width: 0;
    padding: .8rem;
    color: #13302c;
    background: #e6f1ed;
    border: 1px dashed #86aaa0;
    border-radius: 9px;
    overflow-wrap: anywhere;
    user-select: all;
}

.integration-truth-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin-bottom: 1rem;
    padding: 1px;
    overflow: hidden;
    color: #dbe7e3;
    background: #42615d;
    border-radius: 13px;
}

.integration-truth-strip > span {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .8rem .9rem;
    background: var(--restaurant-pass);
    font-size: .72rem;
    overflow-wrap: anywhere;
}

.integration-truth-strip i { color: #8cc5b6; font-size: 1rem; }
.integration-truth-strip strong { color: #fff; }
.integration-truth-strip .truth-ready i { color: #5fdbb5; }
.integration-truth-strip .truth-warning i { color: #f0b669; }
.integration-warning { margin-bottom: 1rem; }

.restaurant-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: 1rem;
}

.restaurant-control-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(340px, .75fr);
    align-items: start;
    gap: 1rem;
    margin-bottom: 1rem;
}

.kitchen-queue-panel,
.meal-pass-panel,
.reconciliation-panel,
.pos-charge-ledger { min-width: 0; }

.kitchen-ticket-list {
    display: grid;
}

.kitchen-ticket {
    display: grid;
    grid-template-columns: 66px minmax(0, 1fr);
    min-width: 0;
    border-top: 1px solid var(--hotel-border);
}

.kitchen-ticket:first-child { border-top: 0; }
.ticket-rail {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .3rem;
    padding: 1rem .3rem;
    color: #d8e7e2;
    background:
        repeating-linear-gradient(135deg, rgba(255, 255, 255, .025) 0 6px, transparent 6px 12px),
        var(--restaurant-pass);
    border-right: 1px solid var(--hotel-border);
}

.ticket-rail span {
    padding: .12rem .32rem;
    color: var(--restaurant-pass);
    background: #d9e9e4;
    border-radius: 4px;
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.ticket-rail strong {
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
    font-weight: 500;
}

.ticket-rail small { font-size: .67rem; font-weight: 800; }
.kitchen-ticket.status-failed .ticket-rail { background: #713c2c; }
.kitchen-ticket.status-ready .ticket-rail { background: #0d6b5f; }
.kitchen-ticket.status-delivered .ticket-rail,
.kitchen-ticket.status-cancelled .ticket-rail { background: #586461; }

.ticket-body {
    min-width: 0;
    padding: 1rem;
    background:
        linear-gradient(90deg, rgba(19, 44, 44, .03) 1px, transparent 1px) 0 0 / 22px 100%,
        var(--restaurant-ticket);
}

.ticket-heading,
.ticket-footer {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
}

.ticket-heading > div { min-width: 0; }
.ticket-heading strong,
.ticket-heading small { display: block; }
.ticket-heading small { margin-top: .16rem; color: var(--hotel-ink-soft); font-size: .69rem; }
.ticket-items { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .75rem; }
.ticket-items span { padding: .3rem .48rem; color: var(--hotel-ink); background: #eef3f0; border-radius: 6px; font-size: .72rem; }
.ticket-note { margin: .65rem 0 0; color: var(--hotel-ink-soft); font-size: .74rem; }
.ticket-note i { margin-right: .3rem; }
.ticket-footer { align-items: center; margin-top: .85rem; padding-top: .75rem; border-top: 1px dashed rgba(19, 44, 44, .18); }
.ticket-footer > strong { font-family: Georgia, "Times New Roman", serif; font-size: 1rem; font-weight: 500; }
.ticket-footer form { margin: 0; }
.btn.danger { color: #a9482d; }

.meal-pass-list {
    display: grid;
}

.meal-pass-card {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: .7rem;
    padding: .85rem 1rem;
    border-top: 1px solid var(--hotel-border);
}

.meal-pass-card:first-child { border-top: 0; }
.meal-pass-card.consumed { opacity: .62; }
.meal-pass-card > div:nth-child(2) strong,
.meal-pass-card > div:nth-child(2) small { display: block; }
.meal-pass-card > div:nth-child(2) small { margin-top: .15rem; color: var(--hotel-ink-soft); font-size: .67rem; }
.meal-pass-card .meal-actions { grid-column: 2 / -1; justify-content: flex-end; }
.meal-pass-card .meal-complete { grid-column: 3; color: var(--hotel-petrol); font-size: .7rem; font-weight: 800; }

.stay-charge-controls {
    display: grid;
    gap: .6rem;
    padding: .85rem 1rem;
    background: rgba(229, 239, 235, .62);
    border-top: 1px solid var(--hotel-border);
}
.stay-charge-controls > div:first-child strong,
.stay-charge-controls > div:first-child small { display: block; }
.stay-charge-controls > div:first-child small { color: var(--hotel-ink-soft); font-size: .68rem; }
.stay-charge-controls > div:last-child { display: flex; flex-wrap: wrap; gap: .4rem; }

.pos-charge-ledger .module-table small { overflow-wrap: anywhere; }
.reconciliation-panel { margin-bottom: 1rem; }
.reconciliation-panel .panel-heading form { margin: 0; }
.reconciliation-explainer {
    max-width: 78ch;
    margin: 0;
    padding: 0 1rem 1rem;
    color: var(--hotel-ink-soft);
    font-size: .75rem;
}
.reconciliation-run-list { border-top: 1px solid var(--hotel-border); }
.reconciliation-run + .reconciliation-run { border-top: 1px solid var(--hotel-border); }
.reconciliation-run > summary {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .75rem 1rem;
    cursor: pointer;
    list-style: none;
    font-size: .72rem;
    font-weight: 800;
}
.reconciliation-run > summary::-webkit-details-marker { display: none; }
.reconciliation-run > summary:focus-visible { outline: 3px solid rgba(13, 107, 95, .28); outline-offset: -3px; }
.reconciliation-state { min-width: 0; display: flex; align-items: center; gap: .5rem; }
.reconciliation-state i { color: var(--hotel-petrol); font-size: 1.05rem; }
.reconciliation-state small { color: var(--hotel-ink-soft); font-weight: 700; }
.reconciliation-run.status-differences .reconciliation-state i,
.reconciliation-run.status-failed .reconciliation-state i { color: #b35432; }
.reconciliation-details { padding: .9rem 1rem 1rem; background: #fbfcfa; border-top: 1px dashed var(--hotel-border); }
.reconciliation-counts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; margin-bottom: .75rem; }
.reconciliation-counts span { min-width: 0; padding: .55rem .65rem; background: #edf3f0; border-radius: 8px; }
.reconciliation-counts small,
.reconciliation-counts strong { display: block; }
.reconciliation-counts small { color: var(--hotel-ink-soft); font-size: .64rem; }
.reconciliation-counts strong { margin-top: .12rem; font-family: Georgia, "Times New Roman", serif; font-size: 1rem; font-weight: 500; }
.reconciliation-difference { display: flex; gap: .55rem; padding: .65rem 0; border-top: 1px solid var(--hotel-border); }
.reconciliation-difference i { flex: 0 0 auto; margin-top: .08rem; color: #b35432; }
.reconciliation-difference strong,
.reconciliation-difference p { overflow-wrap: anywhere; }
.reconciliation-difference p { margin: .18rem 0 0; color: var(--hotel-ink-soft); font-size: .7rem; }
.reconciliation-ok { display: flex; align-items: center; gap: .4rem; margin: .25rem 0; color: var(--hotel-petrol); font-size: .75rem; font-weight: 800; }
.reconciliation-meta { display: block; margin-top: .65rem; color: var(--hotel-ink-soft); font-size: .64rem; }
.status-pending { color: #6b5b24; background: #f8efd3; }
.status-accepted,
.status-preparing { color: #8b4f28; background: #f8e7dc; }
.status-ready,
.status-posted { color: #0d6b5b; background: #dff2eb; }
.status-delivered { color: #4e645f; background: #e9efec; }
.status-failed,
.status-reversed { color: #98432c; background: #f7e2db; }

.room-service-lines {
    display: grid;
    gap: .65rem;
    margin: 0;
    padding: .8rem;
    border: 1px solid var(--hotel-border);
    border-radius: 11px;
}
.room-service-lines legend { padding: 0 .3rem; color: var(--hotel-ink-soft); font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.room-service-line { display: grid; grid-template-columns: minmax(0, 1fr) 110px; gap: .6rem; }
.room-service-line .form-field { margin: 0; }
.drawer-separator { height: 1px; margin: 1.1rem 0; background: var(--hotel-border); }
.drawer-action-stack { display: grid; gap: .55rem; }
.drawer-action-stack form,
.drawer-action-stack .btn { width: 100%; }
.wide-drawer { width: min(620px, 100%); }

@media (max-width: 1180px) {
    .restaurant-control-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 900px) {
    .restaurant-header { align-items: stretch; flex-direction: column; }
    .restaurant-header .module-header-actions,
    .restaurant-header .module-header-actions .btn { width: 100%; }
    .restaurant-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .integration-truth-strip { grid-template-columns: minmax(0, 1fr); }
    .integration-secret { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 620px) {
    .restaurant-metrics { grid-template-columns: minmax(0, 1fr); }
    .kitchen-ticket { grid-template-columns: 46px minmax(0, 1fr); }
    .ticket-body { padding: .8rem .7rem; }
    .ticket-heading,
    .ticket-footer { align-items: stretch; flex-direction: column; }
    .ticket-heading .status-pill { align-self: flex-start; }
    .ticket-footer .table-actions,
    .ticket-footer .table-actions form,
    .ticket-footer .table-actions .btn { width: 100%; }
    .ticket-footer .table-actions .btn { justify-content: center; }
    .meal-pass-card { grid-template-columns: 42px minmax(0, 1fr); }
    .meal-pass-card .meal-person-count,
    .meal-pass-card .meal-complete,
    .meal-pass-card .meal-actions { grid-column: 2; justify-self: stretch; }
    .meal-pass-card .meal-actions,
    .meal-pass-card .meal-actions form,
    .meal-pass-card .meal-actions .btn { width: 100%; }
    .meal-pass-card .meal-actions .btn { justify-content: center; }
    .room-service-line { grid-template-columns: minmax(0, 1fr); }
    .reconciliation-panel .panel-heading { align-items: stretch; flex-direction: column; }
    .reconciliation-panel .panel-heading form,
    .reconciliation-panel .panel-heading .btn { width: 100%; }
    .reconciliation-counts { grid-template-columns: minmax(0, 1fr); }
    .reconciliation-run > summary { align-items: flex-start; flex-direction: column; }
}

/* City Ledger — dense financial control without turning daily navigation into ERP chrome. */
.city-ledger-page { --ar-navy: #153b3a; --ar-red: #a34f34; --ar-gold: #c98b3a; }
.ar-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.ar-aging-panel { margin-bottom: 1rem; overflow: hidden; }
.ar-aging-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--hotel-border); }
.ar-aging-grid article { min-width: 0; padding: 1rem 1.2rem; border-right: 1px solid var(--hotel-border); background: #fffdfa; }
.ar-aging-grid article:last-child { border-right: 0; }
.ar-aging-grid article.critical { color: #873d2d; background: #fbede6; }
.ar-aging-grid small,
.ar-aging-grid strong,
.ar-aging-grid span { display: block; }
.ar-aging-grid small { color: var(--hotel-ink-soft); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.ar-aging-grid strong { margin-top: .2rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.2rem, 2vw, 1.7rem); font-weight: 500; overflow-wrap: anywhere; }
.ar-aging-grid span { color: var(--hotel-ink-soft); font-size: .62rem; }
.ar-filter { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(180px, .55fr) auto auto; align-items: end; gap: .75rem; margin-bottom: 1rem; padding: .85rem; }
.ar-filter .form-field { margin: 0; }
.ar-filter .btn { min-height: 42px; }
.ar-receivables-panel { min-width: 0; overflow: hidden; margin-bottom: 1.25rem; }
.ar-table td small { display: block; margin-top: .18rem; color: var(--hotel-ink-soft); font-size: .65rem; }
.aging-badge { display: inline-flex; align-items: center; min-height: 25px; padding: .2rem .48rem; border-radius: 999px; color: #31514d; background: #e6efec; font-size: .65rem; font-weight: 800; }
.aging-31_60,
.aging-61_90 { color: #7a5421; background: #f8ecd1; }
.aging-90_plus { color: #8a3c28; background: #f8e2d9; }
.status-open,
.status-partial { color: #0d665c; background: #e0f1ec; }
.status-disputed,
.status-write_off_pending { color: #7d5120; background: #f8ebce; }
.status-paid,
.status-written_off,
.status-cancelled { color: #536762; background: #e9efec; }
.ar-accounts-section { margin-top: 1.3rem; }
.ar-account-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; }
.ar-account-card { min-width: 0; padding: 1rem; }
.ar-account-card.credit-hold { border-color: rgba(163, 79, 52, .35); }
.ar-account-card > header { display: flex; align-items: center; gap: .65rem; min-width: 0; }
.ar-account-card > header > div { min-width: 0; flex: 1; }
.ar-account-card strong,
.ar-account-card small { display: block; overflow-wrap: anywhere; }
.ar-account-card small { color: var(--hotel-ink-soft); font-size: .64rem; }
.ar-credit-numbers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; margin-top: 1rem; }
.ar-credit-numbers span { min-width: 0; padding: .55rem; border: 1px solid var(--hotel-border); border-radius: 9px; background: #faf9f4; }
.ar-credit-numbers strong { margin-top: .12rem; font-size: .8rem; }
.ar-credit-progress { height: 7px; margin-top: .8rem; overflow: hidden; border-radius: 999px; background: #e5e8e4; }
.ar-credit-progress > span { display: block; width: min(var(--credit-used), 100%); height: 100%; background: linear-gradient(90deg, var(--hotel-petrol), var(--ar-gold)); }
.ar-account-card > footer { display: flex; justify-content: space-between; align-items: center; gap: .75rem; margin-top: .55rem; }
.ar-account-card > footer a { font-size: .68rem; font-weight: 800; }
.ar-detail-hero { min-width: 0; display: grid; grid-template-columns: minmax(220px, .42fr) minmax(0, 1.58fr); margin-bottom: 1rem; overflow: hidden; }
.ar-detail-hero.overdue { border-color: rgba(163, 79, 52, .32); }
.ar-detail-balance { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; min-height: 190px; padding: 1.5rem; color: #edf7f4; background: var(--ar-navy); }
.ar-detail-hero.overdue .ar-detail-balance { background: #793f30; }
.ar-detail-balance > small { color: #b9d1cb; font-size: .67rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.ar-detail-balance > strong { margin: .25rem 0 .8rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.8rem, 4vw, 3rem); font-weight: 500; line-height: 1; }
.ar-detail-balance > strong span { font-family: inherit; font-size: .8rem; }
.ar-detail-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.ar-detail-facts div { min-width: 0; padding: 1.1rem; border-left: 1px solid var(--hotel-border); border-bottom: 1px solid var(--hotel-border); }
.ar-detail-facts div:nth-last-child(-n+3) { border-bottom: 0; }
.ar-detail-facts dt { color: var(--hotel-ink-soft); font-size: .62rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.ar-detail-facts dd { margin: .2rem 0 0; font-size: .82rem; font-weight: 800; overflow-wrap: anywhere; }
.ar-detail-facts dd small { display: block; margin-top: .18rem; color: var(--ar-red); font-size: .61rem; }
.ar-dispute-banner span { display: grid; gap: .12rem; }
.ar-action-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: 1rem; padding: .75rem; border: 1px solid var(--hotel-border); border-radius: 14px; background: rgba(255, 253, 250, .82); }
.ar-action-bar form { margin: 0; }
.btn.danger { color: #923f2d; }
.ar-approval-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .65fr); gap: 1.2rem; align-items: center; margin-bottom: 1rem; padding: 1.2rem; border-color: rgba(201, 139, 58, .45); background: #fff7e3; }
.ar-approval-panel h2 { margin: .1rem 0 .35rem; }
.ar-approval-panel p { margin: 0; }
.ar-approval-panel small { color: var(--hotel-ink-soft); }
.ar-approval-panel .button-row { display: flex; justify-content: flex-end; gap: .5rem; }
.ar-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; align-items: start; }
.ar-detail-grid > .panel { min-width: 0; overflow: hidden; }
.ar-ledger-list,
.ar-timeline { display: grid; }
.ar-ledger-list article { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: .7rem; padding: .85rem 1rem; border-top: 1px solid var(--hotel-border); }
.ar-ledger-list article > div { min-width: 0; }
.ar-ledger-list article strong,
.ar-ledger-list article small { display: block; overflow-wrap: anywhere; }
.ar-ledger-list article small { color: var(--hotel-ink-soft); font-size: .62rem; }
.ar-ledger-list article > b { color: #0d665c; font-size: .76rem; white-space: nowrap; }
.ar-timeline article { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: .75rem; padding: .9rem 1rem; border-top: 1px solid var(--hotel-border); }
.ar-timeline article > span { width: 32px; height: 32px; display: grid; place-items: center; color: var(--hotel-petrol); border-radius: 9px; background: var(--hotel-mint); }
.ar-timeline article p { margin: .2rem 0; color: var(--hotel-ink-soft); font-size: .7rem; line-height: 1.5; overflow-wrap: anywhere; }
.ar-timeline article small { color: var(--hotel-ink-soft); font-size: .61rem; }
.statement-sheet { overflow: hidden; }
.statement-sheet > header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.2rem 1.4rem; color: #edf7f4; background: var(--ar-navy); }
.statement-sheet > header > div { display: flex; align-items: center; gap: .65rem; }
.statement-sheet > header > div:last-child { display: grid; justify-items: end; gap: .1rem; }
.statement-sheet > header strong,
.statement-sheet > header small { display: block; }
.statement-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--hotel-border); }
.statement-summary article { min-width: 0; padding: 1rem 1.2rem; border-right: 1px solid var(--hotel-border); }
.statement-summary article:last-child { border-right: 0; }
.statement-summary small,
.statement-summary strong { display: block; overflow-wrap: anywhere; }
.statement-summary small { color: var(--hotel-ink-soft); font-size: .62rem; text-transform: uppercase; }
.statement-summary strong { margin-top: .15rem; font-family: Georgia, "Times New Roman", serif; font-size: 1.15rem; font-weight: 500; }
.statement-sheet > footer { display: flex; justify-content: space-between; gap: 1rem; padding: .9rem 1.2rem; color: var(--hotel-ink-soft); border-top: 1px solid var(--hotel-border); font-size: .63rem; }
.statement-sheet > footer p { margin: 0; }

@media (max-width: 1180px) {
    .ar-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ar-account-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ar-detail-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ar-detail-facts div:nth-last-child(-n+3) { border-bottom: 1px solid var(--hotel-border); }
    .ar-detail-facts div:nth-last-child(-n+2) { border-bottom: 0; }
}
@media (max-width: 900px) {
    .ar-aging-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ar-aging-grid article { border-bottom: 1px solid var(--hotel-border); }
    .ar-aging-grid article:last-child { grid-column: 1 / -1; border-bottom: 0; }
    .ar-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ar-filter .btn { width: 100%; justify-content: center; }
    .ar-detail-hero { grid-template-columns: minmax(0, 1fr); }
    .ar-detail-balance { min-height: 150px; }
    .ar-detail-grid,
    .ar-approval-panel { grid-template-columns: minmax(0, 1fr); }
    .statement-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .statement-summary article:nth-child(2) { border-right: 0; }
    .statement-summary article:nth-child(-n+2) { border-bottom: 1px solid var(--hotel-border); }
}
@media (max-width: 620px) {
    .ar-metrics,
    .ar-filter,
    .ar-account-grid,
    .ar-detail-facts,
    .statement-summary { grid-template-columns: minmax(0, 1fr); }
    .ar-credit-numbers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ar-detail-facts div { border-left: 0; border-bottom: 1px solid var(--hotel-border) !important; }
    .ar-detail-facts div:last-child { border-bottom: 0 !important; }
    .ar-action-bar,
    .ar-action-bar form,
    .ar-action-bar .btn,
    .ar-approval-panel .button-row,
    .ar-approval-panel .button-row .btn { width: 100%; }
    .ar-action-bar .btn,
    .ar-approval-panel .button-row .btn { justify-content: center; }
    .ar-approval-panel .button-row { flex-direction: column-reverse; }
    .statement-summary article { border-right: 0; border-bottom: 1px solid var(--hotel-border); }
    .statement-summary article:last-child { border-bottom: 0; }
    .statement-sheet > header,
    .statement-sheet > footer { align-items: flex-start; flex-direction: column; }
    .statement-sheet > header > div:last-child { justify-items: start; }
}
@media print {
    .statement-page .module-header .module-header-actions,
    .statement-page .back-link,
    .statement-page .no-print { display: none !important; }
    .statement-page { padding: 0 !important; }
    .statement-sheet { box-shadow: none; }
}

/* SPA control room — calm schedule with clear operational states. */
.spa-page {
    --spa-ink: #173d3a;
    --spa-mint: #dff0ea;
    --spa-warm: #d47b4c;
}
.spa-header { align-items: flex-end; }
.spa-day-rail {
    min-width: 0;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    align-items: center;
    gap: .75rem;
    margin-bottom: 1rem;
    padding: .65rem .75rem;
    color: #eaf4f1;
    background:
        repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 7px, transparent 7px 14px),
        var(--spa-ink);
    border-radius: 14px;
}
.spa-day-rail .icon-button { color: #eaf4f1; background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.18); }
.spa-day-rail > div { min-width: 0; text-align: center; }
.spa-day-rail small,
.spa-day-rail strong { display: block; overflow-wrap: anywhere; }
.spa-day-rail small { color: #a9c5bd; font-size: .63rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.spa-day-rail strong { margin-top: .12rem; color: #fff; font-family: Georgia, "Times New Roman", serif; font-size: 1.05rem; font-weight: 500; }
.spa-metrics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.spa-control-grid { min-width: 0; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(300px, .55fr); align-items: start; gap: 1rem; }
.spa-agenda,
.spa-side-stack,
.spa-side-stack > .panel { min-width: 0; }
.spa-side-stack { display: grid; gap: 1rem; }
.spa-booking-list { display: grid; }
.spa-booking {
    min-width: 0;
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr);
    border-top: 1px solid var(--hotel-border);
}
.spa-booking:first-child { border-top: 0; }
.spa-booking > time {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 1rem .35rem;
    color: #dceae6;
    background: var(--spa-ink);
    border-right: 1px solid var(--hotel-border);
}
.spa-booking > time strong { color: #fff; font-family: Georgia, "Times New Roman", serif; font-size: 1.3rem; font-weight: 500; }
.spa-booking > time small { margin-top: .15rem; font-size: .6rem; text-align: center; }
.spa-booking.status-tentative > time { background: #76572f; }
.spa-booking.status-checked_in > time { background: #0d7164; }
.spa-booking.status-completed > time,
.spa-booking.status-cancelled > time,
.spa-booking.status-no_show > time { background: #596764; }
.spa-booking-main { min-width: 0; padding: 1rem; background: #fffdfa; }
.spa-booking-title { min-width: 0; display: flex; justify-content: space-between; align-items: flex-start; gap: .75rem; }
.spa-booking-title > div { min-width: 0; }
.spa-booking-title strong,
.spa-booking-title small { display: block; overflow-wrap: anywhere; }
.spa-booking-title small { margin-top: .15rem; color: var(--hotel-ink-soft); font-size: .68rem; }
.spa-booking-meta { display: flex; flex-wrap: wrap; gap: .4rem .8rem; margin-top: .7rem; color: var(--hotel-ink-soft); font-size: .69rem; }
.spa-booking-meta span { min-width: 0; overflow-wrap: anywhere; }
.spa-booking-meta i { margin-right: .25rem; color: var(--hotel-petrol); }
.spa-deposit-progress { position: relative; min-height: 24px; margin-top: .7rem; overflow: hidden; background: #efe9dc; border-radius: 7px; }
.spa-deposit-progress > span { position: absolute; inset: 0 auto 0 0; width: min(var(--spa-deposit), 100%); background: var(--spa-mint); }
.spa-deposit-progress small { position: relative; z-index: 1; display: block; padding: .3rem .5rem; color: #425a55; font-size: .62rem; font-weight: 800; }
.spa-booking-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin-top: .8rem; padding-top: .7rem; border-top: 1px dashed var(--hotel-border); }
.spa-booking-actions form { margin: 0; }
.spa-folio-link { margin-left: auto; color: var(--hotel-ink-soft); font-size: .65rem; overflow-wrap: anywhere; }
.spa-folio-link i { margin-right: .25rem; }
.spa-one-time-secret { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, 1.25fr); gap: 1rem; align-items: center; margin-bottom: 1rem; padding: 1rem 1.25rem; border-color: color-mix(in srgb, var(--hotel-petrol) 35%, var(--hotel-border)); }
.spa-one-time-secret output { overflow-wrap: anywhere; padding: .8rem 1rem; border-radius: .65rem; background: var(--hotel-cream); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; user-select: all; }
.spa-inline-actions { display: flex; gap: .65rem; align-items: center; }
.spa-plan-secret { margin-top: .65rem; padding: .75rem; border-left: .2rem solid var(--hotel-petrol); border-radius: .4rem; background: var(--hotel-cream); }
.spa-plan-secret p { margin: .35rem 0; }
.spa-report-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }
.spa-retail-panel { min-width: 0; margin-top: 1rem; overflow: hidden; }
.spa-retail-truth { display: flex; align-items: flex-start; gap: .55rem; margin: 0; padding: .8rem 1rem; color: #31534e; border-block: 1px solid var(--hotel-border); background: color-mix(in srgb, var(--spa-mint) 48%, #fff); font-size: .72rem; line-height: 1.5; }
.spa-retail-truth i { flex: 0 0 auto; margin-top: .08rem; color: var(--hotel-petrol); font-size: 1rem; }
.spa-retail-list { display: grid; }
.spa-retail-order { min-width: 0; display: grid; grid-template-columns: 48px minmax(0, 1fr); border-top: 1px solid var(--hotel-border); background: #fffdfa; }
.spa-retail-order:first-child { border-top: 0; }
.spa-retail-mark { display: grid; place-items: center; align-self: stretch; color: #fff; background: var(--spa-ink); font-size: 1.1rem; }
.spa-retail-order.status-failed .spa-retail-mark { background: #a94e35; }
.spa-retail-order.status-delivered .spa-retail-mark,
.spa-retail-order.status-cancelled .spa-retail-mark { background: #64716e; }
.spa-retail-main { min-width: 0; padding: .85rem 1rem; }
.spa-retail-main .ticket-items { margin-top: .55rem; }
.spa-retail-main .spa-booking-actions > strong { margin-right: auto; font-family: Georgia, "Times New Roman", serif; font-size: 1.05rem; font-weight: 500; }
.spa-retail-customer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.report-filter-panel { margin-bottom: 1rem; padding: 1rem; }
.spa-resource-list,
.spa-membership-list { display: grid; }
.spa-resource-list article,
.spa-membership-list article { min-width: 0; display: flex; align-items: center; gap: .65rem; padding: .75rem 1rem; border-top: 1px solid var(--hotel-border); }
.spa-resource-list article:first-child,
.spa-membership-list article:first-child { border-top: 0; }
.spa-resource-list article > div,
.spa-membership-list article > div { min-width: 0; flex: 1; }
.spa-resource-list strong,
.spa-resource-list small,
.spa-membership-list strong,
.spa-membership-list small { display: block; overflow-wrap: anywhere; }
.spa-resource-list small,
.spa-membership-list small { margin-top: .12rem; color: var(--hotel-ink-soft); font-size: .65rem; }
.resource-state { flex: 0 0 36px; width: 36px; height: 36px; display: grid; place-items: center; color: #0d6b5b; background: #dff2eb; border-radius: 10px; }
.resource-state.status-blocked,
.resource-state.status-out_of_service { color: #98432c; background: #f7e2db; }
.spa-membership-list article > span { text-align: right; }
.spa-membership-list article > span strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.1rem; font-weight: 500; }
.config-section { margin-top: .65rem; border: 1px solid var(--hotel-border); border-radius: 10px; }
.config-section > summary { min-height: 46px; display: flex; align-items: center; padding: .7rem .8rem; cursor: pointer; color: var(--hotel-ink); font-size: .76rem; font-weight: 800; }
.config-section > summary:focus-visible { outline: 3px solid rgba(13,107,95,.25); outline-offset: 2px; }
.config-section > form { padding: .2rem .8rem .85rem; border-top: 1px solid var(--hotel-border); }
.status-confirmed { color: #0d6b5b; background: #dff2eb; }
.status-tentative { color: #795720; background: #f7eccf; }
.status-checked_in { color: #0c5d72; background: #dceff4; }
.status-completed { color: #4e645f; background: #e9efec; }
.status-cancelled,
.status-no_show,
.status-blocked,
.status-out_of_service { color: #98432c; background: #f7e2db; }
.status-available { color: #0d6b5b; background: #dff2eb; }

@media (max-width: 1180px) {
    .spa-control-grid { grid-template-columns: minmax(0, 1fr); }
    .spa-side-stack { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .spa-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .spa-header { align-items: stretch; flex-direction: column; }
    .spa-header .module-header-actions,
    .spa-header .module-header-actions .btn { width: 100%; }
    .spa-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .spa-report-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
    .spa-one-time-secret { grid-template-columns: 1fr; }
    .spa-metrics,
    .spa-side-stack { grid-template-columns: minmax(0, 1fr); }
    .spa-retail-customer-grid { grid-template-columns: minmax(0, 1fr); }
    .spa-booking { grid-template-columns: 52px minmax(0, 1fr); }
    .spa-booking-main { padding: .8rem .7rem; }
    .spa-booking-title { flex-direction: column; }
    .spa-booking-actions,
    .spa-booking-actions form,
    .spa-booking-actions .btn { width: 100%; }
    .spa-booking-actions .btn { justify-content: center; }
    .spa-folio-link { margin-left: 0; }
}

/* The custody ledger separates the current handover from its chronology. */
.custody-workspace {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    align-items: start;
}
.custody-page .panel {
    min-width: 0;
    padding: 1.25rem;
    overflow-wrap: anywhere;
}
.custody-workspace > .custody-summary,
.custody-workspace > .operation-error { grid-column: 1 / -1; }
.custody-page .panel > p { max-width: 75ch; }
.custody-page .task-card { display: block; margin-block: 1rem; }
.custody-page nav { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.custody-page dd { margin-left: 0; margin-bottom: 1rem; }
.promotion-workspace { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.promotion-page .panel { min-width: 0; padding: 1.25rem; overflow-wrap: anywhere; }
.promotion-entry { border-top: 1px solid var(--tblr-border-color, #d8e0dc); padding-block: 1rem; }
.promotion-page dd { margin-left: 0; margin-bottom: .5rem; }
.promotion-page nav { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.legal-hold-page > h1 { font-family: var(--hotel-display-font, Georgia, serif); font-size: clamp(1.7rem, 3vw, 2.3rem); margin-bottom: .6rem; }
.legal-hold-page > a { display: inline-block; margin-bottom: 1rem; }
.legal-hold-page .panel { min-width: 0; padding: 1.25rem; margin-bottom: 1rem; overflow-wrap: anywhere; }
.legal-hold-page .panel p { max-width: 78ch; }
.legal-hold-page form { padding: 0; }
.legal-hold-page article { border-top: 1px solid var(--tblr-border-color, #d8e0dc); padding-block: 1rem; }
.legal-hold-page article:last-of-type { padding-bottom: 0; }
.legal-hold-page nav { display: flex; flex-wrap: wrap; gap: .5rem; }
.privacy-registry-filters { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(8rem, .6fr) auto; gap: 1rem; align-items: end; }
.privacy-registry-filters .form-field { margin: 0; min-width: 0; }
.privacy-registry-filters > .errorlist { grid-column: 1 / -1; }
@media (max-width: 850px) { .privacy-registry-filters { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 850px) { .legal-hold-page .workspace-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 850px) {
    .promotion-workspace { grid-template-columns: minmax(0, 1fr); }
    .custody-workspace { grid-template-columns: minmax(0, 1fr); }
    .custody-page .panel { padding: 1rem; }
    .custody-page .module-header { align-items: start; flex-direction: column; }
}


/* Account controls and personal security workspace. */
.account-menu { position: relative; }
.account-menu > summary { gap: .7rem; cursor: pointer; list-style: none; padding: .35rem .55rem; border: 1px solid transparent; border-radius: .75rem; }
.account-menu > summary::-webkit-details-marker { display: none; }
.account-menu > summary:hover, .account-menu[open] > summary { background: #fff; border-color: var(--hotel-border); }
.account-menu > summary:focus-visible { outline: 2px solid var(--hotel-petrol); outline-offset: 3px; }
.account-menu-panel { position: absolute; right: 0; top: calc(100% + .6rem); z-index: 100; width: 250px; padding: .5rem; border: 1px solid var(--hotel-border); border-radius: .9rem; background: #fff; box-shadow: 0 12px 32px rgba(20,45,42,.12); }
.account-menu-panel > p { margin: .4rem .65rem .5rem; color: var(--hotel-ink-soft); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.account-menu-panel a, .account-menu-panel button { display: flex; align-items: center; gap: .7rem; width: 100%; padding: .75rem .65rem; border: 0; border-radius: .5rem; background: transparent; color: var(--hotel-ink); text-align: left; text-decoration: none; font: inherit; }
.account-menu-panel a:hover, .account-menu-panel a[aria-current], .account-menu-panel button:hover { background: #f0f5f3; }
.account-menu-panel form { margin: .35rem 0 0; padding-top: .35rem; border-top: 1px solid var(--hotel-border); }
.account-menu-panel button { color: #9c3932; }
.security-page { max-width: none; }
.security-eyebrow { margin: 0 0 .65rem; color: var(--hotel-petrol); text-transform: uppercase; letter-spacing: .12em; font-size: .72rem; font-weight: 750; }
.security-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(280px, 1fr); gap: 1.25rem; align-items: start; }
.security-card { min-width: 0; padding: 1.6rem; box-shadow: 0 4px 20px rgba(20,45,42,.035); }
.security-card-heading { display: flex; align-items: start; gap: 1rem; margin-bottom: 1.5rem; }
.security-card-heading h2 { margin: 0 0 .45rem; font-size: 1.15rem; line-height: 1.35; }
.security-card-heading p, .security-form-help, .security-form-footer span, .security-empty p, .security-history-entry span { color: var(--hotel-ink-soft); font-size: .85rem; line-height: 1.6; margin: 0; }
.security-symbol { display: grid; place-items: center; flex: 0 0 40px; height: 40px; border-radius: .7rem; background: #edf5f2; color: var(--hotel-petrol); font-size: 1.4rem; }
.security-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.security-fields .form-field { min-width: 0; }
.security-form-footer { display: flex; align-items: center; flex-wrap: wrap; gap: .85rem; margin-top: 1.3rem; }
.security-explanation { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--hotel-border); font-size: .85rem; color: var(--hotel-ink-soft); }
.security-explanation summary { cursor: pointer; color: var(--hotel-ink); font-weight: 650; }
.security-explanation p { margin: .8rem 0 0; line-height: 1.7; }
.security-empty { text-align: center; padding: 1.3rem .5rem 1.7rem; }
.security-empty > span { display: grid; place-items: center; margin: 0 auto 1rem; width: 42px; height: 42px; border: 1px solid var(--hotel-border); border-radius: 50%; color: var(--hotel-petrol); }
.security-empty h3 { font-size: .95rem; margin-bottom: .4rem; }
.security-history-entry { display: grid; gap: .35rem; padding: 1rem 0; border-top: 1px solid var(--hotel-border); }
.security-history-entry time { font-size: .75rem; color: var(--hotel-ink-soft); }
.security-history-entry strong { font-size: .9rem; }
.security-pagination { display: flex; justify-content: space-between; gap: .75rem; margin-top: 1rem; }
.security-notice { padding: .9rem 1rem; border-radius: .5rem; background: #edf5f2; color: var(--hotel-petrol); }
@media (max-width: 1000px) { .security-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) {
    .account-identity, .account-chevron { display: none; }
    .account-menu > summary { padding: .3rem; }
    .security-card { padding: 1.1rem; }
    .security-fields { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .security-form-footer .btn { width: 100%; }
    .security-page .module-header > .btn { width: 100%; }
}

.security-page .module-header h1 { font-family: var(--tblr-font-sans-serif, sans-serif); font-size: clamp(1.65rem, 2.7vw, 2.25rem); font-weight: 700; letter-spacing: -.035em; line-height: 1.2; }
.security-page .module-header { align-items: center; }
.security-page .module-header p:last-child { font-size: .92rem; }
.security-empty { padding-block: .9rem; }
@media (max-width: 600px) {
    .topbar { padding: .65rem .9rem; gap: .65rem; justify-content: space-between; }
    .topbar-property-context { min-width: 0; flex: 1; }
    .property-switcher { min-width: 0; gap: .4rem; }
    .property-switcher .form-select { min-width: 0; width: 100%; }
    .property-switcher .icon-button { flex-basis: 36px; width: 36px; height: 36px; }
    .topbar-actions { flex-shrink: 0; gap: .45rem; }
    .security-page .module-header { gap: .9rem; margin-bottom: 1.15rem; }
    .security-card-heading { margin-bottom: 1.1rem; }
    .security-card-heading h2 { font-size: 1.05rem; }
    .security-form-footer { margin-top: 1rem; }
    .security-history .security-card-heading { margin-bottom: .5rem; }
}
/* Keep account dropdowns above positioned buttons in the page workspace. */
.topbar { position: relative; z-index: 50; }

/* Shared spacing for secondary workspaces using a plain content panel. */
.content-panel { padding: 1.25rem; }
.content-panel > h2:first-child, .content-panel > h3:first-child { margin-top: 0; }
.content-panel > h2 { margin-bottom: .85rem; font-size: 1.15rem; line-height: 1.4; }
.content-panel > form { padding: 0; }
.content-panel > :last-child { margin-bottom: 0; }
.module-page > .panel + .panel { margin-top: 1.25rem; }
.module-header-actions > .btn { white-space: normal; }
@media (max-width: 600px) {
    .content-panel { padding: 1rem; }
    .module-header-actions { justify-content: flex-start; }
}

/* On phones the brand row already has room for the personal controls. */
@media (max-width: 720px) {
    .app-shell { position: relative; }
    .app-sidebar .brand { padding-right: 105px; }
    .app-sidebar .brand > span:last-child { min-width: 0; }
    .app-sidebar .brand > span:last-child > span { overflow-wrap: anywhere; }
    .topbar { display: contents; }
    .topbar-actions { position: absolute; top: .8rem; right: 1rem; z-index: 60; gap: .5rem; }
    .topbar-actions .account-identity, .topbar-actions .account-chevron { display: none; }
    .topbar-actions .account-menu > summary { padding: .25rem; }
    .topbar-property-context { padding: .65rem 1rem; border-bottom: 1px solid var(--hotel-border); }
    .topbar-property-context:not(:has(.property-switcher)) { display: none; }
    .property-switcher .form-select { min-width: 0; width: 100%; }
    .notification-popover { inset: auto .75rem max(.75rem, env(safe-area-inset-bottom)); width: auto; max-height: min(70dvh, calc(100dvh - 2rem)); }
    .notification-popover::backdrop { background: rgba(19, 44, 44, .22); }
}
.public-booking { min-height: 100dvh; background: var(--hotel-paper); color: var(--hotel-ink); }
.public-booking main > form { padding: 1.25rem; background: #fff; border: 1px solid var(--hotel-border); border-radius: var(--hotel-radius); margin-block: 1.25rem; }

/* List workspaces own the page; creation forms live in the browser top layer. */
.workspace-grid:has(> .config-drawer) { grid-template-columns: minmax(0, 1fr); }
.workspace-create-action { display: flex; justify-content: flex-end; grid-column: 1 / -1; margin-bottom: 1rem; order: -1; }
.workspace-grid > .workspace-create-action { margin-bottom: 0; }
.reservation-workspace { min-width: 0; }
.reservation-table { min-width: 700px; }
.reservation-table td { vertical-align: middle; }
.reservation-table td small { display: block; margin-top: .3rem; color: var(--hotel-ink-soft); }
.reservation-table td:last-child { width: 70px; }
.config-drawer { overscroll-behavior: contain; }
body:has(.config-drawer:popover-open) { overflow: hidden; }
.config-drawer > p, .config-drawer > section, .config-drawer > .privacy-note { margin: 1rem 1.4rem; }
.form-drawer-large, .config-drawer:has(> form > .form-field:nth-of-type(8)) { width: min(1180px, 94vw); }
.config-drawer:has(> form > .form-field:nth-of-type(8)) > form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.25rem; }
.config-drawer:has(> form > .form-field:nth-of-type(8)) > form > :not(.form-field) { grid-column: 1 / -1; }
.config-drawer .form-field { min-width: 0; }
.form-drawer-large > form { padding: 0; }
.editor-section { border: 0; padding: 1.75rem 2rem; margin: 0; border-bottom: 1px solid var(--hotel-border); }
.editor-section-title { display: flex; align-items: center; gap: .5rem; margin: 0 0 1.25rem; font-size: 1.1rem; line-height: 1.4; font-weight: 700; }
.editor-section-title span { display: inline-grid; place-items: center; width: 2rem; height: 2rem; margin-right: .5rem; border-radius: .5rem; background: #edf5f2; color: var(--hotel-petrol); font-size: .75rem; }
.editor-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 1.25rem; }
.editor-field-wide { grid-column: 1 / -1; }
.required-marker { color: var(--hotel-petrol); }
.editor-footer { position: sticky; bottom: 0; z-index: 3; display: flex; justify-content: flex-end; gap: .75rem; padding: 1rem 2rem; border-top: 1px solid var(--hotel-border); background: #fff; }
.form-drawer-large > form > .alert { margin: 1.25rem 2rem 0; }
.profile-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.5rem; }
.profile-overview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin-bottom: 1.25rem; align-items: start; }
.profile-overview > .panel { margin: 0; }
.panel-description { margin: 0; padding: 1rem 1.25rem; color: var(--hotel-ink-soft); }
.table-pagination { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem; padding: 1rem 1.25rem; border-top: 1px solid var(--hotel-border); }
.table-pagination-actions { display: flex; gap: .5rem; align-items: center; }
@media (max-width: 900px) {
 .editor-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .profile-overview { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
 .form-drawer-large, .config-drawer:has(> form > .form-field:nth-of-type(8)) { width: 100%; }
 .editor-fields, .config-drawer:has(> form > .form-field:nth-of-type(8)) > form { grid-template-columns: minmax(0, 1fr); }
 .editor-section { padding: 1.25rem; }
 .editor-footer { padding: 1rem 1.25rem; }
 .editor-footer .btn { flex: 1; }
}
.form-drawer-large { width: 94vw; }
@media screen and (min-width: 1101px) { .form-drawer-large { width: calc(94vw / .8); } }
@media (max-width: 600px) { .form-drawer-large { width: 100%; } }

.reservation-action-drawer { text-align: left; }
.reservation-action-links { display: grid; gap: .75rem; padding: 1.4rem; }
.reservation-action-links form { display: grid; gap: .75rem; padding-top: 1rem; border-top: 1px solid var(--hotel-border); }
#guest-history table { min-width: 620px; }
.reservation-table th { color: var(--hotel-ink-soft); font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }

/* The same form surface applies to actions in every module, not only sidebars. */
.form-drawer-trigger { margin: .25rem .5rem 1rem 0; }
.form-drawer-wide { width: 75vw; }
.form-drawer-wide > form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.25rem; }
.form-drawer-wide > form > :not(.form-field):not(p):not(div:has(> input, > select, > textarea)) { grid-column: 1 / -1; }
.form-drawer-wide > form > p { min-width: 0; }
.config-drawer .operation-notice { margin: 1.4rem; }
.config-drawer .operation-notice form { display: grid; gap: .75rem; }
.config-drawer > form > button:last-child { position: sticky; bottom: 0; z-index: 2; width: 100%; }
@media screen and (min-width: 1101px) { .form-drawer-wide { width: calc(75vw / .8); } }
@media (max-width: 600px) {
 .form-drawer-wide { width: 100%; }
 .form-drawer-wide > form { grid-template-columns: minmax(0, 1fr); }
}
.config-drawer > form > button:last-child:not(.btn-primary) { background-color: #fff; }
.config-drawer .table-responsive { min-width: 0; max-width: 100%; contain: inline-size paint; }

.config-drawer { overflow-x: hidden; }
