* {
    box-sizing: border-box;
}

[hidden] {
    display: none !important;
}

body {
    margin: 0;
    background: #f5f7fb;
    color: #172033;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

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

.auth-shell {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 32px;
    background: linear-gradient(135deg, #0f766e, #183153);
}

.auth-card {
    width: min(440px, 100%);
    background: #ffffff;
    border-radius: 8px;
    padding: 28px;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .24);
}

.auth-card-wide {
    width: min(760px, 100%);
}

.auth-link-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.registration-form {
    align-items: start;
}

.registration-agent-check {
    justify-self: end;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: auto;
    margin: -2px 0 2px;
    padding: 10px 12px;
    border: 1px solid #cfd9e6;
    border-radius: 999px;
    background: #f8fbff;
    color: #172033;
    font-size: 13px;
    font-weight: 850;
    cursor: pointer;
}

.registration-agent-check input {
    width: auto;
    margin: 0;
    accent-color: #0f766e;
}

.registration-agent-check-top {
    display: flex;
    margin: -8px 0 14px auto;
    max-width: max-content;
}

.error-shell {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 32px;
    background: linear-gradient(135deg, #102033, #0f766e);
}

.error-card {
    width: min(560px, 100%);
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 28px 80px rgba(15, 23, 42, .32);
    padding: 34px;
}

.error-code {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 64px;
    height: 38px;
    border-radius: 999px;
    background: #e6f7f4;
    color: #0f766e;
    font-weight: 900;
    margin-bottom: 18px;
}

.error-card h1 {
    margin: 0 0 10px;
    font-size: 30px;
    line-height: 1.12;
    color: #172033;
}

.error-card p {
    margin: 0;
    color: #5f6b7c;
    line-height: 1.65;
}

.app-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
}

.sidebar {
    background: #102033;
    color: #dbeafe;
    padding: 22px;
}

.brand {
    margin-bottom: 26px;
}

.brand-title {
    color: #ffffff;
    font-size: 22px;
    font-weight: 800;
}

.brand-subtitle {
    color: #8fb1d6;
    font-size: 13px;
    margin-top: 4px;
}

.nav {
    display: grid;
    gap: 8px;
}

.nav a,
.nav button {
    display: block;
    width: 100%;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: #dbeafe;
    padding: 11px 12px;
    text-align: left;
    font: inherit;
    cursor: pointer;
}

.nav a:hover,
.nav button:hover,
.nav .active {
    background: rgba(255, 255, 255, .10);
    color: #ffffff;
}

.main {
    padding: 28px;
    min-width: 0;
}

.topbar {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    margin-bottom: 22px;
}

.topbar-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.page-title {
    margin: 0;
    font-size: 28px;
    line-height: 1.15;
}

.muted {
    color: #697386;
}

.grid {
    display: grid;
    gap: 16px;
    min-width: 0;
}

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

.card {
    background: #ffffff;
    border: 1px solid #dfe7f1;
    border-radius: 8px;
    padding: 18px;
    box-shadow: 0 12px 36px rgba(15, 23, 42, .06);
    min-width: 0;
}

.stat-value {
    font-size: 28px;
    font-weight: 850;
}

.toolbar {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin-bottom: 16px;
}

.search {
    display: flex;
    gap: 8px;
    align-items: center;
}

.table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
}

.rate-table-area {
    border: 1px solid #e5edf5;
    border-radius: 8px;
    background: #ffffff;
    max-height: 68vh;
    overflow: auto;
}

.rate-table {
    min-width: 1500px;
}

.rate-table th,
.rate-table td {
    min-width: 120px;
}

.rate-table textarea {
    min-height: 58px;
    min-width: 180px;
    resize: vertical;
}

.rate-table th:first-child,
.rate-table td:first-child {
    min-width: 70px;
}

.weekday-picker {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 18px;
    align-items: center;
}

.weekday-picker label {
    display: inline-flex;
    gap: 7px;
    align-items: center;
    font-weight: 750;
}

.weekday-picker input {
    width: auto;
}

.meal-charge-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.meal-charge-card {
    border: 1px solid #dfe7f1;
    border-radius: 8px;
    padding: 14px;
    background: #f8fbff;
}

.meal-charge-card strong {
    display: block;
    margin-bottom: 10px;
}

table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

th,
td {
    border-bottom: 1px solid #e5edf5;
    padding: 12px 10px;
    text-align: left;
    vertical-align: top;
}

th {
    color: #526173;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

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

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

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

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

.card.subtle {
    background: #f8fbff;
}

.field {
    display: grid;
    gap: 6px;
}

.field.disabled-field {
    opacity: .48;
}

.field.disabled-field input,
.field.disabled-field select,
.field.disabled-field textarea {
    background: #eef3f8;
    cursor: not-allowed;
}

.field.full {
    grid-column: 1 / -1;
}

.field-label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.inline-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    white-space: nowrap;
    color: #0f766e;
    font-size: 12px;
    font-weight: 900;
}

.inline-checkbox input[type="checkbox"] {
    width: 15px;
    min-height: 15px;
    padding: 0;
    accent-color: var(--brand);
}

label {
    color: #344255;
    font-size: 13px;
    font-weight: 750;
}

input,
select,
textarea {
    width: 100%;
    border: 1px solid #cfd9e6;
    border-radius: 7px;
    padding: 11px 12px;
    color: #172033;
    font: inherit;
    background: #ffffff;
}

textarea {
    min-height: 96px;
    resize: vertical;
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 40px;
    border: 0;
    border-radius: 7px;
    padding: 0 14px;
    background: #0f766e;
    color: #ffffff;
    font-weight: 800;
    cursor: pointer;
}

.button.secondary {
    background: #e8eef6;
    color: #1f2a3d;
}

.button.danger {
    background: #dc2626;
}

.button.small {
    min-height: 32px;
    padding: 0 10px;
    font-size: 13px;
}

.badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 5px 9px;
    font-size: 12px;
    font-weight: 850;
    background: #e8eef6;
    color: #26364c;
}

.badge.pending {
    background: #fff7d6;
    color: #8a5a00;
}

.badge.approved,
.badge.active {
    background: #dcfce7;
    color: #166534;
}

.badge.disabled {
    background: #fee2e2;
    color: #991b1b;
}

.notice {
    margin-bottom: 16px;
    border-radius: 8px;
    padding: 12px 14px;
    background: #dcfce7;
    color: #166534;
    font-weight: 700;
}

.errors {
    margin-bottom: 16px;
    border-radius: 8px;
    padding: 12px 14px;
    background: #fee2e2;
    color: #991b1b;
}

.inline-form {
    display: flex;
    gap: 8px;
    align-items: center;
}

.split {
    display: grid;
    grid-template-columns: 1.4fr .8fr;
    gap: 16px;
}

.image-thumb {
    width: 72px;
    height: 52px;
    object-fit: cover;
    border-radius: 7px;
    background: #e8eef6;
}

.existing-image-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 14px;
}

.existing-image-item {
    border: 1px solid #dbe4f0;
    border-radius: 8px;
    background: #ffffff;
    padding: 8px;
    display: grid;
    gap: 8px;
}

.existing-image-grid img,
.existing-image-item img {
    width: 130px;
    height: 86px;
    object-fit: cover;
    border-radius: 8px;
}

.existing-image-item span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #991b1b;
    font-size: 13px;
    font-weight: 800;
}

.existing-image-item input {
    width: auto;
    min-height: auto;
}

.image-upload-fields {
    display: grid;
    gap: 12px;
}

.image-upload-box {
    border: 1px dashed #b9c6d6;
    border-radius: 8px;
    background: #f8fafc;
    padding: 14px;
}

.collapsible-card {
    padding: 0;
    overflow: hidden;
}

.collapsible-card > summary {
    cursor: pointer;
    list-style: none;
    padding: 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.collapsible-card > summary::-webkit-details-marker {
    display: none;
}

.collapsible-card > summary::before {
    content: "+";
    width: 30px;
    height: 30px;
    border-radius: 999px;
    background: #e8eef6;
    color: #1f2a3d;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    font-weight: 900;
}

.collapsible-card[open] > summary::before {
    content: "-";
}

.collapsible-card > summary > span {
    min-width: 0;
    flex: 1 1 auto;
    display: grid;
    gap: 4px;
}

.collapsible-card > summary strong {
    font-size: 18px;
}

.collapsible-card > summary small {
    color: #697386;
    font-size: 13px;
    font-weight: 700;
}

.collapsible-card > :not(summary) {
    margin: 0 18px 18px;
}

.section-title {
    margin: 0 0 12px;
    font-size: 18px;
}

.pagination {
    margin-top: 16px;
}

.pagination nav > div:first-child {
    display: none;
}

.pagination nav > div:last-child {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
}

.pagination nav > div:last-child > div:first-child {
    color: #697386;
    font-size: 13px;
}

.pagination nav > div:last-child > div:last-child {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
}

.pagination span[aria-current] span,
.pagination a,
.pagination nav span[aria-disabled] span {
    display: inline-flex !important;
    width: auto !important;
    min-width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    border: 1px solid #d8e2ee;
    border-radius: 7px;
    background: #ffffff;
    color: #243044;
    padding: 0 10px;
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
    box-shadow: none;
}

.pagination span[aria-current] span {
    border-color: #0f766e;
    background: #0f766e;
    color: #ffffff;
}

.pagination nav span[aria-disabled] span {
    color: #a7b2c3;
    background: #f4f7fb;
    cursor: not-allowed;
}

.pagination a:hover {
    border-color: #0f766e;
    color: #0f766e;
}

.pagination svg {
    display: block !important;
    width: 14px !important;
    height: 14px !important;
    max-width: 14px !important;
    max-height: 14px !important;
    min-width: 14px !important;
    min-height: 14px !important;
    flex: 0 0 14px;
}

.buyer-body {
    background: #f3f6fb;
}

.buyer-topbar {
    position: sticky;
    top: 0;
    z-index: 10;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 16px 32px;
    background: rgba(255, 255, 255, .94);
    border-bottom: 1px solid #dfe7f1;
    backdrop-filter: blur(10px);
}

.buyer-brand {
    display: grid;
    gap: 2px;
}

.buyer-brand strong {
    font-size: 20px;
}

.buyer-brand span,
.buyer-kicker {
    color: #0f766e;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.buyer-nav {
    display: flex;
    align-items: center;
    gap: 12px;
}

.buyer-nav a,
.buyer-nav span {
    color: #344255;
    font-weight: 750;
}

.buyer-nav .active {
    color: #0f766e;
}

.buyer-main {
    width: min(1220px, calc(100% - 32px));
    margin: 0 auto;
    padding: 28px 0 50px;
}

.buyer-hero {
    min-height: 280px;
    display: flex;
    align-items: end;
    padding: 34px;
    border-radius: 8px;
    color: #ffffff;
    background: linear-gradient(rgba(15, 32, 51, .35), rgba(15, 32, 51, .72)), url("https://images.unsplash.com/photo-1566073771259-6a8506099945?auto=format&fit=crop&w=1600&q=80") center/cover;
}

.buyer-hero h1 {
    max-width: 760px;
    margin: 8px 0;
    font-size: 42px;
    line-height: 1.08;
}

.buyer-hero p {
    max-width: 650px;
    margin: 0;
    font-size: 18px;
}

.buyer-search-card {
    display: block;
    margin: -34px 18px 22px;
    padding: 18px;
    position: relative;
    z-index: 2;
    background: #ffffff;
    border: 1px solid #dfe7f1;
    border-radius: 8px;
    box-shadow: 0 20px 50px rgba(15, 23, 42, .12);
}

.buyer-search-card.is-compact {
    margin: 0 0 22px;
}

.buyer-search-fields {
    display: grid;
    grid-template-columns: minmax(230px, 1.45fr) minmax(150px, .8fr) minmax(150px, .8fr) minmax(230px, 1fr) auto;
    gap: 12px;
    align-items: end;
}

.buyer-search-summary {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(260px, 1.2fr) minmax(220px, 1fr) auto;
    gap: 14px;
    align-items: center;
}

.buyer-search-summary div {
    border-right: 1px solid #e5edf5;
    padding-right: 12px;
}

.buyer-search-summary span,
.buyer-meal-selector-head span {
    color: #697386;
    display: block;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.buyer-search-summary strong {
    display: block;
    color: #172033;
    font-size: 15px;
    margin-top: 3px;
}

.buyer-occupancy-field {
    position: relative;
}

.buyer-occupancy-trigger {
    min-height: 46px;
    text-align: left;
    border: 1px solid #cfd9e6;
    border-radius: 8px;
    padding: 11px 12px;
    background: #ffffff;
    font-weight: 850;
}

.buyer-occupancy-panel {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    z-index: 30;
    width: min(460px, calc(100vw - 48px));
    padding: 16px;
    background: #ffffff;
    border: 1px solid #dfe7f1;
    border-radius: 8px;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .18);
}

.buyer-occupancy-title {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.buyer-room-guest-controls,
.buyer-room-kid-ages {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.buyer-room-kid-ages {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 12px;
}

.buyer-occupancy-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 14px;
}

.buyer-results-shell {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 18px;
}

.buyer-filter-card,
.buyer-hotel-card,
.buyer-room-card,
.buyer-stay-summary,
.buyer-total-box {
    background: #ffffff;
    border: 1px solid #dfe7f1;
    border-radius: 8px;
    box-shadow: 0 12px 32px rgba(15, 23, 42, .06);
}

.buyer-filter-card {
    padding: 18px;
    align-self: start;
    position: sticky;
    top: 88px;
}

.buyer-filter-form {
    display: grid;
    gap: 16px;
    margin-top: 12px;
}

.buyer-filter-form label,
.buyer-filter-form > div {
    display: grid;
    gap: 8px;
}

.buyer-filter-form span {
    font-size: 13px;
    font-weight: 800;
}

.buyer-filter-options {
    display: grid;
    gap: 8px;
}

.buyer-filter-options label {
    border: 1px solid #dfe7f1;
    border-radius: 8px;
    padding: 9px 10px;
    background: #f8fbff;
    display: flex;
    align-items: center;
    gap: 8px;
}

.buyer-filter-options label.disabled {
    color: #98a2b3;
    background: #f3f6fa;
}

.button.compact {
    padding: 8px 10px;
    font-size: 12px;
    min-height: 36px;
}

.booking-action-buttons {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 8px;
}

.rate-mode-grid {
    align-items: start;
    grid-template-columns: repeat(2, minmax(260px, 1fr));
}

.rate-mode-grid .rate-mode-card {
    height: 100%;
    align-content: space-between;
    border: 1px solid #e4ebf3;
    border-radius: 10px;
    background: #f8fbff;
    gap: 12px;
    min-height: 154px;
    padding: 14px;
}

.rate-mode-card label {
    color: #172033;
    font-weight: 900;
}

.rate-mode-card small {
    color: #66758a;
    font-size: 12px;
    line-height: 1.4;
}

.rate-upload-message {
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-radius: 8px;
    color: #9a3412;
    font-weight: 800;
    margin-bottom: 12px;
    padding: 11px 12px;
}

.checkbox-field {
    align-items: flex-start;
}

.checkbox-field input[type="checkbox"] {
    width: auto;
    min-height: auto;
}

.policy-preview {
    min-height: 46px;
    border: 1px solid #d7eadf;
    border-radius: 10px;
    background: #f0fdf4;
    color: #14532d;
    padding: 11px 12px;
    font-weight: 800;
    line-height: 1.5;
}

.rate-breakup-cell {
    position: relative;
}

.rate-breakup-tooltip {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 10px);
    z-index: 20;
    width: max-content;
    min-width: 340px;
    max-width: min(520px, 92vw);
    transform: translateX(-50%);
    border: 1px solid #d8e2ee;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .16);
    padding: 12px;
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
}

.rate-breakup-cell:hover .rate-breakup-tooltip,
.rate-breakup-cell:focus-within .rate-breakup-tooltip {
    opacity: 1;
    visibility: visible;
}

.rate-breakup-line,
.rate-breakup-group header,
.rate-breakup-group p {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 5px 0;
    font-size: 12px;
}

.rate-breakup-tooltip strong {
    text-align: right;
    white-space: nowrap;
}

.rate-breakup-line > span,
.rate-breakup-group span {
    color: var(--muted);
    font-weight: 800;
}

.rate-breakup-line > strong,
.rate-breakup-group header strong {
    color: var(--ink);
    font-size: 13px;
    font-weight: 900;
}

.rate-breakup-line.discount > span,
.rate-breakup-line.discount > strong {
    color: #047857;
}

.rate-breakup-line.discount {
    border: 1px solid #bbf7d0;
    border-radius: 9px;
    background: #ecfdf5;
    margin-top: 5px;
    padding: 7px 10px;
    display: block;
    text-align: left;
}

.rate-breakup-line.discount .package-benefit-text {
    color: #047857;
    display: block;
    font-size: 13px;
    font-weight: 950;
    line-height: 1.25;
    white-space: nowrap;
}

.rate-breakup-group {
    border-top: 1px solid #edf1f6;
    margin-top: 4px;
    padding-top: 4px;
}

.rate-breakup-group:first-child {
    border-top: 0;
    margin-top: 0;
    padding-top: 0;
}

.rate-breakup-group p {
    margin: 0;
    padding: 2px 0;
    font-size: 11px;
}

.rate-breakup-group p strong {
    color: var(--muted);
    font-weight: 800;
}

.rate-breakup-tooltip section {
    border-top: 1px solid #edf1f6;
    margin-top: 6px;
    padding-top: 8px;
    font-weight: 900;
}

.buyer-result-list {
    display: grid;
    align-content: start;
    grid-auto-rows: max-content;
    gap: 14px;
}

.buyer-hotel-card {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr) 220px;
    gap: 18px;
    padding: 16px;
    align-items: center;
}

