:root {
    --navy: #1b3a6b;
    --navy-deep: #12264a;
    --navy-ink: #0f1a2e;
    --gold: #c8a44a;
    --gold-soft: #efe3c2;
    --paper: #f4f6f9;
    --surface: #fff;
    --rule: #e1e6ed;
    --rule-soft: #edf0f5;
    --muted: #5a6678;
    --muted-2: #8a93a3;
    --ok: #2e7d6b;
    --ok-soft: #e3f1ed;
    --danger: #a32d34;
    --sidebar: 250px;
    --display: Georgia, "Times New Roman", serif;
    --body: Calibri, "Segoe UI", system-ui, -apple-system, sans-serif;
    --mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}

/* Guest payments */
.payment-metrics { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.payment-register-card { margin-bottom: 14px; overflow: visible; }
.payment-create-form { width: min(760px, 88vw); }
.payment-table .selected-row { background: #fffaf0; }
.payment-detail-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .55fr); align-items: start; gap: 14px; }
.payment-detail-card, .payment-timeline-card { overflow: visible; }
.payment-detail-card .card-heading p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.payment-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--rule); }
.payment-facts div { border-right: 1px solid var(--rule-soft); border-bottom: 1px solid var(--rule-soft); padding: 13px 16px; }
.payment-facts div:nth-child(3n) { border-right: 0; }
.payment-facts dt { color: var(--muted-2); font: 8px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.payment-facts dd { overflow-wrap: anywhere; margin: 5px 0 0; color: var(--navy); font-size: 11px; font-weight: 700; }
.payment-link-box { display: grid; gap: 8px; margin: 16px; border-left: 3px solid var(--gold); background: #fffcf4; padding: 13px; }
.payment-link-box > span { color: var(--muted-2); font: 8.5px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.payment-link-box input { width: 100%; min-height: 39px; border: 1px solid var(--rule); background: #fff; padding: 0 10px; color: var(--navy); font: 10px var(--mono); }
.payment-link-box div { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.payment-link-box small { color: var(--muted); font-size: 9px; }
.payment-action-row { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 16px 16px; }
.payment-timeline { display: grid; padding: 5px 16px 16px; }
.payment-timeline > div { display: grid; grid-template-columns: 14px minmax(0, 1fr); gap: 8px; }
.payment-timeline > div > span { position: relative; border-left: 1px solid var(--rule); }
.payment-timeline > div > span::before { position: absolute; top: 15px; left: -4px; width: 7px; height: 7px; border: 1px solid var(--gold); border-radius: 50%; background: #fff; content: ""; }
.payment-timeline p { display: flex; min-width: 0; flex-direction: column; gap: 3px; border-bottom: 1px solid var(--rule-soft); margin: 0; padding: 12px 0; }
.payment-timeline strong { font-size: 10.5px; }
.payment-timeline small { color: var(--muted); font-size: 9.5px; line-height: 1.5; }
.payment-timeline time { color: var(--muted-2); font: 8px var(--mono); }
.payment-match-card { margin-bottom: 14px; }
.payment-match-form { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)) auto; align-items: end; gap: 10px; padding: 16px; }
.payment-match-form label, .payment-standards-form > label, .review-actions label { display: flex; flex-direction: column; gap: 6px; color: #39445a; font-size: 10px; }
.payment-match-form input, .payment-standards-form input, .review-actions input { width: 100%; min-height: 39px; border: 1px solid var(--rule); background: #fff; padding: 0 9px; }
.statement-line { background: #fafbfd; }
.inline-disclosure { display: inline-block; margin-left: 8px; }
.payment-review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 14px; }
.review-list { display: grid; }
.review-item { position: relative; border-top: 1px solid var(--rule-soft); padding: 16px; }
.review-item:first-child { border-top: 0; }
.review-item header { display: flex; justify-content: space-between; gap: 12px; }
.review-item header > div { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.review-item header strong { font-size: 11px; }
.review-item header small, .review-item p { color: var(--muted); font-size: 9.5px; line-height: 1.55; }
.review-item p { margin: 10px 100px 10px 0; }
.review-amount { position: absolute; right: 16px; top: 58px; font: 16px var(--display); }
.review-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; border-top: 1px solid var(--rule-soft); margin-top: 12px; padding-top: 12px; }
.review-actions form { display: flex; flex-direction: column; gap: 8px; }
.review-actions button { align-self: flex-start; }
.payment-standards-card { max-width: 900px; overflow: visible; }
.payment-standards-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding: 18px; }
.payment-standards-form label small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.payment-standards-form fieldset { grid-column: 1 / -1; border: 1px solid var(--rule); padding: 12px; }
.payment-standards-form legend { padding: 0 5px; color: var(--muted-2); font: 8.5px var(--mono); text-transform: uppercase; }
.payment-standards-form fieldset .permission-choice { display: inline-flex !important; margin-right: 18px; border: 0; }
.payment-standards-form > button { justify-self: start; }

@media (max-width: 1100px) {
    .payment-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .payment-match-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .payment-match-form button { justify-self: start; }
}

@media (max-width: 820px) {
    .payment-detail-grid, .payment-review-grid { grid-template-columns: 1fr; }
    .payment-match-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
    .payment-metrics, .payment-match-form, .payment-standards-form { grid-template-columns: 1fr; }
    .payment-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .payment-facts div:nth-child(3n) { border-right: 1px solid var(--rule-soft); }
    .payment-facts div:nth-child(2n) { border-right: 0; }
.payment-link-box div, .payment-action-row { align-items: flex-start; flex-direction: column; }
    .review-actions { grid-template-columns: 1fr; }
}

/* Consistent panel forms and accessible pop-up workspaces */
body.dialog-open { overflow: hidden; }
.form-dialog {
    width: min(720px, calc(100vw - 32px));
    max-width: none;
    max-height: min(88vh, 900px);
    overflow: hidden;
    border: 0;
    background: transparent;
    padding: 0;
    color: var(--ink);
    box-shadow: 0 28px 80px rgba(11, 28, 57, .28);
}
.form-dialog.form-dialog-wide { width: min(1040px, calc(100vw - 32px)); }
.form-dialog::backdrop { background: rgba(8, 22, 47, .62); backdrop-filter: blur(3px); }
.form-dialog-shell { display: flex; max-height: min(88vh, 900px); flex-direction: column; border-top: 4px solid var(--gold); background: #fff; }
.form-dialog-header { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--rule); padding: 18px 22px 16px; }
.form-dialog-header h2 { margin: 4px 0 0; color: var(--navy); font: 25px/1.15 var(--display); }
.form-dialog-close { display: grid; width: 40px; height: 40px; flex: 0 0 40px; cursor: pointer; place-items: center; border: 1px solid var(--rule); background: #fff; color: var(--navy); font: 25px/1 var(--body); }
.form-dialog-close:hover, .form-dialog-close:focus-visible { border-color: var(--gold); outline: 3px solid rgba(200, 164, 74, .15); }
.form-dialog-body { min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 22px; }
.form-dialog-body > .dialog-form { width: 100%; margin: 0; }
.form-dialog-body > .dialog-form.content-card { border: 0; }
.form-dialog-body > .dialog-form > .card-heading { display: none; }
.form-dialog-body .editor-body, .form-dialog-body .landing-editor-fields { padding: 4px 0 20px; }
.form-dialog-body .editor-actions, .form-dialog-body .sticky-action-bar { position: sticky; bottom: -22px; z-index: 3; margin: 20px -22px -22px; padding: 14px 22px; box-shadow: 0 -10px 25px rgba(18, 35, 64, .07); }
.form-dialog-body .compact-form, .form-dialog-body .reservation-side-form,
.form-dialog-body .housekeeping-settings-form, .form-dialog-body .frontdesk-settings-form,
.form-dialog-body .assignment-form, .form-dialog-body .role-name-row { margin: 0; padding: 0; }
.form-dialog-body .dialog-form label { gap: 7px; font-size: 11px; line-height: 1.4; }
.form-launch-description { max-width: 720px; margin: 7px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.form-dialog-body input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.form-dialog-body select, .form-dialog-body textarea { min-height: 42px; }
.form-dialog-body textarea { min-height: 92px; }
.form-dialog-body fieldset { margin-bottom: 20px; }
.form-dialog-body fieldset:last-child { margin-bottom: 0; }
.form-launch-card { margin-bottom: 16px; }
.form-launch-action { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 14px 16px; }
.form-launch-card > .form-launch-action { justify-content: flex-end; }
.form-dialog-trigger { min-height: 40px; }
.disclosure-dialog-trigger { width: 100%; justify-content: flex-start; }
.operating-list article > .form-launch-action { grid-column: 1 / -1; justify-content: flex-end; padding: 4px 0 0; }
.housekeeping-room-actions > .form-launch-action { border-top: 1px solid var(--rule-soft); padding: 7px 0; }
.housekeeping-room-actions > .form-launch-action .form-dialog-trigger { min-height: 30px; border: 0; padding: 5px 0; background: transparent; font-size: 9px; }
.form-dialog-danger .form-dialog-shell { border-top-color: var(--danger); }
.confirmation-copy { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.confirmation-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 22px; }

/* Card bodies use one predictable rhythm even when a page has no special component. */
.content-card > p:not(.empty-copy):not(.form-note),
.content-card > small,
.content-card > .check-findings,
.content-card > .distribution-actions,
.content-card > .facts-list { margin: 0; padding: 16px 18px; }
.content-card > p + .check-findings, .content-card > .check-findings + small { padding-top: 0; }
.two-column-grid, .three-column-grid, .content-grid { gap: 18px; }
.operating-list article { padding: 16px 18px; }

@media (max-width: 700px) {
    .form-dialog, .form-dialog.form-dialog-wide { width: calc(100vw - 16px); max-height: calc(100vh - 16px); }
    .form-dialog-shell { max-height: calc(100vh - 16px); }
    .form-dialog-header { padding: 15px 16px 13px; }
    .form-dialog-header h2 { font-size: 21px; }
    .form-dialog-body { padding: 16px; }
    .form-dialog-body .editor-actions, .form-dialog-body .sticky-action-bar { bottom: -16px; margin: 18px -16px -16px; padding: 13px 16px; }
    .form-dialog-body .compact-form, .form-dialog-body .housekeeping-settings-form,
    .form-dialog-body .frontdesk-settings-form, .form-dialog-body .form-grid.two,
    .form-dialog-body .form-grid.three { grid-template-columns: 1fr; }
    .confirmation-actions { align-items: stretch; flex-direction: column-reverse; }
}

@media print {
    .form-dialog, .form-launch-action { display: none !important; }
}

/* Platform subscriber setup and owner controls */
.platform-onboarding-form { display: grid; gap: 16px; }
.platform-onboarding-form .card-heading p, .section-guidance { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding: 16px; }
.settings-grid > label { display: flex; min-width: 0; flex-direction: column; gap: 6px; color: var(--navy); font-size: 11px; font-weight: 600; }
.settings-grid input, .settings-grid select { width: 100%; min-height: 42px; border: 1px solid var(--rule); border-radius: 0; background: #fff; padding: 8px 10px; color: var(--navy); }
.settings-grid input:focus, .settings-grid select:focus { border-color: var(--gold); outline: 0; box-shadow: 0 0 0 3px rgba(200,164,74,.12); }
.settings-grid label > small { color: var(--muted); font-size: 9.5px; font-weight: 400; }
.input-suffix { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; }
.input-suffix > span { display: inline-flex; align-items: center; border: 1px solid var(--rule); border-left: 0; background: #f8f9fb; padding: 0 10px; color: var(--muted); font-size: 10.5px; }
.form-actions { display: flex; justify-content: flex-end; gap: 10px; }
.section-guidance { border-bottom: 1px solid var(--rule-soft); padding: 10px 15px; }
.module-control-error { margin: 12px 15px; }
#modules { scroll-margin-top: 78px; }
.compact-button { min-height: 30px; padding: 5px 9px; font-size: 10.5px; white-space: nowrap; }
.table-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.platform-domain-add-card > form { grid-template-columns: repeat(2, minmax(0, 1fr)) auto; padding-bottom: 14px; }
.platform-domain-add-card select { width: 100%; min-height: 40px; border: 1px solid var(--rule); border-radius: 0; background: #fff; padding: 8px 10px; }
.domain-proof-row td { background: #fffdf7; }
.domain-proof-row .dns-instruction { max-width: 920px; margin: 0; }
.domain-reason { margin: 7px 0 0; color: var(--danger); font-size: 10px; }

@media (max-width: 820px) {
    .settings-grid, .platform-domain-add-card > form { grid-template-columns: 1fr; }
    .form-actions { align-items: stretch; flex-direction: column-reverse; }
}

/* Subscription invoice */
.guest-change-review-card { margin-bottom: 14px; border-top: 3px solid var(--gold); }
.guest-change-review-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 20px; border-top: 1px solid var(--rule-soft); padding: 16px; }
.guest-change-review-row:first-child { border-top: 0; }
.guest-change-review-row > div:first-child { display: flex; flex-direction: column; gap: 4px; }
.guest-change-review-row small { color: var(--muted); font-size: 9.5px; line-height: 1.5; }
.guest-change-actions { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.guest-change-actions form { display: grid; grid-template-columns: minmax(180px, 1fr) auto; align-items: end; gap: 9px; border: 1px solid var(--rule-soft); background: var(--paper); padding: 12px; }
.guest-change-actions label { display: flex; flex-direction: column; gap: 5px; color: var(--muted); font-size: 9px; }
.guest-change-actions input { min-height: 38px; border: 1px solid var(--rule); background: #fff; padding: 7px 9px; }

.invoice-toolbar { align-items: flex-end; }
.invoice-document { max-width: 980px; margin-inline: auto; }
.invoice-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 28px; border-bottom: 1px solid var(--rule); padding: 28px; }
.invoice-heading h2 { margin: 5px 0 2px; font: 34px var(--display); }
.invoice-heading p { margin: 0; color: var(--muted); }
.invoice-recipient { display: flex; min-width: 240px; flex-direction: column; gap: 5px; border-left: 2px solid var(--gold); padding-left: 18px; }
.invoice-recipient span, .invoice-recipient small { color: var(--muted); font-size: 10px; }
.invoice-recipient strong { font: 19px var(--display); }
.invoice-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border-bottom: 1px solid var(--rule); }
.invoice-facts div { border-right: 1px solid var(--rule-soft); padding: 18px 28px; }
.invoice-facts div:last-child { border-right: 0; }
.invoice-facts dt { color: var(--muted); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.invoice-facts dd { margin: 7px 0 0; font-weight: 700; }
.invoice-lines { min-width: 680px; }
.invoice-totals { width: min(420px, 100%); margin-left: auto; padding: 20px 28px; }
.invoice-totals div { display: flex; justify-content: space-between; gap: 30px; border-bottom: 1px solid var(--rule-soft); padding: 9px 0; }
.invoice-totals span { color: var(--muted); }
.invoice-totals .invoice-total { color: var(--navy); font-size: 17px; }
.invoice-payment-summary { border-top: 1px solid var(--rule); padding: 20px 28px 28px; }
.invoice-payment-summary p { margin: 8px 0 0; }

@media (max-width: 620px) {
    .guest-change-review-row, .guest-change-actions, .guest-change-actions form { grid-template-columns: 1fr; }
    .invoice-toolbar, .invoice-heading { align-items: flex-start; flex-direction: column; }
    .invoice-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .invoice-facts div:nth-child(2) { border-right: 0; }
    .invoice-recipient { width: 100%; }
}

@media print {
    .panel-sidebar, .panel-topbar, .panel-menu-button, .panel-scrim, .invoice-toolbar, .flash-message { display: none !important; }
    .panel-shell, .panel-main, .panel-content { display: block !important; width: 100% !important; min-height: auto !important; padding: 0 !important; background: #fff !important; }
    .invoice-document { max-width: none; border: 0; box-shadow: none; }
}

/* Connected apps and API access */
.developer-heading p { max-width: 720px; }
.developer-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.developer-tabs { display: flex; flex-wrap: wrap; gap: 1px; margin-bottom: 17px; border: 1px solid var(--rule); background: var(--rule); }
.developer-tabs a { display: inline-flex; min-height: 43px; align-items: center; background: var(--paper); padding: 10px 18px; color: var(--navy); font-size: 11px; font-weight: 700; text-decoration: none; }
.developer-tabs a:hover, .developer-tabs a:focus-visible, .developer-tabs a.active { background: var(--navy); color: #fff; }
.developer-create { margin-bottom: 17px; }
.developer-create details > summary { cursor: pointer; color: var(--navy); font-weight: 700; }
.developer-create details[open] > summary { margin-bottom: 18px; }
.developer-form { display: grid; gap: 16px; }
.developer-form .form-grid { margin: 0; }
.developer-form label, .developer-log-filters label, .developer-credential-actions label { display: flex; min-width: 0; flex-direction: column; gap: 6px; color: #39445a; font-size: 10.5px; font-weight: 700; }
.developer-form input:not([type="checkbox"]):not([type="hidden"]), .developer-form select, .developer-form textarea, .developer-log-filters select, .developer-credential-actions select { width: 100%; min-height: 42px; border: 1px solid var(--rule); border-radius: 0; background: #fff; padding: 9px 10px; color: var(--navy-ink); font: 11px var(--body); }
.developer-form textarea { min-height: 92px; resize: vertical; line-height: 1.55; }
.developer-form input:focus, .developer-form select:focus, .developer-form textarea:focus, .developer-log-filters select:focus, .developer-credential-actions select:focus { border-color: var(--gold); outline: 0; box-shadow: 0 0 0 3px rgba(200,164,74,.12); }
.developer-form label small, .developer-log-filters label small, .developer-credential-actions label small { color: var(--muted); font-size: 9px; font-weight: 400; line-height: 1.45; }
.developer-form .span-two { grid-column: 1 / -1; }
.developer-form fieldset { min-width: 0; margin: 0; border: 1px solid var(--rule); padding: 16px; }
.developer-form legend { padding: 0 8px; color: var(--navy); font: 18px var(--display); }
.developer-form fieldset > p { margin: 0 0 13px; color: var(--muted); font-size: 10.5px; }
.developer-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.developer-choice-grid label { display: grid; grid-template-columns: 17px minmax(0, 1fr); align-items: start; border: 1px solid var(--rule-soft); background: var(--surface); padding: 11px; cursor: pointer; }
.developer-choice-grid input { width: 15px; height: 15px; margin: 1px 0 0; accent-color: var(--navy); }
.developer-choice-grid span { display: grid; gap: 3px; }
.developer-choice-grid strong { color: var(--navy); font-size: 11px; }
.developer-choice-grid small { color: var(--muted); font-size: 9.5px; font-weight: 400; line-height: 1.45; }
.developer-form .choice-row { display: grid; grid-template-columns: 17px minmax(0, 1fr); align-items: start; gap: 9px; border: 1px solid var(--rule-soft); background: var(--surface); padding: 11px; cursor: pointer; }
.developer-form .choice-row input { width: 15px; min-height: 15px; height: 15px; margin: 1px 0 0; accent-color: var(--navy); }
.developer-form .choice-row span { display: grid; gap: 3px; }
.developer-form .choice-row strong { color: var(--navy); font-size: 11px; }
.developer-form .choice-row small { color: var(--muted); font-size: 9.5px; font-weight: 400; }
.developer-choice-grid.card-choices { padding: 16px; }
.developer-credential-policy { display: grid; grid-template-columns: minmax(180px, .45fr) minmax(260px, 1fr) auto; align-items: end; gap: 15px; border-top: 1px solid var(--rule); padding-top: 16px; }
.developer-credential-policy p { align-self: center; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.credential-reveal { display: grid; gap: 15px; margin-bottom: 17px; border: 1px solid var(--gold); background: var(--navy); padding: 20px; color: #fff; }
.credential-reveal h2 { margin: 5px 0; font: 27px var(--display); }
.credential-reveal p { max-width: 740px; margin: 0; color: #cdd7e8; font-size: 11px; line-height: 1.55; }
.credential-reveal pre { max-width: 100%; margin: 0; overflow: auto; border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.06); padding: 15px; white-space: pre-wrap; overflow-wrap: anywhere; }
.credential-reveal code { color: #fff; font: 12px Consolas, "Courier New", monospace; }
.credential-reveal > div:last-child { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.credential-reveal #copy-result { color: #dfe8f5; font-size: 10px; }
.developer-settings { gap: 17px; margin-bottom: 17px; }
.developer-card-body { padding: 16px; }
.developer-settings .sticky-action-bar { position: sticky; bottom: 0; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 16px; border: 1px solid var(--rule); background: #fff; padding: 12px 15px; box-shadow: 0 -8px 24px rgba(22,32,53,.08); }
.developer-settings .sticky-action-bar span { color: var(--muted); font-size: 10px; }
.developer-facts { padding: 16px; }
.developer-credentials { margin-top: 17px; }
.developer-credentials .button-link { border: 0; background: transparent; padding: 0; cursor: pointer; }
.developer-credential-actions { border-top: 1px solid var(--rule); padding: 16px; }
.developer-credential-actions form { display: grid; grid-template-columns: minmax(240px, 1fr) 150px 150px auto; align-items: end; gap: 13px; }
.developer-credential-actions form > div strong { color: var(--navy); }
.developer-credential-actions form > div p { margin: 4px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.developer-danger { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 17px; border-left: 3px solid var(--danger); }
.developer-danger h2 { margin: 4px 0; font: 22px var(--display); }
.developer-danger p { margin: 0; color: var(--muted); font-size: 10.5px; }
.developer-reference-layout { align-items: start; }
.developer-reference-side { display: grid; gap: 14px; }
.developer-endpoint-list article { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 13px; border-bottom: 1px solid var(--rule-soft); padding: 15px; }
.developer-endpoint-list article:last-child { border-bottom: 0; }
.developer-method { align-self: start; border: 1px solid var(--gold); padding: 5px; color: var(--navy); font: 9px var(--mono); text-align: center; }
.developer-endpoint-list code { color: var(--navy); font-size: 10.5px; overflow-wrap: anywhere; }
.developer-endpoint-list h3 { margin: 6px 0 2px; font: 17px var(--display); }
.developer-endpoint-list p { margin: 0; color: var(--muted); font-size: 9.5px; }
.developer-code-note { padding: 16px; }
.developer-code-note code { display: block; overflow-wrap: anywhere; border: 1px solid var(--rule); background: var(--surface); padding: 11px; color: var(--navy); font-size: 10px; }
.developer-code-note p { margin: 11px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.developer-scope-list { margin: 0; padding: 5px 16px 12px; }
.developer-scope-list div { border-bottom: 1px solid var(--rule-soft); padding: 10px 0; }
.developer-scope-list div:last-child { border-bottom: 0; }
.developer-scope-list dt code { color: var(--navy); font-size: 10px; }
.developer-scope-list dd { margin: 4px 0 0; color: var(--muted); font-size: 9.5px; line-height: 1.45; }
.developer-api-guidance { margin-top: 17px; }
.developer-guidance-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.developer-guidance-grid article { border-right: 1px solid var(--rule-soft); padding: 16px; }
.developer-guidance-grid article:last-child { border-right: 0; }
.developer-guidance-grid strong { color: var(--navy); }
.developer-guidance-grid p { margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.developer-log-filters { margin-bottom: 17px; }
.developer-log-filters form { display: grid; grid-template-columns: repeat(3, minmax(150px, 1fr)) auto; align-items: end; gap: 12px; }
.developer-pagination { border-top: 1px solid var(--rule); padding: 14px; }
.secret-reveal-card { max-width: 860px; }
.secret-reveal-card > p, .secret-reveal-card > code, .secret-reveal-card > dl, .secret-reveal-card > .form-error, .secret-reveal-card > .page-heading-actions, .secret-reveal-card > #copy-result { margin-right: 16px; margin-left: 16px; }
.secret-reveal-card > p { color: var(--muted); font-size: 11px; line-height: 1.55; }
.secret-reveal-card > code { color: var(--navy); }
.secret-reveal-card > .page-heading-actions { margin-bottom: 12px; }
.secret-reveal-card > #copy-result { display: block; min-height: 18px; margin-bottom: 16px; color: var(--muted); font-size: 10px; }

@media (max-width: 1100px) {
    .developer-credential-actions form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .developer-credential-actions form > div { grid-column: 1 / -1; }
    .developer-guidance-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .developer-guidance-grid article:nth-child(2) { border-right: 0; }
    .developer-guidance-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--rule-soft); }
}

@media (max-width: 820px) {
    .developer-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .developer-credential-policy, .developer-log-filters form { grid-template-columns: 1fr; align-items: stretch; }
    .developer-choice-grid { grid-template-columns: 1fr; }
    .developer-danger { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 620px) {
    .developer-metrics, .developer-guidance-grid, .developer-credential-actions form { grid-template-columns: 1fr; }
    .developer-tabs { display: grid; grid-template-columns: 1fr; }
    .developer-tabs a { justify-content: center; }
    .developer-settings .sticky-action-bar { position: static; align-items: stretch; flex-direction: column; }
    .developer-settings .sticky-action-bar button, .developer-credential-actions button, .developer-danger button { width: 100%; }
    .developer-guidance-grid article { border-right: 0; border-bottom: 1px solid var(--rule-soft); }
    .developer-guidance-grid article:last-child { border-bottom: 0; }
    .credential-reveal { padding: 16px; }
}

/* Website booking distribution */
.distribution-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.distribution-create details > summary { cursor: pointer; color: var(--navy); font-weight: 700; }
.distribution-create details[open] > summary { margin-bottom: 20px; }
.distribution-create .form-grid, .distribution-settings .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 20px; }
.distribution-create .form-grid > label, .distribution-settings label { display: flex; min-width: 0; flex-direction: column; gap: 7px; color: #39445a; font-size: 11px; font-weight: 700; }
.distribution-create input, .distribution-create select, .distribution-create textarea, .distribution-settings input:not([type="hidden"]), .distribution-settings select, .distribution-settings textarea { width: 100%; min-height: 42px; border: 1px solid var(--rule); border-radius: 0; background: #fff; padding: 9px 10px; color: var(--navy-ink); font: 11px var(--body); }
.distribution-create textarea, .distribution-settings textarea { resize: vertical; line-height: 1.55; }
.distribution-create input:focus, .distribution-create select:focus, .distribution-create textarea:focus, .distribution-settings input:focus, .distribution-settings select:focus, .distribution-settings textarea:focus { border-color: var(--gold); outline: 0; box-shadow: 0 0 0 3px rgba(200,164,74,.12); }
.distribution-create label > small, .distribution-settings label > small { color: var(--muted); font-size: 9px; font-weight: 400; line-height: 1.5; }
.distribution-create .span-two { grid-column: 1 / -1; }
.distribution-create .primary-button { justify-self: start; }
.distribution-steps { display: flex; flex-wrap: wrap; gap: 1px; margin-bottom: 18px; border: 1px solid var(--rule); background: var(--rule); }
.distribution-steps a { min-height: 44px; display: inline-flex; align-items: center; padding: 10px 18px; background: var(--paper); color: var(--navy); font-size: 12px; font-weight: 700; text-decoration: none; }
.distribution-steps a:hover, .distribution-steps a:focus-visible { background: var(--surface); color: var(--gold); }
.distribution-settings { display: grid; gap: 18px; }
.distribution-origins { display: grid; gap: 8px; font-weight: 700; }
.distribution-origins textarea { min-height: 130px; font-family: Consolas, "Courier New", monospace; font-size: 13px; }
.distribution-settings #appearance > label { margin: 0 20px; }
.distribution-settings #appearance .form-note { margin: 14px 20px; }
.distribution-settings #appearance > .table-link { display: inline-flex; margin: 0 20px 20px; }
.distribution-settings #sites .distribution-origins { padding: 0 20px 20px; }
.distribution-settings .sticky-action-bar { position: sticky; bottom: 0; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid var(--rule); background: #fff; padding: 13px 16px; box-shadow: 0 -8px 24px rgba(22,32,53,.08); }
.distribution-settings .sticky-action-bar span { color: var(--muted); font-size: 10px; line-height: 1.5; }
.distribution-install-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.distribution-install-grid article { min-width: 0; padding: 20px; border: 1px solid var(--rule-soft); background: var(--surface); }
.distribution-install-grid h3 { margin: 6px 0 12px; font-family: var(--display); font-size: 21px; font-weight: 500; }
.distribution-install-grid pre { max-height: 210px; margin: 0 0 14px; padding: 14px; overflow: auto; border: 1px solid var(--rule); background: var(--paper); white-space: pre-wrap; overflow-wrap: anywhere; }
.distribution-install-grid code, .public-key { font-family: Consolas, "Courier New", monospace; font-size: 12px; }
.distribution-install-grid .table-link { margin-left: 12px; }
.copy-result { min-height: 24px; margin: 12px 0 0; color: var(--muted); font-size: 12px; }
.public-key { display: block; padding: 12px; overflow-wrap: anywhere; border: 1px solid var(--rule-soft); background: var(--surface); }
.distribution-actions { display: grid; gap: 10px; margin-top: 18px; }
.distribution-actions form, .distribution-actions button { width: 100%; }
.check-findings { display: grid; gap: 8px; margin: 16px 0; }
.check-findings div { display: flex; gap: 10px; align-items: center; }
.finding-mark { width: 24px; height: 24px; display: inline-grid; flex: 0 0 24px; place-items: center; border: 1px solid var(--danger); color: var(--danger); font-weight: 800; }
.finding-mark.passed { border-color: var(--ok); color: var(--ok); }
.distribution-preview iframe { width: 100%; min-height: 760px; border: 1px solid var(--rule); background: var(--surface); }
.page-heading-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }

@media (max-width: 1000px) {
    .distribution-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .distribution-install-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
    .distribution-metrics { grid-template-columns: 1fr; }
    .distribution-create .form-grid, .distribution-settings .form-grid { grid-template-columns: 1fr; padding: 16px; }
    .distribution-create .span-two { grid-column: auto; }
    .distribution-steps { display: grid; grid-template-columns: repeat(2, 1fr); }
    .distribution-steps a { justify-content: center; }
    .distribution-install-grid article { padding: 16px; }
    .distribution-install-grid .table-link { display: block; margin: 12px 0 0; }
    .distribution-preview iframe { min-height: 700px; }
    .page-heading-actions { width: 100%; justify-content: stretch; }
    .page-heading-actions a { flex: 1 1 100%; }
    .distribution-settings .sticky-action-bar { position: static; align-items: stretch; flex-direction: column; }
    .distribution-settings .sticky-action-bar button { width: 100%; }
}

/* Direct booking settings */
.booking-settings-form { display: grid; gap: 16px; }
.booking-settings-form .content-card { min-width: 0; }
.booking-settings-form .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 18px; }
.booking-settings-form .stacked-form { display: grid; gap: 14px; padding: 18px 18px 0; }
.booking-settings-form label { display: flex; min-width: 0; flex-direction: column; gap: 6px; color: #39445a; font-size: 10px; }
.booking-settings-form label small { color: var(--muted); font-size: 8.5px; line-height: 1.45; }
.booking-settings-form input:not([type="checkbox"]), .booking-settings-form select, .booking-settings-form textarea { width: 100%; min-height: 42px; border: 1px solid var(--rule); border-radius: 0; background: #fff; padding: 9px 10px; color: var(--ink); font: inherit; }
.booking-settings-form textarea { min-height: 112px; resize: vertical; line-height: 1.55; }
.booking-settings-form .span-two { grid-column: 1 / -1; }
.booking-settings-form .check-label { flex-direction: row; align-items: center; border: 1px solid var(--rule-soft); background: #fafbfd; padding: 11px 12px; font-size: 11px; }
.booking-settings-form .check-label input[type="checkbox"] { width: 16px; height: 16px; margin: 0; accent-color: var(--navy); }
.booking-settings-form .form-note { margin: 12px 18px 18px; color: var(--muted); font-size: 10px; line-height: 1.55; }
.booking-settings-form .sticky-action-bar { position: sticky; bottom: 0; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid var(--rule); background: #fff; padding: 13px 16px; box-shadow: 0 -8px 24px rgb(22 32 53 / 8%); }
.booking-settings-form .sticky-action-bar span { color: var(--muted); font-size: 10px; }

@media (max-width: 760px) {
    .booking-settings-form .form-grid { grid-template-columns: 1fr; }
    .booking-settings-form .span-two { grid-column: auto; }
}

@media (max-width: 620px) {
    .booking-settings-form .sticky-action-bar { position: static; align-items: stretch; flex-direction: column; }
    .booking-settings-form .sticky-action-bar button { width: 100%; }
}

/* Responsive staff task workspace */
.task-day-heading { align-items: flex-end; }
.task-day-heading > .secondary-button { min-height: 44px; }
.task-day-command { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-bottom: 14px; border-left: 3px solid var(--gold); background: var(--navy-deep); padding: 20px 22px; color: #fff; }
.task-day-command h2 { margin: 5px 0 4px; font: 25px/1.2 var(--display); }
.task-day-command p { margin: 0; color: #cdd6e4; font-size: 10.5px; }
.task-network { display: flex; min-width: 255px; align-items: center; gap: 10px; border: 1px solid rgba(255,255,255,.18); padding: 11px 13px; }
.task-network > span:last-child { display: flex; flex-direction: column; gap: 3px; }
.task-network strong { font-size: 10.5px; }
.task-network small { color: #b8c4d6; font-size: 8.5px; }
.task-network-dot { width: 9px; height: 9px; flex: 0 0 9px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 4px rgba(200,164,74,.16); }
.task-network.is-online .task-network-dot { background: #65c3a9; box-shadow: 0 0 0 4px rgba(101,195,169,.15); }
.task-network.is-offline { border-color: rgba(255,188,192,.38); }
.task-network.is-offline .task-network-dot { background: #f08b91; box-shadow: 0 0 0 4px rgba(240,139,145,.15); }
.task-network-noscript { margin: -4px 0 14px; border: 1px solid #eadcae; background: #fffaf0; padding: 10px 12px; color: #675729; font-size: 10px; }
.task-day-filter-card { display: flex; align-items: end; justify-content: space-between; gap: 14px; margin-bottom: 12px; padding: 13px 15px; }
.task-day-filter { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; }
.task-day-filter label { display: flex; min-width: 190px; flex-direction: column; gap: 5px; color: var(--muted); font: 8.5px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.task-day-filter select { min-height: 40px; border: 1px solid var(--rule); border-radius: 0; background: #fff; padding: 0 32px 0 10px; color: var(--navy-ink); font: 11px var(--body); letter-spacing: 0; text-transform: none; }
.task-day-filter button { min-height: 44px; }
.task-day-filter-card > span { color: var(--muted); font-size: 9px; text-align: right; }
.task-focus-tabs { display: flex; gap: 2px; margin-bottom: 14px; border-bottom: 1px solid var(--rule); }
.task-focus-tabs a { display: inline-flex; min-height: 44px; align-items: center; border-bottom: 2px solid transparent; padding: 0 15px; color: var(--muted); font-size: 10.5px; font-weight: 700; text-decoration: none; }
.task-focus-tabs a:hover, .task-focus-tabs a.active { border-bottom-color: var(--gold); color: var(--navy); }
.metric-grid.task-day-metrics { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.task-day-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 15px; }
.task-day-columns.single-column { grid-template-columns: minmax(0, 900px); }
.task-day-section { overflow: hidden; border: 1px solid var(--rule); background: #fff; }
.task-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--rule); padding: 17px; }
.task-section-heading h2 { margin: 4px 0 3px; font: 22px/1.2 var(--display); }
.task-section-heading p { max-width: 54ch; margin: 0; color: var(--muted); font-size: 9.5px; line-height: 1.5; }
.task-section-heading > a { min-height: 44px; display: inline-flex; align-items: center; }
.task-group { border-top: 5px solid var(--paper); }
.task-section-heading + .task-group { border-top: 0; }
.task-group-title { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--rule-soft); padding: 11px 14px; }
.task-group-title h3 { margin: 0; color: var(--navy); font: 9px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.task-group-title span { display: inline-flex; min-width: 25px; min-height: 25px; align-items: center; justify-content: center; border: 1px solid var(--gold-soft); color: var(--navy); font: 9px var(--mono); }
.task-day-card { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 11px; border-top: 1px solid var(--rule-soft); padding: 12px 14px; }
.task-group-title + .task-day-card, .housekeeping-task-group > .task-day-card:first-child { border-top: 0; }
.task-day-card > div:not(.task-card-actions) { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.task-day-card strong { overflow-wrap: anywhere; font-size: 10.5px; }
.task-day-card small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.task-card-mark { display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center; border: 1px solid var(--gold); color: var(--navy); font: 8px var(--mono); }
.task-card-mark.high { border-color: #dca535; background: #fffaf0; }
.task-card-mark.urgent { border-color: var(--danger); background: #fff6f6; color: var(--danger); }
.task-card-link { display: inline-flex; min-height: 44px; align-items: center; gap: 7px; color: var(--navy); font-size: 10px; font-weight: 700; text-decoration: none; }
.task-card-link span { color: var(--gold); font: 17px var(--display); }
.task-note-card { grid-template-columns: 3px minmax(0, 1fr) auto; }
.task-note-card > div small { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.task-priority-stripe { align-self: stretch; background: var(--gold); }
.task-priority-stripe.high { background: #dca535; }
.task-priority-stripe.urgent { background: var(--danger); }
.task-empty { margin: 0; padding: 20px 15px; color: var(--muted); font-size: 10px; line-height: 1.55; }
.task-more-link { display: flex; min-height: 44px; align-items: center; justify-content: center; border-top: 1px solid var(--rule-soft); background: #fafbfd; color: var(--navy); font-size: 9.5px; font-weight: 700; text-decoration: none; }
.housekeeping-task-card { align-items: start; }
.task-card-copy { padding-top: 2px; }
.task-card-copy > p { margin: 3px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
.task-card-meta { display: flex; flex-wrap: wrap; gap: 5px; color: var(--muted-2); font: 7.5px var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.task-card-meta b { color: var(--gold); }
.task-card-meta i { font-style: normal; }
.task-card-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.task-card-actions form { margin: 0; }
.task-card-actions .primary-button, .task-card-actions .secondary-button { min-height: 44px; padding: 8px 11px; white-space: nowrap; }
[data-online-action]:disabled { cursor: not-allowed; border-color: #aeb5c0; background: #dfe3e9; color: #6c7480; opacity: .9; }

@media (max-width: 1100px) {
    .task-day-columns { grid-template-columns: 1fr; }
    .task-day-columns.single-column { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
    .task-day-command, .task-day-filter-card { align-items: stretch; flex-direction: column; }
    .task-network { width: 100%; min-width: 0; }
    .task-day-filter-card > span { text-align: left; }
}

@media (max-width: 620px) {
    .task-day-heading { gap: 13px; }
    .task-day-heading > .secondary-button { width: 100%; }
    .task-day-command { padding: 17px; }
    .task-day-command h2 { font-size: 22px; }
    .task-day-filter, .task-day-filter label, .task-day-filter button { width: 100%; }
    .task-focus-tabs a { flex: 1; justify-content: center; padding: 0 8px; }
    .metric-grid.task-day-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .task-section-heading { flex-direction: column; }
    .task-day-card { grid-template-columns: 38px minmax(0, 1fr); }
    .task-day-card > .task-card-link, .task-day-card > .task-card-actions { grid-column: 2; justify-self: stretch; }
    .task-card-actions { justify-content: flex-start; }
    .task-card-actions form { flex: 1; }
    .task-card-actions button, .task-card-actions .secondary-button { width: 100%; }
    .task-note-card { grid-template-columns: 3px minmax(0, 1fr); }
}

@media (max-width: 390px) {
    .metric-grid.task-day-metrics { grid-template-columns: 1fr; }
}

/* Role-aware hotel overview */
.dashboard-heading { align-items: flex-end; }
.dashboard-scope-card { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 16px; padding: 13px 15px; }
.dashboard-scope-form { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; }
.dashboard-scope-form label, .dashboard-personalise-options label { display: flex; min-width: 190px; flex-direction: column; gap: 5px; color: var(--muted); font: 9px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.dashboard-scope-form select, .dashboard-personalise-options select { min-height: 38px; border: 1px solid var(--rule); border-radius: 0; background: #fff; padding: 0 32px 0 10px; color: var(--ink); font: 11px var(--sans); letter-spacing: 0; text-transform: none; }
.dashboard-scope-note { color: var(--muted); font-size: 10px; text-align: right; }
.metric-grid.dashboard-metric-strip { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.dashboard-metric-strip.is-compact .metric-card { min-height: 108px; padding: 14px; }
.dashboard-lead-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(280px, .65fr); gap: 15px; margin-bottom: 15px; }
.dashboard-portfolio-card, .dashboard-decisions-card, .dashboard-widget { overflow: hidden; }
.dashboard-decisions-card.full-width { grid-column: 1 / -1; }
.dashboard-portfolio-card .card-heading p, .dashboard-decisions-card .card-heading p, .dashboard-widget .card-heading p { max-width: 56ch; margin: 4px 0 0; color: var(--muted); font-size: 9.5px; line-height: 1.45; }
.dashboard-property-name { display: flex; align-items: center; gap: 9px; min-width: 190px; }
.dashboard-property-name > b { display: inline-flex; width: 32px; height: 32px; flex: 0 0 32px; align-items: center; justify-content: center; border: 1px solid var(--gold); color: var(--navy); font: 9px var(--mono); }
.dashboard-property-name > span { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.dashboard-property-name small { color: var(--muted); font: 8.5px var(--mono); }
.dashboard-card-footer { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; border-top: 1px solid var(--rule-soft); background: #fafbfd; padding: 9px 14px; color: var(--muted); font-size: 9px; }
.dashboard-card-footer > span:nth-child(2) { margin-left: auto; }
.dashboard-card-footer a { color: var(--navy); font-weight: 700; text-decoration: none; }
.dashboard-decision-list { display: grid; }
.dashboard-decision { display: grid; grid-template-columns: 3px minmax(0, 1fr) auto; align-items: stretch; gap: 12px; border-top: 1px solid var(--rule-soft); color: inherit; text-decoration: none; }
.dashboard-decision:first-child { border-top: 0; }
.dashboard-decision > span:nth-child(2) { display: flex; flex-direction: column; gap: 4px; padding: 14px 0; }
.dashboard-decision strong { font-size: 10.5px; }
.dashboard-decision small { color: var(--muted); font-size: 9.5px; line-height: 1.45; }
.dashboard-decision > b { align-self: center; padding-right: 14px; color: var(--navy); font: 20px var(--display); }
.decision-stripe { background: var(--gold); }
.decision-stripe.urgent { background: var(--danger); }
.decision-stripe.warning { background: #dca535; }
.dashboard-all-clear { display: flex; align-items: center; gap: 12px; padding: 22px 16px; }
.dashboard-all-clear > span { display: inline-flex; width: 31px; height: 31px; align-items: center; justify-content: center; border-radius: 50%; background: var(--ok-soft); color: var(--ok); }
.dashboard-all-clear p { display: flex; flex-direction: column; gap: 3px; margin: 0; }
.dashboard-all-clear strong { font-size: 10.5px; }
.dashboard-all-clear small { color: var(--muted); font-size: 9.5px; }
.dashboard-widget-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.dashboard-widget { display: flex; min-height: 250px; flex-direction: column; }
.dashboard-widget .dashboard-card-footer { margin-top: auto; }
.dashboard-widget-grid.is-compact .dashboard-widget { min-height: 220px; }
.dashboard-fact-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); flex: 1; }
.dashboard-fact-grid > div { display: flex; min-width: 0; flex-direction: column; justify-content: center; border-right: 1px solid var(--rule-soft); padding: 22px 15px; }
.dashboard-fact-grid > div:last-child { border-right: 0; }
.dashboard-fact-grid span { color: var(--muted); font: 8.5px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.dashboard-fact-grid strong { overflow-wrap: anywhere; margin: 7px 0 4px; color: var(--navy); font: 25px var(--display); }
.dashboard-fact-grid small { color: var(--muted); font-size: 9px; line-height: 1.4; }
.dashboard-private-fact strong { font-size: 18px; }
.dashboard-widget-message { display: flex; min-height: 130px; align-items: center; padding: 22px; }
.dashboard-widget-message p { max-width: 50ch; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.dashboard-empty-state { padding: 28px; }
.dashboard-empty-state h2 { margin: 4px 0 8px; font: 25px var(--display); }
.dashboard-empty-state p { max-width: 65ch; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.dashboard-personalise { margin-top: 15px; overflow: hidden; }
.dashboard-personalise > summary { display: flex; cursor: pointer; list-style: none; align-items: center; justify-content: space-between; gap: 20px; padding: 15px 17px; }
.dashboard-personalise > summary::-webkit-details-marker { display: none; }
.dashboard-personalise > summary > span { display: flex; flex-direction: column; gap: 3px; }
.dashboard-personalise > summary strong { font: 18px var(--display); }
.dashboard-personalise > summary small { color: var(--muted); font-size: 9.5px; }
.dashboard-personalise > summary > b { color: var(--gold); font: 20px var(--display); }
.dashboard-personalise[open] > summary > b { transform: rotate(45deg); }
.dashboard-personalise-body { border-top: 1px solid var(--rule); background: #fafbfd; padding: 17px; }
.dashboard-personalise-body > form:first-child { display: flex; flex-direction: column; gap: 16px; }
.dashboard-personalise-options { display: flex; flex-wrap: wrap; gap: 12px; }
.dashboard-personalise fieldset { border: 0; margin: 0; padding: 0; }
.dashboard-personalise legend { margin-bottom: 8px; color: var(--muted); font: 9px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.dashboard-section-choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.dashboard-section-choices label { display: flex; cursor: pointer; align-items: flex-start; gap: 9px; border: 1px solid var(--rule); background: #fff; padding: 11px; }
.dashboard-section-choices input { margin-top: 2px; accent-color: var(--navy); }
.dashboard-section-choices span { display: flex; flex-direction: column; gap: 3px; }
.dashboard-section-choices strong { font-size: 10.5px; }
.dashboard-section-choices small { color: var(--muted); font-size: 9px; line-height: 1.4; }
.dashboard-personalise-body .primary-button { align-self: flex-start; }
.dashboard-reset-form { margin-top: 12px; border-top: 1px solid var(--rule); padding-top: 12px; }

@media (max-width: 1180px) {
    .metric-grid.dashboard-metric-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .dashboard-lead-grid { grid-template-columns: 1fr; }
    .dashboard-section-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
    .dashboard-scope-card { align-items: stretch; flex-direction: column; }
    .dashboard-scope-note { text-align: left; }
    .dashboard-widget-grid { grid-template-columns: 1fr; }
    .dashboard-card-footer > span:nth-child(2) { margin-left: 0; }
}

@media (max-width: 620px) {
    .metric-grid.dashboard-metric-strip, .dashboard-section-choices, .dashboard-fact-grid { grid-template-columns: 1fr; }
    .dashboard-scope-form, .dashboard-scope-form label, .dashboard-personalise-options, .dashboard-personalise-options label { width: 100%; }
    .dashboard-scope-form .secondary-button { width: 100%; justify-content: center; }
    .dashboard-fact-grid > div { border-right: 0; border-bottom: 1px solid var(--rule-soft); padding: 15px; }
    .dashboard-fact-grid > div:last-child { border-bottom: 0; }
    .dashboard-widget { min-height: 0; }
    .dashboard-card-footer { align-items: flex-start; flex-direction: column; }
    .dashboard-property-table { min-width: 730px; }
}

/* Hotel reporting workspace */
.reporting-heading { align-items: flex-end; }
.header-filter.reporting-scope-form { display: grid; grid-template-columns: 120px minmax(190px, 1fr) 142px auto; min-width: min(100%, 650px); }
.reporting-scope-form input { width: 100%; }
.reporting-date-note, .report-run-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 14px; border: 1px solid var(--rule); border-left: 3px solid var(--gold); background: #fff; }
.reporting-date-note > div, .report-run-facts > div { display: flex; min-width: 0; flex-direction: column; gap: 4px; border-left: 1px solid var(--rule-soft); padding: 13px 16px; }
.reporting-date-note > div:first-child, .report-run-facts > div:first-child { border-left: 0; }
.reporting-date-note span, .report-run-facts span { color: var(--muted-2); font: 8px var(--mono); letter-spacing: .09em; text-transform: uppercase; }
.reporting-date-note strong, .report-run-facts strong { color: var(--navy); font: 17px var(--display); overflow-wrap: anywhere; }
.reporting-date-note small, .report-run-facts small { color: var(--muted); font-size: 9px; }
.metric-grid.reporting-metrics { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.reporting-summary-grid, .reporting-summary-lower, .reporting-schedule-grid, .report-detail-grid { display: grid; align-items: start; gap: 14px; }
.reporting-summary-grid { grid-template-columns: minmax(0, 1.55fr) minmax(280px, .45fr); }
.reporting-summary-lower { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 14px; }
.reporting-trend-card, .reporting-comparison-card, .reporting-question-card, .report-definition-card, .reporting-schedule-grid > .content-card, .reporting-schedule-create { overflow: visible; }
.report-trend-bars { display: grid; gap: 1px; padding: 6px 18px 18px; }
.report-trend-bars article { display: grid; grid-template-columns: 40px minmax(90px, 1fr) 112px 92px; align-items: center; gap: 11px; min-height: 35px; border-top: 1px solid var(--rule-soft); }
.report-trend-bars article:first-child { border-top: 0; }
.report-trend-bars time { color: var(--muted); font: 8.5px var(--mono); }
.report-trend-bars article > div { height: 7px; overflow: hidden; background: #eef1f6; }
.report-trend-bars article > div span { display: block; height: 100%; background: linear-gradient(90deg, var(--gold), #d8b85c); }
.report-trend-bars strong { text-align: right; color: var(--navy); font-size: 10px; }
.report-trend-bars small { color: var(--muted); font-size: 8.5px; text-align: right; }
.report-comparison-list, .report-definition-list, .report-schedule-list, .report-access-list { display: grid; }
.report-comparison-list article { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--rule-soft); padding: 13px 16px; }
.report-comparison-list article:first-child { border-top: 0; }
.report-comparison-list article > span:first-child { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.report-comparison-list article > span:last-child { color: var(--navy); font: 20px var(--display); }
.report-comparison-list strong { font-size: 10.5px; }
.report-comparison-list small { color: var(--muted); font-size: 9px; }
.report-definition-list article { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: center; gap: 11px; border-top: 1px solid var(--rule-soft); padding: 12px 16px; }
.report-definition-list article:first-child { border-top: 0; }
.report-definition-list article > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.report-definition-list strong { font-size: 10.5px; }
.report-definition-list small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.report-question-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 0 16px 16px; }
.report-question-form label, .reporting-run-form label, .reporting-schedule-create label, .reporting-settings-card label { display: flex; min-width: 0; flex-direction: column; gap: 6px; color: #39445a; font-size: 9.5px; }
.report-question-form input, .report-question-form select, .reporting-run-form input, .reporting-run-form select, .reporting-schedule-create input, .reporting-schedule-create select, .reporting-schedule-create textarea, .reporting-settings-card input { width: 100%; min-height: 40px; }
.report-question-form button { grid-column: 1 / -1; justify-self: start; }
.report-answer { margin: 0 16px 16px; border-left: 3px solid #54a987; background: var(--ok-soft); padding: 15px; }
.report-answer > span { color: #26775e; font: 8px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.report-answer h3 { margin: 5px 0 3px; font: 22px var(--display); }
.report-answer p { margin: 0 0 8px; color: var(--muted); font-size: 10px; }
.report-answer small { display: block; margin-bottom: 10px; color: #3c685b; font-size: 9px; }
.report-answer a { color: var(--navy); font-size: 9.5px; font-weight: 600; }
.report-honesty-note { margin: 0; border-top: 1px solid var(--rule); background: #fffcf3; padding: 12px 16px; color: #63552d; font-size: 9px; line-height: 1.5; }
.report-empty { padding: 32px 18px; text-align: center; }
.report-empty strong { font: 19px var(--display); }
.report-empty p, .empty-copy { margin: 5px 0 0; color: var(--muted); font-size: 10px; }
.report-catalog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.report-definition-card { display: flex; flex-direction: column; }
.report-definition-card .summary-list { flex: 1; }
.reporting-run-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding-top: 12px; }
.reporting-run-form .span-two { grid-column: 1 / -1; }
.reporting-run-form button { justify-self: start; }
.reporting-schedule-grid { grid-template-columns: minmax(0, 1.5fr) minmax(310px, .5fr); }
.report-schedule-list > article { border-top: 1px solid var(--rule); padding: 16px; }
.report-schedule-list > article:first-child { border-top: 0; }
.report-schedule-list article > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.report-schedule-list header > div { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.report-schedule-list header strong { font: 18px var(--display); }
.report-schedule-list header small { color: var(--muted); font-size: 9.5px; }
.report-schedule-list dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 15px 0; }
.report-schedule-list dl div { border-left: 2px solid var(--rule); padding-left: 9px; }
.report-schedule-list dt { color: var(--muted); font: 8px var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.report-schedule-list dd { margin: 4px 0 0; color: var(--navy); font-size: 9.5px; overflow-wrap: anywhere; }
.report-schedule-actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 9px; }
.report-schedule-actions .row-disclosure { position: relative; }
.report-schedule-actions .floating-review-panel { position: static; z-index: 3; width: min(420px, calc(100vw - 48px)); min-width: 270px; margin-top: 8px; }
.reporting-schedule-create form, .reporting-settings-card form { display: grid; gap: 10px; padding: 0 16px 16px; }
.reporting-schedule-create textarea { min-height: 75px; resize: vertical; }
.reporting-schedule-create label small, .reporting-settings-card label small { color: var(--muted); font-size: 8.5px; line-height: 1.45; }
.reporting-schedule-create button, .reporting-settings-card button { justify-self: start; }
.report-email-needed { padding: 8px 16px 18px; }
.report-email-needed strong { font: 20px var(--display); }
.report-email-needed p { margin: 5px 0 14px; color: var(--muted); font-size: 10px; line-height: 1.55; }
.reporting-settings-card { max-width: 900px; }
.reporting-settings-card form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.reporting-settings-card .span-two { grid-column: span 2; }
.reporting-settings-card button { grid-column: 1 / -1; }
.reporting-detail-heading { align-items: flex-end; }
.report-detail-actions { display: flex; flex: 0 0 auto !important; align-items: center; gap: 9px; }
.report-run-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.report-detail-grid { grid-template-columns: minmax(0, 1.5fr) minmax(290px, .5fr); }
.report-rows-card { overflow: hidden; }
.report-detail-side { display: grid; gap: 14px; }
.report-results-table th, .report-results-table td { white-space: nowrap; }
.report-access-list article { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 10px; border-top: 1px solid var(--rule-soft); padding: 12px 16px; }
.report-access-list article:first-child { border-top: 0; }
.report-access-list article > span { color: var(--gold); font: 8.5px var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.report-access-list article > div { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.report-access-list strong { font-size: 9.5px; }
.report-access-list small { color: var(--muted); font-size: 8.5px; }

@media (max-width: 1100px) {
    .header-filter.reporting-scope-form { grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
    .metric-grid.reporting-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .reporting-summary-grid, .reporting-schedule-grid, .report-detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
    .reporting-summary-lower, .report-catalog-grid { grid-template-columns: 1fr; }
    .reporting-date-note, .report-run-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .reporting-date-note > div:nth-child(odd), .report-run-facts > div:nth-child(odd) { border-left: 0; }
    .reporting-settings-card form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
    .header-filter.reporting-scope-form, .metric-grid.reporting-metrics, .reporting-date-note, .report-run-facts, .report-question-form, .reporting-run-form, .reporting-settings-card form { grid-template-columns: 1fr; }
    .reporting-date-note > div, .report-run-facts > div { border-top: 1px solid var(--rule-soft); border-left: 0; }
    .reporting-date-note > div:first-child, .report-run-facts > div:first-child { border-top: 0; }
    .report-trend-bars article { grid-template-columns: 36px minmax(70px, 1fr) 92px; }
    .report-trend-bars small { grid-column: 2 / -1; }
    .reporting-run-form .span-two, .reporting-settings-card .span-two { grid-column: auto; }
    .report-schedule-list article > header, .report-detail-actions { align-items: flex-start; flex-direction: column; }
    .report-schedule-list dl { grid-template-columns: 1fr; }
}

/* Guest document centre */
.document-heading, .document-detail-heading { align-items: flex-end; }
.document-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.document-main-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(290px, .45fr); align-items: start; gap: 14px; }
.document-primary-stack, .document-side-stack { display: grid; gap: 14px; }
.document-side-stack { position: sticky; top: 78px; }
.document-table td { vertical-align: top; }
.document-table .row-disclosure { overflow: visible; }
.document-issue-form { width: min(430px, 84vw); }
.document-issue-form label { display: flex; flex-direction: column; gap: 6px; }
.document-issue-form input { min-height: 38px; border: 1px solid var(--rule); padding: 0 9px; }
.document-number-card h2 { overflow-wrap: anywhere; font-size: 19px; }
.document-empty-state { display: flex; min-height: 300px; align-items: center; justify-content: center; flex-direction: column; padding: 30px; text-align: center; }
.document-empty-state > span { border: 1px solid var(--gold); padding: 5px 8px; color: var(--navy); font: 8.5px var(--mono); text-transform: uppercase; }
.document-empty-state h3 { margin: 14px 0 5px; font: 25px var(--display); }
.document-empty-state p { max-width: 460px; margin: 0; color: var(--muted); font-size: 11px; }
.document-standards-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(310px, .42fr); align-items: start; gap: 14px; }
.document-standards-grid > .content-card:first-child { grid-column: 1; }
.document-wording-card { grid-column: 1; }
.document-edition-card { grid-area: 1 / 2 / span 2 / 3; position: sticky; top: 78px; }
.document-settings-form, .document-wording-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 18px; }
.document-settings-form label, .document-wording-form label, .document-correction-card label { display: flex; min-width: 0; flex-direction: column; gap: 6px; color: #39445a; font-size: 10px; }
.document-settings-form input, .document-settings-form select, .document-wording-form input, .document-wording-form select, .document-wording-form textarea, .document-correction-card input { width: 100%; min-height: 40px; border: 1px solid var(--rule); border-radius: 0; background: #fff; padding: 8px 10px; color: var(--ink); font: inherit; }
.document-wording-form textarea { min-height: 90px; resize: vertical; line-height: 1.5; }
.document-settings-form .span-two, .document-wording-form .span-two { grid-column: 1 / -1; }
.document-settings-form button, .document-wording-form button { justify-self: start; }
.document-edition-list { display: grid; }
.document-edition-list article { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; border-top: 1px solid var(--rule-soft); padding: 13px 16px; }
.document-edition-list article:first-child { border-top: 0; }
.document-edition-list article > div { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.document-edition-list strong { font-size: 11px; }
.document-edition-list small { color: var(--muted); font-size: 9.5px; }
.document-edition-list form { grid-column: 1 / -1; }
.document-honesty-note { margin: 0; border-top: 1px solid var(--rule); background: #fffcf3; padding: 14px 16px; color: #63552d; font-size: 10px; line-height: 1.55; }
.registration-sheet { --doc-primary: var(--navy); --doc-accent: var(--gold); --doc-paper: #fff; --doc-text: var(--ink); max-width: 1040px; margin: 0 auto 16px; border: 1px solid var(--rule); background: var(--doc-paper); padding: 42px; color: var(--doc-text); }
.registration-sheet > header { display: flex; justify-content: space-between; gap: 30px; border-bottom: 3px solid var(--doc-primary); padding-bottom: 22px; }
.registration-sheet > header > div { display: flex; flex-direction: column; }
.registration-sheet > header > div:last-child { align-items: flex-end; text-align: right; }
.registration-sheet > header img { width: auto; max-width: 150px; height: auto; max-height: 58px; object-fit: contain; margin-bottom: 8px; }
.registration-sheet > header span, .registration-title > span, .registration-facts span, .registration-signature span { color: var(--muted); font: 8.5px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.registration-sheet > header h2 { margin: 4px 0; color: var(--doc-primary); font: 29px var(--display); }
.registration-sheet > header strong { color: var(--doc-primary); font-size: 15px; }
.registration-sheet > header small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.registration-title { padding: 28px 0 20px; }
.registration-title h1 { margin: 5px 0; color: var(--doc-primary); font: 34px var(--display); }
.registration-title p { max-width: 680px; margin: 0; color: var(--muted); font-size: 11px; }
.registration-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--rule); }
.registration-facts section { border-right: 1px solid var(--rule-soft); border-bottom: 1px solid var(--rule-soft); padding: 14px; }
.registration-facts section:nth-child(2n) { border-right: 0; }
.registration-facts section:nth-last-child(-n+2) { border-bottom: 0; }
.registration-facts strong, .registration-facts small { display: block; }
.registration-facts strong { margin: 5px 0; color: var(--doc-primary); font-size: 11px; }
.registration-facts small { color: var(--muted); font-size: 9.5px; }
.registration-copy { padding: 21px 0; }
.registration-copy h3 { margin: 18px 0 5px; color: var(--doc-primary); font: 19px var(--display); }
.registration-copy p { margin: 0; font-size: 10.5px; line-height: 1.65; white-space: pre-line; }
.registration-signature { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 35px; margin-top: 35px; }
.registration-signature div { border-top: 1px solid var(--doc-primary); padding-top: 9px; }
.registration-signature strong { display: block; margin-top: 4px; font-size: 10.5px; }
.registration-sheet > footer { display: flex; justify-content: space-between; gap: 20px; margin-top: 42px; border-top: 1px solid var(--rule); padding-top: 12px; color: var(--muted); font-size: 9px; }
.document-detail-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(290px, .6fr); gap: 14px; max-width: 1040px; margin: 0 auto; }
.document-access-list, .document-event-list { display: grid; }
.document-access-list article { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 10px; border-top: 1px solid var(--rule-soft); padding: 12px 16px; }
.document-access-list article:first-child, .document-event-list article:first-child { border-top: 0; }
.document-access-list article > span { color: var(--gold); font: 9px var(--mono); text-transform: uppercase; }
.document-access-list article > div { display: flex; flex-direction: column; }
.document-access-list strong, .document-event-list strong { font-size: 10.5px; }
.document-access-list small, .document-event-list small { color: var(--muted); font-size: 9px; }
.document-event-list article { border-top: 1px solid var(--rule-soft); padding: 12px 16px; }
.document-event-list p { margin: 4px 0; color: var(--muted); font-size: 10px; }
.document-detail-grid aside > .table-link { display: inline-block; margin: 0 16px 16px; }
.document-correction-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .75fr); align-items: end; gap: 20px; max-width: 1040px; margin: 16px auto 0; padding: 18px; overflow: visible; }
.document-correction-card h2 { margin: 4px 0; font: 23px var(--display); }
.document-correction-card p { margin: 0; color: var(--muted); font-size: 10.5px; }
.document-correction-card form { display: grid; grid-template-columns: minmax(220px, 1fr) auto; align-items: end; gap: 10px; }
@media (max-width: 1050px) { .document-main-grid, .document-standards-grid { grid-template-columns: 1fr; } .document-side-stack, .document-edition-card { position: static; } .document-edition-card { grid-area: auto; } }
@media (max-width: 760px) { .document-metrics, .document-settings-form, .document-wording-form, .document-detail-grid, .document-correction-card { grid-template-columns: 1fr; } .document-settings-form .span-two, .document-wording-form .span-two { grid-column: auto; } .document-correction-card form { grid-template-columns: 1fr; } .registration-sheet { padding: 22px; } .registration-sheet > header { flex-direction: column; } .registration-sheet > header > div:last-child { align-items: flex-start; text-align: left; } .registration-facts, .registration-signature { grid-template-columns: 1fr; } .registration-facts section { border-right: 0; } .registration-facts section:nth-last-child(2) { border-bottom: 1px solid var(--rule-soft); } .registration-sheet > footer { flex-direction: column; } }

/* Night audit */
.night-audit-heading { align-items: flex-end; }
.night-audit-heading-actions { display: flex; align-items: flex-end; justify-content: flex-end; gap: 9px; }
.night-audit-heading-actions > form:last-child { padding-bottom: 1px; }
.night-audit-date-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--rule); border-left: 3px solid var(--gold); background: #fff; margin-bottom: 14px; }
.night-audit-date-strip > div { display: flex; min-width: 0; flex-direction: column; gap: 4px; border-left: 1px solid var(--rule-soft); padding: 13px 16px; }
.night-audit-date-strip > div:first-child { border-left: 0; }
.night-audit-date-strip span { color: var(--muted-2); font: 8px var(--mono); letter-spacing: .09em; text-transform: uppercase; }
.night-audit-date-strip strong { color: var(--navy); font: 17px var(--display); }
.night-audit-date-strip small { color: var(--muted); font-size: 9px; }
.night-audit-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.night-audit-main-grid, .night-audit-report-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(290px, .45fr); align-items: start; gap: 14px; }
.night-audit-step-card, .night-audit-exception-card, .audit-report-card { overflow: visible; }
.night-audit-steps { display: grid; padding: 6px 18px 18px; }
.night-audit-steps article { position: relative; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 68px; border-top: 1px solid var(--rule-soft); }
.night-audit-steps article:first-child { border-top: 0; }
.night-audit-steps article::before { position: absolute; top: 0; bottom: 0; left: 18px; width: 1px; background: var(--rule); content: ""; }
.night-audit-steps article:first-child::before { top: 50%; }
.night-audit-steps article:last-child::before { bottom: 50%; }
.audit-step-number { z-index: 1; display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; border: 1px solid var(--rule); border-radius: 50%; background: #fff; color: var(--muted); font: 9px var(--mono); }
.night-audit-steps article.complete .audit-step-number { border-color: #9fcdbb; background: var(--ok-soft); color: #1d7457; }
.night-audit-steps article.attention .audit-step-number { border-color: var(--gold); background: #fff8e5; color: #80621b; }
.night-audit-steps article > div { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.night-audit-steps strong { font: 15px var(--display); }
.night-audit-steps small { color: var(--muted); font-size: 9.5px; line-height: 1.45; }
.night-audit-side-stack { display: grid; gap: 14px; }
.audit-readiness-body, .audit-verify-card > div:last-child { padding: 0 16px 16px; }
.audit-readiness-body > p, .audit-verify-card p { margin: 0 0 14px; color: var(--muted); font-size: 10.5px; line-height: 1.6; }
.audit-readiness-body dl { margin: 0 0 15px; }
.audit-readiness-body dl div { display: flex; justify-content: space-between; gap: 10px; border-top: 1px solid var(--rule-soft); padding: 8px 0; }
.audit-readiness-body dt, .audit-readiness-body dd { margin: 0; font-size: 9.5px; }
.audit-readiness-body dt { color: var(--muted); }
.audit-readiness-body dd { color: var(--navy); font-weight: 700; text-align: right; }
.audit-history-list { display: grid; }
.audit-history-list > a { display: flex; align-items: center; justify-content: space-between; gap: 10px; border-top: 1px solid var(--rule-soft); padding: 11px 14px; color: inherit; text-decoration: none; }
.audit-history-list > a:first-child { border-top: 0; }
.audit-history-list > a.active { background: #fffcf3; box-shadow: inset 2px 0 var(--gold); }
.audit-history-list > a > span:first-child { display: flex; flex-direction: column; gap: 3px; }
.audit-history-list strong { font-size: 10.5px; }
.audit-history-list small { color: var(--muted); font-size: 8.5px; }
.audit-history-list > a > span:last-child:not(.status-badge) { color: var(--navy); font-size: 9px; font-weight: 700; }
.night-audit-exception-list { display: grid; }
.night-audit-exception-list > article { border-top: 1px solid var(--rule); padding: 17px; }
.night-audit-exception-list > article:first-child { border-top: 0; }
.night-audit-exception-list > article.control { box-shadow: inset 3px 0 var(--danger); }
.night-audit-exception-list > article.closed { background: #fcfdfd; box-shadow: inset 3px 0 #9fcdbb; }
.night-audit-exception-list article > header { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: start; gap: 11px; }
.audit-exception-mark { display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; border: 1px solid var(--gold); border-radius: 50%; color: #80621b; font: 12px var(--display); }
.control .audit-exception-mark { border-color: #e0b0ae; color: var(--danger); }
.night-audit-exception-list h3 { margin: 3px 0 4px; font: 17px var(--display); }
.night-audit-exception-list header p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.audit-exception-facts { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 12px 0 0 41px; }
.audit-exception-facts span { color: var(--muted); font-size: 8.5px; }
.audit-exception-facts strong { margin-left: 4px; color: var(--navy); }
.audit-exception-actions { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; margin: 14px 0 0 41px; }
.audit-exception-actions > form { display: flex; align-items: flex-end; gap: 7px; }
.audit-exception-actions label, .audit-resolution-form label { display: flex; flex-direction: column; gap: 5px; color: var(--muted); font-size: 8.5px; }
.audit-exception-actions select { min-width: 180px; }
.audit-resolution-form { width: min(410px, 82vw); }
.audit-resolution-note { margin: 13px 0 0 41px; border-left: 2px solid #9fcdbb; background: var(--ok-soft); padding: 9px 11px; color: #245d49; font-size: 9.5px; line-height: 1.5; }
.audit-empty-state { display: flex; min-height: 260px; align-items: center; justify-content: center; flex-direction: column; padding: 30px; text-align: center; }
.audit-empty-state > span { color: #388166; font: 32px var(--display); }
.audit-empty-state h3 { margin: 10px 0 4px; font: 20px var(--display); }
.audit-empty-state p { max-width: 360px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.audit-report-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 0 16px 16px; }
.audit-report-grid article { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; border: 1px solid var(--rule); padding: 14px; }
.audit-report-grid article > div { min-width: 0; }
.audit-report-grid strong { font: 15px var(--display); }
.audit-report-grid p { margin: 5px 0 8px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.audit-report-grid small { display: block; color: var(--muted-2); font-size: 8px; }
.audit-report-grid article > a, .audit-report-grid article > .status-badge { grid-column: 2; justify-self: start; margin-top: 5px; }
.audit-report-icon { display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; border: 1px solid var(--gold); color: var(--navy); }
.night-audit-standards-card form { display: grid; grid-template-columns: minmax(180px, .6fr) repeat(2, minmax(220px, 1fr)); align-items: end; gap: 12px; padding: 0 18px 18px; }
.night-audit-standards-card form > label:not(.audit-choice) { display: flex; flex-direction: column; gap: 6px; color: #39445a; font-size: 9.5px; }
.night-audit-standards-card form > label small { color: var(--muted); font-size: 8.5px; line-height: 1.45; }
.night-audit-standards-card .span-two { grid-column: span 2; }
.audit-choice { display: flex; min-height: 67px; align-items: flex-start; gap: 9px; border: 1px solid var(--rule-soft); padding: 11px; }
.audit-choice input { width: auto; min-height: auto; margin-top: 2px; accent-color: var(--navy); }
.audit-choice span { display: flex; flex-direction: column; gap: 4px; }
.audit-choice strong { font-size: 10px; }
.audit-choice small { color: var(--muted); font-size: 8.5px; line-height: 1.45; }

@media (max-width: 1100px) {
    .night-audit-heading { align-items: flex-start; }
    .night-audit-heading-actions { align-items: flex-start; flex-direction: column; }
    .night-audit-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .night-audit-standards-card form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
    .night-audit-main-grid, .night-audit-report-layout { grid-template-columns: 1fr; }
    .night-audit-date-strip { grid-template-columns: 1fr; }
    .night-audit-date-strip > div { border-top: 1px solid var(--rule-soft); border-left: 0; }
    .night-audit-date-strip > div:first-child { border-top: 0; }
}

@media (max-width: 620px) {
    .night-audit-heading-actions, .night-audit-heading-actions .header-filter { width: 100%; }
    .night-audit-heading-actions .header-filter { grid-template-columns: 1fr; }
    .night-audit-metrics, .audit-report-grid, .night-audit-standards-card form { grid-template-columns: 1fr; }
    .night-audit-standards-card .span-two { grid-column: auto; }
    .night-audit-steps article { grid-template-columns: 34px minmax(0, 1fr); padding: 7px 0; }
    .night-audit-steps article > .status-badge { grid-column: 2; justify-self: start; }
    .night-audit-exception-list article > header { grid-template-columns: 28px minmax(0, 1fr); }
    .night-audit-exception-list article > header > .status-badge { grid-column: 2; justify-self: start; }
    .audit-exception-facts, .audit-exception-actions, .audit-resolution-note { margin-left: 0; }
    .audit-exception-actions, .audit-exception-actions > form { align-items: stretch; flex-direction: column; }
    .audit-exception-actions select { min-width: 0; width: 100%; }
}

/* Front desk */
.frontdesk-heading, .frontdesk-stay-heading, .frontdesk-walkin-heading { align-items: flex-end; }
.frontdesk-heading-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.frontdesk-property-filter { display: flex; align-items: flex-end; justify-content: flex-end; gap: 8px; margin: -4px 0 16px; }
.frontdesk-property-filter label { display: flex; min-width: 220px; flex-direction: column; gap: 5px; color: var(--muted); font-size: 9px; }
.frontdesk-metrics, .frontdesk-stay-metrics { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.frontdesk-tabs { margin-bottom: 16px; }
.frontdesk-tape-card { min-width: 0; }
.frontdesk-chart-heading { align-items: flex-end; }
.range-switch { display: inline-flex; overflow: hidden; border: 1px solid var(--rule); background: #fff; }
.range-switch a { padding: 7px 10px; border-left: 1px solid var(--rule); color: var(--muted); font-size: 9px; font-weight: 700; text-decoration: none; }
.range-switch a:first-child { border-left: 0; }
.range-switch a.active { background: var(--navy); color: #fff; }
.frontdesk-tape-scroll { overflow-x: auto; padding-bottom: 5px; }
.frontdesk-tape { display: grid; padding: 0 16px 16px; }
.tape-date-row, .tape-room-row { display: grid; position: relative; grid-template-columns: 112px repeat(var(--day-count), minmax(52px, 1fr)); }
.frontdesk-tape.tape-days-14 { min-width: 840px; }
.frontdesk-tape.tape-days-28 { min-width: 1568px; }
.frontdesk-tape.tape-days-29 { min-width: 1620px; }
.frontdesk-tape.tape-days-30 { min-width: 1672px; }
.frontdesk-tape.tape-days-31 { min-width: 1724px; }
.tape-date-row.tape-days-14, .tape-room-row.tape-days-14 { grid-template-columns: 112px repeat(14, minmax(52px, 1fr)); }
.tape-date-row.tape-days-28, .tape-room-row.tape-days-28 { grid-template-columns: 112px repeat(28, minmax(52px, 1fr)); }
.tape-date-row.tape-days-29, .tape-room-row.tape-days-29 { grid-template-columns: 112px repeat(29, minmax(52px, 1fr)); }
.tape-date-row.tape-days-30, .tape-room-row.tape-days-30 { grid-template-columns: 112px repeat(30, minmax(52px, 1fr)); }
.tape-date-row.tape-days-31, .tape-room-row.tape-days-31 { grid-template-columns: 112px repeat(31, minmax(52px, 1fr)); }
.tape-date-row { position: sticky; top: 0; z-index: 3; border-bottom: 1px solid var(--rule); background: #fff; }
.tape-date-row > span:not(.tape-room-label) { display: flex; min-height: 44px; align-items: center; justify-content: center; flex-direction: column; border-left: 1px solid var(--rule-soft); color: var(--muted); }
.tape-date-row b { font-size: 8px; text-transform: uppercase; }
.tape-date-row small { color: var(--navy); font: 15px var(--display); }
.tape-date-row .today { background: #fff9e8; }
.tape-room-row { min-height: 54px; border-bottom: 1px solid var(--rule-soft); }
.tape-room-label { display: flex; position: sticky; left: 0; z-index: 2; min-width: 0; align-items: flex-start; justify-content: center; flex-direction: column; border-right: 1px solid var(--rule); background: #fff; padding: 7px 9px; }
.tape-room-label strong { color: var(--navy); font: 15px var(--display); }
.tape-room-label small { color: var(--muted); font: 8px var(--mono); }
.tape-room-row > i { min-width: 0; border-left: 1px solid var(--rule-soft); background: #fff; }
.tape-room-row > i.today { background: #fffcf3; }
.tape-stay-bar, .tape-service-bar { display: flex; position: relative; z-index: 1; min-width: 0; align-self: center; flex-direction: column; overflow: hidden; border-left: 3px solid var(--gold); background: #f5efe1; padding: 6px 8px; color: var(--navy); text-decoration: none; white-space: nowrap; }
.tape-stay-bar.occupied { border-left-color: var(--navy); background: #e9eff7; }
.tape-stay-bar strong, .tape-service-bar strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; }
.tape-stay-bar small { overflow: hidden; color: var(--muted); font-size: 7.5px; text-overflow: ellipsis; }
.tape-service-bar { z-index: 1; border-left-color: var(--danger); background: var(--danger-soft); color: var(--danger); }
.tape-stay-bar, .tape-service-bar { grid-row: 1; }
.tape-start-0 { grid-column-start: 2; }
.tape-start-1 { grid-column-start: 3; }
.tape-start-2 { grid-column-start: 4; }
.tape-start-3 { grid-column-start: 5; }
.tape-start-4 { grid-column-start: 6; }
.tape-start-5 { grid-column-start: 7; }
.tape-start-6 { grid-column-start: 8; }
.tape-start-7 { grid-column-start: 9; }
.tape-start-8 { grid-column-start: 10; }
.tape-start-9 { grid-column-start: 11; }
.tape-start-10 { grid-column-start: 12; }
.tape-start-11 { grid-column-start: 13; }
.tape-start-12 { grid-column-start: 14; }
.tape-start-13 { grid-column-start: 15; }
.tape-start-14 { grid-column-start: 16; }
.tape-start-15 { grid-column-start: 17; }
.tape-start-16 { grid-column-start: 18; }
.tape-start-17 { grid-column-start: 19; }
.tape-start-18 { grid-column-start: 20; }
.tape-start-19 { grid-column-start: 21; }
.tape-start-20 { grid-column-start: 22; }
.tape-start-21 { grid-column-start: 23; }
.tape-start-22 { grid-column-start: 24; }
.tape-start-23 { grid-column-start: 25; }
.tape-start-24 { grid-column-start: 26; }
.tape-start-25 { grid-column-start: 27; }
.tape-start-26 { grid-column-start: 28; }
.tape-start-27 { grid-column-start: 29; }
.tape-start-28 { grid-column-start: 30; }
.tape-start-29 { grid-column-start: 31; }
.tape-start-30 { grid-column-start: 32; }
.tape-span-1 { grid-column-end: span 1; }
.tape-span-2 { grid-column-end: span 2; }
.tape-span-3 { grid-column-end: span 3; }
.tape-span-4 { grid-column-end: span 4; }
.tape-span-5 { grid-column-end: span 5; }
.tape-span-6 { grid-column-end: span 6; }
.tape-span-7 { grid-column-end: span 7; }
.tape-span-8 { grid-column-end: span 8; }
.tape-span-9 { grid-column-end: span 9; }
.tape-span-10 { grid-column-end: span 10; }
.tape-span-11 { grid-column-end: span 11; }
.tape-span-12 { grid-column-end: span 12; }
.tape-span-13 { grid-column-end: span 13; }
.tape-span-14 { grid-column-end: span 14; }
.tape-span-15 { grid-column-end: span 15; }
.tape-span-16 { grid-column-end: span 16; }
.tape-span-17 { grid-column-end: span 17; }
.tape-span-18 { grid-column-end: span 18; }
.tape-span-19 { grid-column-end: span 19; }
.tape-span-20 { grid-column-end: span 20; }
.tape-span-21 { grid-column-end: span 21; }
.tape-span-22 { grid-column-end: span 22; }
.tape-span-23 { grid-column-end: span 23; }
.tape-span-24 { grid-column-end: span 24; }
.tape-span-25 { grid-column-end: span 25; }
.tape-span-26 { grid-column-end: span 26; }
.tape-span-27 { grid-column-end: span 27; }
.tape-span-28 { grid-column-end: span 28; }
.tape-span-29 { grid-column-end: span 29; }
.tape-span-30 { grid-column-end: span 30; }
.tape-span-31 { grid-column-end: span 31; }
.frontdesk-lower-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 16px; }
.frontdesk-register-card { overflow: visible; }
.frontdesk-register td { vertical-align: middle; }
.frontdesk-register td:first-child { min-width: 180px; }
.frontdesk-register .frontdesk-unit-choices { min-width: 78px; }
.frontdesk-unit-choices label { display: inline-flex; cursor: pointer; align-items: center; gap: 4px; margin-right: 7px; font-size: 9px; }
.frontdesk-unit-choices input { accent-color: var(--navy); }
.frontdesk-unit-choices input:disabled + span { color: var(--muted-2); }
.frontdesk-batch-bar { display: grid; grid-template-columns: minmax(190px, 1fr) 100px minmax(220px, 1fr) auto; align-items: end; gap: 10px; border-top: 1px solid var(--rule); background: #fafbfd; padding: 13px 16px; }
.frontdesk-batch-bar > div, .frontdesk-batch-bar label { display: flex; flex-direction: column; gap: 4px; }
.frontdesk-batch-bar strong { font-size: 10px; }
.frontdesk-batch-bar small { color: var(--muted); font-size: 8.5px; }
.frontdesk-batch-bar label { color: #39445a; font-size: 9px; }
.frontdesk-batch-empty { grid-template-columns: 1fr; }
.frontdesk-settings-card { margin-top: 16px; }
.frontdesk-settings-form { display: grid; grid-template-columns: repeat(4, minmax(140px, 1fr)); align-items: end; gap: 10px; padding: 16px; }
.frontdesk-settings-form label, .frontdesk-registration-form label, .frontdesk-action-form label { display: flex; min-width: 0; flex-direction: column; gap: 5px; color: #39445a; font-size: 9.5px; }
.frontdesk-settings-form label small { color: var(--muted); font-size: 8px; }
.frontdesk-settings-form .check-label { align-self: center; flex-direction: row; }
.frontdesk-settings-form .settings-reason { grid-column: span 2; }
.frontdesk-detail-grid { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(290px, .8fr); align-items: start; gap: 16px; }
.frontdesk-detail-main, .frontdesk-detail-side, .frontdesk-unit-list { display: grid; min-width: 0; gap: 16px; }
.frontdesk-detail-side { position: sticky; top: 78px; }
.registration-readiness-list, .handover-list { display: grid; padding: 8px 16px 14px; }
.registration-readiness-list > div { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 8px; border-top: 1px solid var(--rule-soft); padding: 9px 0; }
.registration-readiness-list > div:first-child, .handover-list article:first-child { border-top: 0; }
.registration-readiness-list span:first-child { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.registration-readiness-list small { color: var(--muted); font-size: 8.5px; }
.frontdesk-registration-form { display: grid; grid-template-columns: repeat(2, minmax(160px, 1fr)); align-items: end; gap: 10px; border-top: 1px solid var(--rule); padding: 16px; }
.frontdesk-registration-form .span-two { grid-column: 1 / -1; }
.frontdesk-unit-card { overflow: visible; }
.frontdesk-unit-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--rule-soft); border-bottom: 1px solid var(--rule-soft); padding: 0 16px; }
.frontdesk-unit-facts div { display: flex; min-width: 0; flex-direction: column; gap: 3px; border-left: 1px solid var(--rule-soft); padding: 11px; }
.frontdesk-unit-facts div:first-child { border-left: 0; padding-left: 0; }
.frontdesk-unit-facts span { color: var(--muted); font-size: 8px; text-transform: uppercase; }
.frontdesk-unit-facts strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; }
.frontdesk-unit-card > .action-disclosure { margin: 0 16px; }
.frontdesk-action-form { display: grid; grid-template-columns: repeat(2, minmax(150px, 1fr)); align-items: end; gap: 9px; padding: 12px 0; }
.frontdesk-action-form label:has(textarea) { grid-column: 1 / -1; }
.frontdesk-action-form .check-label { align-self: center; flex-direction: row; }
.frontdesk-action-form button { justify-self: start; }
.handover-list article { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 5px 8px; border-top: 1px solid var(--rule-soft); padding: 10px 0; }
.handover-list article p { margin: 0; font-size: 9.5px; line-height: 1.5; }
.handover-list article > small { grid-column: 2; color: var(--muted); font-size: 8px; }
.handover-list article form { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; }
.frontdesk-walkin-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, .75fr); align-items: start; gap: 16px; }
.frontdesk-walkin-form { display: grid; grid-template-columns: repeat(2, minmax(150px, 1fr)); gap: 12px; padding: 16px; }
.frontdesk-walkin-form label { display: flex; min-width: 0; flex-direction: column; gap: 5px; color: #39445a; font-size: 9.5px; }
.frontdesk-walkin-form .span-two { grid-column: 1 / -1; }
.frontdesk-walkin-form button { justify-self: start; }
.frontdesk-walkin-guide { position: sticky; top: 78px; }
.frontdesk-walkin-guide ol { display: grid; gap: 0; margin: 0; padding: 5px 16px 16px 42px; }
.frontdesk-walkin-guide li { border-top: 1px solid var(--rule-soft); padding: 10px 0 10px 5px; color: var(--gold); }
.frontdesk-walkin-guide li:first-child { border-top: 0; }
.frontdesk-walkin-guide li strong, .frontdesk-walkin-guide li span { display: block; }
.frontdesk-walkin-guide li strong { color: var(--navy); font-size: 10px; }
.frontdesk-walkin-guide li span { margin-top: 3px; color: var(--muted); font-size: 8.5px; line-height: 1.5; }

@media (max-width: 1080px) {
    .frontdesk-metrics, .frontdesk-stay-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .frontdesk-settings-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
    .frontdesk-heading, .frontdesk-stay-heading, .frontdesk-walkin-heading { align-items: flex-start; }
    .frontdesk-heading-actions { justify-content: flex-start; }
    .frontdesk-property-filter { align-items: stretch; justify-content: flex-start; flex-direction: column; }
    .frontdesk-property-filter label { min-width: 0; }
    .frontdesk-lower-grid, .frontdesk-detail-grid, .frontdesk-walkin-grid { grid-template-columns: 1fr; }
    .frontdesk-detail-side, .frontdesk-walkin-guide { position: static; }
    .frontdesk-settings-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .frontdesk-batch-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    .frontdesk-metrics, .frontdesk-stay-metrics, .frontdesk-settings-form, .frontdesk-registration-form, .frontdesk-action-form, .frontdesk-walkin-form, .frontdesk-unit-facts { grid-template-columns: 1fr; }
    .frontdesk-settings-form .settings-reason, .frontdesk-registration-form .span-two, .frontdesk-action-form label:has(textarea), .frontdesk-walkin-form .span-two { grid-column: auto; }
    .registration-readiness-list > div { grid-template-columns: minmax(0, 1fr) auto; }
    .registration-readiness-list > div > a { grid-column: 1 / -1; }
    .frontdesk-unit-facts div { border-top: 1px solid var(--rule-soft); border-left: 0; padding: 9px 0; }
    .frontdesk-unit-facts div:first-child { border-top: 0; }
    .range-switch { width: 100%; }
    .range-switch a { flex: 1; text-align: center; }
    .frontdesk-batch-bar { grid-template-columns: 1fr; }
}

* { box-sizing: border-box; }
html, body { min-height: 100%; margin: 0; }
body { background: var(--paper); color: var(--navy-ink); font: 15px/1.5 var(--body); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input { color: inherit; font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
[hidden] { display: none !important; }

.app-shell { min-height: 100vh; }
.panel-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 50; display: flex; width: var(--sidebar); max-height: 100dvh; overflow: hidden; flex-direction: column; background: var(--navy-deep); color: #d9e1ed; }
.panel-brand { display: flex; flex: 0 0 auto; align-items: center; gap: 10px; border-bottom: 1px solid rgba(255,255,255,.1); padding: 17px 18px; }
.panel-brand svg { width: 31px; color: var(--gold); }
.panel-brand > img { width: 34px; height: 34px; object-fit: contain; }
.panel-brand span { display: flex; flex-direction: column; }
.panel-brand strong { color: #fff; font: 19px/1 var(--display); }
.panel-brand small { margin-top: 5px; color: var(--gold); font-size: 9px; letter-spacing: .16em; text-transform: uppercase; }

.identity-preview-card { overflow: hidden; }
.identity-preview { display: flex; align-items: center; gap: 14px; background: var(--identity-primary); padding: 24px; color: #fff; }
.identity-preview img { width: 48px; height: 48px; object-fit: contain; }
.identity-preview-mark { display: grid; width: 48px; height: 48px; place-items: center; border: 1px solid var(--identity-accent); font: 24px var(--display); }
.identity-preview div { display: flex; min-width: 0; flex-direction: column; }
.identity-preview strong { overflow-wrap: anywhere; font: 28px var(--display); }
.identity-preview small { margin-top: 4px; color: #fff; font: 9px var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.identity-preview-card > p { margin: 0; background: var(--identity-surface); padding: 18px; color: var(--identity-text); line-height: 1.6; }
.panel-context { display: flex; flex: 0 0 auto; flex-direction: column; margin: 17px 15px 9px; border: 1px solid rgba(255,255,255,.11); padding: 11px 12px; }
.context-label { color: #8091ae; font: 9px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.context-name { overflow: hidden; margin-top: 4px; color: #fff; font-size: 13px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.panel-nav { display: flex; min-height: 0; flex: 1 1 auto; flex-direction: column; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; padding: 7px 0; scrollbar-color: rgba(200,164,74,.72) rgba(255,255,255,.06); scrollbar-gutter: stable; scrollbar-width: thin; }
.panel-nav::-webkit-scrollbar { width: 8px; }
.panel-nav::-webkit-scrollbar-track { background: rgba(255,255,255,.06); }
.panel-nav::-webkit-scrollbar-thumb { border: 2px solid var(--navy-deep); border-radius: 10px; background: rgba(200,164,74,.72); }
.panel-nav a { display: flex; flex: 0 0 auto; align-items: center; gap: 12px; border-left: 2px solid transparent; padding: 10px 18px; color: #b9c5d7; font-size: 13.5px; }
.panel-nav a span { color: #6e82a3; font: 9px var(--mono); }
.panel-nav a:hover { background: rgba(255,255,255,.05); color: #fff; }
.panel-nav a.active { border-left-color: var(--gold); background: rgba(200,164,74,.12); color: #fff; }
.panel-nav a.active span { color: var(--gold); }
.panel-nav-group { flex: 0 0 auto; border-bottom: 1px solid rgba(255,255,255,.055); }
.panel-nav-group > summary { display: flex; min-height: 43px; cursor: pointer; list-style: none; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 18px; color: #c8d2e1; font-size: 13.5px; font-weight: 650; transition: background .16s ease, color .16s ease; }
.panel-nav-group > summary::-webkit-details-marker { display: none; }
.panel-nav-group > summary::after { width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; content: ''; opacity: .72; transform: rotate(45deg) translateY(-2px); transition: transform .16s ease; }
.panel-nav-group > summary:hover { background: rgba(255,255,255,.05); color: #fff; }
.panel-nav-group[open] > summary { background: rgba(255,255,255,.035); color: var(--white); }
.panel-nav-group[open] > summary::after { transform: rotate(225deg) translate(-1px, -1px); }
.panel-nav-submenu { padding: 2px 0 7px; background: rgba(6,21,45,.22); }
.panel-nav-submenu a { min-height: 36px; padding: 8px 18px 8px 28px; font-size: 12.5px; }
.panel-nav-submenu a span { min-width: 16px; }
.panel-sidebar-footer { display: flex; flex: 0 0 auto; flex-direction: column; gap: 4px; border-top: 1px solid rgba(255,255,255,.09); padding: 15px 18px; color: #71839f; font-size: 10px; }
.panel-sidebar-footer a { color: #b6c2d4; }
.panel-sidebar-footer a:hover { color: #fff; }

.panel-main { min-height: 100vh; margin-left: var(--sidebar); }
.panel-topbar { position: sticky; top: 0; z-index: 30; display: flex; min-height: 62px; align-items: center; border-bottom: 1px solid var(--rule); background: rgba(255,255,255,.97); }
.topbar-copy { display: flex; flex-direction: column; padding: 9px 22px; }
.topbar-copy span { color: var(--muted-2); font: 9px var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.topbar-copy strong { font: 16px var(--display); }
.topbar-account { display: flex; align-items: center; gap: 9px; margin-left: auto; padding: 0 18px; }
.account-copy { display: flex; align-items: flex-end; flex-direction: column; }
.account-copy strong { font-size: 12.5px; }
.account-copy small { color: var(--muted-2); font-size: 10px; }
.account-avatar { display: grid; width: 33px; height: 33px; place-items: center; background: var(--gold); color: var(--navy-deep); font: 13px var(--display); }
.quiet-button { border: 1px solid var(--rule); background: #fff; padding: 7px 10px; color: var(--muted); font-size: 11px; }
.quiet-button:hover { border-color: var(--navy); color: var(--navy); }
.menu-trigger { display: none; width: 35px; height: 35px; margin-left: 12px; border: 1px solid var(--rule); background: #fff; }
.sidebar-close { display: none; }
.panel-scrim { position: fixed; inset: 0; z-index: 45; background: rgba(15,26,46,.44); }

.panel-content { max-width: 1540px; padding: 28px 30px 60px; }
.flash-message { margin-bottom: 18px; border-left: 3px solid var(--ok); background: var(--ok-soft); padding: 11px 14px; color: var(--ok); font-size: 13px; }
.page-heading { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 22px; margin-bottom: 22px; border-bottom: 1px solid var(--rule); padding-bottom: 17px; }
.page-heading > div:first-child { flex: 1; }
.page-heading h1 { margin: 5px 0 0; font: 400 29px/1.2 var(--display); }
.page-heading p { max-width: 76ch; margin: 7px 0 0; color: var(--muted); font-size: 13.5px; }
.kicker { color: var(--gold); font: 9.5px var(--mono); letter-spacing: .13em; text-transform: uppercase; }
.primary-button, .secondary-button { display: inline-flex; min-height: 36px; align-items: center; justify-content: center; border: 1px solid var(--navy); padding: 8px 14px; font-size: 12.5px; }
.primary-button { background: var(--navy); color: #fff; }
.primary-button:hover { background: var(--navy-deep); }
.secondary-button { background: #fff; color: var(--navy); }
.secondary-button:hover { border-color: var(--gold); }

.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; margin-bottom: 17px; }
.metric-card { position: relative; display: flex; min-height: 118px; flex-direction: column; overflow: hidden; border: 1px solid var(--rule); background: #fff; padding: 15px 17px; }
.metric-card::before { position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--rule); content: ""; }
.metric-card.highlight::before { background: var(--gold); }
.metric-card > span { color: var(--muted-2); font: 9.5px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.metric-card > strong { margin-top: 10px; font: 31px/1 var(--display); }
.metric-card > strong.metric-word { font-size: 21px; text-transform: capitalize; }
.metric-card > small { margin-top: auto; padding-top: 9px; color: var(--muted); font-size: 11px; }

.content-card { min-width: 0; border: 1px solid var(--rule); background: #fff; }
.card-heading { display: flex; min-height: 54px; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--rule); padding: 11px 15px; }
.card-heading h2 { margin: 2px 0 0; font: 18px var(--display); }
.status-badge { display: inline-flex; align-items: center; border-radius: 999px; background: #edf0f5; padding: 3px 8px; color: var(--muted); font: 9.5px var(--mono); text-transform: capitalize; white-space: nowrap; }
.status-badge.enabled { background: var(--ok-soft); color: var(--ok); }
.status-badge.unavailable { background: #f2e8e9; color: var(--danger); }
.table-scroll { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th { border-bottom: 1px solid var(--rule); background: #f8f9fb; padding: 9px 12px; color: var(--muted-2); font: 9px var(--mono); letter-spacing: .08em; text-align: left; text-transform: uppercase; white-space: nowrap; }
.data-table td { border-bottom: 1px solid var(--rule-soft); padding: 11px 12px; font-size: 12.5px; vertical-align: middle; }
.data-table tr:last-child td { border-bottom: 0; }
.data-table code { color: var(--navy); font-size: 10.5px; }
.cell-sub { display: block; color: var(--muted-2); font-size: 10.5px; }
.table-link { color: var(--navy); font-size: 11.5px; font-weight: 600; white-space: nowrap; }
.table-link:hover { color: var(--gold); }
.table-empty { padding: 30px !important; color: var(--muted-2); text-align: center; }
.pagination-row { border-top: 1px solid var(--rule); padding: 12px; }
.pagination-row nav > div:first-child { display: none; }
.pagination-row nav > div:last-child { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: 11px; }
.pagination-row nav span, .pagination-row nav a { display: inline-flex; align-items: center; gap: 3px; }
.pagination-row nav a, .pagination-row nav [aria-current="page"] span { border: 1px solid var(--rule); padding: 5px 8px; }
.pagination-row svg { width: 14px; }

.two-column-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 15px; }
.two-column-grid.wide-left { grid-template-columns: minmax(0, 1.4fr) minmax(300px, .6fr); }
.list-stack { display: flex; flex-direction: column; }
.list-row { display: flex; align-items: center; gap: 11px; border-bottom: 1px solid var(--rule-soft); padding: 12px 14px; }
.list-row:last-child { border-bottom: 0; }
.list-row > span:nth-child(2) { display: flex; flex-direction: column; }
.list-row strong { font-size: 12.5px; }
.list-row small { color: var(--muted); font-size: 11px; }
.list-mark { display: grid; width: 31px; height: 31px; flex: 0 0 31px; place-items: center; background: var(--navy); color: var(--gold); font: 10px var(--mono); }
.empty-copy { margin: 0; padding: 25px; color: var(--muted-2); font-size: 12px; text-align: center; }
.activity-list { padding: 3px 14px; }
.activity-list > div { display: flex; gap: 10px; border-bottom: 1px solid var(--rule-soft); padding: 11px 0; }
.activity-list > div:last-child { border-bottom: 0; }
.activity-list p { display: flex; margin: 0; flex-direction: column; font-size: 11.5px; }
.activity-list p strong { text-transform: capitalize; }

.property-section { margin-top: 15px; }
.property-section > .editor-body { padding-top: 16px; }
.readiness-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; background: var(--rule); }
.readiness-step { display: flex; min-height: 88px; flex-direction: column; background: #fff; padding: 13px; }
.readiness-step > span { color: var(--muted-2); font: 17px var(--display); }
.readiness-step > strong { margin-top: 7px; font-size: 11.5px; }
.readiness-step > small { color: var(--muted-2); font-size: 10px; }
.readiness-step.complete > span, .readiness-step.complete > small { color: var(--ok); }
.property-actions { display: flex; min-height: 88px; flex-wrap: wrap; align-items: center; gap: 8px; padding: 14px; }
.property-actions > p { width: 100%; margin: 0; color: var(--muted); font-size: 11px; }
.property-actions form { display: inline-flex; }
.action-disclosure { border-top: 1px solid var(--rule); padding: 0 14px 14px; }
.action-disclosure > summary { cursor: pointer; padding: 12px 0 0; color: var(--navy); font-size: 11.5px; font-weight: 600; }
.compact-form, .room-type-form, .floating-edit-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: 10px; margin-top: 12px; }
.compact-form { padding: 0 14px 14px; }
.action-disclosure .compact-form { padding: 0; }
.compact-form label, .room-type-form label, .floating-edit-form label { display: flex; min-width: 0; flex-direction: column; gap: 4px; color: var(--navy); font-size: 10.5px; font-weight: 600; }
.compact-form input, .compact-form select, .room-type-form input, .room-type-form select, .room-type-form textarea, .floating-edit-form input, .floating-edit-form select, .floating-edit-form textarea { width: 100%; min-height: 38px; border: 1px solid var(--rule); background: #fff; padding: 7px 9px; }
.compact-form textarea, .room-type-form textarea, .floating-edit-form textarea { min-height: 70px; resize: vertical; }
.room-type-form { grid-template-columns: repeat(4, minmax(0, 1fr)); padding-top: 3px; }
.room-type-form .span-two, .floating-edit-form .span-two { grid-column: span 2; }
.check-label { align-self: center; flex-direction: row !important; align-items: center; }
.check-label input { width: auto; min-height: 0; }
.clone-form { grid-template-columns: repeat(4, minmax(0, 1fr)); padding-top: 14px; }
.clone-form .field-help { grid-column: 1 / -1; margin: 0; }
.row-disclosure { position: relative; display: inline-block; }
.row-disclosure > summary { cursor: pointer; color: var(--navy); font-size: 11.5px; font-weight: 600; list-style: none; }
.row-disclosure > summary::-webkit-details-marker { display: none; }
.floating-edit-form { position: absolute; z-index: 15; right: 0; width: min(560px, 80vw); border: 1px solid var(--rule); background: #fff; box-shadow: 0 16px 42px rgba(15,26,46,.16); padding: 14px; }
.service-block-form { width: min(440px, 80vw); }
.room-actions { display: flex; min-width: 125px; flex-direction: column; align-items: flex-start; gap: 4px; }
.room-actions form { margin: 0; }
.room-actions button.table-link { border: 0; background: transparent; padding: 0; }
.activity-list p small { color: var(--muted-2); }
.activity-dot { width: 7px; height: 7px; flex: 0 0 7px; margin-top: 6px; border-radius: 50%; background: var(--gold); }

.profile-tabs { display: flex; overflow-x: auto; margin-bottom: 15px; border: 1px solid var(--rule); background: #fff; }
.profile-tabs a { display: inline-flex; min-height: 43px; align-items: center; gap: 7px; border-right: 1px solid var(--rule); padding: 10px 14px; color: var(--muted); font-size: 11.5px; white-space: nowrap; }
.profile-tabs a.active { box-shadow: inset 0 -2px 0 var(--gold); color: var(--navy); font-weight: 600; }
.profile-tabs a span { display: inline-grid; min-width: 19px; height: 19px; place-items: center; border-radius: 99px; background: #f2e8e9; color: var(--danger); font: 9px var(--mono); }
.profile-filter { display: grid; grid-template-columns: minmax(220px, 1.4fr) minmax(180px, 1fr) minmax(150px, .75fr) auto auto; align-items: end; gap: 9px; border-bottom: 1px solid var(--rule); background: #fafbfd; padding: 13px 15px; }
.profile-filter label { display: flex; min-width: 0; flex-direction: column; gap: 4px; color: var(--navy); font-size: 10px; font-weight: 600; }
.profile-filter input, .profile-filter select { width: 100%; min-height: 38px; border: 1px solid var(--rule); background: #fff; padding: 7px 9px; }
.profile-filter > .table-link { align-self: center; }
.profile-who { display: flex; align-items: center; gap: 9px; min-width: 175px; }
.profile-who > span, .guest-large-monogram { display: inline-grid; flex: 0 0 auto; place-items: center; border: 1px solid var(--gold); color: var(--navy); font-family: var(--display); }
.profile-who > span { width: 34px; height: 34px; font-size: 11px; }
.profile-who > div { display: flex; min-width: 0; flex-direction: column; }
.profile-who small { color: var(--muted-2); font-size: 10px; }
.floating-review-panel { position: absolute; z-index: 20; right: 0; width: min(650px, 82vw); border: 1px solid var(--rule); background: #fff; box-shadow: 0 16px 42px rgba(15,26,46,.16); padding: 14px; }
.floating-review-panel .compact-form { padding: 0; }
.floating-review-panel .keep-apart-form { margin-top: 14px; border-top: 1px solid var(--rule); padding-top: 14px; }
.profile-guidance { display: grid; gap: 9px; margin: 0; padding: 15px 34px 18px; color: var(--muted); font-size: 11.5px; }
.property-choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.property-choice { display: flex !important; cursor: pointer; flex-direction: row !important; align-items: center; border: 1px solid var(--rule); padding: 10px; }
.property-choice input { width: auto !important; min-height: 0 !important; }
.property-choice span { display: flex; flex-direction: column; }
.property-choice small { color: var(--muted-2); }
.profile-check { width: max-content; margin-top: 5px; }
.guest-identity-banner { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; align-items: center; gap: 15px; margin-bottom: 15px; padding: 17px; }
.guest-large-monogram { width: 64px; height: 64px; font-size: 20px; }
.guest-identity-banner h2 { margin: 3px 0; font: 24px var(--display); }
.guest-identity-banner p { margin: 0; color: var(--muted); font-size: 11px; }
.consent-summary { display: grid; gap: 1px; background: var(--rule); }
.consent-summary > div { display: flex; min-height: 48px; align-items: center; justify-content: space-between; background: #fff; padding: 10px 14px; }
.consent-summary strong { font-size: 12px; }
.plain-button { border: 0; background: transparent; padding: 0; }
.list-row-action { margin-left: auto; }
.protected-notice { display: flex; align-items: center; gap: 12px; padding: 15px; }
.protected-notice strong { font-size: 12.5px; }
.protected-notice p { margin: 2px 0 0; color: var(--muted); font-size: 11px; }
.data-request-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--rule-soft); padding: 12px 14px; }
.data-request-row > div:first-child { display: flex; flex-direction: column; }
.data-request-row small { color: var(--muted); font-size: 10.5px; }
.data-request-actions { display: flex; align-items: center; gap: 8px; }
.organisation-metrics { margin-top: -5px; }
.privacy-only-grid { grid-template-columns: 1fr; }

.module-group { margin-top: 24px; }
.module-group-heading { display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--rule); padding-bottom: 9px; }
.module-group-heading > span { display: grid; width: 26px; height: 26px; place-items: center; background: var(--navy); color: var(--gold); font: 12px var(--display); }
.module-group-heading div { display: flex; flex-direction: column; }
.module-group-heading small { color: var(--muted-2); font: 8.5px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.module-group-heading h2 { margin: 0; font: 18px var(--display); }
.module-group-heading > strong { margin-left: auto; color: var(--muted); font: 10px var(--mono); }
.module-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; padding-top: 11px; }
.module-card { display: flex; min-height: 205px; flex-direction: column; border: 1px solid var(--rule); background: #fff; padding: 14px; }
.module-card.module-on { border-top: 2px solid var(--gold); padding-top: 13px; }
.module-card-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.module-card-top code { color: var(--gold); font: 10px var(--mono); }
.module-card h3 { margin: 11px 0 5px; font: 17px var(--display); }
.module-card p { margin: 0; color: var(--muted); font-size: 11.5px; line-height: 1.5; }
.module-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; border-top: 1px solid var(--rule-soft); padding-top: 11px; }
.module-card-footer > small { color: var(--muted-2); font: 8.5px var(--mono); text-transform: uppercase; }
.module-action { border: 1px solid var(--navy); background: var(--navy); padding: 5px 9px; color: #fff; font-size: 10.5px; }
.module-action:hover { background: var(--navy-deep); }
.module-action.danger-action { border-color: var(--rule); background: #fff; color: var(--danger); }
.module-action.danger-action:hover { border-color: var(--danger); }
.module-locked { color: var(--muted-2); font: 9px var(--mono); text-transform: uppercase; }

.workspace-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.workspace-card { display: flex; min-height: 105px; align-items: center; gap: 14px; border: 1px solid var(--rule); background: #fff; padding: 17px; }
.workspace-card:hover { transform: translateY(-1px); border-color: var(--gold); box-shadow: 0 8px 24px rgba(15,26,46,.06); }
.workspace-monogram { display: grid; width: 48px; height: 48px; flex: 0 0 48px; place-items: center; background: var(--navy); color: var(--gold); font: 16px var(--display); }
.workspace-copy { display: flex; flex: 1; flex-direction: column; }
.workspace-copy small { color: var(--gold); font: 8.5px var(--mono); letter-spacing: .1em; }
.workspace-copy strong { font: 18px var(--display); }
.workspace-copy span { color: var(--muted); font-size: 11px; }
.workspace-arrow { color: var(--gold); font: 22px var(--display); }
.empty-state { border: 1px solid var(--rule); background: #fff; padding: 42px; text-align: center; }
.empty-state > span { color: var(--gold); font: 9px var(--mono); letter-spacing: .12em; }
.empty-state h2 { margin: 9px 0 4px; font: 22px var(--display); }
.empty-state p { margin: 0; color: var(--muted); }

.auth-body { background: var(--navy-deep); }
.auth-shell { display: grid; min-height: 100vh; grid-template-columns: minmax(390px, .9fr) minmax(480px, 1.1fr); }
.auth-story { display: flex; min-height: 100vh; flex-direction: column; overflow: hidden; background: var(--navy-deep); padding: 35px 42px; color: #fff; }
.auth-story::after { width: 430px; height: 430px; margin: auto -230px -260px auto; border: 1px solid rgba(200,164,74,.18); border-radius: 50%; box-shadow: 0 0 0 70px rgba(200,164,74,.035), 0 0 0 140px rgba(200,164,74,.025); content: ""; }
.auth-brand { display: flex; width: max-content; align-items: center; gap: 11px; }
.auth-brand svg { width: 35px; color: var(--gold); }
.auth-brand > img { width: 38px; height: 38px; object-fit: contain; }
.auth-brand span { display: flex; flex-direction: column; }
.auth-brand strong { font: 22px/1 var(--display); }
.auth-brand small { margin-top: 5px; color: var(--gold); font-size: 9px; letter-spacing: .17em; text-transform: uppercase; }
.auth-story-copy { max-width: 560px; margin: auto 0; }
.auth-kicker { color: var(--gold); font: 9.5px var(--mono); letter-spacing: .14em; text-transform: uppercase; }
.auth-story h1 { margin: 13px 0; font: 400 44px/1.1 var(--display); }
.auth-story p { max-width: 52ch; margin: 0; color: #aebbd0; font-size: 14px; line-height: 1.7; }
.auth-proof { display: flex; flex-wrap: wrap; gap: 15px; color: #8ea0ba; font: 9px var(--mono); letter-spacing: .09em; text-transform: uppercase; }
.auth-proof span::before { margin-right: 6px; color: var(--gold); content: "◆"; }
.auth-form-side { display: grid; min-height: 100vh; place-items: center; background: var(--paper); padding: 35px; }
.auth-card { width: min(430px, 100%); border-top: 3px solid var(--gold); background: #fff; box-shadow: 0 18px 60px rgba(15,26,46,.1); padding: 35px; }
.auth-card h2 { margin: 8px 0 2px; font: 31px var(--display); }
.auth-card > p { margin: 0 0 25px; color: var(--muted); font-size: 12.5px; }
.auth-card label { display: block; margin: 15px 0 5px; color: var(--navy); font-size: 11px; font-weight: 600; }
.auth-card input { width: 100%; height: 43px; border: 1px solid var(--rule); background: #fff; padding: 8px 11px; }
.auth-card input:focus { border-color: var(--gold); outline: none; box-shadow: 0 0 0 3px rgba(200,164,74,.12); }
.full-button { width: 100%; margin-top: 22px; }
.back-link { display: block; margin-top: 17px; color: var(--muted); font-size: 11px; text-align: center; }
.back-link:hover { color: var(--navy); }
.form-error { border-left: 3px solid var(--danger); background: #f8eded; padding: 10px 11px; color: var(--danger); font-size: 11.5px; }
.page-error { margin-bottom: 16px; }
.page-error ul { margin: 5px 0 0; padding-left: 18px; }
.editor-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; align-items: start; gap: 14px; }
.editor-card { min-width: 0; }
.editor-body { padding: 16px; }
.editor-body fieldset { margin: 0 0 22px; border: 0; border-top: 1px solid var(--rule); padding: 16px 0 0; }
.editor-body fieldset:first-child { border-top: 0; padding-top: 0; }
.editor-body legend { margin-bottom: 12px; padding: 0; font: 17px var(--display); }
.editor-body label, .domain-add-card label { display: flex; flex-direction: column; gap: 5px; color: var(--navy); font-size: 11px; font-weight: 600; }
.editor-body input:not([type="color"]):not([type="file"]), .editor-body select, .editor-body textarea, .domain-add-card input { width: 100%; min-height: 40px; border: 1px solid var(--rule); border-radius: 0; background: #fff; padding: 8px 10px; }
.editor-body textarea { resize: vertical; }
.editor-body input:focus, .editor-body select:focus, .editor-body textarea:focus, .domain-add-card input:focus { border-color: var(--gold); outline: 0; box-shadow: 0 0 0 3px rgba(200,164,74,.12); }
.editor-body input[type="file"] { border: 1px dashed var(--rule); padding: 9px; color: var(--muted); font-weight: 400; }
.editor-body label > small { color: var(--muted-2); font-weight: 400; }
.form-grid { display: grid; gap: 12px; margin-bottom: 12px; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid.two > .field-wide { grid-column: 1 / -1; }
.form-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.integration-form label { display: flex; flex-direction: column; gap: 7px; color: var(--muted); font-size: 11px; }
.integration-form input, .integration-form select { min-height: 40px; border: 1px solid var(--rule); border-radius: 0; background: #fff; padding: 0 10px; color: var(--ink); }
.integration-form small { color: var(--muted-2); font-size: 9px; }
.connection-list { display: grid; gap: 7px; margin: 14px 0; }
.connection-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid var(--rule-soft); padding: 10px; color: inherit; text-decoration: none; }
.connection-row span:first-child { display: flex; flex-direction: column; gap: 3px; }
.connection-row small, .empty-copy { color: var(--muted); font-size: 10px; }
.security-note { display: flex; gap: 15px; border-left: 3px solid var(--gold); background: #fff; margin-top: 17px; padding: 14px 16px; font-size: 11px; line-height: 1.55; }
.provider-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.provider-summary dl { margin: 0; }
.provider-summary dl div { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--rule-soft); padding: 9px 0; font-size: 11px; }
.provider-summary dd { overflow-wrap: anywhere; margin: 0; text-align: right; }
.editor-body > fieldset > label { margin-bottom: 12px; }
.field-help { margin: -2px 0 12px; color: var(--muted); font-size: 10.5px; }
.color-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.color-grid label { display: grid; grid-template-columns: 1fr 38px; align-items: center; border: 1px solid var(--rule-soft); padding: 8px; }
.color-grid label > span { grid-column: 1; }
.color-grid code { grid-column: 1; color: var(--muted-2); font-size: 9px; font-weight: 400; }
.color-control { grid-area: 1 / 2 / 3 / 3; width: 34px; height: 34px; cursor: pointer; border: 0; background: transparent; padding: 0; }
.editor-actions { display: flex; align-items: center; gap: 14px; border-top: 1px solid var(--rule); background: #fafbfd; padding: 13px 16px; }
.editor-actions > span { color: var(--muted); font-size: 10.5px; }
.editor-aside { position: sticky; top: 78px; display: flex; flex-direction: column; gap: 13px; }
.publish-summary { display: flex; flex-direction: column; padding: 16px; }
.publish-summary strong { font: 19px var(--display); }
.publish-summary span { color: var(--muted); font-size: 11px; }
.publish-form { border-top: 1px solid var(--rule); padding: 14px; }
.publish-form small { display: block; margin-top: 8px; color: var(--muted-2); font-size: 10px; }
.guardrail-card { border-left: 3px solid var(--gold); background: #fffcf3; padding: 16px; }
.guardrail-card > span { color: #7a6329; font: 9px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.guardrail-card > strong { display: block; margin-top: 6px; color: #4f411d; font: 19px var(--display); }
.guardrail-card p { margin: 5px 0 0; color: #75683f; font-size: 11px; }
.mode-card > form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: stretch; gap: 10px; padding: 14px; }
.mode-card form > label { display: flex; cursor: pointer; align-items: flex-start; gap: 9px; border: 1px solid var(--rule); padding: 12px; }
.mode-card form > label:has(input:checked) { border-color: var(--gold); background: #fffcf3; }
.mode-card input { margin-top: 3px; accent-color: var(--navy); }
.mode-card label span { display: flex; flex-direction: column; }
.mode-card label strong { font-size: 12px; }
.mode-card label small { color: var(--muted); font-size: 10.5px; }
.landing-editor-layout { grid-template-columns: minmax(0, 1fr) 330px; }
.landing-content-form { overflow: hidden; }
.landing-editor-sections { background: #f7f8fa; padding: 12px; }
.landing-editor-sections > details { border: 1px solid var(--rule); background: #fff; }
.landing-editor-sections > details + details { margin-top: 9px; }
.landing-editor-sections summary { display: grid; cursor: pointer; grid-template-columns: 34px minmax(0, 1fr) minmax(170px, 240px) 20px; align-items: center; gap: 9px; padding: 15px 16px; list-style: none; }
.landing-editor-sections summary::-webkit-details-marker { display: none; }
.landing-editor-sections summary > span { color: var(--gold-deep); font: 9px var(--mono); letter-spacing: .08em; }
.landing-editor-sections summary > strong { font: 17px var(--display); }
.landing-editor-sections summary > small { max-width: 280px; color: var(--muted); font-size: 9.5px; text-align: right; }
.landing-editor-sections summary::after { grid-column: 4; grid-row: 1; align-self: center; justify-self: end; margin-right: -3px; color: var(--muted); content: "+"; font: 17px var(--display); }
.landing-editor-sections details[open] summary::after { content: "−"; }
.landing-editor-sections details[open] summary { border-bottom: 1px solid var(--rule); background: #fffcf3; }
.landing-editor-fields { padding: 17px; }
.landing-editor-fields > label { margin-bottom: 12px; }
.landing-editor-fields label { display: flex; min-width: 0; flex-direction: column; gap: 5px; color: var(--navy); font-size: 11px; font-weight: 600; }
.landing-editor-fields input:not([type="file"]), .landing-editor-fields select, .landing-editor-fields textarea { width: 100%; min-height: 40px; border: 1px solid var(--rule); border-radius: 0; background: #fff; padding: 8px 10px; color: var(--ink); }
.landing-editor-fields textarea { resize: vertical; }
.landing-editor-fields input:focus, .landing-editor-fields select:focus, .landing-editor-fields textarea:focus { border-color: var(--gold); outline: 0; box-shadow: 0 0 0 3px rgba(200,164,74,.12); }
.landing-editor-fields input[type="file"] { border: 1px dashed var(--rule); background: #fafbfd; padding: 9px; color: var(--muted); font-weight: 400; }
.landing-editor-fields label > small { color: var(--muted-2); font-weight: 400; }
.form-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.landing-editor-fields .form-grid fieldset { min-width: 0; margin: 0; border: 1px solid var(--rule-soft); padding: 12px; }
.landing-editor-fields .form-grid fieldset legend { padding: 0 5px; color: var(--muted); font: 9px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.landing-editor-fields .form-grid fieldset label + label { margin-top: 9px; }
.landing-image-control { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(220px, .75fr); gap: 12px; border-left: 3px solid var(--gold); background: #faf8f0; margin-bottom: 12px; padding: 13px; }
.landing-image-control > div { display: grid; gap: 10px; }
.landing-editor-actions { position: sticky; bottom: 0; z-index: 2; box-shadow: 0 -8px 20px rgba(18,35,64,.06); }
.landing-editor-aside { top: 82px; }
.landing-field-summary ul { display: grid; gap: 7px; margin: 0; padding: 15px 18px 18px 33px; color: var(--muted); font-size: 10.5px; }
.landing-mode-card { margin-top: 4px; }
.mt-editor { margin-top: 14px; }
.danger-button { display: inline-flex; min-height: 34px; align-items: center; border: 1px solid #ead5d7; background: #fff; padding: 7px 12px; color: var(--danger); font-size: 11px; }
.danger-button:hover { border-color: var(--danger); }
.domain-add-card { margin-bottom: 14px; }
.domain-add-card > form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; padding: 14px 14px 5px; }
.domain-add-card > p { margin: 0; padding: 4px 14px 14px; color: var(--muted); font-size: 10.5px; }
.domain-list { display: grid; gap: 13px; }
.domain-body { padding: 14px; }
.domain-body > dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border: 1px solid var(--rule); }
.domain-body > dl div { display: flex; flex-direction: column; padding: 10px; }
.domain-body > dl div + div { border-left: 1px solid var(--rule); }
.domain-body dt { color: var(--muted-2); font: 8.5px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.domain-body dd { margin: 3px 0 0; font-size: 12px; text-transform: capitalize; }
.dns-instruction { margin-top: 13px; border-left: 3px solid var(--gold); background: #fffcf3; padding: 12px; }
.dns-instruction > span { display: block; margin-bottom: 8px; color: #6f5924; font-size: 11px; font-weight: 600; }
.dns-instruction label { display: grid; grid-template-columns: 50px minmax(0, 1fr); margin-top: 5px; color: var(--muted); font-size: 9px; text-transform: uppercase; }
.dns-instruction code { overflow-x: auto; color: var(--navy); font-size: 10px; text-transform: none; white-space: nowrap; }
.dns-instruction small { display: block; margin-top: 7px; color: var(--muted-2); font-size: 9.5px; }
.domain-reason { margin: 10px 0 0; color: var(--danger); font-size: 10.5px; }
.domain-actions { display: flex; gap: 8px; border-top: 1px solid var(--rule); padding: 11px 14px; }

.plan-admin-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.plan-admin-card { display: flex; min-height: 390px; flex-direction: column; border: 1px solid var(--rule); border-top: 2px solid var(--gold); background: #fff; padding: 24px; }
.plan-admin-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--rule); padding-bottom: 14px; }
.plan-admin-card h2 { margin: 5px 0 0; font: 400 27px var(--display); }
.plan-admin-card > p { min-height: 42px; margin: 15px 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.plan-admin-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border: 1px solid var(--rule); }
.plan-admin-stats > div { padding: 12px; }
.plan-admin-stats > div + div { border-left: 1px solid var(--rule); }
.plan-admin-stats dt { color: var(--muted-2); font: 8.5px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.plan-admin-stats dd { margin: 5px 0 0; font: 18px var(--display); }
.plan-admin-price { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; margin-top: auto; border-bottom: 1px solid var(--rule); padding: 22px 0 14px; }
.plan-admin-price > span { color: var(--muted); font-size: 11px; }
.plan-admin-price > strong { font: 25px var(--display); }
.plan-admin-price > small { grid-column: 2; color: var(--muted-2); font-size: 9px; text-align: right; }

@media (max-width: 1100px) {
    .readiness-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .room-type-form, .clone-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .module-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .two-column-grid.wide-left { grid-template-columns: 1fr; }
    .editor-layout { grid-template-columns: 1fr; }
    .editor-aside { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .color-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .landing-editor-layout { grid-template-columns: 1fr; }
    .landing-editor-aside { position: static; }
    .form-grid.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
    .panel-sidebar { transform: translateX(-100%); transition: transform .2s ease; }
    .panel-sidebar.is-open { transform: none; }
    .panel-sidebar .panel-brand { padding-right: 74px; }
    .sidebar-close { position: absolute; top: 14px; right: 12px; z-index: 1; display: inline-flex; min-height: 35px; align-items: center; border: 1px solid rgba(255,255,255,.24); background: transparent; padding: 7px 9px; color: #fff; font-size: 10.5px; }
    .sidebar-close:hover { border-color: var(--gold); color: var(--gold); }
    .panel-main { margin-left: 0; }
    .menu-trigger { display: block; }
    .panel-content { padding: 22px 16px 50px; }
    .account-copy { display: none; }
    .auth-shell { grid-template-columns: 1fr; }
    .auth-story { min-height: 370px; padding: 28px; }
    .auth-story h1 { font-size: 34px; }
    .auth-story::after { display: none; }
    .auth-story-copy { margin: auto 0; }
    .auth-form-side { min-height: auto; padding: 28px 16px; }
    .mode-card > form { grid-template-columns: 1fr; }
    .plan-admin-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
    .readiness-grid, .compact-form, .room-type-form, .clone-form, .floating-edit-form { grid-template-columns: 1fr; }
    .room-type-form .span-two, .floating-edit-form .span-two { grid-column: auto; }
    .floating-edit-form { right: auto; left: 0; width: min(88vw, 430px); }
    .topbar-copy { padding: 9px 12px; }
    .topbar-account { padding: 0 9px; }
    .account-avatar { display: none; }
    .page-heading h1 { font-size: 24px; }
    .metric-grid, .module-grid, .two-column-grid, .workspace-grid { grid-template-columns: 1fr; }
    .form-grid.two, .form-grid.three, .form-grid.four, .color-grid, .editor-aside, .provider-summary, .landing-image-control { grid-template-columns: 1fr; }
    .landing-editor-sections { padding: 7px; }
    .landing-editor-sections summary { grid-template-columns: 27px minmax(0, 1fr) 20px; padding: 13px 11px; }
    .landing-editor-sections summary > small { grid-column: 2; margin-top: -5px; text-align: left; }
    .landing-editor-sections summary::after { grid-column: 3; grid-row: 1; }
    .landing-editor-fields { padding: 12px; }
    .property-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .profile-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .profile-filter > .secondary-button, .profile-filter > .table-link { justify-self: start; }
    .domain-add-card > form { grid-template-columns: 1fr; align-items: stretch; }
    .domain-body > dl { grid-template-columns: 1fr; }
    .domain-body > dl div + div { border-top: 1px solid var(--rule); border-left: 0; }
    .plan-admin-stats { grid-template-columns: 1fr; }
    .plan-admin-stats > div + div { border-top: 1px solid var(--rule); border-left: 0; }
    .auth-story { min-height: 330px; }
    .auth-story h1 { font-size: 29px; }
    .auth-proof { gap: 7px; }
    .auth-card { padding: 26px 22px; }
}

.header-filter { display: flex; min-width: 260px; align-items: end; gap: 10px; }
.header-filter label { flex: 1; }
.header-filter label span { display: block; margin-bottom: 6px; color: var(--muted); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.header-filter select { width: 100%; }
.rate-filter { grid-template-columns: minmax(220px, 1fr) minmax(180px, .7fr) auto; }
.rate-grid th, .rate-grid td { min-width: 145px; vertical-align: top; }
.rate-grid th:first-child, .rate-grid td:first-child { position: sticky; left: 0; z-index: 1; min-width: 210px; background: var(--surface); }
.rate-unavailable { background: #fbf7f3; }
.inline-action { position: relative; margin: 0; }
.inline-action > summary { white-space: nowrap; }
.inline-action[open] { flex: 0 0 100%; border-top: 1px solid var(--rule-soft); padding-top: 10px; }
.inline-action > .floating-edit-form, .inline-action > .compact-form { position: static; width: 100%; border: 0; background: transparent; box-shadow: none; padding: 4px 0 2px; }
.rate-plan-form { grid-template-columns: repeat(3, minmax(170px, 1fr)); }
.rate-plan-form fieldset { margin: 0; border: 1px solid var(--rule); padding: 12px; }
.rate-plan-form legend { color: var(--muted); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.rate-list-row { align-items: flex-start; flex-wrap: wrap; }
.nested-ledger { display: flex; margin: -6px 0 10px 48px; border-left: 2px solid var(--rule); padding: 9px 12px; align-items: center; gap: 10px; color: var(--muted); font-size: 12px; }
.inventory-action-form { grid-template-columns: repeat(3, minmax(170px, 1fr)); }
.availability-grid th:not(:first-child), .availability-grid td:not(:first-child) { min-width: 132px; text-align: center; }
.availability-grid td strong { display: block; font: 22px var(--display); }
.availability-grid td.availability-empty { background: #fbf7f3; color: var(--muted); }
.allowance-note { display: block; margin-top: 4px; color: var(--warning); font-size: 10px; }
.card-copy { margin: 0; padding: 14px 16px; color: var(--muted); font-size: 12px; line-height: 1.6; }

@media (max-width: 760px) {
    .header-filter { width: 100%; min-width: 0; }
    .rate-filter { grid-template-columns: 1fr; }
    .rate-plan-form { grid-template-columns: 1fr; }
    .inventory-action-form { grid-template-columns: 1fr; }
    .rate-plan-form .span-two { grid-column: auto; }
    .nested-ledger { margin-left: 12px; align-items: flex-start; flex-wrap: wrap; }
}

@media (max-width: 520px) {
    .property-choice-grid, .profile-filter { grid-template-columns: 1fr; }
    .guest-identity-banner { grid-template-columns: 52px minmax(0, 1fr); }
    .guest-large-monogram { width: 52px; height: 52px; }
    .guest-identity-banner > .status-badge { grid-column: 2; justify-self: start; }
    .floating-review-panel { position: fixed; inset: auto 10px 10px; width: auto; max-height: 75vh; overflow-y: auto; }
    .data-request-row { align-items: flex-start; flex-direction: column; }
}

/* Platform operations and recovery */
.operations-heading { align-items: flex-end; }
.operations-heading form { flex: 0 0 auto; }
.operations-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.operations-status-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 16px; }
.operations-status-card { min-height: 200px; padding: 17px; }
.operations-status-line { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; }
.operations-status-line h2 { margin: 0; font: 23px var(--display); }
.operations-status-card > p { min-height: 48px; margin: 16px 0; color: var(--muted); font-size: 10.5px; line-height: 1.6; }
.operations-status-card > form { margin-top: auto; }
.operations-alert-card { margin-bottom: 16px; }
.operations-alert-list { display: grid; }
.operations-alert-row { display: grid; grid-template-columns: 58px minmax(0, 1fr) auto auto; align-items: center; gap: 14px; border-top: 1px solid var(--rule-soft); padding: 13px 16px; }
.operations-alert-row:first-child { border-top: 0; }
.operations-alert-row.is-resolved { opacity: .67; }
.operations-alert-row > div:not(.row-actions) { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.operations-alert-row strong { font-size: 11px; }
.operations-alert-row small { color: var(--muted); font-size: 9.5px; }
.alert-priority { border-left: 3px solid var(--gold); padding: 5px 7px; color: #665322; font: 8.5px var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.alert-priority.high { border-color: var(--danger); color: var(--danger); }
.operations-empty { margin: 0; padding: 22px 16px; color: var(--muted); font-size: 11px; }
.operations-ledger-grid { align-items: start; margin-bottom: 16px; }

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

@media (max-width: 820px) {
    .operations-alert-row { grid-template-columns: 54px minmax(0, 1fr) auto; }
    .operations-alert-row .row-actions { grid-column: 2 / 4; }
}

@media (max-width: 620px) {
    .operations-metrics { grid-template-columns: 1fr; }
    .operations-alert-row { grid-template-columns: 1fr; align-items: start; }
    .operations-alert-row .row-actions { grid-column: auto; flex-wrap: wrap; }
}

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

/* Reservations */
.reservation-heading, .reservation-detail-heading { align-items: flex-end; }
.heading-actions { display: flex; align-items: flex-end; justify-content: flex-end; gap: 10px; }
.reservation-metrics { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.reservation-metrics .metric-money { font-size: clamp(19px, 2vw, 27px); }
.reservation-tabs { margin-bottom: 16px; }
.reservation-filter { grid-template-columns: minmax(210px, 1.4fr) minmax(150px, .8fr) repeat(2, minmax(150px, .8fr)) auto; border-bottom: 1px solid var(--rule); }
.reservation-table th, .reservation-table td { min-width: 128px; vertical-align: top; }
.reservation-table th:nth-child(2), .reservation-table td:nth-child(2) { min-width: 190px; }
.confirmation-code { color: var(--navy); font-family: var(--mono); font-size: 10.5px; letter-spacing: .02em; }
.reservation-workspace-grid { grid-template-columns: minmax(0, 2.4fr) minmax(280px, .8fr); align-items: start; }
.reservation-ledger { min-width: 0; overflow: visible; }
.reservation-side-card { position: sticky; top: 78px; overflow: visible; }
.reservation-side-form { display: flex; flex-direction: column; gap: 10px; padding: 16px; }
.reservation-side-form label, .booking-fields label, .reservation-amend-form label { display: flex; flex-direction: column; gap: 6px; color: #39445a; font-size: 10px; }
.reservation-side-form input, .reservation-side-form select, .reservation-side-form textarea, .booking-fields input, .booking-fields select, .booking-fields textarea, .reservation-amend-form input, .reservation-amend-form select, .reservation-amend-form textarea { width: 100%; }
.form-pair, .form-triple { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.form-triple { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.reservation-subrow td { border-top: 0 !important; background: #fafbfd; padding: 0 !important; }
.group-history { display: flex; min-width: 720px; align-items: center; flex-wrap: wrap; gap: 8px; border-left: 2px solid var(--gold); margin: 0 14px 10px; padding: 9px 11px; color: var(--muted); font-size: 9.5px; }
.group-history strong { color: var(--navy); }
.group-history form { margin: 0; }
.button-link { cursor: pointer; border: 0; background: transparent; padding: 0; }
.response-actions { display: grid; grid-template-columns: repeat(2, minmax(220px, 1fr)); gap: 12px; }

.booking-flow { display: grid; gap: 14px; }
.booking-step { overflow: visible; }
.booking-step > header { display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: start; gap: 13px; border-bottom: 1px solid var(--rule); padding: 16px 18px; }
.booking-step > header h2 { margin: 2px 0 4px; font: 23px var(--display); }
.booking-step > header p { margin: 0; color: var(--muted); font-size: 10.5px; line-height: 1.55; }
.step-number { display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center; border: 1px solid var(--gold); color: var(--navy); font: 10px var(--mono); }
.booking-fields { display: grid; gap: 12px; padding: 18px; }
.booking-fields.four-fields { grid-template-columns: repeat(4, minmax(160px, 1fr)); }
.booking-submit { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid var(--rule); background: #fafbfd; padding: 14px 18px; }
.booking-submit p { max-width: 650px; margin: 0; color: var(--muted); font-size: 10.5px; line-height: 1.55; }

.reservation-identity-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(260px, .7fr); gap: 14px; margin-bottom: 14px; }
.reservation-guest-banner { display: grid; grid-template-columns: 62px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 18px; }
.reservation-guest-banner h2 { margin: 3px 0; font: 24px var(--display); }
.reservation-guest-banner p { margin: 0; color: var(--muted); font-size: 10.5px; }
.reservation-amount-card { display: flex; flex-direction: column; justify-content: center; border-top: 2px solid var(--gold); padding: 18px; }
.reservation-amount-card strong { margin: 7px 0 5px; color: var(--navy); font: 27px var(--display); }
.reservation-amount-card p { margin: 0; color: var(--muted); font-size: 9.5px; line-height: 1.5; }
.reservation-detail-metrics { margin-bottom: 16px; }
.reservation-detail-grid { grid-template-columns: minmax(0, 2.1fr) minmax(300px, .8fr); align-items: start; }
.reservation-detail-grid > div, .reservation-detail-side { display: grid; min-width: 0; gap: 16px; }
.reservation-detail-side { position: sticky; top: 78px; }
.reservation-amend-form { grid-template-columns: repeat(3, minmax(160px, 1fr)); }
.reservation-notes-grid { align-items: start; }
.reservation-action-stack { display: grid; gap: 8px; padding: 14px 16px; }
.reservation-action-stack .action-disclosure { margin: 0; }
.danger-disclosure > summary { color: var(--danger); }
.relationship-list { border-top: 1px solid var(--rule); }
.reservation-timeline { display: grid; padding: 5px 16px 14px; }
.reservation-timeline > div { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 8px; border-left: 1px solid var(--rule); padding: 10px 0 10px 13px; }
.reservation-timeline > div:last-child { border-left-color: transparent; }
.reservation-timeline p { display: flex; margin: 0; flex-direction: column; gap: 3px; }
.reservation-timeline strong { font-size: 10.5px; text-transform: capitalize; }
.reservation-timeline small { color: var(--muted); font-size: 9.5px; line-height: 1.5; }
.timeline-dot { width: 8px; height: 8px; border: 2px solid #fff; outline: 1px solid var(--gold); background: var(--gold); margin: 2px 0 0 -18px; }
.check-label { flex-direction: row !important; align-items: center; }
.check-label input { width: auto !important; }

@media (max-width: 1180px) {
    .reservation-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .reservation-filter { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .reservation-filter button { justify-self: start; }
    .booking-fields.four-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 920px) {
    .reservation-workspace-grid, .reservation-detail-grid, .reservation-identity-grid { grid-template-columns: 1fr; }
    .reservation-side-card, .reservation-detail-side { position: static; }
    .heading-actions { width: 100%; justify-content: flex-start; flex-wrap: wrap; }
    .reservation-amend-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
    .reservation-metrics, .reservation-filter, .booking-fields.four-fields, .reservation-amend-form { grid-template-columns: 1fr; }
    .reservation-guest-banner { grid-template-columns: 52px minmax(0, 1fr); }
    .reservation-guest-banner > .status-badge { grid-column: 2; justify-self: start; }
    .response-actions, .form-triple { grid-template-columns: 1fr; }
    .booking-submit { align-items: flex-start; flex-direction: column; }
}

/* Housekeeping */
.housekeeping-heading { align-items: flex-end; }
.housekeeping-metrics { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.housekeeping-tabs { margin-bottom: 16px; }
.housekeeping-main-grid { grid-template-columns: minmax(0, 2.4fr) minmax(280px, .8fr); align-items: start; }
.housekeeping-board-card { min-width: 0; overflow: visible; }
.housekeeping-legend { display: flex; flex-wrap: wrap; gap: 6px; }
.housekeeping-room-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 8px; padding: 16px; }
.housekeeping-room { position: relative; min-width: 0; border: 1px solid var(--rule); border-left: 3px solid var(--muted-2); background: #fff; }
.housekeeping-room > summary { display: flex; min-height: 82px; cursor: pointer; list-style: none; flex-direction: column; gap: 3px; padding: 11px 10px; }
.housekeeping-room > summary::-webkit-details-marker { display: none; }
.housekeeping-room > summary strong { color: var(--navy); font: 20px var(--display); }
.housekeeping-room > summary span { font-size: 10px; font-weight: 700; }
.housekeeping-room > summary small { overflow: hidden; color: var(--muted); font-size: 8.5px; text-overflow: ellipsis; white-space: nowrap; }
.housekeeping-room.hk-vacant_clean { border-left-color: var(--ok); background: var(--ok-soft); }
.housekeeping-room.hk-vacant_dirty { border-left-color: var(--warn); background: var(--warn-soft); }
.housekeeping-room.hk-in_progress { border-left-color: var(--navy); background: #f1f5fb; }
.housekeeping-room.hk-out_of_order { border-left-color: var(--danger); background: var(--danger-soft); }
.housekeeping-room.hk-do_not_disturb { border-left-color: var(--gold); background: #fffcf3; }
.housekeeping-room.hk-occupied { border-left-color: #64748b; background: #f7f8fa; }
.housekeeping-room[open] { z-index: 5; grid-column: span 2; background: #fff; box-shadow: 0 8px 26px rgba(13,37,71,.12); }
.housekeeping-room-actions { display: grid; gap: 8px; border-top: 1px solid var(--rule); padding: 10px; }
.housekeeping-room-actions dl { margin: 0; }
.housekeeping-room-actions dl div { display: flex; justify-content: space-between; gap: 8px; border-top: 1px solid var(--rule-soft); padding: 5px 0; font-size: 9px; }
.housekeeping-room-actions dl div:first-child { border-top: 0; }
.housekeeping-room-actions dt { color: var(--muted); }
.housekeeping-room-actions dd { margin: 0; color: var(--navy); font-weight: 700; }
.housekeeping-room-actions .action-disclosure { margin: 0; }
.housekeeping-room-actions .action-disclosure > summary { padding: 7px 0; font-size: 9px; }
.housekeeping-room-actions .compact-form { position: static; width: 100%; min-width: 0; border: 0; box-shadow: none; padding: 8px 0 0; }
.housekeeping-inline-action { border-top: 1px solid var(--rule-soft) !important; }
.housekeeping-side-stack { display: grid; position: sticky; top: 78px; gap: 16px; }
.housekeeping-load-list { display: grid; padding: 8px 16px 14px; }
.housekeeping-load-list > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 12px; border-top: 1px solid var(--rule-soft); padding: 10px 0; }
.housekeeping-load-list > div:first-child { border-top: 0; }
.housekeeping-load-list span:first-child { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.housekeeping-load-list strong { font-size: 10.5px; }
.housekeeping-load-list small { color: var(--muted); font-size: 8.5px; }
.housekeeping-load-list .code { color: var(--navy); font: 9px var(--mono); }
.housekeeping-load-list i, .credit-bar { display: block; height: 4px; grid-column: 1 / -1; overflow: hidden; background: #edf0f4; }
.housekeeping-load-list i b, .credit-bar i { display: block; height: 100%; background: var(--gold); }
.housekeeping-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 12px; }
.housekeeping-facts div { display: flex; min-height: 66px; flex-direction: column; justify-content: center; border: 1px solid var(--rule-soft); margin: -1px 0 0 -1px; padding: 10px; }
.housekeeping-facts span { color: var(--muted); font-size: 8.5px; }
.housekeeping-facts strong { margin-top: 5px; color: var(--navy); font: 17px var(--display); }
.housekeeping-supervision-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; margin-top: 16px; }
.operating-list { display: grid; }
.operating-list article { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 8px 12px; border-top: 1px solid var(--rule-soft); padding: 12px 16px; }
.operating-list article:first-child { border-top: 0; }
.operating-list article > div { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.operating-list article strong { font-size: 10.5px; }
.operating-list article small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.operating-list article form { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(160px, 1fr) minmax(220px, 1.4fr) auto; align-items: end; gap: 7px; }
.housekeeping-settings-card { margin-top: 16px; }
.housekeeping-settings-form { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); align-items: end; gap: 10px; padding: 16px; }
.housekeeping-settings-form label { display: flex; min-width: 0; flex-direction: column; gap: 5px; color: #39445a; font-size: 9.5px; }
.housekeeping-settings-form .check-label { grid-column: span 2; }
.housekeeping-action-body { display: grid; gap: 10px; padding: 16px; }
.housekeeping-action-body .action-disclosure { margin: 0; }
.housekeeping-work-card { margin-top: 16px; overflow: visible; }
.housekeeping-task-table td, .housekeeping-attendant-table td { vertical-align: top; }
.housekeeping-task-table td:first-child { min-width: 190px; }
.credit-bar { min-width: 100px; margin-bottom: 4px; }
.housekeeping-inspection-card { overflow: visible; }

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

@media (max-width: 920px) {
    .housekeeping-main-grid, .housekeeping-supervision-grid { grid-template-columns: 1fr; }
    .housekeeping-side-stack { position: static; }
    .housekeeping-settings-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
    .housekeeping-metrics, .housekeeping-settings-form { grid-template-columns: 1fr; }
    .housekeeping-settings-form .check-label { grid-column: auto; }
    .housekeeping-room-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 10px; }
    .housekeeping-room[open] { grid-column: 1 / -1; }
    .operating-list article form { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
    .housekeeping-room-grid { grid-template-columns: 1fr; }
}

/* Cashiering and fiscal documents */
.folio-metrics { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.folio-selector { margin-bottom: 14px; overflow: visible; }
.folio-chip-row { display: flex; gap: 9px; overflow-x: auto; padding: 12px; }
.folio-chip { display: flex; min-width: 235px; flex: 0 0 235px; flex-direction: column; border: 1px solid var(--rule); background: #fff; padding: 11px; }
.folio-chip.active { border-color: var(--gold); box-shadow: inset 0 2px 0 var(--gold); }
.folio-chip strong { font: 14px var(--display); white-space: nowrap; }
.folio-chip span { margin-top: 3px; font-size: 10.5px; }
.folio-chip small { margin-top: 8px; color: var(--muted); font-size: 9px; }
.folio-identity { display: grid; grid-template-columns: minmax(260px, 1fr) auto auto; align-items: center; gap: 20px; margin-bottom: 14px; padding: 17px; overflow: visible; }
.folio-identity h2 { margin: 4px 0; font: 25px var(--display); }
.folio-identity p { margin: 0; color: var(--muted); font-size: 10.5px; }
.folio-balance { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.folio-balance > span:first-child { color: var(--muted); font: 8.5px var(--mono); text-transform: uppercase; }
.folio-balance strong { font: 22px var(--display); }
.folio-identity-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.folio-main-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(310px, .45fr); align-items: start; gap: 14px; }
.folio-ledger-card, .folio-side-stack > .content-card { overflow: visible; }
.folio-side-stack { display: grid; gap: 14px; }
.window-balance { margin-left: auto; color: var(--navy); font: 14px var(--display); white-space: nowrap; }
.folio-action-card .action-disclosure { padding-top: 0; }
.folio-row-actions { width: min(620px, 84vw); }
.folio-row-actions .compact-form { padding: 0 0 12px; }
.folio-row-actions .compact-form + .compact-form { border-top: 1px solid var(--rule); padding-top: 12px; }
.row-disclosure > summary.primary-button { color: #fff; }
.company-account-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.company-account-card { overflow: visible; }
.document-toolbar { display: flex; justify-content: flex-end; gap: 8px; margin-bottom: 14px; }
.fiscal-sheet { max-width: 1020px; min-height: 1050px; margin: 0 auto; border: 1px solid var(--rule); background: #fff; padding: 42px; }
.fiscal-sheet > header { display: flex; justify-content: space-between; gap: 30px; border-bottom: 2px solid var(--navy); padding-bottom: 25px; }
.fiscal-sheet h1 { margin: 5px 0; font: 34px var(--display); }
.fiscal-sheet p { margin: 0; color: var(--muted); font-size: 11px; }
.fiscal-seller { display: flex; flex-direction: column; align-items: flex-end; color: var(--muted); font-size: 10px; text-align: right; }
.fiscal-seller strong { margin-bottom: 5px; color: var(--navy); font: 18px var(--display); }
.fiscal-parties { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; padding: 28px 0; }
.fiscal-parties section { display: flex; flex-direction: column; border-left: 2px solid var(--gold); padding-left: 12px; }
.fiscal-parties span { color: var(--muted); font: 8.5px var(--mono); text-transform: uppercase; }
.fiscal-parties strong { margin-top: 6px; }
.fiscal-parties small { margin-top: 3px; color: var(--muted); }
.fiscal-lines { width: 100%; border-collapse: collapse; }
.fiscal-lines th { border-bottom: 1px solid var(--navy); padding: 9px; font: 8.5px var(--mono); text-align: right; text-transform: uppercase; }
.fiscal-lines th:first-child, .fiscal-lines td:first-child { text-align: left; }
.fiscal-lines td { border-bottom: 1px solid var(--rule-soft); padding: 12px 9px; font-size: 11px; text-align: right; }
.fiscal-lines td small { display: block; color: var(--danger); }
.fiscal-summary { display: flex; justify-content: flex-end; padding: 22px 0; }
.fiscal-summary dl { width: min(350px, 100%); margin: 0; }
.fiscal-summary dl div { display: flex; justify-content: space-between; border-bottom: 1px solid var(--rule-soft); padding: 8px 0; }
.fiscal-summary dt, .fiscal-summary dd { margin: 0; font-size: 11px; }
.fiscal-summary .fiscal-total { border-bottom: 2px solid var(--navy); font-weight: 700; }
.fiscal-reference { border-left: 2px solid var(--gold); padding: 10px; }
.fiscal-sheet > footer { display: flex; justify-content: space-between; margin-top: 40px; border-top: 1px solid var(--rule); padding-top: 14px; color: var(--muted); font-size: 9px; }
@media (max-width: 1100px) { .folio-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); } .folio-main-grid { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .folio-metrics, .company-account-grid { grid-template-columns: 1fr; } .folio-identity { grid-template-columns: 1fr; } .folio-balance { align-items: flex-start; } .folio-identity-actions { justify-content: flex-start; } .fiscal-sheet { min-height: 0; padding: 22px; } .fiscal-sheet > header, .fiscal-parties { grid-template-columns: 1fr; flex-direction: column; } .fiscal-seller { align-items: flex-start; text-align: left; } }
@media print { .app-shell > .panel-sidebar, .panel-topbar, .document-toolbar, .panel-scrim { display: none !important; } .panel-main { margin: 0; } .panel-content { max-width: none; padding: 0; } .fiscal-sheet { max-width: none; min-height: 0; border: 0; padding: 20px; } }

.fieldset-intro{margin:-4px 0 16px;color:var(--muted);font-size:11px;line-height:1.6}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.check-option{display:grid!important;grid-template-columns:18px 1fr;align-items:start;gap:10px;border:1px solid var(--rule);background:#fff;padding:13px!important}.check-option input{width:16px!important;min-height:16px!important;margin-top:2px}.check-option span{display:flex;flex-direction:column;gap:3px}.check-option small{color:var(--muted);font-weight:400;line-height:1.45}.inline-checks{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.inline-checks label{display:flex;align-items:center;flex-direction:row;gap:6px;border:1px solid var(--rule);background:#fff;padding:8px 10px;font-size:10px}.inline-checks input{width:15px;min-height:15px}.compact-status-grid{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--rule)}.compact-status-grid div{display:flex;min-height:66px;flex-direction:column;gap:7px;border-right:1px solid var(--rule);padding:14px 18px}.compact-status-grid div:last-child{border-right:0}.compact-status-grid span{color:var(--muted);font:9px var(--mono);letter-spacing:.08em;text-transform:uppercase}.settings-stack{display:grid}.settings-disclosure{border-bottom:1px solid var(--rule)}.settings-disclosure:last-child{border-bottom:0}.settings-disclosure summary{display:flex;align-items:center;justify-content:space-between;padding:18px;cursor:pointer}.settings-disclosure summary>span:first-child{display:flex;flex-direction:column;gap:4px}.settings-disclosure summary small{color:var(--muted);font-size:9px}.settings-disclosure[open] summary{background:#f8fafc}.settings-disclosure .editor-body{border-top:1px solid var(--rule)}
@media(max-width:760px){.check-grid,.compact-status-grid{grid-template-columns:1fr}.compact-status-grid div{border-right:0;border-bottom:1px solid var(--rule)}}

/* Platform team account and subscriber scope controls */
.platform-member-create{margin-bottom:16px;overflow:hidden}.platform-member-form{padding:18px}.platform-member-form .form-grid{margin-bottom:14px}.platform-member-form label>span:first-child,.subscriber-scope-fieldset legend{color:#39445a;font-size:10px;font-weight:700}.platform-member-form label small{color:var(--muted);font-size:9px;line-height:1.45}.platform-member-form .form-help{margin:-5px 0 16px;color:var(--muted);font-size:10px;line-height:1.55}.platform-access-row{padding-top:14px;border-top:1px solid var(--rule-soft)}.subscriber-scope-fieldset{min-width:0;margin:4px 0 16px;border:1px solid var(--rule);background:#fafbfd;padding:14px}.subscriber-scope-fieldset legend{padding:0 7px;text-transform:uppercase;letter-spacing:.06em}.subscriber-scope-fieldset>p{margin:0 0 10px;color:var(--muted);font-size:10px}.subscriber-check-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:260px;overflow:auto;padding-right:3px}.platform-role-guide{display:grid}.platform-role-guide article{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr);gap:18px;align-items:start;border-top:1px solid var(--rule-soft);padding:16px}.platform-role-guide article:first-child{border-top:0}.platform-role-guide article>div{display:flex;gap:11px}.platform-role-guide article>div>span:last-child{display:flex;flex-direction:column;gap:4px}.platform-role-guide small,.platform-role-guide p{color:var(--muted);font-size:10px;line-height:1.55}.platform-role-guide p{margin:0}.team-table-card .row-actions{align-items:center;flex-wrap:nowrap}.team-table-card .secondary-button{white-space:nowrap;text-decoration:none}.member-controls .member-control-actions{align-items:center;justify-content:space-between}.member-controls .member-control-actions>p{max-width:760px;margin:0;color:var(--muted);font-size:11px;line-height:1.6}
@media(max-width:1000px){.subscriber-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-role-guide article{grid-template-columns:1fr}}
@media(max-width:760px){.subscriber-check-grid{grid-template-columns:1fr}.platform-member-form{padding:14px}.member-controls .member-control-actions{align-items:stretch;flex-direction:column}}

.invoice-status-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1200px;margin:0 auto 18px;border:1px solid var(--rule);border-left:3px solid var(--navy);background:#fff;padding:16px 18px}.invoice-status-panel h2{margin:3px 0 5px;font:22px var(--display);color:var(--navy)}.invoice-status-panel p{max-width:860px;margin:3px 0;color:var(--muted);font-size:11px;line-height:1.55}.invoice-status-panel .primary-button{flex:none;text-decoration:none}
@media(max-width:760px){.invoice-status-panel{align-items:stretch;flex-direction:column}}
@media print{.no-print{display:none!important}}

/* Identity and team administration */
.auth-help-link { display: block; margin: 14px 0 0; color: var(--navy); font-size: 11px; text-align: center; text-decoration: underline; text-underline-offset: 3px; }
.auth-link-button { width: 100%; cursor: pointer; border: 0; background: transparent; font: inherit; }
.auth-confirmation, .field-guidance { display: block; border-left: 3px solid var(--gold); background: #fffcf3; padding: 11px 12px; color: #63552d; font-size: 11px; line-height: 1.55; }
.form-success { margin: 14px 0; border: 1px solid #c9e6da; background: var(--ok-soft); padding: 10px 12px; color: #245d49; font-size: 11px; line-height: 1.5; }
.page-error { margin-bottom: 16px; }
.code-input { font-family: var(--mono) !important; font-size: 18px !important; letter-spacing: .12em; }
.active-account-link { border-color: var(--gold); color: var(--navy); }

.security-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.team-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.security-grid, .team-control-grid, .mfa-setup-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }
.security-card, .session-card, .invite-card, .policy-card, .assignment-card, .member-controls, .role-create-card, .role-edit-card { overflow: hidden; }
.security-card-body, .policy-card-body, .role-edit-body { padding: 18px; }
.security-card-body > p, .policy-card-body > p { margin: 0 0 16px; color: var(--muted); font-size: 11px; line-height: 1.65; }
.security-form, .security-inline-form, .security-action-stack form, .team-form, .assignment-form { display: flex; flex-direction: column; gap: 8px; }
.security-form label, .security-inline-form label, .security-action-stack label, .team-form label, .assignment-form label, .role-create-card label, .role-edit-card label, .session-all-form label { color: #39445a; font-size: 10px; }
.security-form input, .security-inline-form input, .security-action-stack input, .team-form input, .team-form select, .assignment-form select, .role-create-card input, .role-edit-card input, .session-all-form input { width: 100%; min-height: 40px; border: 1px solid var(--rule); border-radius: 0; background: #fff; padding: 0 10px; color: var(--ink); }
.security-form small { color: var(--muted-2); font-size: 9.5px; line-height: 1.5; }
.security-form button, .security-inline-form button { align-self: flex-start; margin-top: 8px; }
.security-action-stack { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.security-action-stack form { border: 1px solid var(--rule-soft); padding: 14px; }
.security-action-stack h3 { margin: 0 0 5px; font: 17px var(--display); }
.session-list { display: grid; }
.session-row { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: center; gap: 10px; border-top: 1px solid var(--rule-soft); padding: 13px 16px; }
.session-row:first-child { border-top: 0; }
.session-row > div { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.session-row strong { font-size: 11.5px; }
.session-row small { color: var(--muted); font-size: 9.5px; }
.session-icon { color: var(--gold); font-size: 16px; }
.session-all-form { display: grid; grid-template-columns: minmax(180px, 320px) auto; align-items: end; gap: 10px; border-top: 1px solid var(--rule); background: #fafbfd; padding: 14px 16px; }
.session-all-form label { display: flex; flex-direction: column; gap: 6px; }

.setup-key-card code, .uri-code { overflow-wrap: anywhere; color: var(--navy); font: 11px/1.6 var(--mono); }
.setup-ledger { margin: 15px 0; border: 1px solid var(--rule); }
.setup-ledger div { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 12px; border-top: 1px solid var(--rule-soft); padding: 10px; }
.setup-ledger div:first-child { border-top: 0; }
.setup-ledger dt { color: var(--muted-2); font: 8.5px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.setup-ledger dd { min-width: 0; margin: 0; font-size: 11px; }
.setup-key-card details { border-top: 1px solid var(--rule); padding-top: 12px; }
.setup-key-card summary { cursor: pointer; color: var(--navy); font-size: 10px; }
.uri-code { display: block; margin-top: 8px; }
.setup-cancel-form { border-top: 1px solid var(--rule); padding: 12px 18px; }
.recovery-card { max-width: 760px; margin: 0 auto; }
.recovery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 18px; }
.recovery-grid code { border: 1px solid var(--rule); background: #fafbfd; padding: 12px; color: var(--navy); font: 13px var(--mono); text-align: center; }
.recovery-guidance { display: flex; flex-direction: column; gap: 4px; border-left: 3px solid var(--gold); background: #fffcf3; margin: 0 18px 18px; padding: 12px; color: #63552d; font-size: 10.5px; line-height: 1.5; }

.team-heading, .roles-heading, .security-heading, .member-heading { align-items: flex-end; }
.team-form { padding: 18px 18px 0; }
.team-form label, .assignment-form label, .role-name-row label, .role-edit-name { display: flex; flex-direction: column; gap: 6px; }
.policy-card-body { display: flex; min-height: 180px; flex-direction: column; justify-content: space-between; }
.team-table-card, .invitation-list-card { margin-bottom: 16px; }
.table-link { color: var(--navy); font-size: 10.5px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.invitation-list, .assignment-list { display: grid; }
.invitation-row { display: grid; grid-template-columns: minmax(200px, 1.2fr) minmax(180px, 1fr) 130px auto; align-items: center; gap: 15px; border-top: 1px solid var(--rule-soft); padding: 13px 16px; }
.invitation-row:first-child, .assignment-row:first-child { border-top: 0; }
.invitation-person, .invitation-row > div, .assignment-row > div { display: flex; align-items: center; gap: 10px; }
.invitation-person > span:last-child, .invitation-row > div:not(.invitation-person):not(.row-actions), .assignment-row > div > span:last-child { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.invitation-row small, .assignment-row small { color: var(--muted); font-size: 9.5px; }
.invitation-row strong { overflow-wrap: anywhere; font-size: 11px; }
.member-monogram, .role-mark { display: inline-flex; width: 34px; height: 34px; flex: 0 0 34px; align-items: center; justify-content: center; border: 1px solid var(--gold); color: var(--navy); font: 10px var(--mono); }
.row-actions, .member-control-actions { display: flex; align-items: center; gap: 7px; }
.member-summary-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 16px; margin-bottom: 16px; }
.member-profile-card { display: grid; grid-template-columns: 62px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 18px; }
.member-large-monogram { display: inline-flex; width: 62px; height: 62px; align-items: center; justify-content: center; border: 1px solid var(--gold); color: var(--navy); font: 18px var(--display); }
.member-profile-card h2 { margin: 3px 0; font: 23px var(--display); }
.member-profile-card p { margin: 0; color: var(--muted); font-size: 10.5px; }
.assignment-card, .member-controls { margin-bottom: 16px; }
.assignment-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; border-top: 1px solid var(--rule-soft); padding: 13px 16px; }
.assignment-row strong { font-size: 11.5px; }
.assignment-form { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) auto; align-items: end; border-top: 1px solid var(--rule); background: #fafbfd; padding: 14px 16px; }
.member-control-actions { padding: 16px; }

.role-create-card { margin-bottom: 16px; }
.role-name-row { display: grid; grid-template-columns: minmax(220px, 420px) auto; align-items: end; gap: 10px; padding: 16px 18px; }
.role-name-row > button { min-width: 150px; justify-self: start; }
.permission-groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; border-top: 1px solid var(--rule); padding: 18px; }
.permission-groups fieldset { min-width: 0; border: 1px solid var(--rule-soft); margin: 0; padding: 10px; }
.permission-groups legend { padding: 0 5px; color: var(--navy); font: 9px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.permission-choice { display: flex !important; cursor: pointer; flex-direction: row !important; align-items: flex-start; gap: 8px !important; border-top: 1px solid var(--rule-soft); padding: 9px 2px; }
.permission-choice:first-of-type { border-top: 0; }
.permission-choice input { width: auto !important; min-height: auto !important; margin-top: 2px; accent-color: var(--navy); }
.permission-choice > span { display: flex; flex-direction: column; gap: 2px; }
.permission-choice strong { font-size: 10.5px; }
.permission-choice small { color: var(--muted); font-size: 9px; line-height: 1.4; }
.role-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.role-card { display: flex; min-height: 270px; flex-direction: column; border: 1px solid var(--rule); border-top: 2px solid var(--gold); background: #fff; padding: 18px; }
.role-card header { display: flex; align-items: center; justify-content: space-between; }
.role-card h2 { margin: 18px 0 4px; font: 24px var(--display); }
.role-card > p { margin: 0; color: var(--muted); font-size: 10.5px; }
.role-permission-preview { display: flex; flex-wrap: wrap; gap: 5px; margin: 16px 0; }
.role-permission-preview span { border: 1px solid var(--rule-soft); background: #fafbfd; padding: 4px 6px; color: var(--muted); font-size: 8.5px; }
.role-card > a { align-self: flex-start; margin-top: auto; }
.role-edit-name { max-width: 420px; }
.role-readonly-groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 18px; }
.role-readonly-groups section { border: 1px solid var(--rule-soft); padding: 12px; }
.role-readonly-groups h3 { margin: 0 0 8px; font: 16px var(--display); }
.role-readonly-groups span { display: block; border-top: 1px solid var(--rule-soft); padding: 7px 0; color: var(--muted); font-size: 10px; }
.role-delete-card { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 16px; border-left: 3px solid var(--danger); padding: 16px; }
.role-delete-card h2 { margin: 3px 0; font: 20px var(--display); }
.role-delete-card p { margin: 0; color: var(--muted); font-size: 10.5px; }

@media (max-width: 1100px) {
    .security-metrics, .team-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .permission-groups, .role-grid, .role-readonly-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .invitation-row { grid-template-columns: minmax(190px, 1fr) minmax(180px, 1fr) auto; }
    .invitation-row > div:nth-child(3) { display: none; }
}

@media (max-width: 820px) {
    .security-grid, .team-control-grid, .mfa-setup-grid, .member-summary-grid { grid-template-columns: 1fr; }
    .security-action-stack { grid-template-columns: 1fr; }
    .permission-groups, .role-grid, .role-readonly-groups { grid-template-columns: 1fr; }
    .invitation-row { grid-template-columns: 1fr auto; }
    .invitation-row > div:nth-child(2) { grid-column: 1; }
    .invitation-row .row-actions { grid-area: 1 / 2 / 3 / 3; flex-direction: column; align-items: stretch; }
}

@media (max-width: 620px) {
    .security-metrics, .team-metrics, .recovery-grid { grid-template-columns: 1fr; }
    .session-row { grid-template-columns: 22px minmax(0, 1fr); }
    .session-row > form, .session-row > .status-badge { grid-column: 2; justify-self: start; }
    .session-all-form, .role-name-row, .assignment-form { grid-template-columns: 1fr; align-items: stretch; }
    .member-profile-card { grid-template-columns: 52px minmax(0, 1fr); }
    .member-large-monogram { width: 52px; height: 52px; }
    .member-profile-card > .status-badge { grid-column: 2; justify-self: start; }
    .assignment-row { align-items: flex-start; flex-direction: column; }
    .invitation-row { grid-template-columns: 1fr; }
    .invitation-row .row-actions { grid-area: auto; flex-direction: row; }
    .topbar-account > .quiet-button { display: none; }
}

/* Payment workspace responsive overrides */
.payment-metrics { grid-template-columns: repeat(5, minmax(0, 1fr)); }

/* Front desk workspace cascade */
.metric-grid.frontdesk-metrics, .metric-grid.frontdesk-stay-metrics { grid-template-columns: repeat(5, minmax(0, 1fr)); }

@media (max-width: 1100px) {
    .payment-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .metric-grid.frontdesk-metrics, .metric-grid.frontdesk-stay-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .payment-match-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .payment-match-form button { justify-self: start; }
}

@media (max-width: 820px) {
    .payment-detail-grid, .payment-review-grid { grid-template-columns: 1fr; }
    .payment-match-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
    .payment-metrics, .payment-match-form, .payment-standards-form { grid-template-columns: 1fr; }
    .metric-grid.frontdesk-metrics, .metric-grid.frontdesk-stay-metrics { grid-template-columns: 1fr; }
    .payment-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .payment-facts div:nth-child(3n) { border-right: 1px solid var(--rule-soft); }
    .payment-facts div:nth-child(2n) { border-right: 0; }
    .payment-link-box div, .payment-action-row { align-items: flex-start; flex-direction: column; }
    .review-actions { grid-template-columns: 1fr; }
}
