:root {
    color-scheme: light;
    --navy: #1a3a5f;
    --ink: #25384b;
    --blue: #315b82;
    --teal: #2f7d73;
    --paper: #fff;
    --line: #dbe3ec;
    --muted: #667085;
    --bg: #f3f5f7;
}

* { box-sizing: border-box; }
.pm-report-recipients { min-width: 0; }
.pm-report-recipients .pm-report-recipient { display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: center; gap: 8px; margin: 8px 0; }
.pm-report-recipient input[type=checkbox] { width: 16px; height: 16px; margin: 0; }
.pm-report-recipient span { overflow-wrap: anywhere; }
body { margin: 0; padding: 28px 18px; background: var(--bg); color: #1d2733; font: 15px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif; }

.admin-container,
.admin-login-shell { width: min(1760px, 100%); margin: 0 auto; padding: 24px; background: var(--paper); border: 1px solid #e7ecf0; border-radius: 10px; box-shadow: 0 8px 24px rgba(16, 24, 40, .07); }
.admin-login-shell { max-width: 820px; }

.admin-banner { display: flex; justify-content: center; margin: -10px 0 24px; }
.admin-banner a { display: block; width: min(1100px, 100%); overflow: hidden; background: #fff; border: 1px solid #e2e8ef; border-radius: 14px; box-shadow: 0 10px 26px rgba(16, 24, 40, .12); }
.admin-banner img { display: block; width: 100%; height: auto; }

.admin-header { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid #e7ecf0; }
.admin-header h1 { margin: 0; color: var(--navy); font-size: clamp(1.4rem, 2.2vw, 1.85rem); line-height: 1.2; }
.admin-header p { margin: 4px 0 0; color: #7b8794; font-size: .82rem; }
.admin-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.environment-badge { display: inline-flex; align-items: center; min-height: 28px; padding: 3px 9px; border: 1px solid #f2c94c; border-radius: 999px; background: #fff4bf; color: #6b4b00; font-size: .7rem; font-weight: 800; letter-spacing: .04em; }
.admin-header-link { display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px; border: 1px solid #d9e1e8; border-radius: 999px; background: #fff; color: var(--ink); font-size: .8rem; font-weight: 700; text-decoration: none; }
.admin-header-link:hover { border-color: var(--ink); background: #eef3f8; }
.admin-header-link.is-disabled { color: #98a2b3; background: #f7f8fa; cursor: not-allowed; }

.admin-nav { margin: -4px 0 22px; padding: 10px; border: 1px solid #e7ecf0; border-radius: 10px; background: #f8fafc; }
.admin-nav-grouped { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 10px; }
.admin-nav-group { min-width: 0; padding: 10px; border: 1px solid #e8edf3; border-radius: 9px; background: rgba(255, 255, 255, .9); }
.admin-nav-group h2 { margin: 0 0 8px; color: #66758a; font-size: .7rem; font-weight: 800; letter-spacing: .055em; line-height: 1.25; text-transform: uppercase; }
.admin-nav-links { display: flex; flex-direction: column; gap: 6px; }
.admin-nav-link { display: flex; align-items: center; min-height: 36px; padding: 7px 10px; border: 1px solid #dfe6ee; border-radius: 8px; background: #fff; color: var(--ink); font-size: .82rem; font-weight: 650; text-decoration: none; }
.admin-nav-link:hover { border-color: var(--ink); background: #eef3f8; }
.admin-nav-link.is-active { border-color: var(--ink); background: var(--ink); color: #fff; box-shadow: inset 3px 0 0 rgba(255, 255, 255, .22); }
.admin-nav-link.is-disabled { color: #98a2b3; background: #f7f8fa; cursor: not-allowed; }

.admin-content { min-width: 0; width: 100%; }
.admin-card { margin: 0 0 20px; padding: 22px; border: 1px solid #e2e8ef; border-radius: 9px; background: #fff; box-shadow: 0 1px 3px rgba(16, 24, 40, .04); }
.admin-card-wide { width: 100%; }
.page-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 16px; }
.page-heading h2, .admin-card h2 { margin-top: 0; color: var(--navy); }
.pricing-tab-control { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }
.admin-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 18px 0 22px; border-bottom: 1px solid #d7dde5; }
.admin-tabs label { display: inline-flex; padding: 10px 14px; border: 1px solid #d7dde5; border-bottom: 0; border-radius: 8px 8px 0 0; background: #f7f9fc; color: var(--navy); font-weight: 750; cursor: pointer; }
.admin-tabs label:hover { background: #fff; color: #102a46; }
#pricing-tab-send:checked ~ .admin-tabs label[for="pricing-tab-send"],
#pricing-tab-channels:checked ~ .admin-tabs label[for="pricing-tab-channels"],
#pricing-tab-discounts:checked ~ .admin-tabs label[for="pricing-tab-discounts"],
#pricing-tab-diagnostics:checked ~ .admin-tabs label[for="pricing-tab-diagnostics"],
#pricing-tab-comparison:checked ~ .admin-tabs label[for="pricing-tab-comparison"],
#pricing-tab-overrides:checked ~ .admin-tabs label[for="pricing-tab-overrides"],
#pricing-tab-publication:checked ~ .admin-tabs label[for="pricing-tab-publication"] { background: #fff; color: #102a46; box-shadow: inset 0 -3px 0 var(--navy); }
.pricing-tab-panel { display: none; }
.admin-tabs label.pricing-tab-error { color: #a32121; outline: 2px solid #a32121; }
.admin-tabs label.pricing-tab-error::after { content: " · Eingaben prüfen"; }
.pricing-edit-form [aria-invalid="true"] { border-color: #a32121; outline: 1px solid #a32121; }
.date-promotion-inputs:has(input:disabled) { opacity: .65; }
fieldset.date-promotion-inputs { border: 0; padding: 0; margin: 0; min-width: 0; }
#pricing-tab-send:checked ~ .pricing-tab-stage .pricing-panel-send,
#pricing-tab-channels:checked ~ .pricing-tab-stage .pricing-panel-channels,
#pricing-tab-discounts:checked ~ .pricing-tab-stage .pricing-panel-discounts,
#pricing-tab-diagnostics:checked ~ .pricing-tab-stage .pricing-panel-diagnostics,
#pricing-tab-comparison:checked ~ .pricing-tab-stage .pricing-panel-comparison,
#pricing-tab-publication:checked ~ .pricing-tab-stage .pricing-panel-publication { display: block; }
.pricing-edit-form > .actions { display: none; }
#pricing-tab-send:checked ~ .pricing-tab-stage .pricing-edit-form > .actions,
#pricing-tab-channels:checked ~ .pricing-tab-stage .pricing-edit-form > .actions,
#pricing-tab-discounts:checked ~ .pricing-tab-stage .pricing-edit-form > .actions { display: flex; }
.pricing-tab-panel > h3 { margin: 0 0 8px; color: var(--navy); font-size: 1.18rem; }
.pricing-tab-panel > h4 { margin: 28px 0 10px; color: var(--navy); font-size: .9rem; letter-spacing: .035em; text-transform: uppercase; }
.pricing-year-grid { display: grid; grid-template-columns: repeat(3, minmax(300px, 1fr)); gap: 14px; overflow-x: auto; padding-bottom: 8px; }
.pricing-year { min-width: 0; border: 1px solid #e0e7ef; border-radius: 9px; background: #fbfcfd; overflow: hidden; }
.pricing-year h4 { margin: 0; padding: 10px 13px; background: var(--navy); color: #fff; font-size: 1rem; }
.pricing-period-list { display: grid; gap: 0; }
.pricing-period-card { display: grid; gap: 7px; padding: 10px 11px; border-bottom: 1px solid #e5eaf0; background: #fff; }
.pricing-period-card:last-child { border-bottom: 0; }
.pricing-period-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; color: var(--navy); }
.pricing-period-heading > strong { font-size: .8rem; letter-spacing: .035em; text-transform: uppercase; }
.pricing-period-heading > small { color: var(--muted); font-size: .66rem; font-weight: 600; text-align: right; }
.pricing-target-control { display: grid; grid-template-columns: minmax(0, 1fr) minmax(118px, 150px); align-items: center; gap: 10px; color: #475467; font-size: .72rem; font-weight: 750; }
.pricing-target-input { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; overflow: hidden; border: 1px solid #aebdcd; border-radius: 7px; background: #fff; box-shadow: 0 1px 2px rgba(16, 24, 40, .05); }
.pricing-target-input input[type=text] { min-width: 0; min-height: 36px; padding: 6px 8px; border: 0; border-radius: 0; text-align: right; font-weight: 750; font-variant-numeric: tabular-nums; }
.pricing-target-input > span { padding: 0 8px; color: var(--muted); font-size: .68rem; font-weight: 800; }
.pricing-channel-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
.pricing-channel-value { display: flex; align-items: center; justify-content: space-between; gap: 5px; min-width: 0; padding: 5px 7px; border: 1px solid #e2e8ef; border-radius: 6px; background: #f7f9fb; font-size: .68rem; line-height: 1.2; }
.pricing-channel-label { overflow: hidden; color: var(--muted); font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.pricing-channel-value strong { color: var(--navy); font-size: .72rem; }
.channel-matrix table { min-width: 980px; table-layout: fixed; }
.channel-matrix thead th:first-child, .channel-matrix tbody th { width: 220px; }
.channel-matrix td { background: #fff; }
.channel-matrix td label { display: block; margin-bottom: 8px; color: #475467; font-size: .78rem; font-weight: 650; }
.channel-matrix td small, .comparison-card small, .comparison-card p { display: block; margin-top: 6px; color: var(--muted); font-size: .75rem; line-height: 1.35; }
.status-ok { background: #e8f6ef; color: #116149; }
.status-warn { background: #fff4bf; color: #6b4b00; }
.status-blocked { background: #fbe9e7; color: #9d2a20; }
.discount-highlight { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 320px); align-items: center; gap: 24px; padding: 18px; border: 1px solid #dce5ee; border-left: 5px solid var(--blue); border-radius: 8px; background: #f8fafc; }
.discount-highlight h4 { margin: 8px 0 3px; color: var(--navy); }
.discount-highlight p { margin: 0; color: var(--muted); }
.diagnostic-matrix tr th small { display: block; color: #8a5a00; font-size: .66rem; letter-spacing: .05em; text-transform: uppercase; }
.diagnostic-total th, .diagnostic-total td { background: #eef3f8; }
.inline-filter, .comparison-inputs { display: flex; align-items: end; gap: 12px; flex-wrap: wrap; margin: 12px 0 18px; padding: 14px; border: 1px solid #e1e7ef; border-radius: 8px; background: #f8fafc; }
.inline-filter label, .comparison-inputs label { min-width: 180px; color: #475467; font-size: .8rem; font-weight: 700; }
.diagnostic-grid { display: grid; grid-template-columns: repeat(4, minmax(260px, 1fr)); gap: 14px; align-items: start; }
.diagnostic-technical { margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--line); }
.diagnostic-technical > summary { cursor: pointer; color: var(--muted); font-size: .8rem; }
.diagnostic-active dt, .diagnostic-active dd { padding-block: 4px; }
.diagnostic-card { min-width: 0; padding: 17px; border: 1px solid #dce4ec; border-radius: 9px; background: #fff; }
.diagnostic-card h4 { margin: 0 0 12px; color: var(--navy); }
.diagnostic-card dl { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 6px 10px; margin: 0; }
.diagnostic-card dt { color: var(--muted); font-size: .72rem; font-weight: 700; }
.diagnostic-card dd { margin: 0; text-align: right; font-size: .76rem; font-weight: 750; overflow-wrap: anywhere; }
.diagnostic-card dd small { display: block; margin-top: 2px; color: var(--muted); font-size: .64rem; font-weight: 600; }
.diagnostic-card .diagnostic-factor-total { margin-top: 5px; padding-top: 9px; border-top: 1px solid #cfd9e4; color: var(--navy); font-weight: 800; }
.diagnostic-amounts { margin-top: 14px; padding: 10px 12px; border-radius: 7px; background: #f4f7fa; }
.diagnostic-amounts p, .diagnostic-comparison { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 0; color: #344054; font-size: .72rem; font-weight: 700; line-height: 1.55; }
.diagnostic-amounts p + p { margin-top: 7px; padding-top: 7px; border-top: 1px solid #dce4ec; }
.diagnostic-amounts strong, .diagnostic-comparison strong { text-align: right; }
.diagnostic-final { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 10px 0 0; color: var(--navy); font-size: .72rem; font-weight: 800; }
.diagnostic-final strong { font-size: .92rem; }
.diagnostic-comparison { margin-top: 6px; color: var(--muted); }
.diagnostic-scenarios { margin-top: 14px; padding-top: 12px; border-top: 1px solid #cfd9e4; }
.diagnostic-scenarios h5 { margin: 0 0 9px; color: var(--navy); font-size: .76rem; text-transform: uppercase; letter-spacing: .04em; }
.diagnostic-scenario { padding: 10px 0; }
.diagnostic-scenario + .diagnostic-scenario { border-top: 1px solid #e5eaf0; }
.diagnostic-scenario h6 { margin: 0; color: #344054; font-size: .76rem; }
.diagnostic-scenario-rule { margin: 3px 0 8px; color: var(--muted); font-size: .68rem; }
.diagnostic-scenario > p:not(.diagnostic-scenario-rule) { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 5px 0 0; font-size: .7rem; }
.diagnostic-scenario > p strong { text-align: right; }
.scenario-matrix .scenario-group-start th, .scenario-matrix .scenario-group-start td { border-top: 2px solid #dce4ec; }
.scenario-matrix input[type="text"] { width: min(150px, 100%); }
.pricing-rule-matrix table { min-width: 1120px; table-layout: fixed; }
.pricing-rule-matrix col.pricing-rule-label-column { width: 220px; }
.pricing-rule-matrix col.pricing-rule-value-column { width: 112px; }
.pricing-rule-matrix thead th[colspan="2"] { text-align: center; }
.pricing-rule-matrix tbody > tr > th { vertical-align: middle; }
.pricing-rule-matrix td.pricing-rule-result-value { text-align: right; font-variant-numeric: tabular-nums; }
.percent-input-group { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; width: min(150px, 100%); overflow: hidden; border: 1px solid #aebdcd; border-radius: 6px; background: #fff; }
.percent-input-group:focus-within { border-color: #246b9d; box-shadow: 0 0 0 3px rgba(36, 107, 157, .14); }
.pricing-rule-matrix .percent-input-group input[type="text"], .pricing-rule-matrix .percent-input-group input[type="number"] { width: 100%; min-width: 0; border: 0; border-radius: 0; box-shadow: none; text-align: right; font-variant-numeric: tabular-nums; }
.percent-input-group > span { padding: 0 9px 0 5px; color: var(--muted); font-weight: 750; }
.percent-input-group:has(input[aria-invalid="true"]) { border-color: #b42318; box-shadow: 0 0 0 3px rgba(180, 35, 24, .12); }
.date-discount-matrix td { vertical-align: top; }
.date-promotion-inputs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.date-promotion-inputs label { display: grid; grid-template-rows: minmax(2.6em, auto) auto; gap: 4px; margin: 0; font-size: .72rem; line-height: 1.3; }
.date-promotion-inputs label:last-child { grid-column: 1 / -1; grid-template-rows: auto auto; }
.date-promotion-inputs .percent-input-group { width: 100%; }
.date-promotion-current { margin-top: 12px; border-top: 1px solid var(--line); padding-top: 8px; font-size: .7rem; }
.date-promotion-current > summary, .date-promotion-help > summary { color: var(--muted); cursor: pointer; }
.date-promotion-current dl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 6px; margin: 10px 0 0; }
.date-promotion-current dt { color: var(--muted); }
.date-promotion-current dd { margin: 0; text-align: right; overflow-wrap: anywhere; }
.date-promotion-help { margin-top: 10px; font-size: .78rem; }
.comparison-date-promotion { display: grid; gap: 4px; font-size: .75rem; text-align: left; }
.comparison-date-promotion + .comparison-date-promotion { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.percent-field-error, .discount-channel-error { min-height: 1.1em; margin: 4px 0 0; color: #b42318; font-size: .7rem; font-weight: 650; line-height: 1.3; }
.discount-validation-row td { padding-top: 5px; background: #fff; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.comparison-overview { margin: 20px 0 26px; }
.comparison-overview h4 { margin: 0 0 12px; color: var(--navy); font-size: 1.15rem; }
.comparison-overview-scroll { border: 1px solid var(--line); border-radius: 10px; }
.comparison-overview-scroll:focus-visible, .comparison-detail summary:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.comparison-overview-table { width: 100%; min-width: 850px; table-layout: fixed; font-variant-numeric: tabular-nums; }
.comparison-overview-table th, .comparison-overview-table td { padding: 12px 14px; vertical-align: middle; }
.comparison-overview-table th:first-child { width: 26%; }
.comparison-overview-table th[scope="col"], .comparison-overview-table td { text-align: right; }
.comparison-overview-table th[scope="row"], .comparison-overview-table th:first-child { text-align: left; }
.comparison-overview-table th[scope="row"] { color: var(--ink); font-weight: 650; background: #fff; }
.comparison-overview-table small { display: block; margin-top: 3px; color: var(--muted); font-size: .72rem; font-weight: 450; line-height: 1.3; }
.comparison-overview-table .money { white-space: nowrap; font-size: .92rem; }
.comparison-overview-table .comparison-guest-total > * { background: var(--navy); color: #fff; border-color: var(--navy); padding-top: 17px; padding-bottom: 17px; }
.comparison-overview-table .comparison-guest-total .money { font-size: 1.1rem; }
.comparison-overview-table .comparison-guest-total small { color: #e1e9f2; }
.comparison-overview-table .comparison-eur > * { background: #f0f4f8; }
.comparison-overview-table .comparison-gross-basis > * { background: #f0f4f8; }
.comparison-overview-table .comparison-before-tax > * { border-top: 2px solid var(--line); }
.comparison-overview-table .comparison-block th { padding: 14px; background: #dce8f1; color: var(--navy); text-align: left; font-size: .95rem; }
.comparison-overview-table .comparison-guest-discount .money { color: #176747; }
.comparison-overview-table .comparison-net-total > * { background: #e8f4ef; border-top: 2px solid var(--teal); }
.comparison-overview-table .comparison-net-total .money { color: #175e51; font-size: 1.05rem; }
.comparison-overview-table .comparison-estimate { color: #82530b; }
.comparison-overview-table .comparison-guest-total .comparison-estimate { color: #ffe1a6; }
.comparison-positive { color: #176747; }
.comparison-negative { color: #b42318; }
.comparison-unavailable { color: var(--muted); font-size: .82rem; }
.comparison-deposit > * { border-top: 2px solid var(--line); }
.comparison-overview-notes { margin-top: 12px; color: var(--muted); font-size: .8rem; }
.comparison-overview-notes p { margin: 6px 0; }
.comparison-details-title { margin: 0 0 12px; color: var(--muted); font-size: .9rem; }
.comparison-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 14px; }
.comparison-detail { min-width: 0; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.comparison-detail summary { padding: 14px 16px; cursor: pointer; color: var(--navy); }
.comparison-detail summary span { margin-left: 12px; color: var(--muted); font-size: .8rem; }
.comparison-detail[open] summary { border-bottom: 1px solid var(--line); }
.comparison-detail .comparison-card { border: 0; box-shadow: none; }
.comparison-card { min-width: 0; padding: 17px; border: 1px solid #dce4ec; border-radius: 9px; background: #fff; box-shadow: 0 2px 5px rgba(16, 24, 40, .04); }
.comparison-card h4 { display: inline-block; margin: 0 8px 12px 0; color: var(--navy); font-size: 1.08rem; }
.comparison-card dl { display: grid; grid-template-columns: 1fr; gap: 3px; margin: 8px 0; }
.comparison-card dt { margin-top: 8px; color: var(--muted); font-size: .7rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.comparison-card dd { margin: 0; color: var(--ink); font-weight: 750; }
.comparison-calculation { padding: 14px 0; border-top: 1px solid var(--line); }
.comparison-calculation h5 { margin: 0 0 10px; color: var(--navy); font-size: .95rem; }
.comparison-calculation table { width: 100%; }
.comparison-calculation th { text-transform: none; letter-spacing: normal; font-weight: 500; }
.comparison-calculation td { text-align: right; white-space: nowrap; }
.comparison-calculation[data-calculation="guest"] tr:last-child,
.comparison-calculation[data-calculation="economics"] tr:nth-child(3) { background: #edf4fa; }
.comparison-technical { border-top: 1px solid var(--line); margin-top: 8px; }
.comparison-technical > summary { font-size: .85rem; }
.comparison-technical code { overflow-wrap: anywhere; }
.unavailable { color: #8a5a00; font-size: .78rem; font-weight: 650; }
.comparison-summary { margin-top: 16px; padding: 15px 17px; border: 1px solid #e0e7ef; border-radius: 8px; background: #f8fafc; }
.comparison-summary h4, .comparison-summary p { margin: 0; }
.comparison-summary p { margin-top: 5px; color: var(--muted); }

.table-wrap { width: 100%; overflow: auto; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
table { width: 100%; min-width: 820px; border-collapse: collapse; background: #fff; }
th, td { padding: 10px 11px; border-bottom: 1px solid #edf1f5; text-align: left; vertical-align: top; }
thead th { background: #f6f8fb; color: #4a5a70; font-size: .76rem; letter-spacing: .04em; text-transform: uppercase; }
tbody th { color: #344054; }

input, select, button, textarea { font: inherit; }
input[type=text], input[type=number], input[type=date], input[type=email], input[type=password], select { width: 100%; min-height: 38px; padding: 7px 9px; border: 1px solid #cbd5e1; border-radius: 6px; background: #fff; }
button, .button { display: inline-flex; justify-content: center; align-items: center; border: 0; border-radius: 7px; background: var(--blue); color: #fff; padding: 9px 14px; font-weight: 750; text-decoration: none; cursor: pointer; }
.button-secondary { border: 1px solid var(--line); background: #eef3f7; color: var(--navy); }
.muted { color: var(--muted); }
.notice { margin: 12px 0; padding: 11px 13px; border-left: 4px solid var(--teal); border-radius: 6px; background: #edf8f5; }
.notice-warn { border-left-color: #d19b2a; background: #fff8e8; color: #704900; }
.status { display: inline-flex; padding: 3px 8px; border-radius: 999px; background: #eef3f7; color: #405168; font-size: .7rem; font-weight: 800; letter-spacing: .04em; }
.money { white-space: nowrap; font-variant-numeric: tabular-nums; }
.actions { display: flex; justify-content: flex-end; gap: 10px; margin: 18px 0 0; }
.logout { margin: 0; }
.logout button { min-height: 34px; padding: 0 10px; background: transparent; color: #b42318; font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.logout button:hover { color: #8f1d14; text-decoration: underline; }
.offer-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 1.25rem 0; }
.offer-options article { padding: 1rem; border: 1px solid var(--line); border-radius: 12px; background: #f8fafc; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.direct-booking-terms { max-width: 800px; margin-top: 24px; }
.direct-booking-terms .form-grid { gap: 16px 24px; }
.direct-booking-terms .form-grid > label { display: grid; align-content: end; gap: 6px; min-width: 0; color: #475467; font-size: .85rem; font-weight: 650; }
.direct-booking-terms .form-grid > label:last-child { grid-column: 1 / -1; }
.direct-booking-terms input[type=text], .direct-booking-terms input[type=number] { min-width: 0; height: 40px; font-variant-numeric: tabular-nums; }
.direct-booking-terms h5 { margin: 24px 0 8px; font-size: 1rem; }
.cancellation-editor table { min-width: 440px; table-layout: fixed; }
.cancellation-editor th:first-child { width: 46%; }
.cancellation-editor th:nth-child(2) { width: 29%; }
.cancellation-editor th:last-child { width: 25%; }
.cancellation-editor th, .cancellation-editor td { padding: 12px 10px; vertical-align: middle; }
.cancellation-editor td label { display: grid; align-items: center; gap: 8px; margin: 0; white-space: nowrap; color: #475467; font-size: .85rem; }
.cancellation-editor td:first-child label { grid-template-columns: auto minmax(64px, 120px) auto; justify-content: start; }
.cancellation-editor td:nth-child(2) label { grid-template-columns: minmax(0, 140px) auto; justify-content: start; }
.cancellation-editor input { text-align: right; }
.cancellation-editor td:last-child { text-align: right; }
.cancellation-editor [data-cancellation-remainder] { background: #f6f8fb; }
.cancellation-editor [data-cancellation-remainder] td:first-child { color: #344054; font-weight: 650; }
.cancellation-editor tbody tr:last-child td { border-bottom: 0; }
.cancellation-editor button { min-height: 40px; white-space: nowrap; font-size: .82rem; }
.cancellation-editor [data-remove-cancellation] { border: 1px solid var(--line); background: #eef3f7; color: var(--navy); }
.cancellation-actions { display: flex; justify-content: flex-start; margin-top: 12px; }
.mail-preview { padding: 1rem; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
textarea { width: 100%; min-height: 7rem; padding: 7px 9px; border: 1px solid #cbd5e1; border-radius: 6px; }

@media (max-width: 1200px) { .comparison-grid, .diagnostic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1100px) { .admin-nav-grouped { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) {
    body { padding: 12px 8px; }
    .admin-container, .admin-login-shell { padding: 14px; }
    .admin-banner { margin: -2px 0 18px; }
    .admin-header { align-items: flex-start; flex-direction: column; }
    .admin-header-actions { justify-content: flex-start; }
    .admin-nav-grouped, .offer-options, .form-grid, .comparison-grid, .diagnostic-grid, .discount-highlight { grid-template-columns: 1fr; }
    .page-heading { display: block; }
    .admin-card { padding: 16px; }
}

.pricing-manual-list article { margin: 18px 0; padding: 16px; border: 1px solid var(--line); border-radius: 8px; }
.pricing-manual-list details { margin-top: 12px; }
.publication-route { margin-top: 18px; }
.publication-route > summary { color: var(--navy); font-weight: 700; padding: 10px 0; cursor: pointer; }
.publication-calendar { margin: 10px 0; padding: 14px 16px; border: 1px solid var(--line); border-radius: 8px; }
.publication-calendar h4 { margin: 0 0 8px; }
.publication-calendar p { margin: 8px 0; }
.publication-rules, .publication-technical { margin-top: 10px; }
.publication-rules > summary, .publication-technical > summary { cursor: pointer; }
.publication-technical > summary { color: var(--muted); font-size: .9rem; }
#pricing-publication .table-wrap { margin-top: 10px; }
#pricing-publication table[data-business-facts][data-review="initial"] { min-width: 0; table-layout: fixed; }
#pricing-publication table[data-business-facts][data-review="initial"] th,
#pricing-publication table[data-business-facts][data-review="initial"] td { overflow-wrap: anywhere; }
.pricing-manual-list summary { cursor: pointer; font-weight: 650; }
button:disabled { opacity: .55; cursor: not-allowed; }

/* Maintenance paths: text remains explicit without color; only badges are tinted. */
.pricing-maintenance-badge { display: inline-block; max-width: 100%; padding: 2px 5px; border: 1px solid; border-radius: 4px; font-size: .62rem; font-weight: 600; line-height: 1.3; letter-spacing: normal; vertical-align: middle; white-space: normal; }
.pricing-maintenance-automatic { background: #e3f5eb; border-color: #acd9be; color: #20523b; }
.pricing-maintenance-beds24 { background: #e5f3fa; border-color: #afd4e7; color: #24536d; }
.pricing-maintenance-channel { background: #f0eafb; border-color: #cec0e6; color: #57416f; }
.pricing-maintenance-note { display: inline-block; font-size: .65rem; font-weight: 400; line-height: 1.3; color: var(--muted); letter-spacing: normal; text-transform: none; }
.pricing-maintenance-legend { margin: 12px 0 18px; font-size: .8rem; }
.pricing-maintenance-legend summary, .pricing-export-technical summary { cursor: pointer; }
.pricing-maintenance-legend li { margin: 8px 0; }
.pricing-maintenance-channels { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; margin-bottom: 14px; }
.pricing-maintenance-channels > div { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; font-size: .8rem; }
.pricing-maintenance-header { position: relative; min-width: 0; height: 3rem; margin-top: 5px; font-weight: 400; letter-spacing: normal; text-transform: none; }
/* Out of intrinsic table sizing: hints never determine column widths. */
.pricing-maintenance-header-content { position: absolute; inset: 0; }
.pricing-maintenance-header-content > div + div { margin-top: 3px; }
.pricing-maintenance-scope { color: var(--muted); font-size: .62rem; font-weight: 400; }
.pricing-manual-list > section { margin: 18px 0; }
.pricing-manual-list article h5 { margin: 0 0 10px; font-size: .95rem; }
.pricing-manual-list li { margin: 6px 0; }
.pricing-export-technical { margin: 18px 0; font-size: .8rem; }

.publication-history-details { overflow-wrap: anywhere; }

/* Same presentation colours as the existing public Availability calendar. */
#pricing-tab-overrides:checked ~ .pricing-tab-stage .pricing-panel-overrides { display:block; }
.override-fields { display:flex;flex-wrap:wrap;gap:1rem;margin:1.2rem 0; }
.override-fields label { display:flex;flex-direction:column;gap:.3rem; }
.override-fields input[readonly] { cursor:pointer;background:#fff; }
[data-override-picker] { width:min(95vw,520px);border:1px solid #b7c4cc;border-radius:12px;padding:1.2rem; }
[data-override-picker]::backdrop { background:#152d4266; }
.override-navigation { display:flex;gap:1rem;justify-content:space-between; }
.override-calendar { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px; }
.override-calendar > span { text-align:center;padding:.3rem; }
.override-day { min-height:42px;border:2px solid transparent;border-radius:5px;padding:.3rem; }
.override-day.status-available_full,.override-legend .status-available_full { background:#5b9b6f;color:#fff; }
.override-day.status-occupied_full,.override-legend .status-occupied_full { background:#b55b52;color:#fff; }
.override-day.status-unavailable_unknown,.override-day.status-unavailable_stale,.override-day.status-outside_selection_horizon,.override-legend .status-unavailable_unknown { background:#8f98a5;color:#fff; }
.override-day.status-changeover_departure_to_available { background:linear-gradient(135deg,#b55b52 49%,#5b9b6f 51%);color:#fff; }
.override-day.status-changeover_available_to_arrival { background:linear-gradient(135deg,#5b9b6f 49%,#b55b52 51%);color:#fff; }
.override-day.is-selected { border-color:#122b50;box-shadow:inset 0 0 0 2px white; }
.override-day:focus-visible { outline:3px solid #122b50;outline-offset:2px; }
.override-day:disabled { opacity:.35; }
.override-legend span { display:inline-block;padding:.3rem;border-radius:3px; }
[data-period-overrides] table { width:100%; }
[data-period-overrides] td { overflow-wrap:anywhere; }

.override-table-scroll { overflow-x:auto; }
.override-table { min-width:1050px; }
.override-table td { vertical-align:top; }
.override-table input:not([type=checkbox]):not([type=hidden]), .override-table select { width:100%; min-width:90px; box-sizing:border-box; }
.override-table [data-range-from], .override-table [data-range-to] { min-width:112px!important; cursor:pointer; }
.override-table label { display:flex; flex-direction:column; gap:4px; }
.override-table small { display:block; max-width:180px; margin-top:6px; font-size:.75rem; }
.override-table [data-override-input-row] { background:#f5f8fa; }
.override-table [hidden] { display:none; }

.admin-tabs a { display:inline-flex; padding:10px 14px; border:1px solid #d7dde5; border-bottom:0; border-radius:8px 8px 0 0; background:#f7f9fc; color:var(--navy); font-weight:750; text-decoration:none; }
.admin-tabs a[aria-current="page"] { background:#fff; box-shadow:inset 0 -3px 0 var(--navy); }

/* Local, server-rendered Inquiry worklist. */
.inquiry-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:18px 0}
.inquiry-filters label{display:flex;flex-direction:column;gap:5px;font-size:.8rem;color:#52657a;margin:0}
.inquiry-filters input,.inquiry-filters select{min-height:38px;padding:7px 10px;border:1px solid #d4dfe8;border-radius:7px;background:#fff;width:auto}
.inquiry-filters .inquiry-search{flex:1;min-width:220px;max-width:380px}
.inquiry-quick{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}
.inquiry-quick a{padding:6px 12px;border:1px solid #d4dfe8;border-radius:18px;text-decoration:none;color:#1a3a5f;font-size:.85rem}
.inquiry-quick .is-active{background:#1a3a5f;color:white;border-color:#1a3a5f}
.inquiry-active{font-size:.8rem;color:#52657a}
.inquiry-worklist table{min-width:1000px;width:100%;font-size:.88rem}
.inquiry-worklist td{vertical-align:top;padding:14px 10px}
.inquiry-worklist th{font-size:.75rem;letter-spacing:.025em}
.inquiry-worklist tbody tr:hover{background:#f5f8fb}
.inquiry-contact{font-weight:650;text-decoration:none;color:#1a3a5f}
.list-meta{display:block;font-size:.76rem;font-weight:400;color:#52657a;margin-top:5px;overflow-wrap:anywhere}
.inquiry-stay{white-space:nowrap}
.inquiry-phase{display:inline-block;padding:5px 9px;border-radius:12px;background:#edf2f7;color:#1a3a5f;font-size:.76rem;white-space:nowrap}
.phase-bestaetigt,.phase-aufenthalt{background:#e5f3eb;color:#226040}
.phase-reserviert{background:#fff1d8;color:#805710}
.list-attention{color:#a13d19;font-weight:600}
.list-sort{text-decoration:none;color:inherit}.list-sort.is-active{color:#1164a0}
@media(max-width:900px){.inquiry-filters .inquiry-search{max-width:none;flex-basis:100%}.inquiry-worklist .table-wrap{overflow-x:auto}}

/* Inquiry navigation and detail-only roadmap. Native link semantics, no row-click script. */
.inquiry-worklist .inquiry-open-row{position:relative;cursor:pointer}
.inquiry-worklist .inquiry-contact::after{content:"";position:absolute;inset:0;z-index:1;cursor:pointer}
.inquiry-worklist .inquiry-open-row:focus-within{outline:2px solid #1164a0;outline-offset:-2px;background:#f0f6fc}
.inquiry-worklist .inquiry-chevron{font-size:1.5rem;color:#52657a;width:25px;text-align:right}
.inquiry-worklist td{padding-top:10px;padding-bottom:10px}
.inquiry-worklist .list-sort{display:inline-flex;align-items:center;padding:5px 7px;border:1px solid #d4dfe8;border-radius:5px;background:#f5f8fb;white-space:nowrap}
.inquiry-worklist .list-sort:hover,.inquiry-worklist .list-sort:focus-visible{background:#e5eef7;border-color:#1164a0}
.inquiry-worklist .list-sort.is-active{color:#1164a0;border-color:#b0cde7;background:#e8f2fc}
.inquiry-roadmap{display:flex;flex-wrap:wrap;gap:0;list-style:none;padding:0;margin:22px 0 28px}
.inquiry-roadmap li{position:relative;flex:1 1 125px;min-width:125px;padding:12px 12px 12px 0;border-top:2px solid #d4dfe8}
.inquiry-roadmap li strong{display:block;font-size:.85rem;margin-top:8px;color:#1a3a5f}
.roadmap-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#edf2f7;color:#52657a;font-size:.85rem}
.roadmap-done .roadmap-icon{background:#e5f3eb;color:#226040}
.roadmap-current .roadmap-icon{background:#1a3a5f;color:#fff}
.roadmap-attention .roadmap-icon{background:#fff1d8;color:#a13d19}
.roadmap-attention .list-meta{color:#a13d19}
.roadmap-historical{opacity:.8}
.inquiry-history{border-left:3px solid #9cafbe;background:#f5f8fb;padding:10px 14px;color:#52657a}
.inquiry-case-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;margin:20px 0}
.inquiry-case-facts h3{font-size:.9rem;margin:0 0 8px}
.inquiry-case-facts p{font-size:.85rem;margin:5px 0;overflow-wrap:anywhere}
.inquiry-payment-table{width:100%;font-size:.88rem}
.inquiry-receipt{padding:8px 0;border-bottom:1px solid #e4eaf0}
@media(max-width:650px){.inquiry-roadmap{display:block}.inquiry-roadmap li{border-top:0;border-left:2px solid #d4dfe8;padding:8px 12px 12px}.inquiry-roadmap li strong{display:inline;margin-left:8px}.inquiry-case-facts{grid-template-columns:1fr}}

/* Worklist-only sticky stack; its actual control height is measured locally. */
.inquiry-worklist{--inquiry-controls-height:0px;--inquiry-sticky-offset:0px}
.inquiry-sticky-controls{display:flow-root;position:sticky;top:var(--inquiry-sticky-offset);z-index:5;background:#fff;padding:6px 0;border-bottom:1px solid var(--line)}
.inquiry-sticky-controls .inquiry-filters{gap:8px;margin:4px 0 8px}
.inquiry-sticky-controls .inquiry-filters label{gap:3px;font-size:.7rem}
.inquiry-sticky-controls input,.inquiry-sticky-controls select{min-height:32px;padding:5px 8px;font-size:.8rem;max-width:170px}
.inquiry-sticky-controls .inquiry-search{min-width:180px;max-width:280px}
.inquiry-sticky-controls .inquiry-search input{max-width:none;width:100%}
.inquiry-sticky-controls button,.inquiry-sticky-controls .button{min-height:32px;padding:6px 10px;font-size:.78rem}
.inquiry-sticky-controls .inquiry-quick{gap:6px;margin:5px 0}
.inquiry-sticky-controls .inquiry-quick a{padding:4px 10px;font-size:.76rem}
.inquiry-sticky-controls .inquiry-active{margin:5px 0;font-size:.72rem}
.inquiry-worklist .inquiry-table-region{overflow:visible;border-radius:0 0 8px 8px}
.inquiry-worklist .inquiry-table-region table{min-width:1210px;table-layout:fixed;border-collapse:separate;border-spacing:0}
.inquiry-worklist .inquiry-table-region th:nth-child(1){width:120px}
.inquiry-worklist .inquiry-table-region th:nth-child(2){width:max(220px,calc(40% - 264px))}
.inquiry-worklist .inquiry-table-region th:nth-child(3){width:145px}
.inquiry-worklist .inquiry-table-region th:nth-child(4){width:50px}
.inquiry-worklist .inquiry-table-region th:nth-child(5){width:95px}
.inquiry-worklist .inquiry-table-region th:nth-child(6){width:105px}
.inquiry-worklist .inquiry-table-region th:nth-child(7){width:165px}
.inquiry-worklist .inquiry-table-region th:nth-child(8){width:max(280px,calc(60% - 446px))}
.inquiry-worklist .inquiry-table-region th:nth-child(9){width:30px}
.inquiry-worklist .inquiry-beds24{white-space:nowrap;font-variant-numeric:tabular-nums}
.inquiry-worklist .inquiry-table-region :is(th,td):nth-child(8),.inquiry-worklist .inquiry-table-region td:nth-child(8) .list-meta{min-width:280px;overflow-wrap:normal;word-break:normal;white-space:normal;hyphens:none}
.inquiry-worklist.inquiry-enhanced .inquiry-table-region thead th{position:sticky;top:calc(var(--inquiry-sticky-offset) + var(--inquiry-controls-height));z-index:3;background:#f6f8fb;box-shadow:0 1px 0 var(--line)}
.inquiry-worklist .list-sort{white-space:normal;line-height:1.25}
.inquiry-worklist .inquiry-contact{overflow-wrap:anywhere}
.inquiry-worklist .inquiry-stay{white-space:normal}
/* The roadmap and its facts remain unchanged; only the dossier below is regrouped. */
.inquiry-case-summary{display:grid;grid-template-columns:minmax(170px,1fr) minmax(240px,1.4fr) minmax(170px,1fr) minmax(170px,1fr);gap:0;border:1px solid var(--line);border-radius:8px;margin:18px 0 22px;background:#fafcfe}
.case-summary-block{min-width:0;padding:15px;border-right:1px solid var(--line)}
.case-summary-block:last-child{border-right:0}
.case-summary-block h3{margin:0 0 12px;font-size:.73rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.case-summary-block p{margin:6px 0;font-size:.85rem;overflow-wrap:anywhere}
.case-summary-block .case-stay,.case-summary-block .case-guest{font-size:1rem;font-weight:650;color:var(--navy)}
.case-summary-block .list-meta{font-size:.73rem}
.case-rate{padding:8px 0}.case-rate + .case-rate{border-top:1px solid var(--line)}
.case-eyebrow{display:block;font-size:.7rem;color:var(--navy);font-weight:650}
.inquiry-payment-section{margin:20px 0}
.inquiry-payment-section h3{margin:0 0 10px;font-size:1rem;color:var(--navy)}
.inquiry-payment-section h3 .list-meta{display:inline;margin-left:8px}
.inquiry-payment-table{min-width:650px;font-variant-numeric:tabular-nums}
.inquiry-payment-table td{vertical-align:middle;padding:12px}
.inquiry-payment-table .case-due{font-weight:650;white-space:nowrap}
.receipt-primary{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font-size:.85rem}
.receipt-primary > strong{font-size:1rem;color:var(--navy);font-variant-numeric:tabular-nums}
.receipt-primary time{color:var(--muted)}
.inquiry-technical{margin:8px 0;color:var(--muted);font-size:.75rem}
.inquiry-technical > summary{cursor:pointer;padding:5px 0;color:var(--blue);font-weight:550}
.inquiry-technical dl{display:grid;grid-template-columns:minmax(130px,200px) minmax(0,1fr);gap:5px 12px;margin:10px 0}
.inquiry-technical dt,.inquiry-technical dd{margin:0;overflow-wrap:anywhere}
.inquiry-technical dd{color:var(--ink)}
.case-technical{border-top:1px solid var(--line);padding-top:6px}
.inquiry-original > summary{cursor:pointer;font-size:1rem;font-weight:650;color:var(--navy)}
.inquiry-original > summary .list-meta{display:inline;margin-left:12px}
.inquiry-original-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:16px 0}
.inquiry-original-grid h3{font-size:.75rem;color:var(--muted);margin:0 0 8px}
.inquiry-original-grid p{font-size:.85rem;margin:5px 0;overflow-wrap:anywhere}
.inquiry-history{font-size:.8rem;margin:10px 0;padding:8px 12px}
#cancellation:target{min-height:100vh}
@media(max-width:1200px){.inquiry-case-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.case-summary-block:nth-child(2){border-right:0}.case-summary-block:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:1400px){.inquiry-worklist .inquiry-table-region{overflow:auto;max-height:calc(100dvh - var(--inquiry-controls-height) - 30px)}.inquiry-worklist .inquiry-table-region th:nth-child(2){width:220px}.inquiry-worklist .inquiry-table-region th:nth-child(8){width:280px}.inquiry-worklist.inquiry-enhanced .inquiry-table-region thead th{top:0}}
@media(max-width:1000px){.inquiry-sticky-controls{max-height:48dvh;overflow:auto}.inquiry-sticky-controls .inquiry-search{max-width:none;flex-basis:100%}}
@media(max-width:600px){.inquiry-case-summary,.inquiry-original-grid{grid-template-columns:1fr}.case-summary-block{border-right:0;border-bottom:1px solid var(--line)}.case-summary-block:last-child{border-bottom:0}.inquiry-technical dl{grid-template-columns:1fr}.inquiry-technical dt{font-weight:650;margin-top:5px}.inquiry-original > summary .list-meta{display:block;margin-left:0}}

/* Phase 1B: existing record/template forms, no new design family. */
.communication-templates section, .communication-record article { border-top: 1px solid #e1e7ef; padding-top: 20px; margin-top: 24px; min-width: 0; }
.communication-templates label, .communication-record label { display: block; margin: 14px 0; }
.communication-templates textarea { display: block; width: 100%; max-width: 100%; box-sizing: border-box; padding: 10px; border: 1px solid #cbd5e1; border-radius: 6px; }
.communication-templates pre, .communication-record pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.communication-record dl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 8px 16px; }
.communication-record dd { margin: 0; overflow-wrap: anywhere; }
.communication-record input[type=datetime-local] { display: block; max-width: 100%; box-sizing: border-box; }
@media (max-width: 480px) { .communication-record dl { grid-template-columns: minmax(0, 1fr); gap: 4px; } .communication-record dd { margin-bottom: 10px; } }

/* One business switch per stay message; preview spans the row. */
.communication-plan-row { display:grid; grid-template-columns:minmax(0,1fr); gap:8px 24px; }
.communication-mail-preview { display:block; width:100%; height:720px; box-sizing:border-box; border:1px solid #dce5ec; }
.communication-preview h4 { margin:20px 0 12px; }
.communication-record .communication-plan-row { margin-top:16px; padding-top:16px; }
.communication-plan-row label { margin:0; }
.communication-plan-row details { grid-column:1 / -1; min-width:0; }
.communication-plan-row input[type=checkbox] { width:auto; }
.communication-plan-row .communication-status { margin:0; }
.communication-plan-row .communication-save-error,
.communication-plan-row .communication-actions { grid-column:1 / -1; }
.communication-plan-row .communication-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; }
.communication-actions .actions { justify-content:flex-start; flex-wrap:wrap; margin:0; }
.communication-reschedule { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.communication-reschedule label { display:flex; flex-wrap:wrap; align-items:center; gap:8px; min-width:0; }
.communication-sent { color:#247144; font-weight:600; }
.communication-delivery-details p { overflow-wrap:anywhere; }
.communication-history { margin-top:28px; padding-top:8px; border-top:2px solid var(--line); }
.communication-history-row h4 { margin:0 0 8px; font-size:1rem; }
.communication-history-row p { margin:6px 0; overflow-wrap:anywhere; }
.communication-history-row details { margin-top:10px; }
.communication-unsent { margin-top:24px; }
@media(max-width:600px) { .communication-plan-row { grid-template-columns:minmax(0,1fr); } }

/* Admin capture uses the same guest calendar presentation. */
.admin-inquiry-capture .form-grid > label { display:grid; align-content:start; gap:6px; min-width:0; }
.admin-inquiry-state-row { grid-column:1 / -1; }
.admin-inquiry-capture [hidden] { display:none; }
.admin-inquiry-guests { grid-column:1; }
.admin-inquiry-capture .inquiry-date-field { position:relative; min-width:0; }
.admin-inquiry-capture .inquiry-date-field > label { display:block; margin-bottom:6px; }
.admin-inquiry-capture .date-picker-trigger {
    cursor: pointer;
}

.admin-inquiry-capture .date-picker-trigger[aria-disabled="true"] {
    color: var(--muted);
    cursor: not-allowed;
}

.admin-inquiry-capture .date-picker-panel {
    position: absolute;
    z-index: 15;
    width: min(17.25rem, calc(100vw - 1rem));
    margin-top: 0.2rem;
    padding: 0.45rem;
    border: 0.0625rem solid #d2d9de;
    border-radius: 0.125rem;
    background: #fff;
    box-shadow: 0 0.3rem 0.9rem rgb(24 51 77 / 11%);
}

.admin-inquiry-capture .date-picker-toolbar {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    gap: 0.12rem;
    align-items: center;
    margin-bottom: 0.25rem;
}

.admin-inquiry-capture .date-picker-toolbar strong {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    text-align: center;
}

.admin-inquiry-capture .date-picker-toolbar button {
    min-height: 1.55rem;
    padding: 0.12rem 0.28rem;
    border: 0.0625rem solid #d2d9de;
    background: #fff;
    color: var(--ink);
    cursor: pointer;
    font-size: 0.62rem;
    line-height: 1.1;
}

.admin-inquiry-capture .date-picker-weekdays,
.admin-inquiry-capture .date-picker-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.08rem;
}

.admin-inquiry-capture .date-picker-weekdays span {
    padding: 0.08rem 0;
    color: var(--muted);
    font-size: 0.56rem;
    line-height: 1.1;
    text-align: center;
}

.admin-inquiry-capture .date-picker-day {
    aspect-ratio: 1;
    border: 0.0625rem solid #d1d8de;
    border-radius: 0.15rem;
    cursor: pointer;
    font-size: 0.65rem;
    line-height: 1;
}

.admin-inquiry-capture .date-picker-day:disabled {
    cursor: not-allowed;
}

.admin-inquiry-capture .date-picker-day.is-selectable-departure {
    border-color: #18334d;
    cursor: pointer;
}

.admin-inquiry-capture .date-picker-day.is-minimum-stay-blocked,
.admin-inquiry-capture .date-picker-day.is-minimum-stay-blocked:disabled {
    border-color: #cbd8cf;
    background: #e7f0e9;
    color: #68776d;
    cursor: not-allowed;
}

.admin-inquiry-capture .date-picker-day.is-selected {
    box-shadow: inset 0 0 0 0.125rem #fff, 0 0 0 0.1875rem #18334d;
}

.admin-inquiry-capture .date-picker-day:focus-visible,
.admin-inquiry-capture .date-picker-trigger:focus-visible,
.admin-inquiry-capture .date-picker-toolbar button:focus-visible {
    outline: 0.1875rem solid #245b85;
    outline-offset: 0.125rem;
}

.admin-inquiry-capture .date-picker-help {
    margin: 0.32rem 0 0;
    color: var(--muted);
    font-size: 0.62rem;
    line-height: 1.25;
}

.admin-inquiry-capture .availability-day.status-available_full { background: #5b9b6f; color: #fff; }
.admin-inquiry-capture .availability-day.status-occupied_full { background: #b55b52; color: #fff; }
.admin-inquiry-capture .availability-day.status-unavailable_unknown { background: #8f98a5; color: #fff; }
.admin-inquiry-capture .availability-day.status-outside_selection_horizon { background: #8f98a5; color: #fff; }
.admin-inquiry-capture .availability-day.status-unavailable_stale {
    background: repeating-linear-gradient(135deg, #8f98a5 0 0.35rem, #7d8794 0.35rem 0.7rem);
    color: #fff;
}
.admin-inquiry-capture .availability-day.status-changeover_available_to_arrival {
    background: linear-gradient(135deg, #5b9b6f 0 48.5%, rgb(255 255 255 / 75%) 48.5% 51.5%, #b55b52 51.5% 100%);
    color: #fff;
}
.admin-inquiry-capture .availability-day.status-changeover_departure_to_available {
    background: linear-gradient(135deg, #b55b52 0 48.5%, rgb(255 255 255 / 75%) 48.5% 51.5%, #5b9b6f 51.5% 100%);
    color: #fff;
}

/* The canonical Self-Service offer presentation in the Admin comparison. */
.self-service-offer { margin-top: 2rem; padding: clamp(1rem, 3vw, 2.5rem); border: 1px solid #d4dce5; border-radius: .25rem; background: #fff; color: #263749; line-height: 1.6; min-width: 0; }
.self-service-offer:focus { outline: 2px solid #397773; outline-offset: 3px; }
.self-service-offer h3, .self-service-offer h4 { margin: 0 0 1rem; }
.self-service-offer h4 { margin-top: 1.5rem; }
.self-service-offer details { padding: 1rem 0; border-top: 1px solid #d7e0df; }
.self-service-offer summary { cursor: pointer; font-weight: 600; }
.self-service-offer dl { margin: .75rem 0; }
.offer-line { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, auto); gap: .75rem 1.5rem; padding: .65rem 0; align-items: baseline; }
.offer-line dt { overflow-wrap: anywhere; }
.offer-line dd { margin: 0; min-width: 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.offer-total { font-weight: 700; font-size: 1.2rem; }
.offer-note { font-size: .9rem; color: #506766; }
.self-service-offer button:disabled { opacity: .65; cursor: not-allowed; }
@media (max-width: 420px) { .offer-line { grid-template-columns: 1fr; gap: .25rem; } }

.offer-line .offer-accommodation-details { grid-column: 1 / -1; white-space: normal; min-width: 0; }
.offer-accommodation-details details { padding: 0 0 .5rem; border-top: 0; }
.offer-accommodation-details ul { margin: .75rem 0; padding-left: 1.25rem; }
.offer-accommodation-details li + li { margin-top: .4rem; }
.self-service-offer summary:focus-visible { outline: 2px solid #397773; outline-offset: 3px; }
.offer-line .offer-settlement { margin: .25rem 0 0; font-size: .85rem; font-weight: 400; white-space: normal; }
.self-service-offer .offer-document-header { border-bottom: 3px solid #183c60; padding-bottom: 1.5rem; margin-bottom: 2rem; }
.offer-brand-banner { display: block; width: 100%; height: auto; }
.self-service-offer .offer-document-header h3 { margin: 1.75rem 0 0; text-align: center; color: #183c60; font-size: clamp(1.5rem, 4vw, 2rem); }
.self-service-offer > section { margin: 0 0 2rem; min-width: 0; }
.self-service-offer h4 { margin: 0 0 1rem; color: #183c60; font-size: 1.15rem; }
.offer-guest p, .offer-document-footer p { overflow-wrap: anywhere; }
.offer-prices, .offer-payment { background: #f3f6fa; border: 1px solid #d4dce5; padding: clamp(.85rem, 3vw, 1.5rem); border-radius: .25rem; }
.offer-payment .offer-line dd { font-weight: 700; }
.offer-payment .offer-line + .offer-line { border-top: 1px solid #d4dce5; }
.offer-line dd { text-align: right; }
.offer-line .offer-accommodation-details { text-align: left; }
.offer-currency-note { font-size: .9rem; margin: .5rem 0 0; }
.offer-cancellation ul { padding-left: 1.25rem; }
.offer-cancellation li + li { margin-top: .5rem; }
.offer-actions { border-top: 1px solid #d4dce5; padding-top: 1rem; margin-bottom: 2rem; }
.offer-actions button { max-width: 100%; white-space: normal; }
.self-service-offer .offer-document-footer { border-top: 2px solid #183c60; padding-top: 1rem; text-align: center; font-size: .85rem; color: #506176; }
.offer-document-footer p { margin: .25rem 0; }
.offer-comparison > article { display:grid; grid-template-rows:subgrid; grid-row:span 4; min-width:0; padding:.85rem; gap:0; }
.offer-comparison .self-service-offer { padding:.8rem; margin-top:1rem; flex:1; }
.offer-comparison .offer-prices, .offer-comparison .offer-payment { padding:.75rem; }
.offer-comparison .offer-line { gap:.5rem; font-size:.9rem; }
.offer-comparison .offer-total { font-size:1rem; }
.offer-comparison .offer-variant-inputs { min-height:7rem; }
.offer-variant-inputs label { display:block; margin-bottom:.65rem; font-size:.9rem; }
.offer-variant-inputs input, .offer-variant-inputs select, .offer-variant-inputs textarea { display:block; width:100%; box-sizing:border-box; margin-top:.25rem; padding:.55rem; border:1px solid var(--line); border-radius:6px; background:#fff; font:inherit; }
.offer-variant-inputs textarea { height:5rem; resize:vertical; }
.offer-security-option { display:flex; align-items:center; gap:.5rem; margin-top:1rem; }
.offer-security-option input { width:auto; }
@media(max-width:900px) { .offer-comparison { grid-template-columns:1fr; } .offer-comparison [data-offer-variant="STANDARD"] .self-service-offer { margin-top:1rem; } .offer-comparison .offer-variant-inputs { min-height:0; } }

.offer-comparison-context { display:flex; flex-wrap:wrap; gap:1rem 3rem; margin:1rem 0 1.5rem; }
.offer-comparison-context dt { color:var(--muted); font-size:.85rem; }
.offer-comparison-context dd { margin:0; font-weight:650; }
.offer-common-settings { grid-template-columns:repeat(2,minmax(0,1fr)); }
[data-admin-offer-form] [hidden] { display:none; }
.offer-common-settings label { display:grid; gap:.35rem; }
.offer-price-input { display:flex; align-items:center; gap:.5rem; }
.offer-price-input input { min-width:0; flex:1; }
.offer-price-input > span { font-weight:650; }
.offer-technical { margin-top:1rem; overflow-wrap:anywhere; }
.offer-comparison .actions { padding-top:1rem; }
.offer-comparison .actions button { width:100%; }
.offer-comparison .self-service-offer { margin-bottom:0; }
@media (min-width:701px) and (max-width:1000px) { .offer-comparison { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:700px) { .offer-common-settings { grid-template-columns:1fr; } .offer-comparison { grid-template-columns:1fr; } .offer-comparison .offer-variant-inputs { min-height:0; } }

.offer-payment-model { margin:0 0 1rem; font-weight:650; }