.buyer-hotel-card > img,
.buyer-hotel-image-placeholder {
    width: 100%;
    height: 170px;
    object-fit: cover;
    border-radius: 8px;
    background: #dfe7f1;
}

.buyer-price-box {
    display: grid;
    gap: 6px;
    align-content: center;
    justify-items: start;
    border-left: 1px solid #e5edf5;
    min-height: 100%;
    padding-left: 18px;
}

.buyer-price-box strong {
    font-size: 24px;
}

.guarantee-text {
    color: #047857;
    font-weight: 900;
    white-space: nowrap;
}

.buyer-usp-strip {
    color: #0f766e;
    font-weight: 800;
    margin: 8px 0;
}

.buyer-usp-strip.compact {
    font-size: 13px;
    line-height: 1.45;
}

.buyer-free-kid-note {
    color: #9a3412;
    font-size: 13px;
    font-weight: 850;
    margin: 8px 0;
}

.buyer-hotel-detail-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 310px;
    gap: 16px;
    margin: 16px 0;
}

.buyer-detail-image-grid,
.buyer-detail-main-image {
    min-height: 320px;
}

.buyer-detail-main-image,
.buyer-hotel-detail-hero img {
    width: 100%;
    height: 320px;
    object-fit: cover;
    border-radius: 8px;
}

.buyer-stay-summary {
    padding: 20px;
    align-content: center;
    display: grid;
    gap: 8px;
}

.buyer-room-card {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr) 190px;
    gap: 16px;
    padding: 16px;
    align-items: center;
    scroll-margin-top: 96px;
}

.buyer-meal-selector-panel {
    display: grid;
    gap: 10px;
    margin-bottom: 12px;
    padding: 12px;
    background: #f8fbff;
    border: 1px solid #e5edf5;
    border-radius: 8px;
}

.buyer-meal-selector-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 12px;
}

.buyer-meal-selector-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
}

.buyer-meal-selector-grid label {
    border: 1px solid #cfd9e6;
    border-radius: 8px;
    padding: 10px 12px;
    cursor: pointer;
    background: #ffffff;
    display: grid;
    gap: 2px;
    min-width: 120px;
}

.buyer-meal-selector-grid label.active {
    border-color: #0f766e;
    background: #ecfdf5;
    color: #0f766e;
}

.buyer-child-bed-panel {
    border-top: 1px solid #e5edf5;
    display: grid;
    gap: 10px;
    padding-top: 10px;
}

.buyer-child-bed-panel > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.buyer-child-bed-panel label {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: flex-start;
    padding: 8px 10px;
    border: 1px solid #dfe7f1;
    border-radius: 8px;
    background: #ffffff;
}

.buyer-child-bed-panel label span {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
}

.buyer-child-bed-panel small {
    color: #697386;
    margin-left: 6px;
}

.buyer-date-rate-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 10px;
}

.buyer-date-rate-grid > div,
.buyer-total-box > div {
    border: 1px solid #e5edf5;
    border-radius: 8px;
    padding: 12px;
    background: #f8fbff;
    display: grid;
    gap: 4px;
}

.buyer-date-rate-grid span,
.buyer-date-rate-grid small,
.buyer-total-box span {
    color: #697386;
}

.buyer-review-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 18px;
}

.sort-pill {
    border: 1px solid #dfe7f1;
    border-radius: 999px;
    background: #ffffff;
    padding: 8px 12px;
    color: #344255;
    font-size: 13px;
    font-weight: 800;
}

.mini-line {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    border-top: 1px solid #e5edf5;
    padding-top: 10px;
}

.text-link {
    color: #0f766e;
    font-weight: 850;
}

.wallet-balance-chip {
    background: #ecfdf5;
    border: 1px solid #bbf7d0;
    border-radius: 999px;
    color: #047857;
    font-weight: 900;
    padding: 9px 13px;
}

.wallet-payment-dialog {
    border: 0;
    border-radius: 8px;
    box-shadow: 0 30px 90px rgba(15, 23, 42, .24);
    max-width: 520px;
    padding: 22px;
    width: calc(100% - 32px);
}

.wallet-payment-dialog::backdrop {
    background: rgba(15, 23, 42, .45);
}

.wallet-payment-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 16px 0;
}

.wallet-payment-grid > div {
    background: #f8fbff;
    border: 1px solid #e5edf5;
    border-radius: 8px;
    display: grid;
    gap: 5px;
    padding: 12px;
}

.wallet-payment-grid span {
    color: #697386;
    font-size: 12px;
    font-weight: 800;
}

.inventory-restock-card .section-heading-row {
    align-items: flex-start;
    display: flex;
    justify-content: space-between;
    gap: 14px;
}

.compact-restock-form {
    align-items: end;
    grid-template-columns: minmax(180px, 260px) auto;
    max-width: 520px;
}

.danger-text {
    color: #dc2626;
}

.success-text {
    color: #0f766e;
}

@media (max-width: 900px) {
    .stats,
    .form-grid,
    .form-grid.three,
    .split {
        grid-template-columns: 1fr;
    }

    .toolbar,
    .topbar,
    .buyer-topbar {
        align-items: stretch;
        flex-direction: column;
    }

    .buyer-search-card,
    .buyer-search-fields,
    .buyer-search-summary,
    .buyer-results-shell,
    .buyer-hotel-card,
    .buyer-hotel-detail-hero,
    .buyer-room-card,
    .buyer-review-grid {
        grid-template-columns: 1fr;
    }
}

/* Finalized buyer frontend ported from the approved prototype. */
:root {
    --ink: #172033;
    --muted: #647084;
    --line: #dfe7f1;
    --brand: #0f766e;
    --brand-dark: #0f5f59;
    --green: #2f8f55;
    --amber: #f59e0b;
    --rose: #dc2626;
}

.buyer-body {
    background: #f5f7fb;
}

.buyer-site {
    min-height: 100vh;
    background: #f5f7fb;
    color: var(--ink);
}

.buyer-header {
    min-height: 76px;
    padding: 10px 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    background: rgba(255, 255, 255, .96);
    border-bottom: 1px solid var(--line);
    position: sticky;
    top: 0;
    z-index: 40;
}

.buyer-brand {
    display: flex;
    align-items: center;
    gap: 14px;
    text-align: left;
}

.buyer-brand img {
    width: 154px;
    height: 42px;
    object-fit: contain;
    object-position: left center;
}

.buyer-brand span {
    display: grid;
    gap: 2px;
}

.buyer-brand-name {
    color: var(--ink);
    font-size: 20px;
    font-weight: 950;
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.buyer-brand strong {
    color: var(--ink);
    font-size: 18px;
    font-weight: 950;
}

.buyer-brand small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.buyer-nav,
.buyer-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.buyer-nav a,
.buyer-header-pill,
.buyer-account-button {
    min-height: 40px;
    border-radius: 10px;
    color: #344054;
    font-weight: 900;
    padding: 8px 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
}

.buyer-nav a.active {
    background: #eaf7f4;
    color: var(--brand-dark);
}

.buyer-header-pill {
    min-width: 130px;
    background: #eef2f7;
    text-align: center;
}

.buyer-account-button {
    min-width: 150px;
    background: #111827;
    color: #ffffff;
    cursor: pointer;
}

.notification-bell {
    position: relative;
    display: inline-flex;
}

.notification-bell-button {
    width: 40px;
    height: 40px;
    border: 1px solid #dbe5f0;
    border-radius: 12px;
    background: #ffffff;
    color: #111827;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .06);
}

.notification-bell-icon {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.1;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.notification-bell-count {
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: #dc2626;
    color: #ffffff;
    font-size: 11px;
    font-weight: 950;
    line-height: 18px;
    position: absolute;
    right: -6px;
    top: -6px;
}

.notification-dropdown {
    width: min(360px, 86vw);
    position: absolute;
    right: 0;
    top: 48px;
    z-index: 80;
    background: #ffffff;
    border: 1px solid #dce6f1;
    border-radius: 14px;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .18);
    overflow: hidden;
}

.notification-dropdown-head {
    padding: 12px 14px;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    border-bottom: 1px solid #edf2f7;
}

.notification-dropdown-head a {
    font-size: 12px;
    font-weight: 900;
    color: #0f766e;
}

.notification-dropdown-head span {
    display: flex;
    align-items: center;
    gap: 8px;
}

.notification-dropdown-head button {
    border: 0;
    background: transparent;
    color: #0f766e;
    cursor: pointer;
    font-size: 12px;
    font-weight: 900;
    padding: 0;
}

.notification-dropdown-list {
    max-height: 360px;
    overflow: auto;
}

.notification-empty {
    min-height: 96px;
    padding: 22px 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #667085;
    font-size: 13px;
    font-weight: 800;
    text-align: center;
}

.notification-item {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    justify-content: space-between;
    padding: 12px 14px;
    border-bottom: 1px solid #edf2f7;
    color: #1f2937;
}

.notification-item-main {
    min-width: 0;
    display: grid;
    gap: 4px;
    color: inherit;
    flex: 1;
}

.notification-item.unread {
    background: #f0fdfa;
}

.notification-item span,
.notification-item small {
    color: #667085;
    font-size: 12px;
}

.notification-read-button {
    border: 0;
    border-radius: 8px;
    background: #dbeafe;
    color: #1d4ed8;
    cursor: pointer;
    font-size: 11px;
    font-weight: 900;
    padding: 6px 8px;
    white-space: nowrap;
}

.notification-read-button:disabled {
    cursor: progress;
    opacity: .65;
}

.notification-page-list {
    display: grid;
    gap: 10px;
}

.notification-page-item {
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 14px;
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
    background: #ffffff;
}

.notification-page-item.unread {
    border-color: #99f6e4;
    background: #f0fdfa;
}

.notification-page-title {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.notification-page-item p {
    margin: 6px 0;
    color: #475467;
}

.buyer-page {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    padding: 38px 0 56px;
}

.buyer-eyebrow {
    display: inline-flex;
    border-radius: 999px;
    padding: 7px 12px;
    background: rgba(255, 255, 255, .16);
    border: 1px solid rgba(255, 255, 255, .28);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.buyer-search-hero {
    min-height: 220px;
    border-radius: 18px;
    padding: 34px;
    color: #ffffff;
    display: grid;
    align-content: center;
    background:
        linear-gradient(90deg, rgba(10, 20, 36, .86), rgba(15, 76, 129, .44)),
        url("https://images.unsplash.com/photo-1582719508461-905c673771fd?auto=format&fit=crop&w=1600&q=80");
    background-size: cover;
    background-position: center;
}

.buyer-marketing-hero {
    position: relative;
    overflow: hidden;
    padding: 0;
    background: #dbe5f0;
}

.buyer-hero-slide {
    position: absolute;
    inset: 0;
    display: block;
    background-size: cover;
    background-position: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity .45s ease;
}

.buyer-hero-slide::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(15, 23, 42, .05), rgba(15, 23, 42, .22));
}

.buyer-hero-slide.active {
    opacity: 1;
    pointer-events: auto;
}

.buyer-hero-controls {
    position: absolute;
    right: 22px;
    bottom: 104px;
    z-index: 3;
    display: inline-flex;
    gap: 8px;
}

.buyer-hero-controls button {
    width: 42px;
    min-height: 42px;
    border: 1px solid rgba(255, 255, 255, .42);
    border-radius: 50%;
    background: rgba(15, 23, 42, .62);
    color: #ffffff;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}

.buyer-home-search-stage {
    position: relative;
    margin-bottom: 124px;
}

.buyer-home-search-stage .buyer-search-hero {
    min-height: 330px;
    padding-bottom: 108px;
}

.buyer-home-search-float {
    position: absolute;
    left: 50%;
    bottom: -76px;
    z-index: 5;
    width: min(1120px, calc(100% - 48px));
    transform: translateX(-50%);
}

.buyer-home-search-float .buyer-booking-widget {
    margin: 0;
    border-color: rgba(214, 225, 239, .98);
    box-shadow: 0 22px 60px rgba(15, 23, 42, .18);
}

.buyer-search-hero h1 {
    margin: 16px 0 10px;
    max-width: 760px;
    font-size: 56px;
    line-height: 1;
    letter-spacing: 0;
}

.buyer-search-hero p {
    margin: 0;
    max-width: 680px;
    color: #edf4ff;
    font-size: 18px;
    line-height: 1.6;
}

.buyer-booking-widget {
    margin: -30px 0 0;
    padding: 18px;
    position: relative;
    z-index: 2;
    color: var(--ink);
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 18px 50px rgba(18, 24, 38, .12);
}

.buyer-booking-widget.compact {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.buyer-main-search-grid,
.buyer-ribbon-inline-edit {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(280px, 1.08fr) minmax(230px, .95fr) auto;
    gap: 12px;
    align-items: end;
}

.buyer-destination-field,
.buyer-date-range,
.buyer-occupancy-field {
    position: relative;
    min-width: 0;
}

.buyer-destination-suggestions {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 8px);
    z-index: 50;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 20px 50px rgba(18, 24, 38, .16);
    padding: 8px;
    display: grid;
    gap: 6px;
}

.buyer-destination-suggestions button {
    min-height: 54px;
    border-radius: 9px;
    background: #ffffff;
    color: var(--ink);
    padding: 9px 10px;
    text-align: left;
    display: grid;
    gap: 3px;
}

.buyer-destination-suggestions button:hover {
    background: #eef8f7;
}

.buyer-destination-suggestions span,
.buyer-destination-empty {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.buyer-destination-empty {
    padding: 12px;
}

.buyer-date-trigger {
    width: 100%;
    min-height: 54px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #ffffff;
    padding: 8px 11px;
    color: var(--ink);
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    text-align: left;
}

.buyer-date-trigger span,
.buyer-date-trigger strong {
    min-width: 0;
    display: grid;
    gap: 2px;
    white-space: nowrap;
}

.buyer-date-trigger strong {
    border-left: 1px solid #e5eaf1;
    padding-left: 10px;
}

.buyer-date-trigger small {
    color: var(--muted);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.buyer-calendar-popover {
    position: absolute;
    left: 0;
    top: calc(100% + 8px);
    width: min(660px, calc(100vw - 40px));
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 22px 60px rgba(18, 24, 38, .18);
    padding: 14px;
    z-index: 45;
}

.buyer-calendar-summary {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) minmax(0, 1fr) 34px;
    align-items: center;
    gap: 12px;
    border-bottom: 1px solid #eef2f7;
    padding-bottom: 10px;
    margin-bottom: 12px;
}

.buyer-calendar-nav {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: #eef8f7;
    color: var(--brand-dark);
    font-size: 22px;
    font-weight: 900;
    line-height: 1;
}

.buyer-calendar-months {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.buyer-calendar-month h4 {
    margin: 0 0 10px;
    font-size: 15px;
}

.buyer-calendar-weekdays,
.buyer-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 5px;
}

.buyer-calendar-weekdays span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    text-align: center;
}

.buyer-calendar-grid button {
    height: 34px;
    border-radius: 8px;
    background: #f8fafc;
    color: #263247;
    font-size: 13px;
    font-weight: 800;
}

.buyer-calendar-grid button.in-range,
.buyer-calendar-grid button:hover {
    background: #e6f4f1;
    color: var(--brand-dark);
}

.buyer-calendar-grid button:disabled {
    cursor: not-allowed;
    background: #f1f5f9;
    color: #b6c1cf;
    text-decoration: line-through;
}

.buyer-calendar-grid button:disabled:hover {
    background: #f1f5f9;
    color: #b6c1cf;
}

.buyer-calendar-grid button.selected {
    background: var(--brand);
    color: #ffffff;
}

.buyer-occupancy-trigger {
    width: 100%;
    min-height: 54px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #ffffff;
    padding: 9px 11px;
    color: var(--ink);
    text-align: left;
    font-weight: 850;
}

.buyer-occupancy-panel {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    width: min(640px, calc(100vw - 40px));
    z-index: 46;
    border: 1px solid #e5eaf1;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 22px 60px rgba(18, 24, 38, .18);
    padding: 12px;
    display: grid;
    gap: 12px;
}

.buyer-occupancy-title {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
}

.buyer-occupancy-title span {
    color: var(--brand-dark);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.buyer-room-guest-controls,
.buyer-room-kid-ages {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.buyer-room-wise-list {
    display: grid;
    gap: 10px;
    max-height: min(460px, 62vh);
    overflow: auto;
    padding-right: 2px;
}

.buyer-occupancy-room-card {
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #f8fbff;
    padding: 10px;
}

.buyer-room-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 9px;
}

.buyer-room-card-head strong {
    color: var(--ink);
    font-size: 14px;
}

.buyer-room-kid-ages {
    grid-template-columns: repeat(4, minmax(100px, 1fr));
    margin-top: 10px;
}

.buyer-occupancy-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}

.buyer-search-ribbon {
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 18px 50px rgba(18, 24, 38, .10);
    padding: 14px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    margin-bottom: 20px;
}

.buyer-ribbon-summary {
    display: grid;
    grid-template-columns: 1.1fr 1.15fr 1fr;
    gap: 10px;
}

.buyer-ribbon-summary div {
    min-height: 56px;
    border: 1px solid #e6edf5;
    border-radius: 10px;
    background: #f8fafc;
    padding: 9px 12px;
    display: grid;
    align-content: center;
    gap: 3px;
}

.buyer-ribbon-summary span,
.buyer-filter-eyebrow {
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.buyer-ribbon-summary strong {
    font-size: 15px;
}

.buyer-promo-grid {
    margin-top: 28px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.buyer-promo-grid article {
    min-height: 178px;
    border-radius: 14px;
    padding: 20px;
    color: #ffffff;
    display: grid;
    align-content: end;
    background-size: cover;
    background-position: center;
    overflow: hidden;
    position: relative;
}

.buyer-promo-grid article::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, rgba(10, 15, 25, .74), rgba(10, 15, 25, .08));
}

.buyer-promo-grid h3,
.buyer-promo-grid p {
    position: relative;
    margin: 0;
}

.buyer-results-layout {
    display: grid;
    grid-template-columns: 292px minmax(0, 1fr);
    gap: 20px;
    margin-top: 20px;
}

.buyer-filters,
.buyer-sort-row,
.buyer-hotel-result,
.buyer-detail-summary-card,
.buyer-info-panel,
.buyer-room-option,
.buyer-review-header,
.buyer-review-stay-card,
.buyer-summary-card {
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 18px 50px rgba(18, 24, 38, .08);
}

.buyer-filters {
    padding: 18px;
    display: grid;
    gap: 16px;
    align-self: start;
    position: sticky;
    top: 92px;
}

.buyer-filter-head,
.buyer-filter-form,
.buyer-filter-group,
.buyer-filter-search,
.buyer-results-main,
.buyer-room-stack,
.buyer-review-stack {
    display: grid;
    gap: 14px;
}

.buyer-filter-group {
    border-top: 1px solid #eef2f7;
    padding-top: 14px;
    gap: 8px;
}

.buyer-filter-group h4,
.buyer-filters h3 {
    margin: 0;
}

.buyer-filter-group label {
    min-height: 34px;
    border: 1px solid #e5eaf1;
    border-radius: 8px;
    background: #ffffff;
    padding: 7px 12px;
    display: inline-flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    color: #344054;
    font-size: 13px;
    font-weight: 800;
}

.buyer-filter-group label.is-disabled {
    background: #f8fafc;
    border-color: #eef2f7;
    color: #a0aec0;
    cursor: not-allowed;
}

.buyer-filter-group input[type="checkbox"] {
    width: 16px;
    min-height: 16px;
    padding: 0;
    accent-color: var(--brand);
}

.buyer-filter-group label span {
    min-width: 0;
    flex: 1 1 auto;
}

.buyer-filter-group label small {
    border-radius: 999px;
    background: #f1f5f9;
    color: #64748b;
    min-width: 24px;
    padding: 3px 7px;
    text-align: center;
    font-size: 11px;
    font-weight: 900;
}

.buyer-results-main {
    align-content: start;
    grid-auto-rows: max-content;
}

.buyer-sort-row {
    min-height: 46px;
    padding: 8px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-shadow: none;
}

.buyer-sort-row label {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--muted);
}

.buyer-sort-row select {
    min-height: 34px;
    width: 170px;
}

.buyer-hotel-result {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr) 220px;
    gap: 18px;
    padding: 16px;
    overflow: hidden;
    align-items: stretch;
}

.buyer-hotel-photo {
    position: relative;
    overflow: hidden;
    border-radius: 10px;
}

.buyer-hotel-photo .thumb,
.buyer-hotel-photo .thumb-placeholder,
.buyer-detail-main-img .thumb,
.buyer-detail-main-img .thumb-placeholder,
.buyer-room-photo .thumb,
.buyer-room-photo .thumb-placeholder,
.buyer-review-photo .thumb,
.buyer-review-photo .thumb-placeholder {
    display: block;
    width: 100%;
    object-fit: cover;
    background: #dfe7f1;
}

.buyer-hotel-photo .thumb,
.buyer-hotel-photo .thumb-placeholder {
    height: 206px;
    border-radius: 10px;
}

.buyer-hotel-photo > span,
.buyer-detail-main-img > span {
    position: absolute;
    left: 12px;
    top: 12px;
    border-radius: 999px;
    background: rgba(15, 23, 42, .78);
    color: #ffffff;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 900;
}

.buyer-result-title-row,
.buyer-room-title-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: start;
}

.buyer-hotel-info h3,
.buyer-room-copy h3,
.buyer-info-panel h2 {
    margin: 0;
}

.buyer-room-copy h3 small {
    color: var(--muted);
    font-size: 15px;
    font-weight: 850;
}

.buyer-result-title-row h3 {
    font-size: 20px;
}

.meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 750;
}

.buyer-result-score {
    min-width: 42px;
    height: 34px;
    border-radius: 8px;
    background: var(--green);
    color: #ffffff;
    display: grid;
    place-items: center;
    font-weight: 900;
}

.buyer-result-title-actions,
.buyer-room-title-actions {
    display: inline-flex;
    align-items: flex-start;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.buyer-offer-badge {
    position: relative;
    outline: none;
}

.buyer-offer-badge > span {
    border: 1px solid #fed7aa;
    border-radius: 999px;
    background: linear-gradient(135deg, #fff7ed, #ffedd5);
    color: #c2410c;
    box-shadow: 0 10px 22px rgba(234, 88, 12, .14);
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 11px;
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.buyer-offer-tooltip {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    z-index: 20;
    width: min(320px, 72vw);
    border: 1px solid #fed7aa;
    border-radius: 12px;
    background: #ffffff;
    color: var(--ink);
    box-shadow: 0 18px 45px rgba(15, 23, 42, .18);
    padding: 11px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    text-align: left;
}

.buyer-offer-badge:hover .buyer-offer-tooltip,
.buyer-offer-badge:focus-within .buyer-offer-tooltip {
    opacity: 1;
    visibility: visible;
}

.buyer-offer-tooltip strong,
.buyer-offer-tooltip p {
    display: block;
    margin: 0;
}

.buyer-offer-tooltip strong {
    color: #c2410c;
    font-size: 12px;
    font-weight: 950;
    margin-bottom: 6px;
}

.buyer-offer-tooltip p {
    color: #475569;
    font-size: 12px;
    line-height: 1.45;
}

.buyer-offer-tooltip p + p {
    margin-top: 7px;
}

.buyer-offer-tooltip b {
    color: var(--ink);
}

.buyer-offer-badge.room-offer .buyer-offer-tooltip {
    right: auto;
    left: 0;
}

.buyer-result-highlights {
    margin-top: 12px;
    display: grid;
    gap: 8px;
}

.buyer-usp-strip {
    margin-top: 14px;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.buyer-usp-strip span {
    border: 1px solid #dbeafe;
    border-radius: 999px;
    background: #eff6ff;
    color: #1e3a8a;
    padding: 8px 11px;
    font-size: 12px;
    font-weight: 900;
}

.buyer-usp-strip.compact {
    margin-top: 0;
}

.buyer-usp-strip.compact span {
    border-color: #bfdbfe;
    background: #ffffff;
    box-shadow: 0 7px 16px rgba(37, 99, 235, .08);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    padding: 5px 9px;
    font-size: 10px;
    line-height: 1.15;
    white-space: normal;
}

.buyer-usp-strip.compact span::before {
    content: "✓";
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #3b82f6;
    color: #ffffff;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    font-size: 10px;
}

.buyer-free-kid-note,
.buyer-nearby-strip {
    width: fit-content;
    border-radius: 999px;
    padding: 5px 9px;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 900;
}

.buyer-free-kid-note {
    background: #ecfdf3;
    color: #047857;
}

.buyer-nearby-strip {
    background: #fff7ed;
    color: #9a3412;
}

.buyer-price-panel,
.buyer-room-price {
    border-left: 1px solid #edf1f6;
    background: #fbfcff;
    border-radius: 10px;
    padding: 16px;
    display: grid;
    align-content: center;
    justify-items: end;
    gap: 8px;
    text-align: right;
}

.buyer-price-panel strong,
.buyer-room-price strong {
    font-size: 28px;
}

.guarantee-stamp {
    width: fit-content;
    max-width: 100%;
    border: 1px solid #86efac;
    border-radius: 999px;
    background: linear-gradient(135deg, #ecfdf3, #dcfce7);
    color: #047857;
    box-shadow: 0 10px 24px rgba(4, 120, 87, .16);
    padding: 7px 12px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    text-align: left;
    font-size: 12px;
    line-height: 1.1;
    font-weight: 950;
    letter-spacing: .01em;
    text-transform: uppercase;
}

.guarantee-stamp::before {
    content: "✓";
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #10b981;
    color: #ffffff;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    font-size: 12px;
}

.buyer-price-panel .guarantee-stamp,
.buyer-room-title-row .guarantee-stamp {
    justify-self: end;
}

.buyer-price-panel .guarantee-stamp.compact {
    padding: 5px 8px;
    gap: 5px;
    font-size: 9px;
    letter-spacing: 0;
    white-space: nowrap;
}

.buyer-detail-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 16px;
    margin-top: 18px;
}

.buyer-detail-main-img {
    min-height: 386px;
    position: relative;
    overflow: hidden;
    border-radius: 14px;
}

.buyer-detail-main-img .thumb,
.buyer-detail-main-img .thumb-placeholder {
    height: 386px;
    border-radius: 14px;
}

.buyer-detail-summary-card {
    padding: 20px;
    display: grid;
    align-content: center;
    gap: 12px;
}

.buyer-detail-summary-card h3 {
    margin: 0;
    font-size: 20px;
}

.buyer-detail-summary-card div {
    border-bottom: 1px solid #edf1f6;
    padding-bottom: 12px;
    display: grid;
    gap: 4px;
}

.buyer-detail-summary-card span,
.buyer-detail-summary-card div span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.buyer-detail-summary-card strong {
    font-size: 15px;
}

.buyer-hotel-heading {
    margin-top: 26px;
}

.buyer-hotel-heading h1 {
    margin: 14px 0 8px;
    font-size: 36px;
}

.buyer-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    margin-top: 18px;
}

.buyer-detail-main,
.buyer-room-stack,
.buyer-review-stack {
    display: grid;
    gap: 14px;
}

.buyer-info-panel,
.buyer-summary-card {
    padding: 18px;
}

.buyer-meal-selector-panel {
    border: 1px solid #dbeafe;
    border-radius: 14px;
    background: linear-gradient(135deg, #ffffff, #f0f9ff);
    box-shadow: 0 18px 44px rgba(18, 24, 38, .09);
    padding: 18px;
    display: grid;
    grid-template-columns: minmax(190px, .75fr) minmax(0, 1.25fr);
    gap: 16px;
    align-items: center;
    margin-bottom: 14px;
}

.buyer-meal-selector-panel h2 {
    margin: 4px 0 0;
    font-size: 21px;
}

.buyer-meal-selector-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.buyer-meal-selector-grid label {
    border: 1px solid #dfe7f1;
    border-radius: 8px;
    background: #ffffff;
    padding: 12px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 4px 8px;
    align-items: start;
    cursor: pointer;
}

.buyer-meal-selector-grid label.active {
    border-color: var(--brand);
    background: #eef8f7;
    box-shadow: 0 10px 22px rgba(15, 118, 110, .16);
}

.buyer-meal-selector-grid input {
    width: 16px;
    min-height: 16px;
    padding: 0;
    margin-top: 2px;
}

.buyer-meal-selector-grid span {
    color: var(--ink);
    font-size: 13px;
    font-weight: 950;
}

.buyer-meal-selector-grid strong {
    grid-column: 2;
    color: var(--brand-dark);
    font-size: 18px;
}

.buyer-child-bed-panel {
    grid-column: 1 / -1;
    border-top: 1px solid #dbeafe;
    padding-top: 14px;
    display: grid;
    grid-template-columns: minmax(190px, .75fr) minmax(0, 1.25fr);
    gap: 14px;
}

.buyer-child-bed-panel > div:last-child {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.buyer-child-bed-panel label {
    border: 1px solid #dfe7f1;
    border-radius: 8px;
    background: #ffffff;
    padding: 9px 10px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.buyer-child-bed-panel input {
    width: 16px;
    min-height: 16px;
    padding: 0;
}

.buyer-room-option {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr) 190px;
    gap: 14px;
    padding: 14px;
    box-shadow: none;
    align-items: center;
}

.buyer-room-photo {
    align-self: center;
}

.buyer-room-photo .image-button {
    display: block;
    width: 100%;
}

.buyer-room-photo .thumb,
.buyer-room-photo .thumb-placeholder {
    height: 178px;
    border-radius: 10px;
}

.buyer-room-copy {
    display: grid;
    gap: 8px;
    align-content: start;
}

.buyer-date-rate-grid {
    margin-top: 6px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.buyer-date-rate-grid div {
    border: 1px solid #dfe7f1;
    border-radius: 8px;
    background: #f8fafc;
    padding: 7px 9px;
    display: grid;
    gap: 2px;
}

.buyer-date-rate-grid span,
.buyer-date-rate-grid small {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
}

.buyer-date-rate-grid strong {
    color: var(--ink);
    font-size: 14px;
}

.policy-note {
    border: 1px solid #fde68a;
    border-radius: 8px;
    background: #fffbeb;
    color: #92400e;
    padding: 8px 10px;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.45;
}

.policy-note.strong {
    font-size: 13px;
}

.buyer-inclusion-strip,
.buyer-review-inclusions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: 2px;
}

.buyer-inclusion-strip span,
.buyer-review-inclusions > div {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 999px;
    color: #14532d;
    font-size: 12px;
    font-weight: 900;
    padding: 5px 9px;
}

.buyer-inclusion-strip > strong {
    color: var(--ink);
    font-size: 12px;
    font-weight: 950;
}

.buyer-inclusion-strip small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
}

.buyer-inclusion-strip .room-detail-link {
    margin-left: 2px;
    font-size: 12px;
}

.buyer-review-inclusions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.buyer-review-inclusions > div {
    border-radius: 8px;
    display: grid;
    gap: 4px;
}

.buyer-review-inclusions span {
    color: #526173;
    font-size: 12px;
    font-weight: 700;
}

.buyer-review-header {
    margin-top: 18px;
    padding: 20px;
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
}

.buyer-review-header h1,
.buyer-review-header p {
    margin: 0;
}

.buyer-review-header h1 {
    margin-top: 6px;
    font-size: 30px;
}

.buyer-review-header p {
    color: var(--muted);
}

.buyer-review-steps {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.buyer-review-steps span {
    min-height: 34px;
    border: 1px solid #e3eaf3;
    border-radius: 999px;
    background: #f8fafc;
    padding: 8px 12px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
}

.buyer-review-steps .done,
.buyer-review-steps .active {
    background: #eaf7f4;
    border-color: #b9dfd7;
    color: var(--brand-dark);
}

.buyer-review-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 18px;
    margin-top: 18px;
}

.buyer-review-stay-card {
    padding: 14px;
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr);
    gap: 16px;
}

.buyer-review-photo .thumb,
.buyer-review-photo .thumb-placeholder {
    height: 154px;
    border-radius: 10px;
}

.buyer-review-stay-card h2 {
    margin: 0 0 8px;
}

.buyer-review-facts {
    margin-top: 14px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.buyer-review-facts div,
.payment-plan-grid div {
    border: 1px solid #e3eaf3;
    border-radius: 8px;
    background: #f8fafc;
    padding: 9px;
    display: grid;
    gap: 4px;
}

.buyer-review-facts span,
.buyer-night-row span,
.payment-plan-grid span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.buyer-review-facts strong,
.buyer-night-row strong,
.payment-plan-grid strong {
    color: var(--ink);
    font-size: 13px;
}

.buyer-nightly-panel {
    display: grid;
    gap: 10px;
}

.buyer-night-row {
    border: 1px solid #e3eaf3;
    border-radius: 10px;
    background: #ffffff;
    padding: 10px;
    display: grid;
    grid-template-columns: minmax(180px, 1.4fr) minmax(90px, .6fr) minmax(140px, .8fr);
    gap: 10px;
    align-items: center;
}

.buyer-night-row > div {
    display: grid;
    gap: 4px;
}

.payment-plan-grid {
    margin-top: 12px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.buyer-summary-card {
    position: sticky;
    top: 92px;
    align-self: start;
}

.buyer-summary-card > div {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid #edf1f6;
    padding: 10px 0;
    font-weight: 800;
}

.buyer-summary-card section {
    margin: 12px 0;
    border-radius: 12px;
    background: #111827;
    color: #ffffff;
    padding: 14px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.buyer-summary-card section strong {
    font-size: 24px;
}

.buyer-summary-card p {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
}

.buyer-summary-card > .coupon-box {
    display: block;
}

.coupon-box {
    border-bottom: 1px solid #edf1f6;
    padding: 12px 0;
}

.coupon-box label {
    display: block;
    color: #697386;
    font-size: 12px;
    font-weight: 900;
    margin-bottom: 8px;
    text-transform: uppercase;
}

.coupon-input-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
}

.coupon-input-row input {
    min-width: 0;
    height: 44px;
    padding: 0 12px;
    border: 1px solid #cfd9e6;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 800;
}

.coupon-input-row .button {
    height: 44px;
    min-width: 78px;
    padding: 0 14px;
    white-space: nowrap;
}

.coupon-box p {
    margin: 8px 0 0;
    display: block;
    font-weight: 800;
}

.coupon-box p.success-text {
    display: inline-flex;
    align-items: center;
    color: #047857;
    background: #ecfdf5;
    border: 1px solid #bbf7d0;
    border-radius: 999px;
    padding: 6px 10px;
}

.coupon-box p.danger-text {
    color: #dc2626;
}

.coupon-admin-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.coupon-conditional {
    margin-top: 14px;
}

.coupon-check-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.coupon-check {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    border: 1px solid #dfe7f1;
    border-radius: 8px;
    background: #f8fbff;
    padding: 12px;
    font-weight: 850;
}

.coupon-check input {
    width: auto;
    margin-top: 3px;
}

.coupon-check small {
    display: block;
    color: #697386;
    font-size: 12px;
    margin-top: 2px;
}

.buyer-final-action {
    width: 100%;
    min-height: 48px;
}

@media (max-width: 980px) {
    .coupon-admin-grid,
    .coupon-check-grid {
        grid-template-columns: 1fr;
    }

    .buyer-header {
        padding: 12px 20px;
        height: auto;
        align-items: flex-start;
        flex-direction: column;
    }

    .buyer-nav,
    .buyer-actions {
        flex-wrap: wrap;
    }

    .buyer-main-search-grid,
    .buyer-ribbon-inline-edit,
    .buyer-ribbon-summary,
    .buyer-results-layout,
    .buyer-hotel-result,
    .buyer-detail-hero,
    .buyer-meal-selector-panel,
    .buyer-meal-selector-grid,
    .buyer-child-bed-panel,
    .buyer-date-rate-grid,
    .buyer-room-option,
    .buyer-review-layout,
    .buyer-review-stay-card,
    .buyer-review-facts,
    .buyer-night-row,
    .payment-plan-grid,
    .buyer-promo-grid {
        grid-template-columns: 1fr;
    }

    .buyer-price-panel,
    .buyer-room-price {
        border-left: 0;
        border-top: 1px solid #edf1f6;
        justify-items: start;
        text-align: left;
    }

    .buyer-search-hero h1 {
        font-size: 40px;
    }
}

/* Buyer polish overrides after the finalized import. */
html {
    scroll-behavior: smooth;
}

.button-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

.wallet-payment-dialog .button-row {
    margin-top: 20px;
}

.buyer-ribbon-inline-edit.buyer-search-ribbon {
    margin-bottom: 20px;
}

.buyer-detail-summary-card h3 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.guarantee-stamp.mini {
    padding: 4px 7px;
    gap: 5px;
    font-size: 8px;
    letter-spacing: 0;
    white-space: nowrap;
}

.guarantee-stamp.mini::before {
    width: 13px;
    height: 13px;
    font-size: 9px;
}

.buyer-room-title-row .guarantee-stamp {
    padding: 6px 8px;
    font-size: 9px;
    letter-spacing: 0;
    white-space: nowrap;
    align-self: start;
}

.buyer-room-title-row .guarantee-stamp::before {
    width: 16px;
    height: 16px;
    font-size: 10px;
}

.buyer-meal-selector-panel {
    padding: 12px 14px;
    gap: 12px;
    margin-bottom: 12px;
}

.buyer-meal-selector-panel h2 {
    font-size: 18px;
}

.buyer-meal-selector-grid label {
    padding: 9px 10px;
}

.buyer-meal-selector-grid strong {
    font-size: 15px;
}

.text-link {
    color: #0f766e;
    font-weight: 900;
    text-decoration: none;
}

.text-link:hover {
    text-decoration: underline;
}

.checkbox-line {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    justify-content: flex-start;
    text-align: left;
    margin-top: 12px;
    color: var(--ink);
    font-size: 14px;
    font-weight: 800;
    width: 100%;
}

.checkbox-line input {
    flex: 0 0 auto;
    margin-top: 3px;
    width: auto;
}

.cancellation-dialog {
    max-width: 620px;
    text-align: left;
}

.booking-filter-bar {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) 170px 150px 150px auto auto;
    gap: 10px;
    align-items: end;
    margin: 12px 0 18px;
}

.booking-filter-bar input,
.booking-filter-bar select {
    min-height: 42px;
}

.booking-confirmation-card {
    width: min(760px, 100%);
    margin: 34px auto;
    border: 1px solid #e3eaf3;
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 20px 60px rgba(15, 23, 42, .08);
    padding: 30px;
    text-align: center;
}

.confirmation-mark {
    width: 58px;
    height: 58px;
    border-radius: 999px;
    background: #dcfce7;
    color: #15803d;
    display: inline-grid;
    place-items: center;
    font-size: 30px;
    font-weight: 900;
    margin-bottom: 14px;
}

.booking-confirmation-card h1 {
    margin: 0 0 8px;
}

.booking-confirmation-card p {
    color: var(--muted);
    line-height: 1.55;
}

.booking-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .8fr);
    gap: 16px;
}

.booking-action-strip {
    margin-top: 16px;
    padding: 14px;
    border: 1px solid #e3eaf3;
    border-radius: 10px;
    background: #f8fbff;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.booking-timeline {
    display: grid;
    gap: 12px;
}

.booking-timeline > div {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 10px;
    position: relative;
}

.booking-timeline > div > span {
    width: 12px;
    height: 12px;
    margin-top: 4px;
    border-radius: 999px;
    background: #cbd5e1;
    box-shadow: 0 0 0 4px #f1f5f9;
}

.booking-timeline > div.active > span {
    background: #0f766e;
    box-shadow: 0 0 0 4px #ccfbf1;
}

.booking-timeline strong {
    display: block;
    color: var(--ink);
    font-size: 14px;
}

.booking-timeline p,
.booking-timeline small,
.booking-facts p {
    margin: 3px 0;
    color: var(--muted);
    line-height: 1.45;
}

.voucher-card {
    border: 1px dashed #0f766e;
    border-radius: 10px;
    background: #f0fdfa;
    padding: 14px;
}

.voucher-card p {
    margin: 6px 0;
}

.voucher-print-body {
    margin: 0;
    background: #eef3f8;
    color: #162033;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.voucher-document {
    width: min(980px, calc(100% - 32px));
    margin: 24px auto;
}

.voucher-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-bottom: 14px;
}

.voucher-sheet {
    background: #ffffff;
    border: 1px solid #dfe7f1;
    border-radius: 14px;
    box-shadow: 0 22px 70px rgba(15, 23, 42, .12);
    padding: 30px;
}

.pulse-voucher {
    overflow: hidden;
    padding: 0;
}

.pulse-voucher-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 20px;
    align-items: start;
    padding: 34px 38px 30px;
    background: linear-gradient(135deg, #312e81 0%, #5b21b6 54%, #7c3aed 100%);
    color: #ffffff;
}

.pulse-voucher-hero span {
    display: inline-block;
    margin-bottom: 8px;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #ddd6fe;
}

.pulse-voucher-hero h1 {
    margin: 0 0 8px;
    font-size: 34px;
    line-height: 1.1;
}

.pulse-voucher-hero p {
    margin: 0;
    color: #ede9fe;
    font-weight: 700;
}

.pulse-voucher-hero > strong {
    border: 1px solid rgba(255, 255, 255, .34);
    border-radius: 999px;
    background: rgba(255, 255, 255, .18);
    padding: 9px 14px;
    font-size: 13px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22);
}

.pulse-booker-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 18px;
    align-items: start;
    padding: 26px 34px 18px;
}

.pulse-booker-brand {
    display: flex;
    gap: 16px;
    align-items: center;
    min-width: 0;
}

.pulse-booker-logo {
    width: 82px;
    height: 82px;
    flex: 0 0 82px;
    border: 1px solid #dbe4f0;
    border-radius: 18px;
    background: #f8fafc;
    display: grid;
    place-items: center;
    overflow: hidden;
}

.pulse-booker-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 8px;
}

.pulse-booker-logo span {
    color: #4c1d95;
    font-size: 22px;
    font-weight: 950;
}

.pulse-booker-brand h2,
.pulse-hotel-card h2 {
    margin: 0 0 5px;
    color: #172033;
    font-size: 22px;
}

.pulse-booker-brand p,
.pulse-hotel-card p,
.pulse-voucher-footer p {
    margin: 0;
    color: #64748b;
    line-height: 1.55;
}

.pulse-voucher-facts {
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #f8fafc;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: hidden;
}

.pulse-voucher-facts > div {
    padding: 12px 14px;
    border-right: 1px solid #e2e8f0;
    border-bottom: 1px solid #e2e8f0;
    min-width: 0;
}

.pulse-voucher-facts > div:nth-child(2n) {
    border-right: 0;
}

.pulse-voucher-facts > div:nth-last-child(-n + 2) {
    border-bottom: 0;
}

.pulse-voucher-facts span,
.pulse-mini-grid span,
.pulse-hotel-card span,
.pulse-date-card span {
    display: block;
    color: #64748b;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.pulse-voucher-facts strong,
.pulse-mini-grid strong {
    display: block;
    margin-top: 4px;
    color: #111827;
    font-size: 14px;
    overflow-wrap: anywhere;
}

.pulse-contact-box {
    margin: 0 34px 18px;
    border: 1px solid #e0e7ff;
    border-radius: 14px;
    background: #eef2ff;
    color: #3730a3;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
    padding: 12px 16px;
    font-size: 13px;
}

.pulse-confirmation-strip {
    margin: 0 34px 20px;
    border-radius: 14px;
    background: linear-gradient(135deg, #16a34a, #15803d);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 18px;
}

.pulse-confirmation-strip span {
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #dcfce7;
}

.pulse-confirmation-strip strong {
    font-size: 17px;
}

.pulse-hotel-stay-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 170px 170px;
    gap: 14px;
    padding: 0 34px 20px;
}

.pulse-hotel-card,
.pulse-date-card,
.pulse-note-card,
.pulse-mini-grid > div {
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 10px 26px rgba(15, 23, 42, .05);
}

.pulse-hotel-card,
.pulse-date-card {
    padding: 16px;
}

.pulse-date-card strong {
    display: block;
    margin-top: 8px;
    color: #111827;
    font-size: 20px;
}

.pulse-date-card small {
    color: #64748b;
    font-weight: 800;
}

.pulse-voucher-section {
    padding: 0 34px 22px;
}

.pulse-voucher-section h2 {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 12px;
    color: #172033;
    font-size: 18px;
}

.pulse-voucher-section h2::after {
    content: "";
    height: 1px;
    flex: 1;
    background: #e2e8f0;
}

.pulse-mini-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 12px;
}

.pulse-mini-grid > div {
    padding: 14px;
}

.pulse-table-wrap {
    overflow-x: auto;
    margin-top: 12px;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
}

.pulse-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 640px;
}

.pulse-table th,
.pulse-table td {
    border-bottom: 1px solid #e2e8f0;
    padding: 12px 14px;
    text-align: left;
    vertical-align: top;
}

.pulse-table th {
    background: #f8fafc;
    color: #334155;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

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

.pulse-note-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.pulse-note-card {
    padding: 16px;
}

.pulse-note-card strong {
    display: block;
    margin-bottom: 8px;
    color: #111827;
}

.pulse-note-card p {
    margin: 6px 0 0;
    color: #475569;
    line-height: 1.55;
}

.pulse-note-card.warning {
    border-color: #fed7aa;
    background: #fff7ed;
}

.voucher-rate-form,
.inline-voucher-rate-form {
    display: inline-flex;
    align-items: flex-start;
    gap: 8px;
    flex-wrap: wrap;
}

.voucher-rate-form label {
    display: grid;
    gap: 4px;
    color: #475569;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.inline-voucher-rate-form label {
    display: grid;
    gap: 4px;
    align-items: start;
}

.inline-voucher-rate-form small {
    color: #64748b;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    white-space: nowrap;
}

.voucher-rate-form input,
.inline-voucher-rate-form input {
    min-height: 38px;
    border: 1px solid #cfd9e6;
    border-radius: 8px;
    padding: 8px 10px;
    font: inherit;
}

.inline-voucher-rate-form input {
    width: 240px;
}

.inline-voucher-rate-form .button {
    min-height: 38px;
}

.supplier-cancel-dialog textarea {
    min-height: 86px;
}

.supplier-waive-fee-line {
    border-color: #bfdbfe;
    background: #eff6ff;
    color: #1e3a8a;
}

.pulse-note-card.warning strong,
.pulse-note-card.warning p {
    color: #9a3412;
}

.pulse-voucher-footer {
    border-top: 1px solid #e2e8f0;
    background: #f8fafc;
    padding: 18px 34px 22px;
    display: grid;
    gap: 4px;
}

.agent-logo-preview {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}

.agent-logo-preview img {
    width: 96px;
    height: 58px;
    object-fit: contain;
    border: 1px solid #dbe4f0;
    border-radius: 10px;
    background: #ffffff;
    padding: 6px;
}

.agent-logo-preview label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #475569;
    font-weight: 800;
}

.supplier-profile-card {
    display: grid;
    gap: 18px;
}

.supplier-logo-row {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.supplier-logo-preview {
    width: 150px;
    height: 96px;
    margin: 0;
    justify-content: center;
    border: 1px solid #dbe4f0;
    border-radius: 12px;
    background: #f8fbff;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
    text-align: center;
}

.supplier-logo-preview img {
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 12px;
}

.hero-slide-list {
    display: grid;
    gap: 14px;
}

.hero-slide-row {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr) 94px;
    gap: 14px;
    align-items: stretch;
    padding: 12px;
    border: 1px solid #e3eaf3;
    border-radius: 12px;
    background: #ffffff;
}

.hero-slide-thumb {
    height: 96px;
    border-radius: 10px;
    overflow: hidden;
    background: #edf2f7;
}

.hero-slide-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.hero-slide-edit-form {
    display: grid;
    grid-template-columns: minmax(140px, 1.1fr) minmax(220px, 1.5fr) 92px 120px;
    gap: 10px;
    align-items: end;
}

.hero-slide-content {
    min-width: 0;
}

.hero-slide-actions {
    display: grid;
    align-content: end;
    gap: 8px;
}

.hero-slide-actions .button,
.hero-slide-actions form,
.hero-slide-actions form .button {
    width: 100%;
}

.hotel-combobox {
    position: relative;
}

.hotel-combobox-menu {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 6px);
    z-index: 30;
    max-height: 280px;
    overflow: auto;
    border: 1px solid #dbe4f0;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 18px 44px rgba(15, 23, 42, .16);
    padding: 6px;
}

.hotel-combobox-menu button,
.hotel-combobox-empty {
    width: 100%;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #172033;
    text-align: left;
    font-size: 13px;
    font-weight: 800;
    padding: 10px;
}

.hotel-combobox-menu button:hover {
    background: #eef6ff;
}

.hotel-combobox-empty {
    color: #64748b;
}

.sticky-form-actions {
    position: sticky;
    bottom: 18px;
    justify-content: flex-end;
    background: rgba(247, 250, 252, .88);
    border: 1px solid #dbe4f0;
    border-radius: 14px;
    padding: 12px;
    backdrop-filter: blur(10px);
    z-index: 4;
}

.voucher-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    gap: 20px;
    padding-bottom: 20px;
    border-bottom: 2px solid #0f766e;
}

.voucher-kicker {
    color: #0f766e;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.voucher-header h1 {
    margin: 6px 0;
    font-size: 30px;
}

.voucher-header p,
.voucher-footer p {
    margin: 0;
    color: var(--muted);
    line-height: 1.5;
}

.voucher-number-box {
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    background: #f8fafc;
    padding: 16px;
    display: grid;
    gap: 5px;
}

.voucher-number-box span,
.voucher-status-row span,
.voucher-grid span {
    color: #64748b;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.voucher-number-box strong {
    font-size: 20px;
}

.voucher-status-row,
.voucher-grid,
.email-preview-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.voucher-status-row {
    margin: 18px 0;
}

.voucher-status-row > div,
.voucher-grid > div,
.email-preview-facts > div {
    border: 1px solid #e3eaf3;
    border-radius: 10px;
    background: #f8fbff;
    padding: 12px;
    display: grid;
    gap: 5px;
}

.voucher-section {
    margin-top: 18px;
}

.voucher-section h2 {
    margin: 0 0 10px;
    font-size: 17px;
}

.voucher-policy-terms {
    display: grid;
    gap: 8px;
    border: 1px solid #bbf7d0;
    border-radius: 10px;
    background: #f0fdf4;
    padding: 12px;
}

.voucher-policy-terms span {
    color: #14532d;
    font-weight: 750;
}

.voucher-footer {
    margin-top: 24px;
    padding-top: 16px;
    border-top: 1px solid #e2e8f0;
}

.email-preview-stack {
    gap: 16px;
}

.email-preview-card {
    border: 1px solid #dfe7f1;
    border-radius: 12px;
    background: #ffffff;
    padding: 18px;
    box-shadow: 0 12px 34px rgba(15, 23, 42, .06);
}

.email-preview-card > span {
    color: #0f766e;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.email-preview-card h2 {
    margin: 6px 0 10px;
}

.email-preview-card p {
    color: #334155;
    line-height: 1.55;
}

.supplier-dashboard-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    margin-bottom: 16px;
    border: 1px solid #dbeafe;
    border-radius: 8px;
    background: linear-gradient(135deg, #eff6ff 0%, #f8fafc 58%, #ecfdf5 100%);
    padding: 20px;
}

.supplier-dashboard-hero span {
    color: #0f766e;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.supplier-dashboard-hero h2 {
    margin: 5px 0 6px;
    color: var(--ink);
    font-size: 24px;
    line-height: 1.18;
}

.supplier-dashboard-hero p,
.dashboard-stat-card p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    font-weight: 750;
    line-height: 1.45;
}

.supplier-dashboard-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
}

.dashboard-stats .dashboard-stat-card {
    text-decoration: none;
    color: inherit;
    transition: transform .15s ease, box-shadow .15s ease;
}

.dashboard-stats .dashboard-stat-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 36px rgba(15, 23, 42, .08);
}

.dashboard-stats.finance-stats {
    margin-top: 16px;
}

.priority-panel {
    border-color: #fed7aa;
    background: #fffaf3;
}

.priority-panel .dashboard-list a {
    border-color: #fed7aa;
    background: #fff7ed;
}

.priority-panel .dashboard-list a:hover {
    border-color: #fb923c;
    background: #ffedd5;
}

.payment-today-panel {
    border-color: #fecaca !important;
    background: #fff1f2 !important;
}

.payment-due-today-card {
    border-color: #fecaca !important;
    background: #fff1f2 !important;
}

.payment-due-today-card:hover {
    border-color: #f87171 !important;
    background: #fee2e2 !important;
}

.payment-due-today-row > td {
    background: #fff1f2;
}

.payment-due-today-row:hover > td {
    background: #fee2e2;
}

.payment-deadline-timer {
    display: grid;
    gap: 2px;
    margin-top: 8px;
    padding: 9px 10px;
    border: 1px solid #fecaca;
    border-radius: 10px;
    background: #fff1f2;
    color: #991b1b;
}

.payment-deadline-timer.compact {
    margin-top: 4px;
    padding: 6px 8px;
    border-radius: 8px;
}

.payment-deadline-timer span {
    color: #991b1b;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.payment-deadline-timer strong {
    color: #b91c1c;
    font-size: 17px;
    line-height: 1.1;
}

.payment-deadline-timer.compact strong {
    font-size: 13px;
}

.payment-deadline-timer small {
    color: #7f1d1d;
    font-size: 11px;
    font-weight: 800;
}

.payment-deadline-timer.overdue {
    border-color: #f87171;
    background: #fee2e2;
}

.dashboard-grid,
.buyer-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 16px;
}

.dashboard-panel,
.buyer-dashboard-grid article {
    min-height: 210px;
}

.buyer-dashboard-grid article {
    border: 1px solid #e3eaf3;
    border-radius: 12px;
    background: #ffffff;
    padding: 16px;
    box-shadow: 0 14px 34px rgba(15, 23, 42, .06);
}

.buyer-profile-header {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: end;
    margin-bottom: 18px;
}

.buyer-profile-header h1 {
    margin: 6px 0;
    font-size: 34px;
}

.buyer-profile-header p {
    margin: 0;
    color: var(--muted);
    font-weight: 700;
}

.buyer-profile-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 18px;
    align-items: start;
}

.buyer-profile-card {
    display: grid;
    gap: 16px;
}

.buyer-profile-logo {
    width: 100%;
    min-height: 150px;
    justify-content: center;
    border: 1px dashed #cbd5e1;
    border-radius: 14px;
    background: #f8fbff;
    color: #64748b;
    font-weight: 900;
    text-align: center;
}

.buyer-profile-logo img {
    width: 180px;
    height: 110px;
}

.dashboard-list {
    display: grid;
    gap: 10px;
}

.dashboard-list a {
    display: grid;
    gap: 3px;
    padding: 10px;
    border: 1px solid #edf1f6;
    border-radius: 10px;
    background: #f8fbff;
    color: var(--ink);
    text-decoration: none;
}

.dashboard-list a:hover {
    border-color: #99f6e4;
    background: #f0fdfa;
}

.dashboard-list strong {
    font-size: 14px;
}

.dashboard-list span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 750;
}

.buyer-dashboard-strip {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    margin: -8px 0 18px;
}

.buyer-dashboard-strip a {
    border: 1px solid #e3eaf3;
    border-radius: 12px;
    background: #ffffff;
    color: var(--ink);
    padding: 14px;
    text-decoration: none;
    display: grid;
    gap: 6px;
    box-shadow: 0 12px 34px rgba(15, 23, 42, .06);
}

.buyer-dashboard-strip span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.buyer-dashboard-strip strong {
    font-size: 22px;
}

@media print {
    .no-print {
        display: none !important;
    }

    .voucher-print-body {
        background: #ffffff;
    }

    .voucher-document {
        width: 100%;
        margin: 0;
    }

    .voucher-sheet {
        border: 0;
        box-shadow: none;
        border-radius: 0;
    }
}

@media (max-width: 980px) {
    .booking-filter-bar {
        grid-template-columns: 1fr;
    }

    .booking-detail-grid {
        grid-template-columns: 1fr;
    }

    .voucher-header,
    .voucher-status-row,
    .voucher-grid,
    .supplier-dashboard-hero,
    .pulse-voucher-hero,
    .pulse-booker-row,
    .pulse-hotel-stay-row,
    .pulse-mini-grid,
    .pulse-note-grid,
    .email-preview-facts,
    .dashboard-grid,
    .buyer-dashboard-grid,
    .buyer-profile-grid,
    .buyer-dashboard-strip {
        grid-template-columns: 1fr;
    }

    .supplier-dashboard-hero-actions {
        justify-content: flex-start;
    }

    .pulse-voucher-hero,
    .pulse-booker-row,
    .pulse-voucher-section,
    .pulse-voucher-footer {
        padding-left: 20px;
        padding-right: 20px;
    }

    .pulse-contact-box,
    .pulse-confirmation-strip {
        margin-left: 20px;
        margin-right: 20px;
    }

    .pulse-hotel-stay-row {
        padding-left: 20px;
        padding-right: 20px;
    }

    .pulse-voucher-hero h1 {
        font-size: 27px;
    }

    .buyer-home-search-stage {
        margin-bottom: 22px;
    }

    .buyer-home-search-stage .buyer-search-hero {
        min-height: 300px;
        padding-bottom: 42px;
    }

    .buyer-home-search-float {
        position: relative;
        left: auto;
        bottom: auto;
        width: 100%;
        margin-top: -56px;
        transform: none;
    }

    .buyer-hero-controls {
        right: 14px;
        bottom: 68px;
    }

    .hero-slide-row,
    .hero-slide-edit-form,
    .supplier-logo-row {
        grid-template-columns: 1fr;
    }

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

    .buyer-main-search-grid {
        grid-template-columns: 1fr;
    }
}

.gallery-controls {
    position: absolute;
    left: 18px;
    bottom: 18px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 9px;
    border-radius: 999px;
    background: rgba(15, 23, 42, .72);
    color: #ffffff;
    font-size: 12px;
    font-weight: 900;
}

.gallery-controls button,
.room-gallery-stage button {
    border: 0;
    border-radius: 999px;
    background: #ffffff;
    color: #0f172a;
    width: 28px;
    height: 28px;
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
}

.image-button {
    display: block;
    width: 100%;
    border: 0;
    padding: 0;
    background: transparent;
    cursor: zoom-in;
}

.image-button .thumb {
    display: block;
}

.image-gallery-dialog {
    width: min(760px, calc(100vw - 28px));
    border: 0;
    border-radius: 16px;
    padding: 18px;
    box-shadow: 0 24px 80px rgba(15, 23, 42, .28);
}

.room-detail-link {
    width: fit-content;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--brand);
    font-weight: 900;
    cursor: pointer;
}

.room-details-dialog {
    width: min(980px, calc(100vw - 28px));
    border: 0;
    border-radius: 18px;
    padding: 0;
    overflow: hidden;
    box-shadow: 0 30px 80px rgba(15, 23, 42, .26);
}

.room-details-dialog::backdrop,
.image-gallery-dialog::backdrop {
    background: rgba(15, 23, 42, .52);
}

.room-details-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    min-height: 520px;
    background: #ffffff;
}

.room-details-gallery {
    position: relative;
    min-height: 520px;
    background: #dbe5f0;
}

.room-details-gallery img {
    width: 100%;
    height: 100%;
    min-height: 520px;
    object-fit: cover;
    display: block;
}

.room-details-gallery-controls {
    position: absolute;
    left: 18px;
    bottom: 18px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 9px;
    border-radius: 999px;
    background: rgba(15, 23, 42, .72);
    color: #ffffff;
    font-size: 12px;
    font-weight: 900;
}

.room-details-gallery-controls button {
    width: 28px;
    min-height: 28px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .18);
    color: #ffffff;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}

.room-details-copy {
    padding: 24px;
    display: grid;
    align-content: start;
    gap: 18px;
}

.room-details-copy h3 {
    margin: 4px 0 0;
    font-size: 28px;
    line-height: 1.08;
}

.room-details-copy p {
    margin: 0;
    color: #475569;
    line-height: 1.6;
    font-weight: 650;
}

.room-detail-facts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.room-detail-facts span {
    border: 1px solid #dbe4f0;
    border-radius: 999px;
    background: #f8fbff;
    color: #243044;
    padding: 7px 10px;
    font-size: 12px;
    font-weight: 900;
}

.room-detail-note {
    border-left: 4px solid var(--brand);
    border-radius: 10px;
    background: #f1f8ff;
    color: #1f3b57;
    padding: 12px 14px;
    font-size: 13px;
    font-weight: 850;
}

.room-detail-inclusions {
    display: grid;
    gap: 10px;
}

.room-detail-inclusions > strong {
    color: #172033;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.room-detail-inclusion-list {
    display: grid;
    gap: 8px;
}

.room-detail-inclusion-list > div {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 10px;
    color: #14532d;
    display: grid;
    gap: 3px;
    padding: 10px 12px;
}

.room-detail-inclusion-list span {
    font-size: 13px;
    font-weight: 900;
}

.room-detail-inclusion-list small {
    color: #526173;
    font-size: 12px;
    font-weight: 700;
}

.room-gallery-stage {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
}

.room-gallery-stage img {
    width: 100%;
    height: min(520px, 68vh);
    object-fit: cover;
    border-radius: 12px;
    background: #eef3f9;
}

.room-gallery-stage button {
    background: #0f766e;
    color: #ffffff;
    width: 42px;
    height: 42px;
}

@media (max-width: 760px) {
    .room-details-shell {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .room-details-gallery,
    .room-details-gallery img {
        min-height: 260px;
        height: 260px;
    }

    .room-details-copy {
        padding: 18px;
    }

    .room-details-copy h3 {
        font-size: 23px;
    }
}

.compact-form {
    align-items: end;
}

.form-actions-end {
    align-self: end;
}

.chain-list {
    display: grid;
    gap: 12px;
}

.chain-row {
    border: 1px solid #e3eaf3;
    border-radius: 10px;
    background: #ffffff;
    padding: 12px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: end;
}

.chain-edit-form {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) 140px auto auto;
    gap: 10px;
    align-items: end;
}

.chain-meta {
    display: flex;
    gap: 8px;
    align-items: center;
    white-space: nowrap;
}

@media (max-width: 980px) {
    .chain-row,
    .chain-edit-form {
        grid-template-columns: 1fr;
    }
}

.filter-bar {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) 220px 160px 160px auto;
    gap: 12px;
    align-items: end;
    margin-bottom: 18px;
}

.audit-snapshot-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 10px;
}

.audit-snapshot-grid pre {
    max-width: 100%;
    max-height: 260px;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
    border: 1px solid #e3eaf3;
    border-radius: 8px;
    background: #f8fafc;
    padding: 10px;
    font-size: 12px;
    line-height: 1.45;
}

@media (max-width: 980px) {
    .filter-bar,
    .audit-snapshot-grid {
        grid-template-columns: 1fr;
    }
}

.booking-message-card {
    margin-top: 16px;
}

.booking-message-thread {
    display: grid;
    gap: 10px;
    max-height: 420px;
    overflow: auto;
    border: 1px solid #e5edf5;
    border-radius: 12px;
    background: #f8fafc;
    padding: 12px;
}

.booking-message {
    width: min(78%, 680px);
    border: 1px solid #dfe7f1;
    border-radius: 12px;
    background: #ffffff;
    padding: 11px 12px;
    box-shadow: 0 10px 24px rgba(18, 24, 38, .06);
}

.booking-message.mine {
    justify-self: end;
    border-color: #b7eadf;
    background: #ecfdf7;
}

.booking-message.theirs {
    justify-self: start;
}

.booking-message > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.booking-message p {
    margin: 8px 0 0;
    color: var(--ink);
    line-height: 1.5;
    white-space: pre-wrap;
}

.booking-message-form {
    margin-top: 12px;
}

.empty-message {
    color: var(--muted);
    font-weight: 800;
    padding: 18px;
    text-align: center;
}

.communication-help-list {
    display: grid;
    gap: 12px;
}

.communication-help-list > div {
    border: 1px solid #e5edf5;
    border-radius: 10px;
    background: #f8fafc;
    padding: 12px;
}

.communication-help-list strong,
.communication-help-list span {
    display: block;
}

.communication-help-list span {
    color: var(--muted);
    margin-top: 4px;
    line-height: 1.45;
}

@media (max-width: 720px) {
    .booking-message {
        width: 100%;
    }

    .booking-message > div {
        display: grid;
        gap: 2px;
    }
}

.floating-chat {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 1000;
    width: min(380px, calc(100vw - 28px));
    color: var(--ink);
}

.floating-chat.is-minimized {
    width: auto;
}

.floating-chat-tab {
    width: 100%;
    min-height: 56px;
    border: 0;
    border-radius: 18px;
    background: linear-gradient(135deg, #0f766e, #115e59);
    color: #ffffff;
    box-shadow: 0 22px 50px rgba(15, 118, 110, .28);
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    cursor: pointer;
    position: relative;
}

.floating-chat.is-minimized .floating-chat-tab {
    width: 58px;
    height: 58px;
    min-height: 0;
    justify-content: center;
    border-radius: 999px;
    padding: 0;
    box-shadow: 0 14px 34px rgba(15, 118, 110, .24);
}

.floating-chat-tab span {
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 999px;
    padding: 5px 8px;
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
}

.floating-chat.is-minimized .floating-chat-tab span {
    border: 0;
    padding: 0;
    font-size: 10px;
    letter-spacing: .02em;
}

.floating-chat-tab strong {
    font-size: 15px;
}

.floating-chat.is-minimized .floating-chat-tab strong {
    display: none;
}

.floating-chat-unread-dot {
    width: 13px;
    height: 13px;
    border: 2px solid #ffffff;
    border-radius: 999px;
    background: #dc2626;
    position: absolute;
    right: 3px;
    top: 3px;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, .16);
}

.floating-chat-panel {
    display: grid;
    gap: 10px;
    border: 1px solid #dbe7f2;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .18);
    overflow: hidden;
}

.floating-chat.is-minimized .floating-chat-panel {
    display: none;
}

.floating-chat:not(.is-minimized) .floating-chat-tab {
    display: none;
}

.floating-chat-panel header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    background: linear-gradient(135deg, #0f766e, #115e59);
    color: #ffffff;
    padding: 13px 14px;
}

.floating-chat-panel header strong,
.floating-chat-panel header span {
    display: block;
}

.floating-chat-panel header span {
    color: #ccfbf1;
    font-size: 12px;
    margin-top: 2px;
}

.floating-chat-panel header button {
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 999px;
    background: rgba(255,255,255,.14);
    color: #ffffff;
    padding: 7px 10px;
    font-weight: 900;
}

.floating-chat-agent-picker {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    padding: 0 12px;
}

.floating-chat-agent-picker button {
    border: 1px solid #cfe4dd;
    border-radius: 10px;
    background: #ecfdf7;
    color: #0f766e;
    cursor: pointer;
    font-weight: 900;
    padding: 8px 10px;
}

.floating-chat-agent-picker input {
    min-width: 0;
    border: 1px solid #dbe5f0;
    border-radius: 10px;
    padding: 8px 10px;
}

.floating-chat-tabs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 0 12px 2px;
}

.floating-chat-tabs button {
    display: inline-flex;
    align-items: center;
    gap: 0;
    max-width: 190px;
    border: 1px solid #dbe5f0;
    border-bottom-color: #cbd5e1;
    border-radius: 10px 10px 0 0;
    background: #eef2f7;
    color: #334155;
    cursor: pointer;
    font-size: 12px;
    font-weight: 900;
    padding: 8px 7px 8px 11px;
    white-space: nowrap;
}

.floating-chat-tabs button.active {
    border-color: #0f766e;
    border-bottom-color: #ecfdf7;
    background: #ecfdf7;
    color: #0f766e;
}

.floating-chat-tabs button span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-right: 7px;
}

.floating-chat-tabs button b {
    min-width: 18px;
    height: 18px;
    border-radius: 999px;
    background: #dc2626;
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
}

.floating-chat-tabs button i {
    width: 18px;
    height: 18px;
    border-radius: 999px;
    color: #64748b;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-style: normal;
    font-size: 15px;
    line-height: 1;
    margin-left: 6px;
}

.floating-chat-tabs button i:hover {
    background: #cbd5e1;
    color: #0f172a;
}

.floating-chat-tab-empty {
    width: 100%;
    color: #64748b;
    font-size: 12px;
    font-weight: 850;
    padding: 8px 2px;
}

.floating-chat-broadcast {
    margin: 0 12px;
    border: 1px solid #fde68a;
    border-radius: 12px;
    background: #fffbeb;
    color: #92400e;
    padding: 10px;
}

.floating-chat-broadcast strong,
.floating-chat-broadcast span {
    display: block;
}

.floating-chat-broadcast span {
    font-size: 12px;
    line-height: 1.45;
    margin-top: 4px;
}

.floating-chat-messages {
    display: grid;
    gap: 8px;
    max-height: 320px;
    min-height: 190px;
    overflow: auto;
    padding: 0 12px;
}

.floating-chat-messages article {
    max-width: 86%;
    border: 1px solid #e3ebf5;
    border-radius: 12px;
    background: #f8fafc;
    padding: 9px 10px;
}

.floating-chat-messages article.mine {
    justify-self: end;
    background: #ecfdf7;
    border-color: #b7eadf;
}

.floating-chat-messages article small {
    display: block;
    color: var(--muted);
    font-size: 11px;
    font-weight: 850;
}

.floating-chat-messages article p {
    margin: 5px 0 0;
    line-height: 1.45;
    white-space: pre-wrap;
}

.floating-chat-panel form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    padding: 12px;
    border-top: 1px solid #edf2f7;
}

.floating-chat-panel textarea {
    min-height: 46px;
    resize: none;
}

/* Mobile compatibility layer */
.supplier-mobile-header,
.mobile-menu-button,
.mobile-menu-backdrop {
    display: none;
}

@media (min-width: 901px) {
    .supplier-mobile-header,
    .mobile-menu-button,
    .mobile-menu-backdrop {
        display: none !important;
    }

    .app-shell {
        display: grid !important;
        grid-template-columns: 260px minmax(0, 1fr) !important;
    }

    .sidebar {
        position: static !important;
        width: auto !important;
        max-width: none !important;
        transform: none !important;
        box-shadow: none !important;
    }

    .main {
        width: auto !important;
        padding: 28px !important;
    }
}

.no-scroll-mobile {
    overflow: hidden;
}

img,
video,
canvas,
svg {
    max-width: 100%;
}

input,
select,
textarea,
button {
    max-width: 100%;
}

@media (max-width: 900px) {
    body {
        overflow-x: hidden;
    }

    .app-shell {
        display: block;
        min-width: 0;
    }

    .mobile-menu-button {
        display: inline-grid;
        grid-template-columns: 18px auto;
        align-items: center;
        gap: 8px;
        min-height: 42px;
        border: 1px solid #cfe0ef;
        border-radius: 999px;
        background: #ffffff;
        color: #102033;
        padding: 8px 13px;
        box-shadow: 0 14px 34px rgba(15, 23, 42, .14);
        font-weight: 950;
    }

    .supplier-mobile-header {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 1102;
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
        gap: 10px;
        min-height: 62px;
        padding: 9px 12px;
        background: rgba(255, 255, 255, .96);
        border-bottom: 1px solid #dfe7f1;
        box-shadow: 0 10px 26px rgba(15, 23, 42, .08);
        backdrop-filter: blur(12px);
    }

    .supplier-mobile-header > strong {
        overflow: hidden;
        padding-left: 54px;
        color: #172033;
        font-size: 14px;
        font-weight: 950;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .mobile-menu-button span {
        display: block;
        grid-column: 1;
        width: 18px;
        height: 2px;
        border-radius: 999px;
        background: #102033;
    }

    .mobile-menu-button strong {
        grid-column: 2;
        grid-row: 1 / 4;
        font-size: 13px;
    }

    .mobile-menu-backdrop {
        position: fixed;
        inset: 0;
        z-index: 1099;
        display: block;
        background: rgba(15, 23, 42, .48);
        backdrop-filter: blur(2px);
    }

    .sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        z-index: 1100;
        width: min(320px, 86vw);
        max-width: 86vw;
        padding: 68px 18px 18px;
        overflow-y: auto;
        transform: translateX(-105%);
        transition: transform .22s ease;
        box-shadow: 24px 0 70px rgba(15, 23, 42, .28);
    }

    .mobile-menu-open .sidebar {
        transform: translateX(0);
    }

    .main {
        width: 100%;
        padding: 82px 14px 18px;
    }

    .topbar {
        gap: 12px;
        margin-bottom: 14px;
    }

    .topbar > div:first-child,
    .topbar-actions,
    .toolbar,
    .filter-bar,
    .booking-filter-bar {
        min-width: 0;
        width: 100%;
    }

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

    .topbar-actions > .notification-bell {
        position: fixed;
        top: 9px;
        left: 112px;
        z-index: 1103;
        display: inline-flex;
        justify-content: center;
        width: 48px;
    }

    .topbar-actions > .notification-bell .notification-bell-button {
        width: 42px;
        height: 42px;
    }

    .page-title {
        font-size: 24px;
    }

    .card,
    .notice,
    .errors {
        padding: 14px;
        border-radius: 12px;
    }

    .grid,
    .stats,
    .form-grid,
    .form-grid.two,
    .form-grid.three,
    .form-grid.four,
    .split,
    .compact-form,
    .compact-restock-form {
        grid-template-columns: 1fr !important;
    }

    .table-wrap,
    .rate-table-area,
    .pulse-table-wrap,
    .card:has(table),
    .booking-message-thread,
    .notification-page-list {
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    table,
    .rate-table,
    .pulse-table {
        width: max-content;
        min-width: 100%;
    }

    .pagination nav,
    .pagination nav > div:last-child,
    .pagination nav > div:last-child > div:last-child {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        align-items: center;
    }

    .pagination svg {
        width: 18px !important;
        height: 18px !important;
    }

    .pagination a,
    .pagination span[aria-current] span,
    .pagination nav span[aria-disabled] span {
        min-width: 34px;
        min-height: 34px;
        padding: 7px 9px;
    }

    .button-row,
    .hero-slide-actions,
    .supplier-dashboard-hero-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
    }

    .button,
    .button.secondary,
    .button.danger {
        min-height: 42px;
        white-space: normal;
    }
}

@media (max-width: 760px) {
    .buyer-header {
        position: sticky;
        top: 0;
        z-index: 60;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 10px;
        padding: 10px 12px;
    }

    .buyer-brand img {
        width: 126px;
        height: 38px;
    }

    .buyer-brand-name {
        max-width: 150px;
        font-size: 17px;
    }

    .buyer-nav {
        grid-column: 1 / -1;
        order: 3;
        width: 100%;
        overflow-x: auto;
        padding-bottom: 2px;
        gap: 8px;
        -webkit-overflow-scrolling: touch;
    }

    .buyer-nav a {
        flex: 0 0 auto;
        min-height: 36px;
        padding: 7px 10px;
        font-size: 13px;
    }

    .buyer-actions {
        grid-column: 2;
        grid-row: 1;
        width: auto;
        justify-content: flex-end;
        gap: 6px;
        overflow: visible;
    }

    .buyer-header-pill {
        display: none;
    }

    .buyer-actions form {
        display: none;
    }

    .buyer-header .notification-bell {
        flex: 0 0 auto;
    }

    .buyer-header .notification-bell-button {
        width: 42px;
        height: 42px;
    }

    .notification-dropdown {
        position: fixed;
        top: 64px;
        right: 10px;
        left: 10px;
        width: auto;
        max-height: min(520px, calc(100vh - 84px));
    }

    .buyer-page {
        padding-left: 12px;
        padding-right: 12px;
    }

    .buyer-home-search-stage .buyer-search-hero {
        min-height: 240px;
        border-radius: 0;
        margin-left: -12px;
        margin-right: -12px;
    }

    .buyer-home-search-float {
        width: auto;
        max-width: none;
        margin-left: 0;
        margin-right: 0;
        margin-top: -34px;
    }

    .buyer-booking-widget {
        padding: 16px;
        max-width: 100%;
        overflow: visible;
    }

    .buyer-main-search-grid,
    .buyer-ribbon-inline-edit,
    .buyer-ribbon-summary,
    .buyer-results-layout,
    .buyer-hotel-result,
    .buyer-detail-hero,
    .buyer-meal-selector-panel,
    .buyer-meal-selector-grid,
    .buyer-child-bed-panel,
    .buyer-date-rate-grid,
    .buyer-room-option,
    .buyer-review-layout,
    .buyer-review-stay-card,
    .buyer-review-facts,
    .buyer-night-row,
    .payment-plan-grid,
    .buyer-promo-grid,
    .buyer-dashboard-grid,
    .buyer-profile-grid,
    .buyer-dashboard-strip,
    .room-details-shell {
        grid-template-columns: 1fr !important;
    }

    .buyer-hotel-photo,
    .buyer-detail-photo,
    .buyer-room-photo {
        min-height: 210px;
    }

    .buyer-room-option {
        padding: 14px;
    }

    .buyer-room-option .buyer-date-rate-grid {
        gap: 8px;
    }

    .buyer-price-panel,
    .buyer-stay-summary,
    .buyer-review-summary,
    .wallet-payment-dialog,
    .confirm-dialog,
    .image-gallery-dialog,
    .room-details-dialog {
        width: min(100%, calc(100vw - 20px));
    }

    .wallet-payment-dialog,
    .confirm-dialog {
        padding: 16px;
    }

    .floating-chat {
        right: 10px;
        bottom: 10px;
        width: calc(100vw - 20px);
    }

    .floating-chat.is-minimized {
        width: auto;
    }

    .floating-chat-panel {
        max-height: min(560px, calc(100vh - 96px));
    }

    .floating-chat:not(.is-minimized) {
        left: 10px;
    }

    .floating-chat:not(.is-minimized) .floating-chat-messages {
        max-height: min(260px, calc(100vh - 330px));
        min-height: 140px;
    }
}

@media (max-width: 420px) {
    .buyer-header {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .buyer-actions {
        width: auto;
        justify-content: flex-end;
    }

    .buyer-header-pill {
        max-width: none;
        flex: 1;
    }

    .page-title {
        font-size: 21px;
    }

    .card {
        padding: 12px;
    }
}

/* Mobile booking flow refinements. Kept at the end so older prototype rules cannot override it. */
@media (max-width: 760px) {
    .buyer-header {
        grid-template-columns: minmax(0, 1fr) auto;
        padding: 8px 10px;
        position: sticky;
    }

    .buyer-brand {
        min-width: 0;
        max-width: calc(100vw - 76px);
        overflow: hidden;
        padding-right: 52px;
    }

    .buyer-brand img {
        width: 112px;
        height: 34px;
    }

    .buyer-brand-name {
        max-width: 112px;
        font-size: 15px;
    }

    .buyer-actions {
        position: absolute;
        top: 8px;
        right: 10px;
        z-index: 2;
        flex: 0 0 auto;
        overflow: visible;
    }

    .buyer-nav {
        min-width: 0;
        max-width: 100%;
    }

    .buyer-header .notification-bell,
    .buyer-header .notification-bell-button {
        flex: 0 0 auto;
    }

    .notification-bell-count {
        right: -4px;
        top: -5px;
    }

    .buyer-page {
        width: 100%;
        padding: 18px 10px 42px;
    }

    .buyer-home-search-stage {
        margin-bottom: 44px;
    }

    .buyer-home-search-stage .buyer-search-hero {
        min-height: 210px;
        border-radius: 14px;
        margin: 0;
        background-position: center;
    }

    .buyer-home-search-float {
        position: relative;
        left: auto;
        bottom: auto;
        transform: none;
        width: 100%;
        margin-top: -42px;
    }

    .buyer-booking-widget,
    .buyer-home-search-float .buyer-booking-widget {
        border-radius: 12px;
        padding: 12px;
    }

    .buyer-search-ribbon {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 8px;
        padding: 9px;
        margin-bottom: 12px;
        border-radius: 12px;
    }

    .buyer-ribbon-summary {
        display: grid;
        grid-template-columns: 1fr;
        gap: 5px;
    }

    .buyer-ribbon-summary div {
        min-height: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        padding: 0;
    }

    .buyer-ribbon-summary div:nth-child(n+2) {
        display: none;
    }

    .buyer-ribbon-summary span {
        font-size: 10px;
    }

    .buyer-ribbon-summary strong {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: 13px;
    }

    .buyer-search-ribbon > .button {
        min-height: 34px;
        padding: 0 10px;
        font-size: 12px;
        white-space: nowrap;
    }

    .buyer-ribbon-inline-edit.buyer-search-ribbon {
        position: fixed;
        inset: auto 10px 10px;
        z-index: 95;
        display: grid;
        grid-template-columns: 1fr;
        max-height: calc(100vh - 24px);
        overflow: auto;
        padding: 12px;
        border-radius: 16px;
        box-shadow: 0 28px 80px rgba(15, 23, 42, .28);
    }

    .buyer-main-search-grid,
    .buyer-ribbon-inline-edit {
        grid-template-columns: 1fr !important;
    }

    .buyer-date-trigger,
    .buyer-occupancy-trigger {
        min-height: 48px;
    }

    .buyer-calendar-popover,
    .buyer-occupancy-panel {
        position: fixed;
        left: 10px;
        right: 10px;
        top: auto;
        bottom: 10px;
        width: auto;
        max-height: min(78vh, 640px);
        overflow: auto;
        z-index: 110;
        border-radius: 16px;
        padding: 12px;
    }

    .buyer-calendar-summary {
        grid-template-columns: 36px minmax(0, 1fr) 36px;
        gap: 8px;
    }

    .buyer-calendar-summary [data-calendar-month-two] {
        display: none;
    }

    .buyer-calendar-months {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .buyer-calendar-grid {
        gap: 4px;
    }

    .buyer-calendar-grid button {
        height: 36px;
        border-radius: 8px;
        font-size: 12px;
    }

    .buyer-occupancy-title {
        align-items: flex-start;
        display: grid;
        gap: 4px;
    }

    .buyer-room-wise-list {
        display: grid;
        gap: 10px;
    }

    .buyer-occupancy-room-card {
        border: 1px solid #e5eaf1;
        border-radius: 12px;
        padding: 10px;
        background: #f8fafc;
    }

    .buyer-room-guest-controls,
    .buyer-room-kid-ages {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .buyer-occupancy-actions {
        position: sticky;
        bottom: -12px;
        margin: 0 -12px -12px;
        padding: 10px 12px;
        background: #ffffff;
        border-top: 1px solid #edf2f7;
    }

    .buyer-results-layout {
        display: grid;
        grid-template-columns: 1fr !important;
        gap: 12px;
        margin-top: 12px;
    }

    .buyer-filters {
        position: static;
        top: auto;
        padding: 10px;
        gap: 8px;
        border-radius: 12px;
    }

    .buyer-filter-head {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 8px;
    }

    .buyer-filter-head h3 {
        font-size: 15px;
    }

    .buyer-mobile-filter-toggle {
        display: inline-flex;
        grid-column: 1 / -1;
        width: 100%;
    }

    .buyer-filters:not(.mobile-filters-open) .buyer-filter-form {
        display: none;
    }

    .buyer-filter-form {
        gap: 10px;
        margin-top: 4px;
    }

    .buyer-filter-group {
        gap: 6px;
        padding-top: 10px;
    }

    .buyer-filter-group label {
        min-height: 32px;
        padding: 6px 9px;
    }

    .buyer-sort-row {
        min-height: 0;
        padding: 8px 10px;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 8px;
    }

    .buyer-sort-row select {
        width: 128px;
    }

    .buyer-sort-row label select {
        display: none;
    }

    .buyer-hotel-result {
        grid-template-columns: 1fr !important;
        gap: 10px;
        padding: 12px;
        align-items: start;
    }

    .buyer-hotel-result,
    .buyer-hotel-result * {
        min-width: 0;
    }

    .buyer-hotel-photo {
        min-height: 0;
    }

    .buyer-hotel-photo .thumb,
    .buyer-hotel-photo .thumb-placeholder {
        height: 176px;
        border-radius: 9px;
    }

    .buyer-result-title-row {
        display: grid;
        gap: 6px;
    }

    .buyer-result-score {
        display: none;
    }

    .buyer-result-title-row h3 {
        font-size: 16px;
        line-height: 1.2;
    }

    .meta,
    .buyer-result-highlights {
        gap: 5px;
        font-size: 11px;
    }

    .buyer-usp-strip.compact span,
    .buyer-free-kid-note,
    .buyer-nearby-strip {
        display: block;
        width: 100%;
        max-width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .buyer-usp-strip.compact span::before {
        display: inline-grid;
        margin-right: 6px;
        vertical-align: middle;
    }

    .buyer-price-panel {
        grid-column: 1 / -1;
        width: 100%;
        border-left: 0;
        border-top: 1px solid #edf1f6;
        border-radius: 0;
        background: transparent;
        padding: 9px 0 0;
        display: grid;
        grid-template-columns: 1fr;
        justify-items: start;
        text-align: left;
        gap: 6px 10px;
    }

    .buyer-price-panel strong {
        font-size: 22px;
    }

    .buyer-price-panel .button {
        width: 100%;
    }

    .buyer-price-panel .button:last-child {
        grid-column: 1 / -1;
    }

    .buyer-price-panel .guarantee-stamp.compact {
        justify-self: start;
        white-space: normal;
    }
}

@media (min-width: 761px) {
    .buyer-mobile-filter-toggle {
        display: none;
    }
}
