:root {
    --bg: #f3f5f8;
    --bg-soft: #f8fafc;
    --panel: #ffffff;
    --panel-2: #fbfdff;
    --text: #111827;
    --muted: #64748b;
    --muted-2: #94a3b8;
    --line: #e2e8f0;
    --line-strong: #cbd5e1;
    --primary: #2563eb;
    --primary-dark: #1d4ed8;
    --primary-soft: #eff6ff;
    --danger: #dc2626;
    --danger-soft: #fef2f2;
    --success: #16a34a;
    --success-soft: #ecfdf5;
    --warning: #d97706;
    --warning-soft: #fffbeb;
    --sidebar: #101827;
    --sidebar-2: #172033;
    --sidebar-text: #dbe4f0;
    --free: #fbfdff;
    --occupied: #eef4ff;
    --shadow: 0 10px 30px rgba(15, 23, 42, .06);
    --shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);
    --radius: 16px;
}

/* v551: clean late-checkout half-day rendering in the room calendar. */
.calendar-cell[data-cell-parts~="late-checkout"] {
    background: linear-gradient(
        90deg,
        var(--departure-fill, var(--booking-fill, var(--occupied))) 0 50%,
        #f6d8cf 50% 100%
    ) !important;
    box-shadow: inset -3px 0 0 rgba(169, 71, 49, .72) !important;
}
.calendar-cell[data-cell-parts~="late-checkout"]::before {
    content: none !important;
    display: none !important;
}
.calendar-cell[data-cell-parts~="late-checkout"]::after {
    content: "↗";
    right: 4px;
    bottom: 3px;
    z-index: 11;
    width: 14px;
    height: 14px;
    border: 1px solid rgba(159, 63, 43, .22);
    background: rgba(255, 255, 255, .88);
    color: #9f3f2b;
    font-size: 9px;
    box-shadow: 0 1px 3px rgba(88, 44, 31, .12);
}
.calendar-cell[data-cell-parts~="late-checkout"] .booking-span-label {
    z-index: 12;
}
.calendar-cell[data-cell-parts~="late-checkout"] .booking-cell-hotspot {
    z-index: 10;
}
.booking-span-label.has-late-checkout-v548 {
    border-right: 3px solid #a94731;
    border-radius: 999px 8px 8px 999px;
}
.half-dot.late-checkout-v548 {
    background: linear-gradient(90deg, var(--occupied) 0 50%, #f6d8cf 50% 100%);
    box-shadow: inset -2px 0 0 #a94731;
}

* { box-sizing: border-box; }
html { height: 100%; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
    min-height: 100%;
    margin: 0;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    line-height: 1.45;
    background: linear-gradient(180deg, #f8fafc 0%, var(--bg) 44%, #eef2f7 100%);
    color: var(--text);
    -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
strong { font-weight: 800; }
small { color: var(--muted); }

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

.sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    background: linear-gradient(180deg, var(--sidebar), var(--sidebar-2));
    color: var(--sidebar-text);
    padding: 22px 18px;
    display: flex;
    flex-direction: column;
    gap: 22px;
    border-right: 1px solid rgba(255,255,255,.08);
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.24) transparent;
}
.sidebar::-webkit-scrollbar { width: 8px; }
.sidebar::-webkit-scrollbar-track { background: transparent; }
.sidebar::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,.20);
    border-radius: 999px;
    border: 2px solid transparent;
    background-clip: padding-box;
}
.sidebar::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.34); background-clip: padding-box; }
.manager-mobile-header-v336 { flex: 0 0 auto; min-width: 0; }
.manager-menu-toggle-v336 { display: none; }
.manager-mobile-panel-v336 {
    display: flex;
    flex: 1 0 auto;
    min-height: max-content;
    flex-direction: column;
    gap: 22px;
}
.brand { display: flex; gap: 12px; align-items: center; min-width: 0; }
.brand-mark {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    background: rgba(255,255,255,.10);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
    font-size: 22px;
}
.brand-title { color: #fff; font-weight: 850; letter-spacing: -.02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.brand-subtitle { color: #9fb0c7; font-size: 11px; text-transform: uppercase; letter-spacing: .11em; margin-top: 2px; }
.nav { display: grid; gap: 7px; }
.nav a {
    text-decoration: none;
    padding: 11px 12px;
    border-radius: 12px;
    color: var(--sidebar-text);
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 8px;
}
.nav a.active, .nav a:hover {
    background: rgba(255,255,255,.11);
    color: #fff;
}
/* Explicit manager sidebar ordering. CSS order must match the PHP navigation order. */
.sidebar .nav a[href="index.php"] { order: 10; }
.sidebar .nav a[href="stays.php"] { order: 20; }
.sidebar .nav a[href="bookings.php"] { order: 30; }
.sidebar .nav a[href="clients.php"] { order: 40; }
.sidebar .nav a[href="tasks.php"] { order: 50; }
.sidebar .nav a[href="units.php"] { order: 60; }
.sidebar .nav a[href="stats.php"] { order: 70; }
.sidebar .nav a[href="staff.php"] { order: 80; }
.sidebar .nav a[href="settings.php"] { order: 90; }
.sidebar .nav a[href="admin.php"] { order: 100; }

.sidebar-footer { margin-top: auto; display: grid; gap: 12px; }
.user-card {
    padding: 12px;
    border-radius: 14px;
    background: rgba(255,255,255,.08);
    font-size: 13px;
    min-width: 0;
}
.user-card strong, .user-card span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-card span { color: #9fb0c7; margin-top: 2px; }
.logout { color: #fecaca; text-decoration: none; font-size: 14px; font-weight: 700; }
.logout:hover { color: #fff; }

.main {
    min-width: 0;
    padding: 24px;
}
.topbar {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 18px;
}
h1 { margin: 0; font-size: clamp(24px, 2.4vw, 34px); line-height: 1.08; letter-spacing: -.035em; }
h2 { margin: 0 0 12px; font-size: 17px; letter-spacing: -.01em; }
p { margin: 0 0 10px; }

.toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}
.month-switcher {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}
.month-switcher strong {
    min-width: 180px;
    text-align: center;
    font-size: 18px;
    letter-spacing: -.01em;
}
.inline-form { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.search-form { flex: 1; align-items: stretch; }
.search-form input { min-width: min(360px, 100%); flex: 1; }
.search-form select { width: auto; min-width: 160px; }

.btn {
    border: 1px solid var(--line-strong);
    background: #fff;
    color: var(--text);
    border-radius: 12px;
    min-height: 40px;
    padding: 9px 14px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    cursor: pointer;
    font-weight: 800;
    box-shadow: var(--shadow-sm);
    transition: background .15s ease, border-color .15s ease, transform .15s ease;
}
.btn:hover { border-color: #94a3b8; transform: translateY(-1px); }
.btn.primary { background: var(--primary); border-color: var(--primary); color: #fff; }
.btn.primary:hover { background: var(--primary-dark); border-color: var(--primary-dark); }
.btn.ghost { background: #fff; }
.btn.small { min-height: 32px; padding: 6px 10px; font-size: 13px; border-radius: 10px; }
.btn.danger { background: #fff; border-color: #fecaca; color: var(--danger); margin-left: auto; }
.btn.full { width: 100%; }

.flash {
    padding: 12px 14px;
    border-radius: 14px;
    background: var(--success-soft);
    color: #065f46;
    margin-bottom: 14px;
    border: 1px solid #bbf7d0;
    font-weight: 650;
}
.flash.danger { background: var(--danger-soft); color: #991b1b; border-color: #fecaca; }
.flash.info { background: #eef6ff; color: #1d4ed8; border-color: #bfdbfe; }

.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 16px;
}
.panel {
    background: rgba(255,255,255,.94);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 16px;
    box-shadow: var(--shadow-sm);
}
.muted { color: var(--muted); }
.mini-booking {
    display: grid;
    gap: 2px;
    text-decoration: none;
    padding: 11px 12px;
    border: 1px solid var(--line);
    border-radius: 13px;
    margin-top: 8px;
    background: var(--panel-2);
}
.mini-booking:hover { border-color: #bfdbfe; background: var(--primary-soft); }
.mini-booking span { display: block; color: var(--muted); font-size: 13px; margin-top: 2px; }

.calendar-wrap {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: auto;
    box-shadow: var(--shadow);
    max-width: 100%;
}
.calendar-table {
    --cell-w: 76px;
    border-collapse: separate;
    border-spacing: 0;
    min-width: 1180px;
    width: 100%;
    table-layout: fixed;
}
.calendar-table th,
.calendar-table td {
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}
.calendar-table th:last-child,
.calendar-table td:last-child { border-right: 0; }
.calendar-table tr:last-child td,
.calendar-table tr:last-child th { border-bottom: 0; }
.unit-col {
    position: sticky;
    left: 0;
    z-index: 30;
    background: #fff;
    width: 190px;
    min-width: 190px;
    max-width: 190px;
    text-align: left;
    padding: 12px;
    box-shadow: 10px 0 18px rgba(15, 23, 42, .05);
}
thead .unit-col { z-index: 60; top: 0; background: #f8fafc; }
.unit-name { font-weight: 850; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.unit-col small { color: var(--muted); display: block; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.day-head {
    position: sticky;
    top: 0;
    z-index: 20;
    width: 76px;
    min-width: 76px;
    max-width: 76px;
    padding: 9px 4px;
    text-align: center;
    background: #f8fafc;
    font-size: 13px;
    font-weight: 850;
}
.day-head small { color: var(--muted); display: block; font-size: 11px; margin-top: 1px; }
.day-head.today { background: #fff7ed; color: #9a3412; }
.calendar-cell {
    width: 76px;
    min-width: 76px;
    max-width: 76px;
    height: 66px;
    vertical-align: top;
    padding: 5px;
    position: relative;
    overflow: visible;
}
/* Booking status colors for calendar cell backgrounds */
.calendar-cell.cell-status-request { --booking-fill: #fef3c7; }
.calendar-cell.cell-status-confirmed { --booking-fill: #dbeafe; }
.calendar-cell.cell-status-deposit_paid { --booking-fill: #dcfce7; }
.calendar-cell.cell-status-checked_in { --booking-fill: #ede9fe; }
.calendar-cell.cell-status-checked_out { --booking-fill: #e5e7eb; }
.calendar-cell.cell-status-cancelled { --booking-fill: #fee2e2; }

/* Half-day arrival/departure calendar fills */
.calendar-cell.free { background: var(--free); }
.calendar-cell.occupied-full { background: var(--booking-fill, var(--occupied)); }
.calendar-cell.occupied-arrival { background: linear-gradient(90deg, var(--free) 0 50%, var(--booking-fill, var(--occupied)) 50% 100%); }
.calendar-cell.occupied-departure { background: linear-gradient(90deg, var(--booking-fill, var(--occupied)) 0 50%, var(--free) 50% 100%); }
.calendar-cell.occupied-turnover,
.calendar-cell.occupied-same-day { background: linear-gradient(90deg, var(--booking-fill, var(--occupied)) 0 50%, var(--booking-fill, var(--occupied)) 50% 100%); }
.calendar-cell.today { box-shadow: inset 0 0 0 2px #fed7aa; background: #fff7ed; }
.calendar-cell.today.occupied-full { background: var(--booking-fill, var(--occupied)); }
.calendar-cell.today.occupied-arrival { background: linear-gradient(90deg, #fff7ed 0 50%, var(--booking-fill, var(--occupied)) 50% 100%); }
.calendar-cell.today.occupied-departure { background: linear-gradient(90deg, var(--booking-fill, var(--occupied)) 0 50%, #fff7ed 50% 100%); }
.calendar-cell.today.occupied-turnover,
.calendar-cell.today.occupied-same-day { background: var(--booking-fill, var(--occupied)); }
.free-link {
    display: grid;
    place-items: center;
    height: 100%;
    border-radius: 10px;
    text-decoration: none;
    color: transparent;
    font-size: 20px;
    font-weight: 900;
}
.calendar-cell.free:hover .free-link { background: var(--primary-soft); color: var(--primary); }
.booking-chip {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-decoration: none;
    font-size: 12px;
    line-height: 1.15;
    font-weight: 850;
    padding: 7px 7px;
    border-radius: 10px;
    color: #111827;
    margin-bottom: 4px;
    border: 1px solid rgba(15, 23, 42, .06);
    box-shadow: 0 1px 2px rgba(15, 23, 42, .05);
}
.booking-chip:hover { outline: 2px solid rgba(37,99,235,.20); }
.booking-chip span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.booking-chip small { display: none; }
.booking-chip.part-arrival { border-top-right-radius: 14px; border-bottom-right-radius: 14px; }
.booking-chip.part-departure { border-top-left-radius: 14px; border-bottom-left-radius: 14px; opacity: .96; }
.booking-chip.part-same_day { outline: 1px dashed rgba(15,23,42,.22); }


.booking-cell-hotspot {
    position: absolute;
    inset: 4px;
    z-index: 1;
    border-radius: 10px;
    text-decoration: none;
}
.booking-cell-hotspot:hover { background: rgba(255,255,255,.28); }
.booking-span-label {
    position: absolute;
    left: calc(var(--start-offset, 0) * var(--cell-w));
    top: calc(50% + (var(--label-index, 0) * 30px));
    transform: translateY(-50%);
    width: calc(var(--span-days, 1) * var(--cell-w));
    min-width: 42px;
    min-height: 28px;
    z-index: 8;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 5px 8px;
    border-radius: 999px;
    color: #111827;
    font-size: 12px;
    line-height: 1.1;
    font-weight: 900;
    text-decoration: none;
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 5px 14px rgba(15, 23, 42, .12);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.booking-span-label:hover { outline: 2px solid rgba(37,99,235,.22); }
.booking-span-label span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}

.status-request { background: #fef3c7; }
.status-confirmed { background: #dbeafe; }
.status-deposit_paid { background: #dcfce7; }
.status-checked_in { background: #ede9fe; }
.status-checked_out { background: #e5e7eb; }
.status-cancelled { background: #fee2e2; }
.legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    color: var(--muted);
    font-size: 13px;
    margin: 14px 0 0;
    align-items: center;
}
.dot { width: 12px; height: 12px; display: inline-block; border-radius: 99px; margin-right: 6px; vertical-align: -1px; border: 1px solid rgba(15,23,42,.08); }
.half-dot { width: 18px; height: 12px; display: inline-block; border-radius: 99px; margin-right: 6px; vertical-align: -1px; border: 1px solid rgba(15,23,42,.08); }
.half-dot.arrival { background: linear-gradient(90deg, var(--free) 0 50%, var(--booking-fill, var(--occupied)) 50% 100%); }
.half-dot.departure { background: linear-gradient(90deg, var(--booking-fill, var(--occupied)) 0 50%, var(--free) 50% 100%); }
.dot.request { background: #fef3c7; }
.dot.confirmed { background: #dbeafe; }
.dot.deposit_paid { background: #dcfce7; }
.dot.checked_in { background: #ede9fe; }
.dot.checked_out { background: #e5e7eb; }
.dot.cancelled { background: #fee2e2; }

.table-panel { padding: 0; overflow: auto; }
.table-scroll { overflow: auto; }
.data-table {
    border-collapse: collapse;
    width: 100%;
    min-width: 760px;
}
.data-table th,
.data-table td {
    padding: 13px 14px;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
}
.data-table th {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--muted);
    background: #f8fafc;
    font-weight: 850;
}
.data-table tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover { background: #fbfdff; }
.data-table small { color: var(--muted); display: inline-block; margin-top: 2px; }
.booking-date-cell {
    width: 220px;
    min-width: 220px;
}
.booking-date-stack {
    display: flex;
    flex-direction: column;
    gap: 8px;
    line-height: 1.2;
}
.booking-date-line {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
}
.booking-date-label {
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
    white-space: nowrap;
}
.booking-date-value {
    color: var(--text);
    font-weight: 850;
    white-space: nowrap;
}
.actions { text-align: right !important; white-space: nowrap; }
.status-pill {
    display: inline-flex;
    align-items: center;
    padding: 6px 9px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 850;
    border: 1px solid rgba(15, 23, 42, .06);
}
.empty-state { text-align: center; color: var(--muted); padding: 34px !important; }

.form-grid { display: grid; gap: 14px; }
.form-grid.two-col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.full-span { grid-column: 1 / -1; }
label {
    display: grid;
    gap: 7px;
    font-weight: 780;
    font-size: 14px;
    min-width: 0;
}
label small { font-weight: 500; }
input,
select,
textarea {
    width: 100%;
    min-height: 42px;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    padding: 10px 12px;
    font: inherit;
    background: #fff;
    color: var(--text);
}
textarea { resize: vertical; min-height: 88px; }
input:focus,
select:focus,
textarea:focus {
    outline: 3px solid #dbeafe;
    border-color: var(--primary);
}
.check-row { display: flex; gap: 8px; align-items: center; align-self: end; }
.check-row input { width: auto; min-height: auto; }
.form-actions {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 4px;
    padding-top: 8px;
}
.form-section {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .11em;
    color: var(--muted);
    border-top: 1px solid var(--line);
    padding-top: 18px;
    margin-top: 4px;
    font-weight: 900;
}
.form-section:first-of-type { border-top: 0; padding-top: 0; }

.login-body {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 22px;
    background: radial-gradient(circle at top left, #dbeafe, transparent 34%), radial-gradient(circle at bottom right, #ede9fe, transparent 34%), #f8fafc;
}
.login-card {
    width: min(440px, 100%);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 22px;
    padding: 24px;
    box-shadow: 0 22px 55px rgba(15, 23, 42, .14);
}
.install-brand { margin-bottom: 20px; }
.install-brand .brand-title { color: var(--text); }
.install-brand .brand-subtitle { color: var(--muted); }
.form-stack { display: grid; gap: 14px; }
code { background: #f1f5f9; padding: 2px 6px; border-radius: 6px; }

.tabs {
    display: flex;
    gap: 8px;
    margin: 0 0 16px;
    overflow-x: auto;
    padding-bottom: 2px;
}
.tabs a {
    text-decoration: none;
    padding: 10px 14px;
    border: 1px solid var(--line-strong);
    border-radius: 999px;
    background: #fff;
    color: var(--muted);
    font-weight: 850;
    white-space: nowrap;
}
.tabs a.active,
.tabs a:hover { color: var(--primary-dark); border-color: #bfdbfe; background: var(--primary-soft); }
.client-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    align-items: start;
}
.client-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 16px;
    box-shadow: var(--shadow-sm);
    display: grid;
    gap: 14px;
    min-width: 0;
}
.client-card-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    border-bottom: 1px solid var(--line);
    padding-bottom: 12px;
}
.client-card h2 { margin: 0; font-size: 21px; letter-spacing: -.02em; }
.client-card p { margin: 4px 0 0; }
.client-card-head p,
.client-meta,
.client-notes,
.pet-list,
.visit-list { color: var(--muted); font-size: 14px; }
.client-meta { display: grid; gap: 7px; }
.client-meta strong,
.client-notes strong,
.pet-list strong,
.visit-list strong { color: var(--text); }
.visit-count {
    white-space: nowrap;
    border-radius: 999px;
    padding: 7px 10px;
    background: #f1f5f9;
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
}
.client-notes,
.pet-list,
.visit-list {
    border-top: 1px solid var(--line);
    padding-top: 12px;
    display: grid;
    gap: 8px;
}
.client-notes p { margin: 0; }
.visit-list a {
    display: block;
    text-decoration: none;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 9px 10px;
    color: var(--text);
    background: var(--panel-2);
}
.visit-list a:hover { border-color: #bfdbfe; background: var(--primary-soft); }
.pet-line {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 9px 10px;
    background: var(--panel-2);
}
.pet-line span { color: var(--text); font-weight: 850; }
.pet-line small { color: var(--muted); text-align: right; }

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

@media (max-width: 820px) {
    .app-shell { display: block; }
    .sidebar {
        position: sticky;
        top: 0;
        z-index: 2147483000;
        isolation: isolate;
        height: auto;
        min-height: 0;
        padding: 10px 12px;
        gap: 0;
        overflow: visible;
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,.10);
        box-shadow: 0 8px 24px rgba(5, 15, 30, .16);
    }
    .manager-pwa-host-v327 .sidebar {
        padding-top: max(10px, env(safe-area-inset-top));
    }
    .manager-mobile-header-v336 {
        position: relative;
        z-index: 2147483002;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        min-width: 0;
    }
    .manager-mobile-header-v336 .brand { min-width: 0; flex: 1 1 auto; }
    .manager-mobile-header-v336 .brand-mark { width: 40px; height: 40px; flex-basis: 40px; }
    .manager-mobile-header-v336 .brand-title { font-size: 16px; line-height: 1.15; }
    .manager-mobile-header-v336 .brand-subtitle { font-size: 9px; line-height: 1.25; letter-spacing: .10em; }
    .manager-menu-toggle-v336 {
        appearance: none;
        flex: 0 0 44px;
        width: 44px;
        height: 44px;
        display: inline-flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 5px;
        padding: 0;
        border: 1px solid rgba(255,255,255,.16);
        border-radius: 13px;
        background: rgba(255,255,255,.08);
        color: #fff;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }
    .manager-menu-toggle-v336 span {
        display: block;
        width: 21px;
        height: 2px;
        border-radius: 999px;
        background: currentColor;
        transition: transform .18s ease, opacity .18s ease;
    }
    .sidebar.menu-open-v336 .manager-menu-toggle-v336 span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .sidebar.menu-open-v336 .manager-menu-toggle-v336 span:nth-child(2) { opacity: 0; }
    .sidebar.menu-open-v336 .manager-menu-toggle-v336 span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
    .manager-mobile-panel-v336 {
        position: fixed;
        top: var(--manager-menu-top-v337, 64px);
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 2147483001;
        display: none;
        width: 100%;
        height: auto;
        min-height: 0;
        max-height: none;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior-y: contain;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-y;
        padding: 12px 14px calc(24px + env(safe-area-inset-bottom));
        background: #101827;
        background: linear-gradient(180deg, #101827 0%, #172033 100%);
        border-top: 1px solid rgba(255,255,255,.09);
        box-shadow: 0 18px 36px rgba(5, 15, 30, .42);
        opacity: 1;
        contain: layout paint style;
        transform: translateZ(0);
        scrollbar-width: thin;
        scrollbar-color: rgba(255,255,255,.24) transparent;
    }
    .sidebar.menu-open-v336 .manager-mobile-panel-v336 {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    .manager-mobile-panel-v336 .nav {
        display: grid;
        grid-template-columns: 1fr;
        flex: 0 0 auto;
        gap: 5px;
        overflow: visible;
        padding: 0;
    }
    .manager-mobile-panel-v336 .nav a {
        width: 100%;
        min-height: 44px;
        white-space: normal;
        padding: 10px 12px;
        border-radius: 11px;
        background: rgba(255,255,255,.055);
        font-size: 16px;
        line-height: 1.25;
    }
    .manager-mobile-panel-v336 .nav a.active { background: rgba(255,255,255,.14); }
    .manager-mobile-panel-v336 .sidebar-footer {
        display: grid;
        flex: 0 0 auto;
        margin-top: 0;
        padding-top: 14px;
        gap: 11px;
        border-top: 1px solid rgba(255,255,255,.10);
    }
    .manager-mobile-panel-v336 .user-card { background: rgba(255,255,255,.07); }
    .manager-menu-logout-v336 {
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 44px;
        padding: 10px 14px;
        border: 1px solid rgba(254,202,202,.25);
        border-radius: 12px;
        background: rgba(220,38,38,.14);
        color: #fee2e2;
    }
    html.manager-menu-open-v337,
    body.manager-menu-open-v337,
    .manager-menu-open-v336 {
        overflow: hidden !important;
        overscroll-behavior: none;
    }
    body.manager-menu-open-v337 .main {
        visibility: hidden;
        pointer-events: none;
    }
    .top-lang-switcher { display: none; }
    .main { padding: 16px; }
    .topbar { margin-bottom: 14px; }
    .dashboard-grid,
    .form-grid.two-col { grid-template-columns: 1fr; }
    .toolbar { align-items: stretch; flex-direction: column; }
    .inline-form,
    .month-switcher { width: 100%; justify-content: space-between; }
    .search-form input,
    .search-form select,
    .search-form .btn { width: 100%; min-width: 0; }
    .month-switcher strong { order: -1; width: 100%; text-align: left; min-width: 0; }
    .btn { width: auto; }
    .toolbar > .btn.primary { width: 100%; }
    .calendar-table { min-width: 980px; --cell-w: 62px; }
    .unit-col { width: 160px; min-width: 160px; max-width: 160px; }
    .day-head, .calendar-cell { width: 62px; min-width: 62px; max-width: 62px; }
    .calendar-cell { height: 60px; }
}

.toggle-check {
    align-self: center;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #f8fafc;
}
.toggle-field textarea {
    margin-top: 6px;
}

.autocomplete-host {
    position: relative;
}
.autocomplete-panel {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 6px);
    z-index: 50;
    background: #fff;
    border: 1px solid var(--line-strong);
    border-radius: 14px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .16);
    overflow: hidden;
    max-height: 320px;
    overflow-y: auto;
}
.autocomplete-item {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--line);
    background: #fff;
    text-align: left;
    padding: 11px 12px;
    cursor: pointer;
    display: grid;
    gap: 3px;
    font: inherit;
    color: var(--text);
}
.autocomplete-item:last-child {
    border-bottom: 0;
}
.autocomplete-item:hover,
.autocomplete-item:focus {
    background: var(--primary-soft);
    outline: none;
}
.autocomplete-title {
    font-weight: 900;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.autocomplete-item small {
    color: var(--muted);
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


.auth-link {
    display: block;
    text-align: center;
    color: var(--primary-dark);
    font-weight: 800;
    text-decoration: none;
    padding: 2px 0 4px;
}
.auth-link:hover { text-decoration: underline; }


.settings-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 18px;
    align-items: start;
}
.settings-main { min-width: 0; }
.settings-side {
    display: grid;
    gap: 16px;
    position: sticky;
    top: 18px;
}
.logo-preview {
    width: 100%;
    min-height: 140px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #f8fafc;
    display: grid;
    place-items: center;
    overflow: hidden;
}
.logo-preview img {
    max-width: 100%;
    max-height: 180px;
    display: block;
}
.logo-placeholder {
    min-height: 140px;
    border: 1px dashed var(--line-strong);
    border-radius: 18px;
    background: #f8fafc;
    display: grid;
    place-items: center;
    color: var(--muted);
    font-weight: 850;
}
.settings-summary {
    border-top: 1px solid var(--line);
    padding-top: 14px;
    display: grid;
    gap: 6px;
}
.settings-summary p { margin: 0; color: var(--muted); }
.settings-summary strong { color: var(--text); }
.small-note { font-size: 12px; margin: -6px 0 0; }
@media (max-width: 980px) {
    .settings-layout { grid-template-columns: 1fr; }
    .settings-side { position: static; }
}


.booking-line-link {
    min-height: 30px;
    display: grid;
    align-items: center;
}
.booking-line-link.hide-label {
    background: transparent !important;
    border-color: transparent;
    box-shadow: none;
    min-height: 30px;
}
.booking-line-link.hide-label:hover {
    background: rgba(255,255,255,.34) !important;
    border-color: rgba(37,99,235,.18);
    box-shadow: none;
}
.booking-line-link.show-label {
    text-align: center;
    position: relative;
    z-index: 2;
}
.booking-line-link.show-label span {
    padding: 1px 3px;
}


/* Calendar label layer fix: keep long booking labels below the fixed Place column. */
tbody .unit-col { z-index: 35; }
thead .unit-col { z-index: 70; }
.day-head { z-index: 25; }
.booking-span-label { z-index: 9; }


/* v8.5 complete status legend */
.legend span { white-space: nowrap; }


/* v8.6 compact mobile calendar */
@media (max-width: 760px) {
    .main { padding: 10px; }
    .topbar { margin-bottom: 8px; }
    .topbar h1 { font-size: 22px; }

    .toolbar {
        gap: 8px;
        margin-bottom: 10px;
    }
    .month-switcher {
        gap: 6px;
        align-items: center;
    }
    .month-switcher strong {
        font-size: 15px;
        line-height: 1.15;
    }
    .btn {
        min-height: 36px;
        padding: 8px 10px;
        font-size: 13px;
        border-radius: 11px;
    }

    .dashboard-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        margin-bottom: 10px;
    }
    .panel {
        padding: 10px;
        border-radius: 14px;
    }
    .panel h2 {
        font-size: 16px;
        line-height: 1.15;
        margin-bottom: 8px;
    }
    .mini-booking {
        padding: 8px 9px;
        border-radius: 11px;
        margin-top: 6px;
    }
    .mini-booking strong { font-size: 14px; }
    .mini-booking span { font-size: 12px; }
    .muted { font-size: 13px; }

    .calendar-wrap {
        border-radius: 14px;
    }
    .calendar-table {
        --cell-w: 50px;
        min-width: 760px;
    }
    .unit-col {
        width: 124px;
        min-width: 124px;
        max-width: 124px;
        padding: 8px;
    }
    .unit-name {
        font-size: 14px;
        line-height: 1.15;
    }
    .unit-col small {
        font-size: 11px;
        line-height: 1.15;
        margin-top: 2px;
    }
    .day-head,
    .calendar-cell {
        width: 50px;
        min-width: 50px;
        max-width: 50px;
    }
    .day-head {
        padding: 5px 2px;
        font-size: 12px;
        line-height: 1.1;
    }
    .day-head small {
        font-size: 10px;
        margin-top: 1px;
    }
    .calendar-cell {
        height: 48px;
        padding: 2px;
    }
    .booking-span-label {
        min-width: 42px;
        min-height: 22px;
        max-height: 24px;
        padding: 3px 8px;
        font-size: 11px;
        max-width: none;
        box-shadow: 0 3px 8px rgba(15, 23, 42, .12);
    }
    .booking-cell-hotspot {
        inset: 2px;
        border-radius: 8px;
    }
    .free-link {
        border-radius: 8px;
        font-size: 16px;
    }
    .legend {
        flex-wrap: nowrap;
        overflow-x: auto;
        gap: 8px 12px;
        font-size: 12px;
        padding: 2px 0 8px;
        margin-top: 8px;
        scrollbar-width: thin;
    }
    .legend span { flex: 0 0 auto; }
    .dot { width: 10px; height: 10px; margin-right: 4px; }
    .half-dot { width: 16px; height: 10px; margin-right: 4px; }
}

@media (max-width: 520px) {
    .dashboard-grid { grid-template-columns: 1fr; }
    .calendar-table {
        --cell-w: 46px;
        min-width: 700px;
    }
    .unit-col {
        width: 112px;
        min-width: 112px;
        max-width: 112px;
        padding: 7px;
    }
    .day-head,
    .calendar-cell {
        width: 46px;
        min-width: 46px;
        max-width: 46px;
    }
    .calendar-cell { height: 46px; }
    .booking-span-label {
        font-size: 10px;
        min-height: 21px;
        max-width: none;
    }
}


/* v8.7: mobile labels stay compact but stretch across the full booking length. */
@media (max-width: 760px) {
    .booking-span-label {
        width: calc(var(--span-days, 1) * var(--cell-w));
        max-width: none;
    }
}


.language-switcher {
    display: flex;
    gap: 6px;
    margin-bottom: 10px;
}
.language-switcher a {
    flex: 1;
    text-align: center;
    text-decoration: none;
    color: rgba(255,255,255,.78);
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 10px;
    padding: 7px 8px;
    font-size: 12px;
    font-weight: 900;
}
.language-switcher a.active,
.language-switcher a:hover {
    background: rgba(255,255,255,.12);
    color: #fff;
}


.auth-lang-switcher {
    display: flex;
    gap: 6px;
    margin: -8px 0 14px;
}
.auth-lang-switcher a {
    flex: 1;
    text-align: center;
    text-decoration: none;
    color: var(--muted);
    border: 1px solid var(--line-strong);
    border-radius: 10px;
    padding: 7px 8px;
    font-size: 12px;
    font-weight: 900;
}
.auth-lang-switcher a.active,
.auth-lang-switcher a:hover {
    color: var(--primary-dark);
    background: var(--primary-soft);
    border-color: #bfdbfe;
}




.stay-summary {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #f8fafc;
    color: var(--muted);
    font-weight: 800;
}
.stay-summary strong {
    color: var(--text);
    font-weight: 900;
}
@media (max-width: 760px) {
    .stay-summary { padding: 8px 10px; font-size: 13px; }
}

.cost-summary {
    flex-wrap: wrap;
}
.cost-summary span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: 14px;
}
.cost-summary small {
    color: var(--muted);
    font-weight: 700;
}

.extra-pets-list {
    display: grid;
    gap: 14px;
}
.extra-pet-card {
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 14px;
    background: #f8fafc;
}
.extra-pet-card h3 {
    margin: 0 0 12px;
    font-size: 15px;
}
.nested-grid {
    box-shadow: none;
    padding: 0;
}

.radio-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 16px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
}
.radio-group > span {
    font-weight: 700;
    color: var(--text);
    margin-right: 6px;
}
.radio-group label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    font-weight: 600;
}
.radio-group input {
    width: auto;
    min-height: auto;
}
.radio-group small {
    flex-basis: 100%;
    color: var(--muted);
}

.extra-pet-places-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
@media (max-width: 760px) {
    .extra-pet-places-list { grid-template-columns: 1fr; }
}

.pet-place-display {
    padding: 8px 12px;
    border-radius: 12px;
    background: #f7f8fb;
    border: 1px solid var(--line);
    color: var(--muted);
    font-weight: 600;
}

.booking-top-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    align-items: end;
}
.booking-top-row label { margin: 0; }
.compact-stay-summary {
    min-height: 52px;
    align-self: end;
    justify-content: center;
}
@media (max-width: 980px) {
    .booking-top-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    .booking-top-row { grid-template-columns: 1fr; }
    .compact-stay-summary { justify-content: flex-start; }
}

.place-price-inline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
    color: var(--text);
    font-weight: 800;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.04);
}

.place-select-row {
    display: flex;
    align-items: center;
    gap: 12px;
}
.place-select-row select {
    flex: 1 1 auto;
    min-width: 0;
}
.place-select-row .place-price-inline {
    flex: 0 0 auto;
    min-width: 170px;
    margin-top: 0;
    white-space: nowrap;
}
@media (max-width: 560px) {
    .place-select-row {
        align-items: stretch;
        flex-direction: column;
        gap: 6px;
    }
    .place-select-row .place-price-inline {
        justify-content: flex-start;
        min-width: 0;
    }
}

.currency-picker input[type="search"] {
    margin-bottom: 8px;
}
.currency-picker small {
    display: block;
    margin-top: 6px;
    color: var(--muted);
    font-weight: 600;
    line-height: 1.35;
}

.currency-picker {
    position: relative;
}
.currency-current {
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #fff;
    padding: 10px 12px;
    margin-top: 8px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.currency-current span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.currency-current strong {
    font-size: 14px;
}
.currency-results {
    margin-top: 8px;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: #fff;
    box-shadow: var(--shadow);
    max-height: 260px;
    overflow: auto;
    touch-action: pan-y;
    -webkit-overflow-scrolling: touch;
    padding: 6px;
    z-index: 20;
}
.currency-result {
    width: 100%;
    border: 0;
    background: transparent;
    border-radius: 12px;
    padding: 10px 12px;
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    text-align: left;
    cursor: pointer;
    font: inherit;
    color: var(--text);
}
.currency-result:hover,
.currency-result:focus {
    background: var(--soft);
}
.currency-result strong {
    font-weight: 900;
}
.currency-result span {
    color: var(--muted);
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.currency-no-results {
    padding: 12px;
    color: var(--muted);
    font-weight: 700;
}

.currency-result[hidden],
.currency-no-results[hidden] {
    display: none !important;
}

.currency-search-box {
    position: relative;
}
.currency-search-box .currency-results {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 6px);
    margin-top: 0;
    max-height: 260px;
    overflow: auto;
    z-index: 1000;
}
.currency-picker {
    overflow: visible;
}
.settings-layout,
.settings-main {
    overflow: visible;
}

/* v12.5: force half-day backgrounds from explicit calendar cell parts */
.calendar-cell[data-cell-parts~="arrival"]:not([data-cell-parts~="departure"]) {
    background: linear-gradient(90deg, var(--free) 0 50%, var(--booking-fill, var(--occupied)) 50% 100%) !important;
}
.calendar-cell[data-cell-parts~="departure"]:not([data-cell-parts~="arrival"]) {
    background: linear-gradient(90deg, var(--booking-fill, var(--occupied)) 0 50%, var(--free) 50% 100%) !important;
}
.calendar-cell.today[data-cell-parts~="arrival"]:not([data-cell-parts~="departure"]) {
    background: linear-gradient(90deg, #fff7ed 0 50%, var(--booking-fill, var(--occupied)) 50% 100%) !important;
}
.calendar-cell.today[data-cell-parts~="departure"]:not([data-cell-parts~="arrival"]) {
    background: linear-gradient(90deg, var(--booking-fill, var(--occupied)) 0 50%, #fff7ed 50% 100%) !important;
}

/* v12.6: split calendar cells into clickable half-days */
.calendar-half-hotspot {
    position: absolute;
    top: 4px;
    bottom: 4px;
    z-index: 2;
    border-radius: 10px;
    text-decoration: none;
}
.calendar-half-hotspot.half-left {
    left: 4px;
    right: 50%;
}
.calendar-half-hotspot.half-right {
    left: 50%;
    right: 4px;
}
.calendar-half-hotspot.booking:hover {
    background: rgba(255, 255, 255, .28);
}
.calendar-half-hotspot.free:hover {
    background: rgba(37, 99, 235, .16);
    box-shadow: inset 0 0 0 1px rgba(37, 99, 235, .22);
}

/* v215: show plus on free half-day cells */
.calendar-half-hotspot.free::after {
    content: "+";
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: var(--primary);
    font-size: 18px;
    font-weight: 900;
    line-height: 1;
    opacity: .92;
    pointer-events: none;
}
.calendar-half-hotspot.free:hover::after {
    opacity: 1;
}

/* v12.7: visual free-half overlay for arrival/departure cells */
.calendar-cell[data-cell-parts~="departure"]:not([data-cell-parts~="arrival"])::before,
.calendar-cell[data-cell-parts~="arrival"]:not([data-cell-parts~="departure"])::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 1;
    pointer-events: none;
}
.calendar-cell[data-cell-parts~="departure"]:not([data-cell-parts~="arrival"])::before {
    left: 50%;
    right: 0;
    background: var(--free);
}
.calendar-cell[data-cell-parts~="arrival"]:not([data-cell-parts~="departure"])::before {
    left: 0;
    right: 50%;
    background: var(--free);
}
.calendar-cell.today[data-cell-parts~="departure"]:not([data-cell-parts~="arrival"])::before,
.calendar-cell.today[data-cell-parts~="arrival"]:not([data-cell-parts~="departure"])::before {
    background: #fff7ed;
}
.calendar-cell .free-link,
.calendar-cell .booking-cell-hotspot,
.calendar-cell .calendar-half-hotspot,
.calendar-cell .booking-span-label {
    position: absolute;
}

/* v214: free plus link must fill the whole free cell */
.calendar-cell .free-link {
    inset: 4px;
    z-index: 12;
}

/* v12.8: current-day free half must cover crossing booking bars */
.calendar-cell[data-cell-parts~="departure"]:not([data-cell-parts~="arrival"])::before,
.calendar-cell[data-cell-parts~="arrival"]:not([data-cell-parts~="departure"])::before {
    z-index: 10 !important;
}
.calendar-cell .calendar-half-hotspot {
    z-index: 12 !important;
}
.calendar-cell .booking-span-label {
    z-index: 8;
}

/* v13.0: separate departure and arrival half colors on turnover days */
.calendar-cell[data-cell-parts~="departure"][data-cell-parts~="arrival"] {
    background: linear-gradient(90deg, var(--departure-fill, var(--booking-fill, var(--occupied))) 0 50%, var(--arrival-fill, var(--booking-fill, var(--occupied))) 50% 100%) !important;
}
.calendar-cell[data-cell-parts~="departure"]:not([data-cell-parts~="arrival"]) {
    background: linear-gradient(90deg, var(--departure-fill, var(--booking-fill, var(--occupied))) 0 50%, var(--free) 50% 100%) !important;
}
.calendar-cell[data-cell-parts~="arrival"]:not([data-cell-parts~="departure"]) {
    background: linear-gradient(90deg, var(--free) 0 50%, var(--arrival-fill, var(--booking-fill, var(--occupied))) 50% 100%) !important;
}
.calendar-cell.today[data-cell-parts~="departure"]:not([data-cell-parts~="arrival"]) {
    background: linear-gradient(90deg, var(--departure-fill, var(--booking-fill, var(--occupied))) 0 50%, #fff7ed 50% 100%) !important;
}
.calendar-cell.today[data-cell-parts~="arrival"]:not([data-cell-parts~="departure"]) {
    background: linear-gradient(90deg, #fff7ed 0 50%, var(--arrival-fill, var(--booking-fill, var(--occupied))) 50% 100%) !important;
}
.calendar-cell[data-cell-parts~="departure"][data-cell-parts~="arrival"]::before {
    display: none !important;
}

.booking-pet-list {
    display: grid;
    gap: 4px;
    margin-bottom: 8px;
}
.booking-pet-line {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px;
}
.booking-pet-line strong {
    font-weight: 900;
}
.booking-pet-line small {
    color: var(--muted);
    font-weight: 700;
}

.booking-place-list {
    display: grid;
    gap: 5px;
}
.booking-place-line {
    display: grid;
    gap: 2px;
}
.booking-place-line strong {
    font-weight: 900;
}
.booking-place-line small {
    color: var(--muted);
    font-weight: 800;
}

.client-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 12px;
}
.inline-delete-form {
    margin: 0;
}
.mini-link {
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}
.view-panel {
    display: grid;
    gap: 16px;
}
.view-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
}
.view-head h1 {
    margin: 0 0 4px;
}
.view-head p {
    margin: 0;
    color: var(--muted);
    font-weight: 800;
}
@media (max-width: 640px) {
    .view-head {
        flex-direction: column;
    }
}

/* v547: check-in/check-out time ranges */
.settings-time-ranges-v547 { width: 100%; }
.settings-time-range-v547 {
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 14px;
    border: 1px solid #eaded8;
    border-radius: 14px;
    background: #fff;
}

/* v548: late checkout occupies the full departure day */
.calendar-cell.cell-late-checkout {
    box-shadow: inset 0 0 0 2px rgba(197, 93, 65, .72);
}
.calendar-cell.cell-late-checkout::after {
    content: "L";
    position: absolute;
    right: 2px;
    bottom: 1px;
    z-index: 3;
    display: grid;
    place-items: center;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #c55d41;
    color: #fff;
    font-size: 8px;
    font-weight: 900;
    pointer-events: none;
}
.booking-span-label.has-late-checkout-v548 { border-right: 3px solid #9f3f2b; }
.half-dot.late-checkout-v548 { background: #c55d41; box-shadow: 0 0 0 2px rgba(197,93,65,.22); }

/* v549: late checkout is always visible in manager booking editor */
.booking-late-checkout-control-v549 {
    display: contents;
}
.booking-late-checkout-v546.is-unconfigured-v549 {
    border-style: dashed;
    background: #fffdfb;
}
.booking-late-checkout-v546.is-unconfigured-v549 input:disabled {
    opacity: .55;
    cursor: not-allowed;
}
.late-checkout-config-warning-v549 {
    grid-column: 2;
    color: #8b5e4f;
}
.late-checkout-config-warning-v549 a {
    color: #a94731;
    font-weight: 900;
    text-decoration: underline;
}
@media (max-width: 520px) {
    .late-checkout-config-warning-v549 { grid-column: 1 / -1; padding-left: 30px; }
}
.settings-time-range-v547 legend {
    padding: 0 7px;
    color: #172033;
    font-weight: 900;
}
.settings-time-range-v547 label {
    min-width: 0;
    display: grid;
    gap: 6px;
}
.settings-time-range-v547 small { grid-column: 1 / -1; }
@media (max-width: 640px) {
    .settings-time-ranges-v547,
    .settings-time-range-v547 { grid-template-columns: minmax(0, 1fr); }
    .settings-time-range-v547 small { grid-column: 1; }
}

.pet-switch-field {
    gap: 6px;
}
.pet-switch-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    align-items: center;
}
.pet-switch-row.has-actions {
    grid-template-columns: minmax(0, 1fr) auto auto;
}
.pet-switch-row input {
    min-width: 0;
}
.pet-switch-row input[readonly] {
    background: var(--soft);
    color: var(--muted);
    cursor: default;
}
.pet-switch-field small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
}
@media (max-width: 680px) {
    .pet-switch-row.has-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: stretch;
    }
    .pet-switch-row.has-actions input {
        grid-column: 1 / -1;
        width: 100%;
    }
    .pet-switch-row.has-actions .btn {
        width: 100%;
        min-width: 0;
        min-height: 42px;
        padding: 9px 8px;
        white-space: normal;
        text-align: center;
        line-height: 1.15;
    }
    .pet-switch-row input[readonly] {
        background: var(--bg-soft);
    }
    .pet-switch-field small {
        font-size: 12px;
        line-height: 1.4;
        margin-top: 2px;
    }
}

@media (max-width: 380px) {
    .pet-switch-row.has-actions {
        grid-template-columns: 1fr;
    }
}

.settings-options-row {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .75fr) minmax(0, .95fr) minmax(0, 1fr);
    gap: 14px;
    align-items: start;
}
.settings-options-row label {
    margin: 0;
}
.settings-spaced-field {
    margin-top: 14px;
}
@media (max-width: 900px) {
    .settings-options-row {
        grid-template-columns: 1fr;
    }
}

.booking-summary-box {
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fff;
    padding: 16px;
    display: grid;
    gap: 10px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}
.booking-summary-box h3 {
    margin: 0 0 4px;
    font-size: 17px;
}
.summary-line,
.summary-detail-line {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: baseline;
    border-top: 1px solid var(--line);
    padding-top: 8px;
}
.summary-line span,
.summary-detail-line span {
    color: var(--muted);
    font-weight: 700;
}
.summary-line strong,
.summary-detail-line strong {
    text-align: right;
    white-space: nowrap;
}
.summary-details {
    display: grid;
    gap: 8px;
}
.summary-line-main {
    border-top-width: 2px;
    padding-top: 12px;
    margin-top: 2px;
}
.summary-line-main span {
    color: var(--text);
    font-size: 18px;
    font-weight: 900;
}
.summary-line-main strong {
    color: var(--text);
    font-size: 22px;
    font-weight: 950;
}
.summary-line-deposit strong {
    color: var(--text);
    font-weight: 900;
}
@media (max-width: 640px) {
    .summary-line,
    .summary-detail-line {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }
    .summary-line strong,
    .summary-detail-line strong {
        text-align: left;
        white-space: normal;
    }
}

.booking-paid-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 14px;
    align-items: end;
}
.booking-paid-row label {
    margin: 0;
}
.paid-inline-field {
    display: flex;
    align-items: center;
    gap: 10px;
}
.paid-inline-field span {
    flex: 0 0 auto;
    color: var(--text);
    font-weight: 900;
}
.paid-inline-field input,
.paid-inline-field select {
    flex: 1 1 auto;
    min-width: 0;
}
@media (max-width: 760px) {
    .booking-paid-row {
        grid-template-columns: 1fr;
    }
}

.amount-due-display {
    border: 1px solid rgba(220, 38, 38, 0.28);
    border-radius: 18px;
    background: #fff7f7;
    padding: 16px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.amount-due-display span {
    color: var(--text);
    font-size: 18px;
    font-weight: 900;
}
.amount-due-display strong {
    color: #dc2626;
    font-size: 26px;
    font-weight: 950;
    text-align: right;
    white-space: nowrap;
}
@media (max-width: 640px) {
    .booking-paid-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 14px;
    align-items: end;
}
.booking-paid-row label {
    margin: 0;
}
.paid-inline-field {
    display: flex;
    align-items: center;
    gap: 10px;
}
.paid-inline-field span {
    flex: 0 0 auto;
    color: var(--text);
    font-weight: 900;
}
.paid-inline-field input,
.paid-inline-field select {
    flex: 1 1 auto;
    min-width: 0;
}
@media (max-width: 760px) {
    .booking-paid-row {
        grid-template-columns: 1fr;
    }
}

.amount-due-display {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
    }
    .amount-due-display strong {
        text-align: left;
        white-space: normal;
    }
}

.discount-field {
    display: grid;
    gap: 6px;
}
.discount-input-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 86px;
    gap: 8px;
    align-items: center;
}
.discount-input-row input,
.discount-input-row select {
    min-width: 0;
}
.discount-input-row select {
    text-align: center;
    font-weight: 900;
}

.booking-amount-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    align-items: end;
}
.booking-amount-row label {
    margin: 0;
}
.compact-money-field input,
.compact-money-field select {
    min-height: 44px;
}
.compact-money-field > input {
    max-width: 100%;
}
@media (max-width: 760px) {
    .booking-amount-row {
        grid-template-columns: 1fr;
    }
}

.questionnaire-link-box {
    margin-top: 18px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--bg-soft);
}
.questionnaire-link-box > h3 {
    margin: 0 0 12px;
}
.questionnaire-share-control-v338 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: stretch;
}
.questionnaire-link-preview-v338 {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 3px;
    padding: 11px 14px;
    border: 1px solid var(--line-strong);
    border-radius: 13px;
    background: var(--panel);
    color: var(--text);
    text-decoration: none;
    box-shadow: var(--shadow-sm);
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.questionnaire-link-preview-v338:hover,
.questionnaire-link-preview-v338:focus-visible {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .10);
    outline: none;
}
.questionnaire-link-caption-v338 {
    color: var(--muted);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .08em;
    line-height: 1.2;
    text-transform: uppercase;
}
.questionnaire-link-url-v338 {
    display: block;
    min-width: 0;
    overflow: hidden;
    color: var(--primary-dark);
    font-size: 15px;
    font-weight: 750;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.questionnaire-copy-button-v338 {
    align-self: stretch;
    min-height: 52px;
    white-space: nowrap;
}
.questionnaire-share-note-v338 {
    margin: 11px 0 0;
    padding: 10px 12px;
    border-left: 3px solid var(--primary);
    border-radius: 0 11px 11px 0;
    background: var(--primary-soft);
    color: #334155;
    font-size: 14px;
    line-height: 1.45;
}
.questionnaire-readonly-note-v338 {
    margin-top: 12px;
}
.copy-field {
    display: flex;
    gap: 10px;
    align-items: center;
}
.copy-field input {
    flex: 1 1 auto;
    min-width: 0;
}
@media (max-width: 760px) {
    .questionnaire-link-box {
        padding: 14px;
        border-radius: 16px;
    }
    .questionnaire-share-control-v338 {
        grid-template-columns: minmax(0, 1fr);
    }
    .questionnaire-link-preview-v338 {
        padding: 11px 12px;
    }
    .questionnaire-copy-button-v338 {
        width: 100%;
        min-height: 46px;
    }
    .questionnaire-share-note-v338 {
        font-size: 13px;
    }
}
.questionnaire-public-panel {
    max-width: 980px;
    margin: 0 auto;
}
.questionnaire-intro {
    margin-bottom: 20px;
}
.questionnaire-section {
    padding: 18px 0;
    border-top: 1px solid var(--border);
}
.questionnaire-section h2 {
    margin: 0 0 14px;
    font-size: 18px;
}
.questionnaire-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.questionnaire-choice {
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-weight: 800;
}
.choice-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
}
.choice-list label,
.questionnaire-confirm {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-weight: 700;
    line-height: 1.35;
}
.questionnaire-confirm {
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--soft);
}
.answer-section {
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid var(--border);
}
.answer-section h4 {
    margin: 0 0 10px;
}
.answer-row {
    display: grid;
    grid-template-columns: minmax(180px, .9fr) minmax(0, 1.5fr);
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px solid rgba(148, 163, 184, .2);
}
.answer-row span {
    color: var(--muted);
    font-weight: 800;
}
.answer-row strong {
    font-weight: 800;
    white-space: normal;
}
@media (max-width: 720px) {
    .questionnaire-grid,
    .answer-row {
        grid-template-columns: 1fr;
    }
    .copy-field {
        flex-direction: column;
        align-items: stretch;
    }
}

/* v553: public information and legal pages share the PetBooking website header. */
.public-info-body-v553 {
    background:
        radial-gradient(circle at 8% 0%, rgba(189, 88, 46, .08), transparent 25rem),
        radial-gradient(circle at 94% 8%, rgba(111, 127, 104, .09), transparent 30rem),
        linear-gradient(180deg, #fbf8f3 0%, #f4f0e9 54%, #f1eee8 100%);
}
.public-info-body-v553 .public-info-appbar-v553 {
    position: sticky;
    top: 0;
    z-index: 20;
}
.public-info-body-v553 .public-info-nav-v553 {
    overflow: visible;
}
.public-info-body-v553 .legal-card-v329 {
    background: rgba(255, 253, 250, .97);
    border-color: #e5ddd3;
    box-shadow: 0 18px 50px rgba(59, 48, 41, .08);
}
.public-info-body-v553 .legal-footer-v329 {
    color: #746d67;
}
@media (max-width: 820px) {
    .public-info-body-v553 .public-info-appbar-v553 {
        grid-template-columns: minmax(0, 1fr) auto;
    }
    .public-info-body-v553 .public-info-nav-v553 {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        width: 100%;
        padding: 0;
        gap: 6px;
    }
    .public-info-body-v553 .public-info-nav-v553 a {
        min-width: 0;
        padding-inline: 7px;
        text-align: center;
        white-space: normal;
        line-height: 1.15;
    }
}
@media (max-width: 420px) {
    .public-info-appbar-v553 .customer-brand-text {
        display: inline;
    }
    .public-info-language-v553 .language-select-control-v421 {
        max-width: 116px;
    }
}

/* v542: pet quantity is derived from the real pet cards, never edited twice. */
.booking-pet-count-auto-v542 {
  grid-template-columns: minmax(0, 1fr) auto;
}
.booking-pet-count-auto-v542 > strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 42px;
  padding: 6px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  font-size: 18px;
  font-weight: 850;
}
[data-booking-arrangement][hidden] {
  display: none !important;
}

.questionnaire-public-panel input[type="checkbox"],
.questionnaire-public-panel input[type="radio"] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    min-height: 18px;
    max-width: 18px;
    max-height: 18px;
    flex: 0 0 18px;
    margin: 0;
    padding: 0;
    accent-color: var(--primary);
}
.questionnaire-public-panel .choice-list label,
.questionnaire-public-panel .questionnaire-confirm {
    align-items: center;
}

.questionnaire-files {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 10px 0 14px;
}
.questionnaire-files a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 8px 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    font-weight: 800;
    text-decoration: none;
}

.discount-input-row-with-scope {
    grid-template-columns: minmax(0, 1fr) 72px minmax(92px, 120px);
}
@media (max-width: 560px) {
    .discount-input-row-with-scope {
        grid-template-columns: 1fr;
    }
}


.vaccination-warning-box {
    border: 1px solid #fecaca;
    background: var(--danger-soft);
    color: #991b1b;
    border-radius: 16px;
    padding: 14px 16px;
    margin: 14px 0;
}
.vaccination-warning-box strong {
    display: block;
    font-size: 1rem;
    margin-bottom: 4px;
}
.vaccination-warning-box p {
    margin: 0 0 8px;
}
.vaccination-warning-box ul {
    margin: 0;
    padding-left: 20px;
}
.vaccination-warning-box li {
    margin: 4px 0;
}

.public-hotel-page {
    max-width: 1180px;
    margin: 0 auto;
    display: grid;
    gap: 18px;
}
.public-hotel-hero {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 18px;
    align-items: center;
}
.public-hotel-hero img {
    width: 120px;
    height: 120px;
    object-fit: contain;
    border-radius: 22px;
    background: #fff;
    border: 1px solid var(--line);
    padding: 10px;
}
.public-hotel-hero h1 {
    margin: 0 0 8px;
    font-size: clamp(1.8rem, 4vw, 3rem);
}
.public-hotel-contacts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}
.public-hotel-contacts span {
    border: 1px solid var(--line);
    background: #fff;
    border-radius: 999px;
    padding: 8px 12px;
    font-weight: 800;
}
.public-hotel-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .8fr);
    gap: 18px;
    align-items: start;
}
.public-place-list {
    display: grid;
    gap: 10px;
    margin: 12px 0 18px;
}
.public-place-card {
    display: grid;
    gap: 4px;
    border: 1px solid var(--line);
    background: #fff;
    border-radius: 14px;
    padding: 12px;
}
.public-place-card strong {
    font-size: 1rem;
}
.public-place-card span {
    color: var(--muted);
    font-weight: 700;
}
.public-booking-form .form-section {
    margin-top: 0;
}
.public-booking-success h1 {
    margin-top: 0;
}
.settings-public-link {
    display: grid;
    gap: 10px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding: 16px 0;
    margin: 16px 0;
}
.settings-public-link h3 {
    margin: 0;
}
@media (max-width: 900px) {
    .public-hotel-grid,
    .public-hotel-hero {
        grid-template-columns: 1fr;
    }
    .public-hotel-hero img {
        width: 96px;
        height: 96px;
    }
}


.profile-link-box {
    margin-top: 18px;
    padding: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    background: #f8fafc;
}
.copy-field {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-top: 8px;
}
.copy-field input {
    flex: 1 1 260px;
    min-width: 0;
}
.client-profile-page {
    max-width: 1120px;
    margin: 0 auto;
}
.client-profile-hero {
    display: flex;
    gap: 20px;
    align-items: center;
}
.client-profile-hero img {
    width: 96px;
    height: 96px;
    border-radius: 20px;
    object-fit: cover;
    border: 1px solid #e5e7eb;
}
.client-profile-grid {
    margin-top: 18px;
}
.client-booking-list {
    display: grid;
    gap: 12px;
}
.client-booking-card {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 14px;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    background: #fff;
}
.client-booking-card > div {
    display: grid;
    gap: 4px;
}
.client-booking-card > div:last-child {
    text-align: right;
    justify-items: end;
}
@media (max-width: 700px) {
    .client-profile-hero,
    .client-booking-card {
        display: grid;
    }
    .client-booking-card > div:last-child {
        text-align: left;
        justify-items: start;
    }
}

/* v531: compact general rows and Push/Email notification matrix */
.settings-options-row-v406 {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    border-top: 1px solid var(--line);
}
.settings-options-row-v406 .settings-option-card-v406 {
    display: grid !important;
    grid-template-columns: minmax(180px, 240px) minmax(250px, 1fr) minmax(220px, 1fr);
    align-items: center !important;
    gap: 10px 18px !important;
    min-height: 84px;
    padding: 14px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid var(--line) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
.settings-options-row-v406 .settings-option-label-v406 {
    min-height: 0 !important;
    align-items: center !important;
}
.settings-options-row-v406 .settings-option-card-v406 > select,
.settings-options-row-v406 .settings-option-card-v406 > .currency-search-box {
    grid-column: 2;
    width: 100%;
}
.settings-options-row-v406 .settings-option-card-v406 > small {
    grid-column: 3;
}
.settings-options-row-v406 .settings-option-timezone-v406::after {
    display: none !important;
}
.settings-options-row-v406 .currency-current {
    grid-column: 3;
    min-height: 52px;
}
.settings-options-row-v406 .settings-option-currency-v406 > small {
    grid-column: 2 / 4;
    padding-left: 0;
}
.notification-matrix-v531 {
    margin-top: 18px;
    border: 1px solid var(--border);
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
}
.notification-recipient-v531 {
    display: grid;
    grid-template-columns: minmax(190px, .7fr) minmax(260px, 1fr);
    align-items: center;
    gap: 8px 18px;
    margin: 20px 0 16px;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #fff;
}
.notification-recipient-v531 > span {
    font-weight: 800;
}
.notification-recipient-v531 input {
    width: 100%;
    margin: 0;
}
.notification-recipient-v531 small {
    grid-column: 2;
    color: var(--muted);
}
.notification-matrix-head-v531,
.notification-matrix-row-v531 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 90px 90px;
    align-items: center;
}
.notification-matrix-head-v531 {
    padding: 11px 16px;
    background: var(--soft);
    color: var(--muted);
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.notification-matrix-head-v531 b {
    text-align: center;
}
.notification-matrix-row-v531 {
    min-height: 58px;
    padding: 8px 16px;
    border-top: 1px solid var(--border);
}
.notification-matrix-row-v531 > label {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
}
.notification-matrix-row-v531 input[type="checkbox"] {
    width: 22px;
    height: 22px;
    margin: 0;
}
.notification-matrix-row-v531 > label.disabled {
    opacity: .35;
}
@media (max-width: 760px) {
    .settings-options-row-v406 .settings-option-card-v406 {
        grid-template-columns: minmax(115px, .7fr) minmax(0, 1fr);
        gap: 8px 12px !important;
        min-height: 0;
        padding: 13px 0 !important;
    }
    .settings-options-row-v406 .settings-option-card-v406 > select,
    .settings-options-row-v406 .settings-option-card-v406 > .currency-search-box,
    .settings-options-row-v406 .currency-current {
        grid-column: 2;
    }
    .settings-options-row-v406 .settings-option-card-v406 > small,
    .settings-options-row-v406 .settings-option-currency-v406 > small {
        grid-column: 2;
    }
    .notification-matrix-head-v531,
    .notification-matrix-row-v531 {
        grid-template-columns: minmax(0, 1fr) 62px 62px;
    }
    .notification-matrix-head-v531,
    .notification-matrix-row-v531 {
        padding-left: 10px;
        padding-right: 10px;
    }
    .notification-matrix-row-v531 strong {
        font-size: 14px;
        line-height: 1.25;
    }
    .notification-recipient-v531 {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 13px;
    }
    .notification-recipient-v531 small {
        grid-column: 1;
    }
}

.public-client-auth {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    padding: 14px;
    background: #f9fafb;
}

.public-client-auth-title {
    font-weight: 700;
    margin-bottom: 8px;
}

.public-client-auth .radio-line {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 6px 0;
    font-weight: 500;
}

.public-client-auth .radio-line input {
    width: auto;
}

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


.public-owner-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 16px;
}

.public-owner-fields[hidden] {
    display: none !important;
}

.client-auth-fields [hidden] {
    display: none !important;
}

.client-auth-panel {
    max-width: 520px;
    margin: 32px auto;
}

@media (max-width: 700px) {
    .client-auth-fields,
    .public-owner-fields {
        grid-template-columns: 1fr;
    }
}

.owner-account-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 18px;
}
.owner-info-card {
    border: 1px solid var(--line);
    background: var(--panel-2);
    border-radius: 16px;
    padding: 14px;
}
.owner-info-card h2,
.form-intro-box h2 {
    margin-bottom: 6px;
}
.account-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    border-radius: 999px;
    padding: 4px 8px;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.2;
}
.account-badge.linked {
    background: var(--success-soft);
    color: #047857;
    border: 1px solid #bbf7d0;
}
.account-badge.guest {
    background: var(--warning-soft);
    color: #92400e;
    border: 1px solid #fde68a;
}
.form-intro-box {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--panel-2);
    padding: 14px;
}
@media (max-width: 800px) {
    .owner-account-grid {
        grid-template-columns: 1fr;
    }
}


/* v18.21: public booking date range picker as a stable continuous horizontal week grid */
.public-date-range {
    display: grid;
    gap: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    padding: 14px;
    background: #f8fafc;
}
.date-range-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.date-range-summary input[type="date"] {
    cursor: pointer;
    background: #fff;
}
.date-range-summary input[type="date"]::-webkit-calendar-picker-indicator {
    cursor: pointer;
}
.date-range-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 8px;
}
.date-range-toolbar .btn {
    min-width: 0;
}
.date-range-calendars {
    min-width: 0;
}
.date-range-calendar {
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    background: #fff;
    padding: 14px;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .05);
    min-width: 0;
}
.date-range-period-title {
    text-align: center;
    font-weight: 950;
    font-size: 1.06rem;
    text-transform: capitalize;
    padding: 2px 0 12px;
    margin-bottom: 10px;
    border-bottom: 1px solid #eef2f7;
}
.date-range-continuous-body {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 8px;
    align-items: start;
}
.date-range-weekday-column {
    display: grid;
    grid-template-rows: 34px repeat(7, 40px);
    gap: 5px;
}
.date-range-weekday-spacer {
    min-height: 34px;
}
.date-range-side-weekday {
    display: flex;
    align-items: center;
    justify-content: center;
}
.date-range-scroll {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
    cursor: grab;
    overscroll-behavior-x: contain;
    touch-action: pan-x;
    padding: 0 2px 10px;
    scrollbar-width: thin;
}
.date-range-scroll.dragging {
    cursor: grabbing;
    user-select: none;
}
.date-range-weeks-row {
    --date-range-day-size: 42px;
    --date-range-row-height: 40px;
    --date-range-gap: 5px;
    display: flex;
    align-items: flex-start;
    gap: var(--date-range-gap);
    width: max-content;
    min-width: max-content;
}
.date-range-week-col {
    position: relative;
    display: grid;
    grid-template-rows: 34px repeat(7, var(--date-range-row-height));
    gap: var(--date-range-gap);
    flex: 0 0 var(--date-range-day-size);
    width: var(--date-range-day-size);
}
.date-range-week-month {
    position: relative;
    z-index: 2;
    min-height: 34px;
    line-height: 1.15;
    font-size: .95rem;
    font-weight: 950;
    text-transform: capitalize;
    white-space: nowrap;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    padding-top: 2px;
    color: #111827;
    pointer-events: none;
}
.date-range-month-anchor::after {
    content: '';
    position: absolute;
    left: 0;
    right: -118px;
    bottom: 2px;
    height: 1px;
    background: #eef2f7;
}
.date-range-weekday {
    text-align: center;
    color: #64748b;
    font-size: .78rem;
    font-weight: 900;
}
.date-range-day {
    position: relative;
    width: var(--date-range-day-size, 42px);
    min-width: var(--date-range-day-size, 42px);
    height: var(--date-range-row-height, 40px);
    min-height: var(--date-range-row-height, 40px);
    border: 1px solid transparent;
    border-radius: 12px;
    background: #f8fafc;
    color: #111827;
    font-weight: 800;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    user-select: none;
    touch-action: manipulation;
}
.date-range-day.month-tone-a:not(.selected):not(.in-range):not(:disabled):not(.date-range-day-spacer) {
    background: #f8fafc;
}
.date-range-day.month-tone-b:not(.selected):not(.in-range):not(:disabled):not(.date-range-day-spacer) {
    background: #eef6ff;
    border-color: #e0efff;
}
.date-range-day.month-tone-b.date-range-day-spacer {
    background: #eef6ff;
}
.date-range-day:hover:not(:disabled):not(.date-range-day-spacer) {
    border-color: #14b8a6;
    background: #ecfeff;
}
.date-range-day.month-start::before {
    content: '';
    position: absolute;
    left: -4px;
    top: 6px;
    bottom: 6px;
    width: 2px;
    border-radius: 999px;
    background: #cbd5e1;
}
.date-range-day.today:not(.selected) {
    border-color: #f59e0b;
    background: #fffbeb;
}
.date-range-day.in-range {
    border-radius: 8px;
    background: #ccfbf1;
}
.date-range-day.selected {
    background: #0f766e;
    color: #fff;
    border-color: #0f766e;
}
.date-range-day.disabled,
.date-range-day:disabled {
    color: #cbd5e1;
    background: #f1f5f9;
    cursor: not-allowed;
}
.date-range-day.month-tone-b.disabled,
.date-range-day.month-tone-b:disabled {
    background: #edf5ff;
}
.date-range-day-spacer {
    opacity: .28;
    cursor: default;
}
.date-range-help {
    margin: 0;
}
@media (max-width: 780px) {
    .date-range-summary {
        grid-template-columns: 1fr;
    }
    .date-range-toolbar {
        justify-content: stretch;
    }
    .date-range-toolbar .btn {
        flex: 1 1 0;
        padding-left: 10px;
        padding-right: 10px;
    }
    .date-range-calendar {
        padding: 10px;
    }
    .date-range-continuous-body {
        grid-template-columns: 30px minmax(0, 1fr);
        gap: 6px;
    }
    .date-range-weekday-column {
        grid-template-rows: 30px repeat(7, 36px);
        gap: 4px;
    }
    .date-range-weekday-spacer {
        min-height: 30px;
    }
    .date-range-weeks-row {
        --date-range-day-size: 38px;
        --date-range-row-height: 36px;
        --date-range-gap: 4px;
    }
    .date-range-week-col {
        grid-template-rows: 30px repeat(7, var(--date-range-row-height));
    }
    .date-range-week-month {
        min-height: 30px;
        font-size: .86rem;
    }
    .date-range-month-anchor::after {
        right: -94px;
    }
    .date-range-day {
        border-radius: 10px;
        font-size: .9rem;
    }
}

/* v204: editable client profile */
.client-profile-details-panel {
    margin-top: 18px;
}
.client-edit-card,
.client-pet-edit-card {
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    background: #fff;
    padding: 0;
    overflow: hidden;
    margin-top: 12px;
}
.client-edit-card summary,
.client-pet-edit-card summary {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    cursor: pointer;
    padding: 14px 16px;
    list-style: none;
}
.client-edit-card summary::-webkit-details-marker,
.client-pet-edit-card summary::-webkit-details-marker {
    display: none;
}
.client-edit-card summary > span,
.client-pet-edit-card summary > span {
    display: grid;
    gap: 4px;
    min-width: 0;
}
.client-edit-card summary small,
.client-pet-edit-card summary small {
    color: var(--muted);
    font-weight: 650;
}
.client-edit-card summary em,
.client-pet-edit-card summary em {
    flex: 0 0 auto;
    font-style: normal;
    font-size: 12px;
    font-weight: 850;
    color: var(--primary);
    background: #eff6ff;
    border: 1px solid #dbeafe;
    border-radius: 999px;
    padding: 6px 10px;
}
.client-edit-card[open] summary,
.client-pet-edit-card[open] summary {
    border-bottom: 1px solid #e5e7eb;
    background: #f8fafc;
}
.client-edit-form {
    padding: 16px;
}
.client-pet-list .public-place-card {
    padding: 0;
}
.client-pet-edit-card summary strong,
.client-pet-edit-card summary span span {
    display: block;
}
.client-pet-edit-card summary span span {
    color: var(--muted);
    font-weight: 700;
}
@media (max-width: 700px) {
    .client-edit-card summary,
    .client-pet-edit-card summary {
        align-items: flex-start;
    }
}

.client-account-inline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid #dbeafe;
    border-radius: 16px;
    background: #eff6ff;
}

.client-account-inline span {
    color: var(--muted);
    font-weight: 700;
}

.client-account-inline a {
    margin-left: auto;
    color: #2563eb;
    font-weight: 800;
    text-decoration: none;
}

.public-profile-pet-picker {
    padding: 12px;
    border: 1px solid #dbeafe;
    border-radius: 18px;
    background: #f8fbff;
}

.public-profile-pet-picker small {
    display: block;
    margin-top: 6px;
    color: var(--muted);
    font-weight: 600;
}

.client-add-pet-card {
    border-style: dashed;
    background: #f8fbff;
}

/* v208: client profile menu sections */
.client-profile-menu {
    margin-top: 18px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 10px;
}
.client-profile-menu a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 16px;
    border: 1px solid #dbe4ef;
    border-radius: 999px;
    background: #fff;
    color: var(--text);
    text-decoration: none;
    font-weight: 850;
}
.client-profile-menu a:hover {
    background: #f8fafc;
}
.client-profile-menu a.active {
    border-color: #111827;
    background: #111827;
    color: #fff;
}
.client-profile-section-panel {
    margin-top: 18px;
}
.client-profile-pets-panel .client-add-pet-card {
    margin-bottom: 12px;
}
@media (max-width: 700px) {
    .client-profile-menu {
        display: grid;
        grid-template-columns: 1fr;
    }
    .client-profile-menu a {
        justify-content: flex-start;
        border-radius: 14px;
    }
}


/* v213: main booking calendar shows a long horizontal range instead of a single month */
.calendar-table-wide {
    min-width: calc(190px + (var(--calendar-days, 31) * var(--cell-w)));
    width: max-content;
}
.calendar-month-row .unit-col {
    position: sticky;
    top: 0;
    z-index: 90;
    background: #f8fafc;
}
.month-head {
    position: sticky;
    top: 0;
    z-index: 45;
    height: 38px;
    padding: 8px 10px;
    background: #f8fafc;
    color: #0f172a;
    font-weight: 900;
    text-align: center;
    border-bottom: 1px solid var(--line);
}
.calendar-table-wide .day-head {
    top: 38px;
}
.calendar-table-wide .day-row-corner {
    top: 38px;
    z-index: 80;
    background: #f8fafc;
}
.calendar-table-wide .day-head.month-tone-odd {
    background: #ffffff;
}
.calendar-table-wide .day-head.month-tone-even {
    background: #f8fbff;
}
.calendar-table-wide .calendar-cell.month-tone-odd {
    --free: #fbfdff;
}
.calendar-table-wide .calendar-cell.month-tone-even {
    --free: #f6fbff;
}
.calendar-table-wide .day-head.month-start,
.calendar-table-wide .calendar-cell.month-start {
    border-left: 2px solid #cbd5e1;
}
.calendar-table-wide .day-head.month-start:first-of-type,
.calendar-table-wide .calendar-cell.month-start:first-of-type {
    border-left-width: 1px;
}
.calendar-wrap[data-main-calendar] {
    cursor: grab;
    scrollbar-width: thin;
}
.calendar-wrap[data-main-calendar].is-dragging {
    cursor: grabbing;
    user-select: none;
}
.calendar-wrap[data-main-calendar] a {
    -webkit-user-drag: none;
}
@media (max-width: 820px) {
    .calendar-table-wide {
        min-width: calc(160px + (var(--calendar-days, 31) * var(--cell-w)));
    }
    .calendar-table-wide .month-head {
        top: 0;
        height: 34px;
        padding: 7px 8px;
        font-size: 13px;
    }
    .calendar-table-wide .day-head,
    .calendar-table-wide .day-row-corner {
        top: 34px;
    }
}
@media (max-width: 760px) {
    .calendar-table-wide {
        min-width: calc(124px + (var(--calendar-days, 31) * var(--cell-w)));
    }
}
@media (max-width: 520px) {
    .calendar-table-wide {
        min-width: calc(112px + (var(--calendar-days, 31) * var(--cell-w)));
    }
}

/* v216: hotel closed dates */
.day-head.closed-day {
    background: #f1f5f9;
    color: #94a3b8;
}
.day-head.closed-day::after {
    content: "×";
    display: block;
    font-size: 11px;
    line-height: 1;
    color: #ef4444;
    margin-top: 2px;
}
.calendar-cell.closed-day.free {
    background: repeating-linear-gradient(135deg, #f8fafc 0 8px, #eef2f7 8px 16px);
}
.calendar-cell.closed-day.occupied-arrival {
    background: linear-gradient(90deg, repeating-linear-gradient(135deg, #f8fafc 0 8px, #eef2f7 8px 16px) 0 50%, var(--booking-fill, var(--occupied)) 50% 100%);
}
.calendar-cell.closed-day.occupied-departure {
    background: linear-gradient(90deg, var(--booking-fill, var(--occupied)) 0 50%, repeating-linear-gradient(135deg, #f8fafc 0 8px, #eef2f7 8px 16px) 50% 100%);
}
.closed-cell-label {
    position: absolute;
    inset: 4px;
    z-index: 12;
    display: grid;
    place-items: center;
    border-radius: 10px;
    color: #ef4444;
    background: rgba(248, 250, 252, .82);
    border: 1px dashed #cbd5e1;
    font-size: 18px;
    font-weight: 900;
}
.calendar-half-hotspot.closed {
    background: repeating-linear-gradient(135deg, rgba(248, 250, 252, .9) 0 8px, rgba(226, 232, 240, .9) 8px 16px);
    border: 1px dashed #cbd5e1;
    cursor: not-allowed;
}
.calendar-half-hotspot.closed::after {
    content: "×";
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #ef4444;
    font-weight: 900;
}
.dot.closed {
    background: repeating-linear-gradient(135deg, #f8fafc 0 4px, #e2e8f0 4px 8px);
}
.settings-closed-dates {
    border-top: 1px solid var(--line);
    padding-top: 14px;
    display: grid;
    gap: 10px;
}
.settings-closed-dates h3 { margin: 0; }
.closed-date-list {
    display: grid;
    gap: 8px;
}
.closed-date-row {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #f8fafc;
}
.closed-date-row span {
    display: block;
    color: var(--muted);
    font-size: 12px;
    margin-top: 2px;
}
.date-range-day.closed,
.date-range-day.closed:disabled {
    background: repeating-linear-gradient(135deg, #f8fafc 0 8px, #e2e8f0 8px 16px) !important;
    color: #ef4444;
    border-color: #cbd5e1;
    text-decoration: line-through;
}
/* v216 correction: valid half-cell closed backgrounds */
.calendar-cell.closed-day.occupied-arrival {
    background: linear-gradient(90deg, #f1f5f9 0 50%, var(--booking-fill, var(--occupied)) 50% 100%) !important;
}
.calendar-cell.closed-day.occupied-departure {
    background: linear-gradient(90deg, var(--booking-fill, var(--occupied)) 0 50%, #f1f5f9 50% 100%) !important;
}

/* v217: closed dates bulk calendar, pink closed days, always-visible plus */
.calendar-cell.free .free-link {
    color: var(--primary);
    background: rgba(37, 99, 235, .055);
    border: 1px solid rgba(37, 99, 235, .10);
}
.calendar-cell.free:hover .free-link,
.calendar-cell.free .free-link:hover {
    background: var(--primary-soft);
    color: var(--primary);
}
.day-head.closed-day {
    background: #fdf2f8 !important;
    color: #be185d !important;
}
.day-head.closed-day::after {
    color: #db2777 !important;
}
.calendar-cell.closed-day.free,
.calendar-cell.closed-day {
    background: #fdf2f8 !important;
}
.calendar-cell.closed-day.occupied-arrival {
    background: linear-gradient(90deg, #fdf2f8 0 50%, var(--booking-fill, var(--occupied)) 50% 100%) !important;
}
.calendar-cell.closed-day.occupied-departure {
    background: linear-gradient(90deg, var(--booking-fill, var(--occupied)) 0 50%, #fdf2f8 50% 100%) !important;
}
.closed-cell-label {
    color: #be185d !important;
    background: rgba(253, 242, 248, .92) !important;
    border-color: #f9a8d4 !important;
}
.calendar-half-hotspot.closed {
    background: rgba(253, 242, 248, .92) !important;
    border-color: #f9a8d4 !important;
}
.calendar-half-hotspot.closed::after {
    color: #be185d !important;
}
.date-range-day.closed,
.date-range-day.closed.disabled {
    background: #fdf2f8 !important;
    color: #be185d !important;
    border-color: #f9a8d4 !important;
    cursor: not-allowed;
    opacity: 1;
}
.date-warning {
    padding: 10px 12px;
    border-radius: 14px;
    background: #fdf2f8;
    border: 1px solid #f9a8d4;
    color: #9d174d;
    font-weight: 800;
    line-height: 1.35;
}
.settings-closed-calendar {
    display: grid;
    gap: 10px;
}
.closed-calendar-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.closed-calendar-scroll {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    padding-bottom: 8px;
}
.settings-closed-month {
    flex: 0 0 252px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fff;
    padding: 12px;
    scroll-snap-align: start;
}
.settings-closed-month-title {
    font-weight: 900;
    text-align: center;
    margin-bottom: 10px;
    text-transform: capitalize;
}
.settings-closed-month-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 5px;
}
.settings-closed-weekday {
    text-align: center;
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
}
.settings-closed-day {
    min-height: 32px;
    border-radius: 10px;
    border: 1px solid transparent;
    background: #f8fafc;
    color: var(--text);
    font-weight: 850;
    cursor: pointer;
}
.settings-closed-day:not(.spacer):hover {
    background: #eff6ff;
    border-color: #bfdbfe;
}
.settings-closed-day.selected {
    background: #fdf2f8;
    border-color: #f9a8d4;
    color: #be185d;
    box-shadow: inset 0 0 0 1px #f472b6;
}
.settings-closed-day.disabled {
    opacity: .35;
    cursor: not-allowed;
}
.settings-closed-day.spacer {
    background: transparent;
    border-color: transparent;
    cursor: default;
}
@media (max-width: 720px) {
    .settings-closed-month { flex-basis: 230px; }
    .settings-closed-day { min-height: 30px; }
}

/* v219: never show booking plus on closed calendar dates */
.calendar-cell.closed-day .free-link,
.calendar-cell.closed-day .calendar-half-hotspot.free {
    display: none !important;
}
.calendar-cell.closed-day .calendar-half-hotspot.free::after {
    content: none !important;
}
.closed-date-row strong {
    white-space: normal;
}


/* v220: hard block all new-booking plus links on closed dates */
.calendar-cell.closed-day.free {
    background: #fdf2f8 !important;
}
.calendar-cell.closed-day .free-link,
.calendar-cell.closed-day .free-link::before,
.calendar-cell.closed-day .free-link::after,
.calendar-cell.closed-day .calendar-half-hotspot.free,
.calendar-cell.closed-day .calendar-half-hotspot.free::before,
.calendar-cell.closed-day .calendar-half-hotspot.free::after,
.calendar-cell[data-closed-date="1"] .free-link,
.calendar-cell[data-closed-date="1"] .calendar-half-hotspot.free {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    content: none !important;
}
.calendar-cell.closed-day.closed-empty,
.calendar-cell[data-closed-date="1"].closed-empty {
    background: #fdf2f8 !important;
}



/* v221: closed calendar dates must not display any new-booking plus or symbol */
.calendar-cell.no-new-booking .free-link,
.calendar-cell.no-new-booking .free-link::before,
.calendar-cell.no-new-booking .free-link::after,
.calendar-cell.no-new-booking .calendar-half-hotspot.free,
.calendar-cell.no-new-booking .calendar-half-hotspot.free::before,
.calendar-cell.no-new-booking .calendar-half-hotspot.free::after,
.calendar-cell[data-closed-date="1"] a[href*="booking_edit.php?unit_id"],
.calendar-cell.closed-day a[href*="booking_edit.php?unit_id"] {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    content: none !important;
}
.calendar-cell.no-new-booking .calendar-half-hotspot.closed::before,
.calendar-cell.no-new-booking .calendar-half-hotspot.closed::after,
.calendar-cell[data-closed-date="1"] .calendar-half-hotspot.closed::before,
.calendar-cell[data-closed-date="1"] .calendar-half-hotspot.closed::after,
.calendar-cell.closed-day .calendar-half-hotspot.closed::before,
.calendar-cell.closed-day .calendar-half-hotspot.closed::after,
.calendar-cell.no-new-booking .closed-cell-label::before,
.calendar-cell.no-new-booking .closed-cell-label::after,
.calendar-cell[data-closed-date="1"] .closed-cell-label::before,
.calendar-cell[data-closed-date="1"] .closed-cell-label::after {
    content: none !important;
    display: none !important;
}
.calendar-cell.no-new-booking .closed-cell-label,
.calendar-cell[data-closed-date="1"] .closed-cell-label {
    display: block !important;
    inset: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    border: 0 !important;
}



/* v222: show booking plus only on hover for available dates */
.calendar-cell.free:not(.closed-day):not(.no-new-booking) .free-link {
    color: transparent !important;
    background: transparent !important;
    border-color: transparent !important;
}
.calendar-cell.free:not(.closed-day):not(.no-new-booking):hover .free-link,
.calendar-cell.free:not(.closed-day):not(.no-new-booking) .free-link:hover {
    color: var(--primary) !important;
    background: var(--primary-soft) !important;
    border: 1px solid rgba(37, 99, 235, .14) !important;
}
.calendar-cell:not(.closed-day):not(.no-new-booking) .calendar-half-hotspot.free::after {
    opacity: 0 !important;
}
.calendar-cell:not(.closed-day):not(.no-new-booking) .calendar-half-hotspot.free:hover::after {
    opacity: .95 !important;
}


/* v223: full public hotel page */
.public-hotel-full-page {
    display: grid;
    gap: 18px;
}
.public-hotel-cover {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 18px;
    align-items: stretch;
    padding: 22px;
    background:
        radial-gradient(circle at 8% 0%, rgba(37, 99, 235, .12), transparent 35%),
        linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
}
.public-hotel-cover-main {
    display: grid;
    grid-template-columns: 118px minmax(0, 1fr);
    gap: 18px;
    align-items: center;
}
.public-hotel-logo-block img,
.public-hotel-logo-fallback {
    width: 118px;
    height: 118px;
    border-radius: 28px;
    border: 1px solid #e5e7eb;
    background: #fff;
    object-fit: cover;
    box-shadow: 0 14px 34px rgba(15, 23, 42, .12);
}
.public-hotel-logo-fallback {
    display: grid;
    place-items: center;
    font-size: 48px;
}
.public-hotel-title-block {
    min-width: 0;
}
.public-hotel-eyebrow {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 6px 10px;
    border-radius: 999px;
    background: #eff6ff;
    color: #1d4ed8;
    border: 1px solid #dbeafe;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.public-hotel-title-block h1 {
    margin: 12px 0 8px;
    font-size: clamp(32px, 5vw, 56px);
    line-height: .95;
    letter-spacing: -.04em;
}
.public-hotel-lead {
    max-width: 760px;
    margin: 0;
    color: #334155;
    font-size: 16px;
    line-height: 1.55;
}
.public-hotel-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}
.public-hotel-contact-card {
    padding: 18px;
    border: 1px solid #e5e7eb;
    border-radius: 22px;
    background: rgba(255, 255, 255, .78);
    box-shadow: 0 10px 26px rgba(15, 23, 42, .06);
}
.public-hotel-contact-card h2 {
    margin: 0 0 12px;
}
.public-hotel-contact-list {
    display: grid;
    gap: 12px;
}
.public-hotel-contact-list div {
    display: grid;
    gap: 3px;
}
.public-hotel-contact-list strong {
    font-size: 12px;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: .04em;
}
.public-hotel-contact-list span,
.public-hotel-contact-list a {
    color: #0f172a;
    font-weight: 750;
    text-decoration: none;
    overflow-wrap: anywhere;
}
.public-hotel-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
}
.public-hotel-stat-card {
    padding: 16px;
}
.public-hotel-stat-card span {
    display: block;
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
}
.public-hotel-stat-card strong {
    display: block;
    margin-top: 8px;
    font-size: 24px;
    line-height: 1.1;
    color: #111827;
    overflow-wrap: anywhere;
}
.public-hotel-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(380px, 520px);
    gap: 18px;
    align-items: start;
}
.public-hotel-info-stack {
    display: grid;
    gap: 18px;
}
.public-hotel-section-card {
    padding: 20px;
}
.public-section-head {
    margin-bottom: 14px;
}
.public-section-head h2 {
    margin: 0 0 6px;
}
.public-section-head p {
    margin: 0;
    color: var(--muted);
}
.public-place-list-full {
    display: grid;
    gap: 12px;
}
.public-place-card-full {
    display: grid;
    grid-template-columns: minmax(0, 200px) minmax(0, 1fr);
    gap: 18px;
    align-items: center;
    padding: 18px;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    background: #fff;
}
.public-place-main {
    min-width: 0;
}
.public-place-name {
    display: block;
    margin: 0 0 6px;
    font-size: 17px;
    line-height: 1.2;
}
.public-place-meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
}
.public-place-fact {
    display: grid;
    gap: 4px;
    align-content: start;
    min-height: 64px;
    padding: 10px 12px;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
}
.public-place-fact-label {
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.25;
}
.public-place-fact-value {
    color: #0f172a;
    font-size: 16px;
    font-weight: 900;
    line-height: 1.25;
    word-break: break-word;
}
.public-rules-text {
    padding: 14px;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    background: #f8fafc;
    color: #334155;
    line-height: 1.55;
}
.public-booking-form-card {
    position: sticky;
    top: 16px;
    align-self: start;
    padding: 20px;
    border: 1px solid #dbeafe;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .08);
}
.public-booking-intro {
    margin-top: -6px;
}
@media (max-width: 860px) {
    .public-place-card-full {
        grid-template-columns: 1fr;
        gap: 14px;
    }
    .public-place-meta {
        grid-template-columns: 1fr;
    }
    .public-place-fact {
        min-height: 0;
    }
}

@media (max-width: 1100px) {
    .public-hotel-cover,
    .public-hotel-layout {
        grid-template-columns: 1fr;
    }
    .public-booking-form-card {
        position: static;
    }
}
@media (max-width: 780px) {
    .public-hotel-cover {
        padding: 16px;
    }
    .public-hotel-cover-main {
        grid-template-columns: 1fr;
    }
    .public-hotel-logo-block img,
    .public-hotel-logo-fallback {
        width: 92px;
        height: 92px;
        border-radius: 22px;
    }
    .public-hotel-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .public-place-card-full {
        grid-template-columns: 1fr;
    }
    .public-place-meta {
        justify-content: flex-start;
    }
}
@media (max-width: 520px) {
    .public-hotel-stats {
        grid-template-columns: 1fr;
    }
    .public-hotel-actions .btn {
        width: 100%;
    }
}

/* v224: public hotel page link in manager sidebar */
.user-card-hotel-link,
.user-card-public-link {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-decoration: none;
}
.user-card-hotel-link {
    color: #fff;
    font-weight: 800;
    margin-top: 2px;
}
.user-card-hotel-link:hover,
.user-card-public-link:hover {
    text-decoration: underline;
}
.user-card-public-link {
    color: #bfdbfe;
    font-size: 12px;
    font-weight: 750;
    margin-top: 5px;
}


/* v227: booking list date labels must not overlap date values */
@media (max-width: 640px) {
    .booking-date-cell {
        width: 200px;
        min-width: 200px;
    }
    .booking-date-line {
        grid-template-columns: 82px minmax(0, 1fr);
        gap: 8px;
    }
    .booking-date-label {
        font-size: 10px;
        letter-spacing: .04em;
    }
}

/* v230: client booking app entry page */
.booking-app-page {
    max-width: 1180px;
    margin: 0 auto;
    display: grid;
    gap: 18px;
}
.booking-app-hero {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    padding: 26px;
}
.booking-app-hero h1 {
    margin: 8px 0 8px;
    font-size: clamp(2rem, 4vw, 3.4rem);
    line-height: 1.05;
}
.booking-app-hero p {
    margin: 0;
    max-width: 680px;
    color: var(--muted);
    font-size: 1.05rem;
}
.booking-app-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
}
.booking-app-section {
    padding: 22px;
}
.booking-hotel-grid {
    display: grid;
    gap: 14px;
}
.booking-hotel-card {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: #fff;
}
.booking-hotel-logo {
    width: 86px;
    height: 86px;
    border-radius: 22px;
    background: #f8fafc;
    border: 1px solid var(--line);
    display: grid;
    place-items: center;
    overflow: hidden;
    font-size: 30px;
}
.booking-hotel-logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.booking-hotel-content h3 {
    margin: 0 0 6px;
    font-size: 1.25rem;
}
.booking-hotel-content p {
    margin: 0 0 10px;
    color: var(--muted);
}
.booking-hotel-meta,
.booking-hotel-contacts {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}
.booking-hotel-meta span,
.booking-hotel-contacts span,
.booking-hotel-contacts a {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 9px;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    color: #334155;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}
.booking-hotel-contacts {
    margin-top: 8px;
}
.booking-hotel-card-action {
    display: flex;
    justify-content: flex-end;
}
@media (max-width: 820px) {
    .booking-app-hero {
        display: grid;
    }
    .booking-app-actions {
        justify-content: stretch;
    }
    .booking-app-actions .btn {
        flex: 1 1 auto;
    }
    .booking-hotel-card {
        grid-template-columns: 64px minmax(0, 1fr);
        align-items: start;
    }
    .booking-hotel-logo {
        width: 64px;
        height: 64px;
        border-radius: 18px;
    }
    .booking-hotel-card-action {
        grid-column: 1 / -1;
        justify-content: stretch;
    }
    .booking-hotel-card-action .btn {
        width: 100%;
    }
}


/* v231: Booking app home screen */
.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.booking-app-home {
    gap: 16px;
}
.booking-app-hero-v231 {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    align-items: stretch;
    padding: clamp(18px, 3vw, 30px);
    background: linear-gradient(135deg, #eff6ff 0%, #ffffff 48%, #ecfeff 100%);
    border: 1px solid #dbeafe;
}
.booking-app-hero-copy {
    display: grid;
    align-content: center;
    gap: 16px;
}
.booking-app-hero-v231 h1 {
    margin: 0;
    font-size: clamp(1.45rem, 3vw, 2.35rem);
    line-height: 1.08;
    letter-spacing: -.03em;
}
.booking-app-hero-v231 p {
    max-width: 740px;
    font-size: clamp(.95rem, 1.55vw, 1.08rem);
    line-height: 1.5;
}
.booking-app-search {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 8px;
    max-width: 760px;
    padding: 6px;
    border: 1px solid #dbeafe;
    border-radius: 18px;
    background: rgba(255,255,255,.82);
    box-shadow: 0 14px 34px rgba(15, 23, 42, .07);
}
.booking-app-search input {
    min-width: 0;
    border: 0;
    background: transparent;
    padding: 8px 10px;
    font: inherit;
    font-size: .96rem;
    font-weight: 700;
    color: var(--text);
    outline: none;
}
.booking-app-search .btn {
    min-height: 36px;
    padding: 7px 12px;
    font-size: .95rem;
    border-radius: 12px;
    white-space: nowrap;
}
.booking-app-search input::placeholder {
    color: #94a3b8;
}
.booking-app-side-card {
    display: grid;
    align-content: center;
    gap: 14px;
    padding: 18px;
    border-radius: 24px;
    background: rgba(255,255,255,.76);
    border: 1px solid rgba(148, 163, 184, .26);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.booking-app-side-title {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.booking-app-actions-stack {
    display: grid;
    justify-content: stretch;
}
.booking-app-actions-stack .btn {
    justify-content: center;
}
.booking-app-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}
.booking-app-stat-card {
    padding: 16px;
}
.booking-app-stat-card span {
    display: block;
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.booking-app-stat-card strong {
    display: block;
    margin-top: 8px;
    color: #0f172a;
    font-size: 28px;
    line-height: 1.1;
    font-weight: 950;
    overflow-wrap: anywhere;
}
.booking-app-stats-after-results {
    margin-top: 2px;
}
.booking-app-hotels-section {
    padding: clamp(16px, 3vw, 24px);
}
.booking-app-section-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: start;
    margin-bottom: 18px;
}
.booking-app-section-head h2 {
    margin: 6px 0 6px;
    font-size: clamp(1.2rem, 2.2vw, 1.8rem);
    line-height: 1.16;
}
.booking-app-section-head p {
    margin: 0;
    color: var(--muted);
}
.booking-hotel-grid-v231 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
}
.booking-hotel-card-v231 {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 14px;
    min-height: 100%;
    padding: 18px;
    border-radius: 24px;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.booking-hotel-card-v231:hover {
    transform: translateY(-2px);
    border-color: #bfdbfe;
    box-shadow: 0 18px 48px rgba(15, 23, 42, .10);
}
.booking-hotel-topline {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
}
.booking-hotel-card-v231 .booking-hotel-logo {
    width: 72px;
    height: 72px;
    border-radius: 20px;
}
.booking-hotel-titlebox h3 {
    margin: 0 0 4px;
    font-size: 1.35rem;
    line-height: 1.15;
}
.booking-hotel-titlebox p,
.booking-hotel-description {
    color: var(--muted);
    line-height: 1.45;
}
.booking-hotel-titlebox p {
    margin: 0;
    font-size: .92rem;
}
.booking-hotel-description {
    margin: 0;
}
.booking-hotel-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}
.booking-hotel-facts div {
    display: grid;
    gap: 3px;
    padding: 10px;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    background: #f8fafc;
}
.booking-hotel-facts span {
    color: #64748b;
    font-size: 11px;
    font-weight: 900;
    line-height: 1.2;
}
.booking-hotel-facts strong {
    color: #0f172a;
    font-size: 15px;
    line-height: 1.2;
    overflow-wrap: anywhere;
}
.booking-hotel-contacts-v231 {
    margin-top: 0;
}
.booking-hotel-card-action-v231 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    align-self: end;
}
.booking-hotel-card-action-v231 .btn {
    justify-content: center;
}
.booking-app-empty {
    display: grid;
    justify-items: center;
    gap: 10px;
    padding: 34px 16px;
    border: 1px dashed #cbd5e1;
    border-radius: 20px;
    text-align: center;
    color: var(--muted);
    background: #f8fafc;
}
.booking-app-empty strong {
    color: var(--text);
    font-size: 1.1rem;
}
.booking-app-empty p {
    margin: 0;
}
@media (max-width: 900px) {
    .booking-app-hero-v231 {
        grid-template-columns: 1fr;
    }
    .booking-app-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .booking-app-section-head {
        display: grid;
    }
    .booking-app-manager-shortcut {
        justify-self: start;
    }
}
@media (max-width: 560px) {
    .booking-app-search {
        grid-template-columns: 1fr;
    }
    .booking-app-stats {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }
    .booking-app-stat-card {
        padding: 12px;
    }
    .booking-app-stat-card strong {
        font-size: 22px;
    }
    .booking-hotel-grid-v231 {
        grid-template-columns: 1fr;
    }
    .booking-hotel-facts,
    .booking-hotel-card-action-v231 {
        grid-template-columns: 1fr;
    }
}


/* v233: public message modal, hidden hotel email */
.booking-hotel-contacts button {
    border: 1px solid #dbe4ef;
    background: #fff;
    color: #0f172a;
    border-radius: 999px;
    padding: 8px 12px;
    font: inherit;
    font-weight: 850;
    cursor: pointer;
}
.booking-hotel-contacts button:hover,
.public-contact-message-btn:hover {
    border-color: #bfdbfe;
    background: #eff6ff;
}
.public-contact-message-btn {
    width: 100%;
    margin-top: 14px;
}
.public-message-modal[hidden] {
    display: none !important;
}
.public-message-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: grid;
    place-items: center;
    padding: 18px;
}
.public-message-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, .48);
    backdrop-filter: blur(3px);
}
.public-message-dialog {
    position: relative;
    z-index: 1;
    width: min(560px, 100%);
    max-height: min(760px, calc(100vh - 36px));
    overflow: auto;
    background: #fff;
    border: 1px solid #dbe4ef;
    border-radius: 24px;
    box-shadow: 0 24px 80px rgba(15, 23, 42, .28);
    padding: 22px;
}
.public-message-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 36px;
    height: 36px;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    background: #fff;
    color: #0f172a;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}
.public-message-head {
    padding-right: 42px;
    margin-bottom: 16px;
}
.public-message-head h2 {
    margin: 6px 0 5px;
}
.public-message-head p {
    margin: 0;
    color: #64748b;
    font-weight: 800;
}
.public-message-form {
    display: grid;
    gap: 13px;
}
.public-message-form label {
    display: grid;
    gap: 7px;
    font-weight: 850;
}
.public-message-form input,
.public-message-form textarea {
    width: 100%;
}
.public-message-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 4px;
}
.public-message-honeypot {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}
html.modal-open {
    overflow: hidden;
}
@media (max-width: 560px) {
    .public-message-dialog {
        padding: 18px;
        border-radius: 20px;
    }
    .public-message-actions {
        display: grid;
        grid-template-columns: 1fr;
    }
    .public-message-actions .btn {
        width: 100%;
    }
}


.unit-species-options {
    display: grid;
    gap: 8px;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #f8fafc;
}
.unit-species-checks {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
.unit-species-options small {
    color: var(--muted);
}


/* v239: customer/public pages use top app bar instead of manager sidebar */
.customer-body {
    background: linear-gradient(180deg, #f8fbff 0%, #f3f6fb 44%, #eef3fb 100%);
}
.customer-shell {
    min-height: 100vh;
    display: block;
}
.customer-appbar {
    position: relative;
    min-height: 70px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
    padding: 12px 24px;
    background: rgba(255, 255, 255, .9);
    border-bottom: 1px solid rgba(203, 213, 225, .78);
    box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
    backdrop-filter: blur(14px);
}
.customer-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    color: #0f172a;
    text-decoration: none;
    font-weight: 950;
    letter-spacing: -.03em;
}
.customer-brand-mark {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    background: #2563eb;
    color: #fff;
    box-shadow: 0 10px 24px rgba(37, 99, 235, .22);
}
.customer-brand-text {
    font-size: 22px;
    line-height: 1;
}
.customer-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
}
.customer-nav::-webkit-scrollbar { display: none; }
.customer-nav a,
.customer-lang-switcher a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid transparent;
    border-radius: 999px;
    color: #334155;
    background: transparent;
    text-decoration: none;
    white-space: nowrap;
    font-size: 14px;
    font-weight: 850;
}
.customer-nav a:hover,
.customer-nav a.active,
.customer-lang-switcher a:hover,
.customer-lang-switcher a.active {
    color: #1d4ed8;
    background: #eff6ff;
    border-color: #bfdbfe;
}
.customer-lang-switcher {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
}
.customer-lang-switcher a {
    min-height: 34px;
    padding: 7px 10px;
    font-size: 12px;
}
.customer-main {
    max-width: 1240px;
    margin: 0 auto;
    padding: 22px 24px 34px;
}
.customer-main .booking-app-page,
.customer-main .public-hotel-page {
    max-width: none;
}
@media (max-width: 820px) {
    .customer-appbar {
        grid-template-columns: 1fr auto;
        gap: 10px;
        padding: 10px 12px;
    }
    .customer-brand-mark {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
        border-radius: 14px;
    }
    .customer-brand-text {
        font-size: 20px;
    }
    .customer-nav {
        grid-column: 1 / -1;
        grid-row: 2;
        justify-content: flex-start;
        padding-bottom: 2px;
    }
    .customer-nav a {
        background: #fff;
        border-color: #e2e8f0;
        min-height: 36px;
        padding: 7px 11px;
    }
    .customer-main {
        padding: 14px 12px 24px;
    }
}
@media (max-width: 420px) {
    .customer-brand-text {
        font-size: 18px;
    }
    .customer-lang-switcher a {
        min-width: 34px;
        padding-left: 8px;
        padding-right: 8px;
    }
}

/* v242 hotel statistics */
.stats-toolbar {
    align-items: flex-start;
}
.stats-period-form label {
    display: grid;
    gap: 5px;
    font-weight: 800;
    color: var(--muted);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.stats-period-form input[type="date"] {
    min-width: 160px;
}
.stats-hero {
    margin-bottom: 16px;
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-end;
}
.stats-hero small {
    display: block;
    color: var(--muted);
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 4px;
}
.stats-hero h2 {
    margin: 0 0 6px;
    font-size: clamp(22px, 2.4vw, 34px);
    letter-spacing: -.035em;
}
.stats-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 16px;
}
.stats-card {
    display: grid;
    gap: 6px;
    min-height: 118px;
}
.stats-card span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.stats-card strong {
    font-size: clamp(25px, 3vw, 38px);
    line-height: 1;
    letter-spacing: -.04em;
}
.stats-card small {
    font-size: 13px;
}
.stats-sections {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 16px;
    margin-bottom: 16px;
}

.stats-section-wide {
    grid-column: 1 / -1;
}
.stats-bars {
    display: grid;
    gap: 12px;
}
.stats-bar-row {
    display: grid;
    gap: 6px;
}
.stats-bar-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    font-size: 14px;
}
.stats-bar-head span {
    color: var(--text);
    font-weight: 750;
}
.stats-bar-head strong {
    font-size: 14px;
}
.stats-bar {
    height: 10px;
    border-radius: 999px;
    background: #eef2f7;
    overflow: hidden;
    border: 1px solid var(--line);
}
.stats-bar span {
    display: block;
    height: 100%;
    min-width: 0;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--primary), #60a5fa);
}
.stats-load-cell {
    display: grid;
    grid-template-columns: 58px minmax(120px, 1fr);
    gap: 10px;
    align-items: center;
}
.stats-load-cell > span {
    font-weight: 850;
    font-size: 13px;
    color: var(--muted);
}
.stats-table a {
    text-decoration: none;
}
.stats-table a:hover {
    color: var(--primary);
}
@media (max-width: 1100px) {
    .stats-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .stats-sections {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 760px) {
    .stats-card-grid {
        grid-template-columns: 1fr;
    }
    .stats-hero {
        display: block;
    }
    .stats-period-form,
    .stats-period-form label,
    .stats-period-form input[type="date"],
    .stats-period-form .btn {
        width: 100%;
    }
    .stats-load-cell {
        grid-template-columns: 1fr;
        gap: 6px;
    }
}

.amount-due-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex: 1 1 auto;
    min-width: 0;
}
.fully-paid-toggle {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid rgba(37, 99, 235, 0.22);
    border-radius: 999px;
    background: #fff;
    color: var(--text);
    font-weight: 900;
    cursor: pointer;
}
.fully-paid-toggle input {
    width: 16px;
    height: 16px;
    margin: 0;
}
.fully-paid-toggle span {
    font-size: 14px;
    font-weight: 900;
}
@media (max-width: 640px) {
    .amount-due-main {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
        width: 100%;
    }
    .fully-paid-toggle {
        width: 100%;
        justify-content: center;
    }
}

/* v253: hotel directory map */
.booking-app-map-section {
    padding: clamp(16px, 3vw, 24px);
    overflow: hidden;
}
.booking-hotels-map {
    width: 100%;
    min-height: 420px;
    border: 1px solid #dbe4ef;
    border-radius: 24px;
    overflow: hidden;
    background: #eef2f7;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
}
.booking-map-popup {
    display: grid;
    gap: 6px;
    min-width: 190px;
    font-family: var(--font, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
}
.booking-map-popup strong {
    font-size: 15px;
    line-height: 1.2;
    color: #0f172a;
}
.booking-map-popup span {
    color: #64748b;
    font-size: 12px;
    line-height: 1.35;
}
.booking-map-popup em {
    font-style: normal;
    font-weight: 900;
    color: #0f172a;
}
.booking-map-popup div {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 4px;
}
.booking-map-popup a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 6px 10px;
    border-radius: 999px;
    background: #2563eb;
    color: #fff;
    font-weight: 900;
    text-decoration: none;
}
.booking-map-popup a + a {
    background: #f8fafc;
    color: #0f172a;
    border: 1px solid #dbe4ef;
}
.hotel-map-fields {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid #e5e7eb;
    border-radius: 20px;
    background: #f8fafc;
}
.section-title.compact {
    margin-bottom: 0;
}
.section-title.compact h3 {
    margin: 0 0 4px;
    font-size: 1rem;
}
.nested-grid {
    margin: 0;
}
@media (max-width: 560px) {
    .booking-hotels-map {
        min-height: 340px;
        border-radius: 18px;
    }
    .booking-app-map-section {
        padding: 14px;
    }
}
.booking-map-empty {
    display: grid;
    place-items: center;
    min-height: 180px;
    padding: 24px;
    border: 1px dashed #cbd5e1;
    border-radius: 22px;
    background: #f8fafc;
    color: #64748b;
    text-align: center;
    font-weight: 800;
}

/* v254: structured hotel address and more robust map loading */
.hotel-address-fields,
.hotel-map-fields {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid #e5e7eb;
    border-radius: 20px;
    background: #f8fafc;
}
.hotel-geocode-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}
.hotel-geocode-status {
    font-size: .88rem;
    font-weight: 800;
    color: #64748b;
}
.hotel-geocode-status.success {
    color: #15803d;
}
.hotel-geocode-status.error {
    color: #b91c1c;
}
.hotel-geocode-status.loading {
    color: #2563eb;
}
.booking-hotels-map .booking-map-empty {
    min-height: 100%;
    border: 0;
    border-radius: 0;
}


/* v255: address geocoding suggestions */
.hotel-geocode-suggestions {
    display: grid;
    gap: 8px;
    margin-top: 2px;
}
.hotel-geocode-suggestions[hidden] {
    display: none;
}
.hotel-geocode-suggestions-title {
    color: #64748b;
    font-size: .86rem;
    font-weight: 900;
}
.hotel-geocode-suggestion {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #dbe4ef;
    border-radius: 16px;
    background: #fff;
    color: #0f172a;
    text-align: left;
    cursor: pointer;
}
.hotel-geocode-suggestion:hover {
    border-color: #93c5fd;
    background: #eff6ff;
}
.hotel-geocode-suggestion span {
    font-size: .9rem;
    line-height: 1.35;
}
.hotel-geocode-suggestion strong {
    padding: 6px 10px;
    border-radius: 999px;
    background: #2563eb;
    color: #fff;
    font-size: .82rem;
    font-weight: 900;
}
@media (max-width: 640px) {
    .hotel-geocode-suggestion {
        grid-template-columns: 1fr;
    }
    .hotel-geocode-suggestion strong {
        justify-self: start;
    }
}

/* v256: booking map without Leaflet */
.booking-hotels-map-simple {
    position: relative;
    isolation: isolate;
    background: #dbeafe;
}
.booking-simple-map-tiles,
.booking-simple-map-markers,
.booking-simple-map-popup-layer {
    position: absolute;
    inset: 0;
}
.booking-simple-map-tiles {
    z-index: 1;
    overflow: hidden;
}
.booking-simple-map-tiles img {
    position: absolute;
    width: 256px;
    height: 256px;
    user-select: none;
    pointer-events: none;
}
.booking-simple-map-markers {
    z-index: 2;
    pointer-events: none;
}
.booking-simple-map-marker {
    position: absolute;
    width: 28px;
    height: 28px;
    margin: -28px 0 0 -14px;
    border: 0;
    border-radius: 50% 50% 50% 0;
    background: #2563eb;
    box-shadow: 0 10px 22px rgba(37, 99, 235, .32), 0 0 0 4px rgba(255, 255, 255, .92);
    transform: rotate(-45deg);
    cursor: pointer;
    pointer-events: auto;
}
.booking-simple-map-marker span {
    position: absolute;
    inset: 8px;
    border-radius: 50%;
    background: #fff;
}
.booking-simple-map-marker.active,
.booking-simple-map-marker:hover {
    background: #dc2626;
    box-shadow: 0 12px 26px rgba(220, 38, 38, .34), 0 0 0 4px rgba(255, 255, 255, .95);
}
.booking-simple-map-popup-layer {
    z-index: 3;
    pointer-events: none;
}
.booking-simple-map-popup {
    position: absolute;
    padding: 12px;
    border: 1px solid #dbe4ef;
    border-radius: 18px;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 18px 45px rgba(15, 23, 42, .18);
    pointer-events: auto;
}
.booking-simple-map-attribution {
    position: absolute;
    right: 10px;
    bottom: 8px;
    z-index: 4;
    padding: 3px 7px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .88);
    color: #64748b;
    font-size: 11px;
    font-weight: 800;
}

/* v257: simplified hotel address entry */
.hotel-address-simple {
    display: grid;
    gap: 12px;
    padding: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 22px;
    background: #f8fafc;
}
.hotel-address-simple > label {
    margin: 0;
}
.hotel-address-selected {
    display: grid;
    gap: 4px;
    padding: 12px 14px;
    border: 1px solid #bbf7d0;
    border-radius: 18px;
    background: #f0fdf4;
    color: #166534;
}
.hotel-address-selected[hidden] {
    display: none;
}
.hotel-address-selected span {
    font-size: .82rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.hotel-address-selected strong {
    color: #0f172a;
    font-size: .98rem;
    line-height: 1.35;
}
.hotel-address-selected small {
    color: #15803d;
    font-weight: 800;
}
.hotel-address-manual {
    border-top: 1px dashed #cbd5e1;
    padding-top: 10px;
}
.hotel-address-manual summary {
    cursor: pointer;
    color: #2563eb;
    font-weight: 900;
}
.hotel-address-manual p {
    margin: 8px 0 12px;
    color: #64748b;
    font-weight: 650;
    line-height: 1.45;
}

/* v258: region-first booking map */
.booking-region-search {
    align-items: start;
}
.booking-region-input-wrap {
    position: relative;
    min-width: 0;
}
.booking-region-input-wrap input[type="search"] {
    width: 100%;
}
.booking-region-suggestions {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 8px);
    z-index: 50;
    display: grid;
    gap: 8px;
    padding: 10px;
    border: 1px solid #dbe4ef;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 20px 48px rgba(15, 23, 42, .16);
}
.booking-region-suggestions[hidden] {
    display: none;
}
.booking-region-status {
    min-height: 18px;
    padding: 0 12px 2px;
    color: #64748b;
    font-size: .82rem;
    font-weight: 800;
}
.booking-region-status.loading {
    color: #2563eb;
}
.booking-region-status.error {
    color: #b91c1c;
}
.booking-simple-map-marker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 42px;
    height: 30px;
    margin: -15px 0 0 -21px;
    padding: 0 9px;
    border: 2px solid #2563eb;
    border-radius: 999px;
    background: #fff;
    color: #0f172a;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .18);
    transform: none;
}
.booking-simple-map-marker strong {
    display: block;
    color: #0f172a;
    font-size: 12px;
    font-weight: 950;
    line-height: 1;
    white-space: nowrap;
}
.booking-simple-map-marker span {
    position: static;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #2563eb;
}
.booking-simple-map-marker.active,
.booking-simple-map-marker:hover {
    border-color: #dc2626;
    background: #fff7f7;
    color: #0f172a;
    box-shadow: 0 16px 34px rgba(220, 38, 38, .22);
}
.booking-simple-map-marker.active span,
.booking-simple-map-marker:hover span {
    background: #dc2626;
}
.booking-simple-map-empty-overlay {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 5;
    width: min(360px, calc(100% - 32px));
    transform: translate(-50%, -50%);
    padding: 16px;
    border: 1px solid #dbe4ef;
    border-radius: 20px;
    background: rgba(255, 255, 255, .96);
    color: #475569;
    text-align: center;
    font-weight: 900;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .15);
}
@media (max-width: 640px) {
    .booking-region-search {
        grid-template-columns: 1fr;
    }
    .booking-region-suggestions {
        position: static;
        margin-top: 8px;
    }
}

.hotel-geocode-suggestion.disabled {
    opacity: 0.62;
    cursor: not-allowed;
}
.hotel-geocode-suggestion span small {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: var(--danger);
    line-height: 1.35;
}

/* v261: hotel address map point in settings */
.hotel-location-panel {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid #dbe4ef;
    border-radius: 20px;
    background: #fff;
}
.hotel-location-panel-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
}
.hotel-location-panel-head strong {
    display: block;
    color: #0f172a;
    font-size: 1rem;
}
.hotel-location-panel-head p {
    margin: 3px 0 0;
    color: #64748b;
    font-weight: 650;
    line-height: 1.4;
}
.hotel-location-status {
    padding: 10px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #f8fafc;
    color: #475569;
    font-weight: 900;
}
.hotel-location-status.exact,
.hotel-location-status.manual {
    border-color: #bbf7d0;
    background: #f0fdf4;
    color: #166534;
}
.hotel-location-status.approx {
    border-color: #fde68a;
    background: #fffbeb;
    color: #92400e;
}
.hotel-location-status.error,
.hotel-location-status.none {
    border-color: #fecaca;
    background: #fef2f2;
    color: #991b1b;
}
.hotel-location-status.loading {
    border-color: #bfdbfe;
    background: #eff6ff;
    color: #1d4ed8;
}
.hotel-location-map {
    position: relative;
    min-height: 340px;
    overflow: hidden;
    border: 1px solid #cbd5e1;
    border-radius: 22px;
    background: #dbeafe;
    cursor: crosshair;
    touch-action: none;
}
.hotel-location-map.dragging {
    cursor: grabbing;
}
.hotel-location-map-marker-layer {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
}
.hotel-location-map-marker {
    position: absolute;
    width: 32px;
    height: 32px;
    margin: -32px 0 0 -16px;
    border: 0;
    border-radius: 50% 50% 50% 0;
    background: #dc2626;
    box-shadow: 0 12px 28px rgba(220, 38, 38, .34), 0 0 0 4px rgba(255, 255, 255, .95);
    transform: rotate(-45deg);
    pointer-events: auto;
    cursor: grab;
}
.hotel-location-map-marker:active {
    cursor: grabbing;
}
.hotel-location-map-marker span {
    position: absolute;
    inset: 9px;
    border-radius: 50%;
    background: #fff;
}
.hotel-location-map-empty {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 3;
    width: min(360px, calc(100% - 32px));
    transform: translate(-50%, -50%);
    padding: 14px;
    border: 1px solid #dbe4ef;
    border-radius: 18px;
    background: rgba(255, 255, 255, .94);
    color: #475569;
    text-align: center;
    font-weight: 900;
    pointer-events: none;
}
.hotel-location-map-help {
    position: absolute;
    left: 12px;
    bottom: 10px;
    z-index: 4;
    max-width: min(420px, calc(100% - 130px));
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .92);
    color: #475569;
    font-size: 12px;
    font-weight: 850;
    pointer-events: none;
}
.hotel-location-map-controls {
    position: absolute;
    right: 12px;
    top: 12px;
    z-index: 5;
    display: grid;
    gap: 6px;
}
.hotel-location-map-controls button {
    width: 34px;
    height: 34px;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    background: rgba(255, 255, 255, .94);
    color: #0f172a;
    font-size: 20px;
    font-weight: 900;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .12);
}
@media (max-width: 640px) {
    .hotel-location-panel-head {
        grid-template-columns: 1fr;
    }
    .hotel-location-map {
        min-height: 300px;
    }
    .hotel-location-map-help {
        max-width: calc(100% - 24px);
        border-radius: 14px;
    }
}

/* v264: compact booking map price markers */
.booking-hotels-map-simple {
    cursor: grab;
    touch-action: none;
}
.booking-hotels-map-simple.dragging {
    cursor: grabbing;
}
.booking-hotels-map-simple.dragging .booking-simple-map-tiles,
.booking-hotels-map-simple.dragging .booking-simple-map-markers {
    will-change: transform;
}
.booking-map-controls {
    position: absolute;
    right: 12px;
    top: 12px;
    z-index: 5;
    display: grid;
    gap: 6px;
}
.booking-map-controls button {
    width: 34px;
    height: 34px;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    background: rgba(255, 255, 255, .95);
    color: #0f172a;
    font-size: 20px;
    font-weight: 900;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .12);
}
.booking-simple-map-marker {
    position: absolute;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transform: none;
    border: 0;
    cursor: pointer;
}
.booking-simple-map-price-marker {
    width: auto;
    min-width: 34px;
    max-width: 86px;
    height: 24px;
    margin: -12px 0 0 -14px;
    gap: 5px;
    padding: 0 8px 0 6px;
    border: 1px solid rgba(37, 99, 235, .45);
    border-radius: 999px;
    background: rgba(255, 255, 255, .96);
    color: #0f172a;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .16);
}
.booking-simple-map-price-marker span {
    flex: 0 0 auto;
    position: static;
    display: block;
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: #2563eb;
}
.booking-simple-map-price-marker strong {
    display: block;
    overflow: hidden;
    color: #0f172a;
    font-size: 11px;
    font-weight: 950;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.booking-simple-map-cluster {
    width: 28px;
    height: 28px;
    margin: -14px 0 0 -14px;
    border: 2px solid #fff;
    border-radius: 999px;
    background: #2563eb;
    color: #fff;
    box-shadow: 0 10px 22px rgba(37, 99, 235, .28);
}
.booking-simple-map-cluster strong {
    color: #fff;
    font-size: 12px;
    font-weight: 950;
    line-height: 1;
}
.booking-simple-map-marker.active,
.booking-simple-map-marker:hover {
    z-index: 2;
}
.booking-simple-map-price-marker.active,
.booking-simple-map-price-marker:hover {
    border-color: rgba(220, 38, 38, .55);
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 10px 24px rgba(220, 38, 38, .18);
}
.booking-simple-map-price-marker.active span,
.booking-simple-map-price-marker:hover span {
    background: #dc2626;
}
.booking-simple-map-cluster:hover,
.booking-simple-map-cluster.active {
    background: #dc2626;
    box-shadow: 0 12px 26px rgba(220, 38, 38, .3), 0 0 0 4px rgba(220, 38, 38, .14);
}
.booking-map-popup {
    position: relative;
    padding-right: 28px;
}
.booking-map-popup-close {
    position: absolute;
    top: -3px;
    right: -3px;
    width: 26px;
    height: 26px;
    border: 1px solid #dbe4ef;
    border-radius: 999px;
    background: #fff;
    color: #475569;
    font-size: 17px;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
}

.registration-bot-trap {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
}


.form-hint {
    display: block;
    margin-top: 5px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.35;
}

/* v281: Booking-style public directory layout */
.booking-app-v281 {
    gap: 18px;
}
.booking-search-hero-v281 {
    padding: clamp(16px, 2.6vw, 24px);
    background: linear-gradient(135deg, #0f3d75 0%, #1554a3 100%);
    color: #fff;
    border: 0;
    overflow: visible;
}
.booking-search-hero-copy-v281 {
    display: grid;
    gap: 5px;
    margin-bottom: 14px;
}
.booking-search-hero-v281 .public-hotel-eyebrow {
    color: rgba(255,255,255,.72);
}
.booking-search-hero-v281 h1 {
    margin: 0;
    color: #fff;
    font-size: clamp(1.25rem, 2.3vw, 2rem);
    line-height: 1.12;
    letter-spacing: -.025em;
}
.booking-searchbar-v281 {
    display: grid;
    grid-template-columns: minmax(220px, 1.7fr) minmax(150px, .7fr) minmax(150px, .7fr) auto auto;
    gap: 4px;
    align-items: stretch;
    padding: 4px;
    border-radius: 12px;
    background: #febb02;
    box-shadow: 0 18px 44px rgba(15, 23, 42, .2);
}
.booking-search-field-v281 {
    display: grid;
    align-content: center;
    gap: 3px;
    min-width: 0;
    padding: 8px 10px;
    background: #fff;
    color: #0f172a;
    border-radius: 8px;
}
.booking-search-field-v281 label {
    margin: 0;
    color: #475569;
    font-size: 11px;
    line-height: 1.1;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.booking-search-field-v281 input {
    width: 100%;
    min-width: 0;
    border: 0;
    padding: 0;
    background: transparent;
    color: #0f172a;
    font: inherit;
    font-weight: 850;
    outline: none;
}
.booking-search-field-v281 input[type="date"] {
    min-height: 27px;
}
.booking-search-where-v281 .booking-region-status {
    min-height: 0;
    padding: 0;
    font-size: 11px;
}
.booking-searchbar-v281 .booking-region-suggestions {
    top: calc(100% + 13px);
}
.booking-search-submit-v281,
.booking-search-reset-v281 {
    min-height: 100%;
    border-radius: 8px;
    box-shadow: none;
    white-space: nowrap;
}
.booking-search-submit-v281 {
    min-width: 112px;
}
.booking-results-layout-v281 {
    display: grid;
    grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}
.booking-sidebar-v281 {
    display: grid;
    gap: 12px;
    position: sticky;
    top: 84px;
}
.booking-map-card-v281,
.booking-filters-v281 {
    padding: 12px;
}
.booking-map-card-title-v281 {
    margin-bottom: 8px;
    color: #0f172a;
    font-weight: 950;
}
.booking-map-preview-v281 {
    position: relative;
    overflow: hidden;
    border-radius: 18px;
    min-height: 190px;
    border: 1px solid #dbe4ef;
    background: #dbeafe;
}
.booking-hotels-map-preview-v281.booking-hotels-map {
    min-height: 190px;
    height: 190px;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.booking-map-preview-button-v281 {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 8;
    transform: translate(-50%, -50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 14px;
    border-radius: 999px;
    background: #fff;
    color: #0f172a;
    text-decoration: none;
    font-weight: 950;
    box-shadow: 0 14px 36px rgba(15, 23, 42, .22);
    border: 1px solid #dbe4ef;
    white-space: nowrap;
}
.booking-filters-v281 {
    display: grid;
    gap: 12px;
}
.booking-filter-head-v281 {
    display: grid;
    gap: 3px;
    padding-bottom: 10px;
    border-bottom: 1px solid #e5e7eb;
}
.booking-filter-head-v281 strong {
    font-size: 1rem;
    color: #0f172a;
}
.booking-filter-head-v281 span {
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}
.booking-filters-v281 label {
    display: grid;
    gap: 6px;
    color: #334155;
    font-weight: 900;
    font-size: 13px;
}
.booking-filters-v281 select,
.booking-filters-v281 input {
    width: 100%;
}
.booking-results-main-v281 {
    display: grid;
    gap: 14px;
}
.booking-hotels-results-v281 {
    padding: clamp(14px, 2vw, 20px);
}
.booking-results-head-v281 {
    margin-bottom: 14px;
}
.booking-hotel-list-v281 {
    display: grid;
    gap: 14px;
}
.booking-hotel-card-v281 {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr) minmax(170px, 210px);
    gap: 16px;
    padding: 14px;
    border-radius: 18px;
    align-items: stretch;
}
.booking-hotel-card-v281:hover {
    border-color: #93c5fd;
    box-shadow: 0 16px 44px rgba(15, 23, 42, .1);
}
.booking-hotel-photo-v281 {
    display: grid;
    place-items: center;
    min-height: 132px;
    border-radius: 14px;
    overflow: hidden;
    background: #eff6ff;
    text-decoration: none;
}
.booking-hotel-photo-v281 img {
    width: 100%;
    height: 100%;
    min-height: 132px;
    object-fit: cover;
}
.booking-hotel-photo-v281 span {
    font-size: 44px;
}
.booking-hotel-card-v281 .booking-hotel-titlebox h3 {
    margin: 0 0 4px;
}
.booking-hotel-card-v281 .booking-hotel-titlebox h3 a {
    color: #0f3d75;
    text-decoration: none;
}
.booking-hotel-card-v281 .booking-hotel-titlebox h3 a:hover {
    text-decoration: underline;
}
.booking-hotel-body-v281 {
    display: grid;
    gap: 10px;
    align-content: start;
}
.booking-hotel-facts-v281 {
    grid-template-columns: repeat(2, minmax(0, 130px));
    max-width: 280px;
}
.booking-hotel-pricebox-v281 {
    display: grid;
    gap: 8px;
    align-content: end;
    justify-items: stretch;
    text-align: right;
    border-left: 1px solid #e5e7eb;
    padding-left: 14px;
}
.booking-hotel-pricebox-v281 span {
    color: #64748b;
    font-size: 12px;
    font-weight: 900;
}
.booking-hotel-pricebox-v281 strong {
    color: #0f172a;
    font-size: 1.45rem;
    line-height: 1.1;
    font-weight: 950;
}
.booking-hotel-pricebox-v281 .btn {
    width: 100%;
}
@media (max-width: 980px) {
    .booking-searchbar-v281,
    .booking-results-layout-v281 {
        grid-template-columns: 1fr;
    }
    .booking-sidebar-v281 {
        position: static;
        order: 2;
    }
    .booking-results-main-v281 {
        order: 1;
    }
    .booking-hotel-card-v281 {
        grid-template-columns: 130px minmax(0, 1fr);
    }
    .booking-hotel-pricebox-v281 {
        grid-column: 1 / -1;
        border-left: 0;
        border-top: 1px solid #e5e7eb;
        padding-left: 0;
        padding-top: 12px;
        text-align: left;
    }
}
@media (max-width: 620px) {
    .booking-search-hero-v281 {
        padding: 14px;
    }
    .booking-hotel-card-v281 {
        grid-template-columns: 1fr;
    }
    .booking-hotel-photo-v281 {
        min-height: 170px;
    }
    .booking-hotel-photo-v281 img {
        min-height: 170px;
    }
    .booking-hotel-facts-v281 {
        grid-template-columns: 1fr 1fr;
        max-width: none;
    }
}

/* v282: full map overlay from public booking results */
.booking-map-preview-button-v281 {
    cursor: pointer;
}
.booking-map-modal-v282[hidden] {
    display: none !important;
}
.booking-map-modal-v282 {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: grid;
    padding: 18px;
}
.booking-map-modal-backdrop-v282 {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, .58);
    backdrop-filter: blur(3px);
}
.booking-map-modal-dialog-v282 {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(320px, 390px) minmax(0, 1fr);
    width: min(1500px, 100%);
    height: min(860px, calc(100vh - 36px));
    margin: auto;
    overflow: hidden;
    background: #fff;
    border-radius: 24px;
    box-shadow: 0 28px 90px rgba(15, 23, 42, .34);
}
.booking-map-modal-list-v282 {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    min-width: 0;
    border-right: 1px solid #e5e7eb;
    background: #f8fafc;
}
.booking-map-modal-head-v282 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
    padding: 18px;
    border-bottom: 1px solid #e5e7eb;
    background: #fff;
}
.booking-map-modal-head-v282 h2 {
    margin: 5px 0 5px;
    font-size: 1.15rem;
    line-height: 1.2;
}
.booking-map-modal-head-v282 p {
    margin: 0;
    color: #64748b;
    font-size: .9rem;
    font-weight: 750;
    line-height: 1.35;
}
.booking-map-modal-close-v282 {
    width: 38px;
    height: 38px;
    border: 1px solid #dbe4ef;
    border-radius: 999px;
    background: #fff;
    color: #0f172a;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
}
.booking-map-modal-hotels-v282 {
    display: grid;
    align-content: start;
    gap: 10px;
    padding: 12px;
    overflow: auto;
}
.booking-map-modal-hotel-v282 {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 10px;
    padding: 10px;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    background: #fff;
}
.booking-map-modal-thumb-v282 {
    display: grid;
    place-items: center;
    width: 82px;
    height: 82px;
    overflow: hidden;
    border-radius: 12px;
    background: #eff6ff;
    text-decoration: none;
}
.booking-map-modal-thumb-v282 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.booking-map-modal-thumb-v282 span {
    font-size: 30px;
}

/* v559: hotel photo management and public gallery */
.hotel-gallery-settings-v559 { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--border); }
.hotel-gallery-settings-head-v559 { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.hotel-gallery-settings-head-v559 h2 { margin:0; }
.hotel-gallery-settings-head-v559 span { padding:4px 9px; border-radius:999px; background:#f4eee9; color:#9a4e37; font-weight:850; }
.hotel-photo-upload-v559 { display:grid; gap:8px; margin-top:14px; }
.hotel-photo-upload-v559 input { width:100%; }
.hotel-photo-upload-button-v559 { width:100%; justify-content:center; margin-top:10px; }
.hotel-photo-manager-v559 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:16px; }
.hotel-photo-manager-item-v559 { position:relative; overflow:hidden; border:2px solid transparent; border-radius:16px; background:#f8fafc; }
.hotel-photo-manager-item-v559.is-cover { border-color:#4f7d5b; }
.hotel-photo-manager-item-v559 img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.hotel-photo-manager-item-v559 > strong { position:absolute; top:8px; left:8px; padding:4px 8px; border-radius:999px; background:#4f7d5b; color:#fff; font-size:11px; }
.hotel-photo-manager-actions-v559 { display:flex; gap:5px; padding:7px; }
.hotel-photo-manager-actions-v559 .btn { min-width:0; padding:7px 8px; flex:1; }

.public-hotel-gallery-v559 { display:grid; grid-template-columns:minmax(0,2fr) minmax(220px,1fr); gap:8px; height:clamp(280px,42vw,540px); overflow:hidden; border-radius:26px; }
.public-hotel-gallery-v559 button { position:relative; display:block; padding:0; border:0; overflow:hidden; background:#ede7e1; cursor:pointer; }
.public-hotel-gallery-v559 img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.public-hotel-gallery-v559 button:hover img { transform:scale(1.025); }
.public-hotel-gallery-main-v559 > span { position:absolute; right:16px; bottom:16px; padding:10px 14px; border-radius:999px; background:rgba(255,255,255,.94); color:#172033; box-shadow:0 8px 24px rgba(0,0,0,.18); font-weight:850; }
.public-hotel-gallery-thumbs-v559 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(0,1fr)); gap:8px; }
.hotel-gallery-lightbox-v559 { position:fixed; inset:0; z-index:10020; display:grid; grid-template-columns:70px minmax(0,1fr) 70px; align-items:center; padding:30px; background:rgba(8,12,19,.94); }
.hotel-gallery-lightbox-v559[hidden] { display:none; }
.hotel-gallery-lightbox-v559 figure { display:grid; place-items:center; gap:12px; margin:0; height:calc(100vh - 60px); }
.hotel-gallery-lightbox-v559 figure img { max-width:100%; max-height:calc(100vh - 110px); object-fit:contain; border-radius:12px; }
.hotel-gallery-lightbox-v559 figcaption { color:#fff; font-weight:800; }
.hotel-gallery-close-v559,.hotel-gallery-nav-v559 { border:0; color:#fff; background:rgba(255,255,255,.12); cursor:pointer; }
.hotel-gallery-close-v559 { position:absolute; top:18px; right:18px; width:46px; height:46px; border-radius:50%; font-size:30px; }
.hotel-gallery-nav-v559 { width:54px; height:70px; border-radius:18px; font-size:46px; }
body.hotel-gallery-open-v559 { overflow:hidden; }
@media (max-width:720px) {
  .hotel-photo-manager-v559 { grid-template-columns:1fr; }
  .public-hotel-gallery-v559 { grid-template-columns:1fr; height:300px; border-radius:20px; }
  .public-hotel-gallery-thumbs-v559 { display:none; }
  .hotel-gallery-lightbox-v559 { grid-template-columns:42px minmax(0,1fr) 42px; padding:14px 6px; }
  .hotel-gallery-nav-v559 { width:38px; height:58px; font-size:34px; }
}

/* v560: full-width hotel media editor and visible upload progress */
.settings-tab-general-v530 > .settings-main { grid-column:1 / -1; }
.hotel-media-settings-v560 { display:grid; gap:22px; margin-top:8px; padding:clamp(18px,3vw,30px); border:1px solid #ead8cf; border-radius:24px; background:linear-gradient(145deg,#fff 0%,#fffaf7 100%); }
.hotel-media-heading-v560 h2,.hotel-media-heading-v560 p,.hotel-gallery-editor-head-v560 h3,.hotel-gallery-editor-head-v560 p { margin:0; }
.hotel-media-heading-v560 p,.hotel-gallery-editor-head-v560 p { margin-top:5px; color:var(--muted); }
.hotel-logo-row-v560 { display:grid; grid-template-columns:150px minmax(0,1fr); gap:20px; align-items:center; padding:18px; border:1px solid #ece5df; border-radius:20px; background:#fff; }
.hotel-logo-preview-v560 { display:grid; place-items:center; width:150px; height:120px; overflow:hidden; border-radius:18px; background:#f4eee9; font-size:42px; }
.hotel-logo-preview-v560 img { width:100%; height:100%; object-fit:contain; }
.hotel-logo-row-v560 h3 { margin:0 0 5px; }
.hotel-logo-picker-v560 { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:12px 0; }
.hotel-logo-picker-v560 > span { font-weight:850; }
.hotel-gallery-editor-v560 { padding-top:22px; border-top:1px solid #eadfd8; }
.hotel-gallery-editor-head-v560 { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.hotel-gallery-editor-head-v560 > strong { flex:none; padding:7px 12px; border-radius:999px; background:#f1e7e1; color:#934b36; }
.hotel-photo-dropzone-v560 { display:grid; justify-items:center; gap:7px; width:100%; min-height:150px; margin-top:16px; padding:24px; border:2px dashed #d7b7a8; border-radius:20px; background:#fff; color:#55362c; cursor:pointer; transition:.18s ease; }
.hotel-photo-dropzone-v560:hover,.hotel-photo-dropzone-v560.is-dragover-v560 { border-color:#b85f43; background:#fff7f2; transform:translateY(-1px); }
.hotel-photo-dropzone-icon-v560 { display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:#bd674d; color:#fff; font-size:30px; line-height:1; }
.hotel-photo-dropzone-v560 strong { font-size:18px; }.hotel-photo-dropzone-v560 small { color:var(--muted); }
.hotel-photo-queue-v560 { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; margin-top:16px; }
.hotel-photo-queue-item-v560 { display:grid; grid-template-columns:88px minmax(0,1fr); gap:12px; align-items:center; padding:10px; border:1px solid #e6ddd7; border-radius:16px; background:#fff; }
.hotel-photo-queue-item-v560 img { width:88px; height:72px; border-radius:11px; object-fit:cover; }
.hotel-photo-queue-item-v560 > div { display:grid; min-width:0; gap:6px; }.hotel-photo-queue-item-v560 strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.hotel-photo-queue-item-v560 small { color:var(--muted); }
.hotel-photo-queue-item-v560 progress,.hotel-photo-overall-progress-v560 progress { width:100%; accent-color:#4f7d5b; }
.hotel-photo-queue-item-v560.is-complete-v560 { border-color:#a8c5ad; background:#f4faf5; }.hotel-photo-queue-item-v560.is-error-v560 { border-color:#e4a89c; background:#fff5f2; }
.hotel-photo-overall-progress-v560 { display:grid; gap:6px; margin-top:14px; }.hotel-photo-overall-progress-v560 span { color:var(--muted); font-weight:750; }
.hotel-photo-manager-v560 { display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:14px; margin-top:20px; }
.hotel-photo-manager-item-v560 { position:relative; overflow:hidden; border:2px solid transparent; border-radius:18px; background:#fff; box-shadow:0 8px 22px rgba(50,30,20,.08); }
.hotel-photo-manager-item-v560.is-cover { border-color:#5d8567; }.hotel-photo-manager-item-v560 > img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.hotel-photo-cover-badge-v560 { position:absolute; top:9px; left:9px; padding:5px 9px; border-radius:999px; background:#4f7659; color:#fff; font-size:12px; box-shadow:0 4px 14px rgba(0,0,0,.16); }
.hotel-photo-manager-actions-v560 { display:flex; gap:6px; padding:9px; }.hotel-photo-manager-actions-v560 .btn { flex:1; min-width:0; padding:8px; }
@media (max-width:720px) {
  .hotel-media-settings-v560 { padding:16px; border-radius:20px; }
  .hotel-logo-row-v560 { grid-template-columns:1fr; }.hotel-logo-preview-v560 { width:100%; height:150px; }
  .hotel-photo-manager-v560 { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .hotel-photo-manager-actions-v560 { flex-wrap:wrap; }.hotel-photo-manager-actions-v560 .btn:first-child { flex-basis:100%; }
  .hotel-photo-queue-v560 { grid-template-columns:1fr; }
}
.booking-map-modal-hotel-v282 h3 {
    margin: 0 0 4px;
    font-size: .98rem;
    line-height: 1.2;
}
.booking-map-modal-hotel-v282 h3 a {
    color: #0f3d75;
    text-decoration: none;
}
.booking-map-modal-hotel-v282 h3 a:hover {
    text-decoration: underline;
}
.booking-map-modal-hotel-v282 p {
    margin: 0 0 6px;
    color: #64748b;
    font-size: .84rem;
    line-height: 1.3;
}
.booking-map-modal-hotel-v282 strong {
    display: block;
    margin-bottom: 8px;
    color: #0f172a;
    font-size: .92rem;
}
.booking-map-modal-empty-v282 {
    padding: 18px;
    color: #64748b;
    font-weight: 850;
}
.booking-map-modal-map-wrap-v282 {
    min-width: 0;
    min-height: 0;
}
.booking-hotels-map-modal-v282.booking-hotels-map {
    width: 100%;
    height: 100%;
    min-height: 100%;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
html.booking-map-modal-open-v282 {
    overflow: hidden;
}
@media (max-width: 860px) {
    .booking-map-modal-v282 {
        padding: 0;
    }
    .booking-map-modal-dialog-v282 {
        width: 100%;
        height: 100vh;
        border-radius: 0;
        grid-template-columns: 1fr;
        grid-template-rows: 42vh minmax(0, 1fr);
    }
    .booking-map-modal-map-wrap-v282 {
        grid-row: 1;
    }
    .booking-map-modal-list-v282 {
        grid-row: 2;
        border-right: 0;
        border-top: 1px solid #e5e7eb;
    }
    .booking-map-modal-head-v282 {
        padding: 14px;
    }
}

/* v283: sortable manager bookings table */
.table-sort-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: inherit;
    text-decoration: none;
    font-weight: 950;
    white-space: nowrap;
}
.table-sort-link:hover {
    color: #2563eb;
    text-decoration: underline;
}
.table-sort-link.active {
    color: #2563eb;
}
.bookings-sort-summary {
    margin: -4px 0 10px;
    color: #64748b;
    font-size: .9rem;
    font-weight: 800;
}
.bookings-sort-summary strong {
    color: #0f172a;
}
.booking-date-line.muted {
    color: #64748b;
    font-size: .82rem;
}
@media (max-width: 900px) {
    .data-table .table-sort-link {
        white-space: normal;
    }
}

/* v284: compact date columns in bookings manager list */
.bookings-table {
    min-width: 920px;
}
.bookings-table .booking-date-cell {
    width: auto;
    min-width: 0;
    white-space: nowrap;
}
.bookings-table .booking-created-cell {
    width: 132px;
    min-width: 132px;
    font-weight: 900;
}
.bookings-table .booking-stay-date-cell {
    width: 118px;
    min-width: 118px;
}
.bookings-table th:nth-child(4),
.bookings-table td:nth-child(4) {
    min-width: 240px;
}
.bookings-table th:nth-child(5),
.bookings-table td:nth-child(5) {
    min-width: 170px;
}
.bookings-table th:nth-child(7),
.bookings-table td:nth-child(7) {
    min-width: 150px;
}
.bookings-table .actions {
    white-space: nowrap;
}

/* v285: professional compact bookings list */
.bookings-table {
    min-width: 0;
    width: 100%;
    table-layout: auto;
}
.bookings-table th,
.bookings-table td {
    padding: 10px 10px;
}
.bookings-table .booking-date-th,
.bookings-table .booking-date-cell {
    width: 92px;
    min-width: 82px;
    max-width: 98px;
    white-space: nowrap;
}
.bookings-table .booking-created-cell,
.bookings-table .booking-stay-date-cell {
    width: 92px;
    min-width: 82px;
    max-width: 98px;
    font-weight: 850;
}
.bookings-table .booking-client-th,
.bookings-table td:nth-child(4) {
    min-width: 210px;
}
.bookings-table .booking-place-th,
.bookings-table td:nth-child(5) {
    min-width: 150px;
}
.bookings-table .booking-status-th,
.bookings-table td:nth-child(6) {
    width: 132px;
    min-width: 112px;
}
.bookings-table .booking-payment-th,
.bookings-table td:nth-child(7) {
    width: 150px;
    min-width: 130px;
}
.bookings-table .booking-actions-th,
.bookings-table .booking-actions-cell {
    width: 48px;
    min-width: 48px;
    max-width: 48px;
    text-align: right;
    white-space: nowrap;
}
.bookings-table .booking-edit-btn {
    width: 34px;
    min-width: 34px;
    height: 34px;
    padding: 0;
    border-radius: 12px;
    justify-content: center;
    font-size: 16px;
    line-height: 1;
}
.bookings-table .table-sort-link {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}
.bookings-table td:nth-child(7) {
    font-size: .95rem;
    line-height: 1.25;
}
@media (max-width: 1200px) {
    .bookings-table {
        min-width: 920px;
    }
    .bookings-table th,
    .bookings-table td {
        padding-left: 9px;
        padding-right: 9px;
    }
}

/* v286: cleaner manager booking list, no visible creation-date column */
.bookings-list-controls {
    grid-template-columns: minmax(180px, 1fr) auto auto auto auto auto;
}
.bookings-list-panel {
    overflow: hidden;
}
.bookings-table-v286 {
    min-width: 0;
    width: 100%;
    table-layout: auto;
}
.bookings-table-v286 th,
.bookings-table-v286 td {
    padding: 12px 14px;
}
.bookings-table-v286 .booking-client-th,
.bookings-table-v286 .booking-main-cell {
    width: 34%;
    min-width: 260px;
}
.bookings-table-v286 .booking-date-th,
.bookings-table-v286 .booking-stay-cell {
    width: 168px;
    min-width: 150px;
    white-space: nowrap;
}
.bookings-table-v286 .booking-place-th,
.bookings-table-v286 .booking-place-cell {
    width: 20%;
    min-width: 170px;
}
.bookings-table-v286 .booking-status-th,
.bookings-table-v286 .booking-status-cell {
    width: 132px;
    min-width: 112px;
}
.bookings-table-v286 .booking-payment-th,
.bookings-table-v286 .booking-payment-cell {
    width: 150px;
    min-width: 130px;
}
.bookings-table-v286 .booking-actions-th,
.bookings-table-v286 .booking-actions-cell {
    width: 46px;
    min-width: 46px;
    max-width: 46px;
}
.booking-stay-range {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #0f172a;
    font-weight: 800;
}
.booking-stay-arrow {
    color: #94a3b8;
}
.booking-owner-line {
    margin-top: 7px;
    color: #0f172a;
    font-weight: 750;
}
.booking-payment-cell strong {
    color: #0f172a;
}
.booking-payment-cell small {
    color: #64748b;
}
@media (max-width: 900px) {
    .bookings-list-controls {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }
    .bookings-list-controls input,
    .bookings-list-controls select,
    .bookings-list-controls .btn {
        width: 100%;
    }
    .bookings-table-v286,
    .bookings-table-v286 thead,
    .bookings-table-v286 tbody,
    .bookings-table-v286 tr,
    .bookings-table-v286 th,
    .bookings-table-v286 td {
        display: block;
        width: 100%;
        min-width: 0;
        max-width: none;
    }
    .bookings-table-v286 {
        min-width: 0;
        border-collapse: separate;
        border-spacing: 0;
    }
    .bookings-table-v286 thead {
        display: none;
    }
    .bookings-table-v286 tbody {
        display: grid;
        gap: 12px;
        padding: 12px;
        background: #f8fafc;
    }
    .bookings-table-v286 tr {
        display: grid;
        gap: 10px;
        padding: 14px;
        border: 1px solid #e5e7eb;
        border-radius: 18px;
        background: #fff;
        box-shadow: 0 10px 28px rgba(15, 23, 42, .05);
    }
    .bookings-table-v286 td {
        padding: 0;
        border: 0;
    }
    .bookings-table-v286 td[data-label]::before {
        content: attr(data-label);
        display: block;
        margin-bottom: 4px;
        color: #64748b;
        font-size: 11px;
        font-weight: 950;
        text-transform: uppercase;
        letter-spacing: .05em;
    }
    .bookings-table-v286 .booking-main-cell {
        order: 1;
    }
    .bookings-table-v286 .booking-stay-cell {
        order: 2;
        padding: 9px 10px;
        border-radius: 14px;
        background: #f8fafc;
    }
    .bookings-table-v286 .booking-place-cell {
        order: 3;
    }
    .bookings-table-v286 .booking-status-cell {
        order: 4;
    }
    .bookings-table-v286 .booking-payment-cell {
        order: 5;
    }
    .bookings-table-v286 .booking-actions-cell {
        order: 6;
        justify-self: stretch;
        width: 100%;
        max-width: none;
        text-align: left;
    }
    .bookings-table-v286 .booking-edit-btn {
        width: 100%;
        height: 38px;
    }
    .bookings-table-v286 .booking-edit-btn::after {
        content: " " attr(title);
        font-size: .95rem;
        margin-left: 6px;
    }
}
@media (max-width: 560px) {
    .bookings-list-controls {
        grid-template-columns: 1fr;
    }
    .booking-stay-range {
        gap: 5px;
        font-size: .96rem;
    }
}

/* v287: restored compact booking rows with separate auto sort control */
.bookings-toolbar-v287 {
    align-items: flex-start;
}
.bookings-search-sort-form-v287 {
    display: grid;
    gap: 8px;
    min-width: min(760px, 100%);
}
.bookings-search-row-v287 {
    margin: 0;
}
.bookings-sort-select-v287 {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    justify-self: start;
    margin: 0;
    color: #64748b;
    font-size: .88rem;
    font-weight: 850;
}
.bookings-sort-select-v287 select {
    min-width: 230px;
    min-height: 36px;
    padding: 6px 10px;
    border-radius: 12px;
}
.bookings-list-panel-v287 {
    overflow: auto;
}
.bookings-table-v287 {
    width: 100%;
    min-width: 820px;
    table-layout: auto;
}
.bookings-table-v287 th,
.bookings-table-v287 td {
    padding: 12px 14px;
}
.bookings-table-v287 .booking-dates-th,
.bookings-table-v287 .booking-stacked-dates-v287 {
    width: 150px;
    min-width: 145px;
    max-width: 160px;
}
.bookings-table-v287 th:nth-child(2),
.bookings-table-v287 td:nth-child(2) {
    min-width: 250px;
}
.bookings-table-v287 th:nth-child(3),
.bookings-table-v287 td:nth-child(3) {
    min-width: 170px;
}
.bookings-table-v287 th:nth-child(4),
.bookings-table-v287 td:nth-child(4) {
    width: 140px;
    min-width: 120px;
}
.bookings-table-v287 th:nth-child(5),
.bookings-table-v287 td:nth-child(5) {
    width: 165px;
    min-width: 145px;
}
.bookings-table-v287 th:nth-child(6),
.bookings-table-v287 td:nth-child(6) {
    width: 92px;
    min-width: 88px;
    text-align: right;
    white-space: nowrap;
}
.bookings-table-v287 .booking-date-line {
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 8px;
}
.bookings-table-v287 .booking-date-stack {
    gap: 6px;
}
.bookings-table-v287 .booking-date-label {
    color: #64748b;
    font-size: .76rem;
    font-weight: 950;
}
.bookings-table-v287 .booking-date-value {
    font-weight: 850;
}
@media (max-width: 900px) {
    .bookings-toolbar-v287 {
        display: grid;
        gap: 10px;
    }
    .bookings-search-sort-form-v287,
    .bookings-toolbar-v287 > .btn {
        width: 100%;
    }
    .bookings-search-row-v287 {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
    }
    .bookings-search-row-v287 input,
    .bookings-search-row-v287 select,
    .bookings-search-row-v287 .btn,
    .bookings-sort-select-v287,
    .bookings-sort-select-v287 select {
        width: 100%;
    }
    .bookings-sort-select-v287 {
        display: grid;
        gap: 5px;
    }
    .bookings-table-v287 {
        min-width: 760px;
    }
}

/* v288: clearer dates and two-part sort controls */
.bookings-sort-row-v288 {
    display: inline-grid;
    grid-template-columns: minmax(190px, 260px) minmax(150px, 190px);
    gap: 8px;
    align-items: end;
    justify-self: start;
}
.bookings-sort-row-v288 label {
    display: grid;
    gap: 5px;
    margin: 0;
    color: #64748b;
    font-size: .86rem;
    font-weight: 850;
}
.bookings-sort-row-v288 select {
    width: 100%;
    min-height: 36px;
    padding: 6px 10px;
    border-radius: 12px;
}
.bookings-table-v287 .booking-dates-th,
.bookings-table-v287 .booking-stacked-dates-v287 {
    width: 128px;
    min-width: 124px;
    max-width: 136px;
}
.bookings-table-v287 .booking-date-stack-plain-v288 {
    display: grid;
    gap: 5px;
    line-height: 1.18;
}
.bookings-table-v287 .booking-date-stack-plain-v288 .booking-date-value {
    font-weight: 850;
    white-space: nowrap;
}
@media (max-width: 900px) {
    .bookings-sort-row-v288 {
        width: 100%;
        grid-template-columns: 1fr 1fr;
    }
    .bookings-sort-row-v288 select {
        width: 100%;
    }
}
@media (max-width: 560px) {
    .bookings-sort-row-v288 {
        grid-template-columns: 1fr;
    }
}

/* v289: separated search, status filter and sorting controls */
.bookings-toolbar-v289 {
    align-items: flex-start;
}
.bookings-controls-v289 {
    display: grid;
    gap: 10px;
    min-width: min(860px, 100%);
}
.bookings-search-form-v289 {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.bookings-search-form-v289 input[name="q"] {
    min-width: min(360px, 100%);
}
.bookings-status-filter-v289 {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: stretch;
}
.booking-status-filter-button-v289,
.booking-status-filter-select-v289 {
    min-height: 38px;
    border: 1px solid #dbe4ef;
    border-radius: 14px;
    background: #fff;
    color: #0f172a;
    font: inherit;
    font-weight: 900;
}
.booking-status-filter-button-v289 {
    padding: 8px 14px;
    cursor: pointer;
}
.booking-status-filter-button-v289.active,
.booking-status-filter-select-v289.active {
    border-color: #93c5fd;
    background: #eff6ff;
    color: #1d4ed8;
}
.booking-status-filter-select-v289 {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 4px 6px 4px 12px;
    margin: 0;
}
.booking-status-filter-select-v289 span {
    white-space: nowrap;
}
.booking-status-filter-select-v289 select {
    min-width: 165px;
    min-height: 30px;
    border: 0;
    background: transparent;
    padding: 4px 6px;
    font-weight: 850;
}
.bookings-sort-form-v289 {
    display: inline-grid;
    grid-template-columns: minmax(190px, 260px) minmax(150px, 190px);
    gap: 8px;
    align-items: end;
    justify-self: start;
}
.bookings-sort-form-v289 label {
    display: grid;
    gap: 5px;
    margin: 0;
    color: #64748b;
    font-size: .86rem;
    font-weight: 850;
}
.bookings-sort-form-v289 select {
    width: 100%;
    min-height: 36px;
    padding: 6px 10px;
    border-radius: 12px;
}
@media (max-width: 900px) {
    .bookings-toolbar-v289,
    .bookings-toolbar-v289 > .btn {
        width: 100%;
    }
    .bookings-search-form-v289,
    .bookings-status-filter-v289,
    .bookings-sort-form-v289 {
        width: 100%;
    }
    .bookings-search-form-v289 {
        display: grid;
        grid-template-columns: 1fr;
    }
    .bookings-search-form-v289 input,
    .bookings-search-form-v289 .btn,
    .booking-status-filter-button-v289,
    .booking-status-filter-select-v289,
    .booking-status-filter-select-v289 select {
        width: 100%;
    }
    .booking-status-filter-select-v289 {
        justify-content: space-between;
    }
    .bookings-sort-form-v289 {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 560px) {
    .bookings-sort-form-v289 {
        grid-template-columns: 1fr;
    }
}

/* v290: compact status chips, default Active */
.bookings-toolbar-v290 {
    align-items: flex-start;
}
.bookings-controls-v290 {
    display: grid;
    gap: 8px;
    min-width: min(820px, 100%);
}
.bookings-search-form-v290 {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.bookings-search-form-v290 input[name="q"] {
    min-width: min(360px, 100%);
}
.bookings-status-filter-v290 {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}
.bookings-status-filter-v290 form {
    margin: 0;
}
.booking-status-chip-v290,
.booking-status-select-chip-v290 {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    border: 1px solid #dbe4ef;
    border-radius: 999px;
    background: #fff;
    color: #0f172a;
    font: inherit;
    font-size: .92rem;
    font-weight: 900;
}
.booking-status-chip-v290 {
    padding: 7px 13px;
    cursor: pointer;
}
.booking-status-select-chip-v290 {
    padding: 0 8px 0 12px;
    margin: 0;
}
.booking-status-select-chip-v290 select {
    min-height: 32px;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: .92rem;
    font-weight: 900;
    cursor: pointer;
    outline: none;
}
.booking-status-chip-v290.active,
.booking-status-select-chip-v290.active {
    border-color: #93c5fd;
    background: #eff6ff;
    color: #1d4ed8;
}
.bookings-sort-form-v290 {
    display: inline-grid;
    grid-template-columns: minmax(190px, 260px) minmax(150px, 190px);
    gap: 8px;
    align-items: end;
    justify-self: start;
}
.bookings-sort-form-v290 label {
    display: grid;
    gap: 5px;
    margin: 0;
    color: #64748b;
    font-size: .86rem;
    font-weight: 850;
}
.bookings-sort-form-v290 select {
    width: 100%;
    min-height: 36px;
    padding: 6px 10px;
    border-radius: 12px;
}
@media (max-width: 900px) {
    .bookings-toolbar-v290,
    .bookings-toolbar-v290 > .btn,
    .bookings-search-form-v290,
    .bookings-status-filter-v290,
    .bookings-sort-form-v290 {
        width: 100%;
    }
    .bookings-search-form-v290 {
        display: grid;
        grid-template-columns: 1fr;
    }
    .bookings-search-form-v290 input,
    .bookings-search-form-v290 .btn {
        width: 100%;
    }
    .bookings-status-filter-v290 {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
    }
    .booking-status-chip-v290,
    .booking-status-select-chip-v290,
    .booking-status-select-chip-v290 select {
        width: 100%;
    }
    .bookings-sort-form-v290 {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 560px) {
    .bookings-status-filter-v290,
    .bookings-sort-form-v290 {
        grid-template-columns: 1fr;
    }
}

/* v291: clickable active/completed status groups */
.booking-status-split-v291 {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    overflow: hidden;
    border: 1px solid #dbe4ef;
    border-radius: 999px;
    background: #fff;
    color: #0f172a;
}
.booking-status-split-v291.active {
    border-color: #93c5fd;
    background: #eff6ff;
    color: #1d4ed8;
}
.booking-status-split-button-v291 {
    align-self: stretch;
    padding: 7px 10px 7px 13px;
    border: 0;
    border-right: 1px solid #e5e7eb;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: .92rem;
    font-weight: 950;
    cursor: pointer;
}
.booking-status-split-v291.active .booking-status-split-button-v291 {
    border-right-color: #bfdbfe;
}
.booking-status-split-button-v291:hover {
    background: rgba(37, 99, 235, .08);
}
.booking-status-split-select-v291 {
    min-height: 32px;
    max-width: 150px;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: .9rem;
    font-weight: 850;
    cursor: pointer;
    outline: none;
    padding: 4px 8px 4px 6px;
}
.booking-status-select-chip-v290 {
    display: none;
}
@media (max-width: 900px) {
    .booking-status-split-v291 {
        width: 100%;
    }
    .booking-status-split-button-v291 {
        flex: 0 0 auto;
    }
    .booking-status-split-select-v291 {
        flex: 1 1 auto;
        max-width: none;
        width: auto;
    }
}

/* v292: one status dropdown without duplicated buttons */
.bookings-status-filter-v292 {
    display: inline-block;
    margin: 0;
}
.bookings-status-filter-v292 label {
    display: inline-grid;
    gap: 5px;
    margin: 0;
    color: #64748b;
    font-size: .86rem;
    font-weight: 850;
}
.bookings-status-filter-v292 select {
    min-width: 210px;
    min-height: 36px;
    padding: 6px 10px;
    border-radius: 12px;
    font-weight: 850;
}
.booking-status-split-v291,
.booking-status-chip-v290,
.booking-status-select-chip-v290 {
    display: none !important;
}
@media (max-width: 900px) {
    .bookings-status-filter-v292,
    .bookings-status-filter-v292 label,
    .bookings-status-filter-v292 select {
        width: 100%;
    }
}

/* v293: three status controls with clickable dropdown top item */
.bookings-status-filter-v293 {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}
.booking-status-tab-v293,
.booking-status-menu-v293 > summary {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 13px;
    border: 1px solid #dbe4ef;
    border-radius: 999px;
    background: #fff;
    color: #0f172a;
    font: inherit;
    font-size: .92rem;
    font-weight: 900;
    text-decoration: none;
    cursor: pointer;
    list-style: none;
}
.booking-status-menu-v293 > summary::-webkit-details-marker {
    display: none;
}
.booking-status-menu-v293 > summary::after {
    content: "▾";
    margin-left: 7px;
    color: #64748b;
    font-size: .75rem;
}
.booking-status-tab-v293.active,
.booking-status-menu-v293.active > summary {
    border-color: #93c5fd;
    background: #eff6ff;
    color: #1d4ed8;
}
.booking-status-menu-v293 {
    position: relative;
}
.booking-status-menu-list-v293 {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 30;
    display: grid;
    min-width: 190px;
    padding: 6px;
    border: 1px solid #dbe4ef;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(15, 23, 42, .16);
}
.booking-status-menu-list-v293 a {
    display: block;
    padding: 8px 10px;
    border-radius: 10px;
    color: #0f172a;
    font-size: .92rem;
    font-weight: 850;
    text-decoration: none;
    white-space: nowrap;
}
.booking-status-menu-list-v293 a:hover,
.booking-status-menu-list-v293 a.active {
    background: #eff6ff;
    color: #1d4ed8;
}
.bookings-status-filter-v292 {
    display: none !important;
}
@media (max-width: 900px) {
    .bookings-status-filter-v293 {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        width: 100%;
    }
    .booking-status-tab-v293,
    .booking-status-menu-v293 > summary {
        justify-content: center;
        width: 100%;
    }
    .booking-status-menu-list-v293 {
        min-width: 100%;
    }
}
@media (max-width: 560px) {
    .bookings-status-filter-v293 {
        grid-template-columns: 1fr;
    }
}

/* v295: compact mobile controls for bookings manager */
.bookings-search-button-v295 {
    min-width: 42px;
}
.bookings-search-button-v295 span[aria-hidden="true"] {
    display: none;
}
@media (max-width: 700px) {
    .bookings-toolbar-v290 {
        gap: 10px;
    }
    .bookings-controls-v290 {
        gap: 9px;
        min-width: 0;
        width: 100%;
    }

    /* Row 1: search field + compact magnifier button */
    .bookings-search-form-v290 {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 44px;
        gap: 8px;
        width: 100%;
        align-items: stretch;
    }
    .bookings-search-form-v290 input[name="q"] {
        min-width: 0;
        width: 100%;
    }
    .bookings-search-button-v295 {
        width: 44px;
        min-width: 44px;
        height: 40px;
        padding: 0;
        justify-content: center;
        border-radius: 12px;
    }
    .bookings-search-button-v295 span[aria-hidden="true"] {
        display: inline;
        font-size: 17px;
        line-height: 1;
    }
    .bookings-search-button-text-v295 {
        display: none;
    }
    .bookings-search-form-v290 .btn.ghost {
        grid-column: 1 / -1;
        width: 100%;
        min-height: 36px;
    }

    /* Row 2: three status items in one line */
    .bookings-status-filter-v293 {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 6px;
        width: 100%;
    }
    .booking-status-tab-v293,
    .booking-status-menu-v293 > summary {
        width: 100%;
        min-height: 36px;
        padding: 7px 7px;
        justify-content: center;
        font-size: .84rem;
        white-space: nowrap;
    }
    .booking-status-menu-v293 > summary::after {
        margin-left: 4px;
        font-size: .7rem;
    }
    .booking-status-menu-list-v293 {
        min-width: max(100%, 165px);
        left: auto;
        right: 0;
    }
    .booking-status-menu-list-v293 a {
        font-size: .88rem;
        padding: 8px 9px;
    }

    /* Row 3: two sorting selects in one line */
    .bookings-sort-form-v290 {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 8px;
        width: 100%;
    }
    .bookings-sort-form-v290 label {
        min-width: 0;
        gap: 4px;
    }
    .bookings-sort-form-v290 label span {
        font-size: .78rem;
        line-height: 1.1;
        white-space: nowrap;
    }
    .bookings-sort-form-v290 select {
        width: 100%;
        min-width: 0;
        min-height: 38px;
        padding: 6px 8px;
        border-radius: 12px;
        font-size: .88rem;
    }

    .bookings-toolbar-v290 > .btn.primary {
        width: 100%;
        min-height: 40px;
    }
}
@media (max-width: 380px) {
    .booking-status-tab-v293,
    .booking-status-menu-v293 > summary {
        font-size: .78rem;
        padding-left: 4px;
        padding-right: 4px;
    }
    .bookings-sort-form-v290 label span {
        font-size: .74rem;
    }
    .bookings-sort-form-v290 select {
        font-size: .82rem;
    }
}

/* v296: keep desktop booking search button next to search input */
@media (min-width: 701px) {
    .bookings-search-form-v290 {
        display: grid;
        grid-template-columns: minmax(260px, 420px) auto auto;
        gap: 8px;
        align-items: center;
        justify-content: start;
        width: auto;
        max-width: 100%;
    }
    .bookings-search-form-v290 input[name="q"] {
        width: 100%;
        min-width: 260px;
    }
    .bookings-search-button-v295 {
        min-width: 96px;
        white-space: nowrap;
    }
    .bookings-search-form-v290 .btn.ghost {
        white-space: nowrap;
    }
}

/* v297: global pet questionnaire link in client profile */
.client-pet-questionnaire-link {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 10px 0 12px;
}
.client-pet-questionnaire-link small {
    color: #64748b;
    font-weight: 750;
}
/* v302: booking stay diary */
.booking-diary-panel { margin-top: 18px; }
.diary-entry-form { margin-top: 12px; }
.booking-diary-list,
.client-booking-diary { display: grid; gap: 12px; margin-top: 14px; }
.booking-diary-entry,
.client-diary-entry { display: grid; gap: 8px; padding: 12px; border: 1px solid #e2e8f0; border-radius: 16px; background: #fff; }
.booking-diary-entry.internal-only { border-style: dashed; background: #fff7ed; }
.booking-diary-entry header { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.booking-diary-entry header div { display: grid; gap: 3px; }
.booking-diary-entry header small,
.client-diary-entry small { color: #64748b; font-weight: 750; }
.diary-visibility-badge { width: fit-content; padding: 4px 8px; border-radius: 999px; background: #eff6ff; color: #1d4ed8; font-size: .78rem; font-weight: 900; }
.booking-diary-entry.internal-only .diary-visibility-badge { background: #ffedd5; color: #c2410c; }
.booking-diary-files { display: flex; flex-wrap: wrap; gap: 8px; }
.booking-diary-files a { display: block; width: 88px; height: 88px; border-radius: 14px; overflow: hidden; background: #f1f5f9; border: 1px solid #e2e8f0; }
.booking-diary-files img { width: 100%; height: 100%; object-fit: cover; display: block; }
.client-booking-diary { grid-column: 1 / -1; padding-top: 10px; border-top: 1px solid #e2e8f0; }
.client-diary-entry p,
.booking-diary-entry p { margin: 0; color: #334155; }
@media (max-width: 700px) {
    .booking-diary-entry header { display: grid; }
    .booking-diary-files a { width: 74px; height: 74px; }
}

/* v303: booking care plan */
.booking-care-panel { margin-top: 18px; }
.care-task-form { margin-top: 12px; }
.booking-care-list,
.client-booking-care { display: grid; gap: 12px; margin-top: 14px; }
.booking-care-task,
.client-care-task {
    display: grid;
    gap: 8px;
    padding: 12px;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #fff;
}
.booking-care-task.done,
.client-care-task.done {
    background: #f8fafc;
}
.booking-care-task.internal-only {
    border-style: dashed;
    background: #fff7ed;
}
.booking-care-task header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}
.booking-care-task header div {
    display: grid;
    gap: 3px;
}
.booking-care-task p,
.client-care-task p {
    margin: 0;
    color: #334155;
}
.booking-care-task small,
.client-care-task small {
    color: #64748b;
    font-weight: 750;
}
.care-task-status {
    width: fit-content;
    padding: 4px 8px;
    border-radius: 999px;
    background: #fef3c7;
    color: #92400e;
    font-size: .78rem;
    font-weight: 900;
    white-space: nowrap;
}
.booking-care-task.done .care-task-status {
    background: #dcfce7;
    color: #15803d;
}
.client-booking-care {
    grid-column: 1 / -1;
    padding-top: 10px;
    border-top: 1px solid #e2e8f0;
}
@media (max-width: 720px) {
    .booking-care-task header { display: grid; }
}

/* v304: dated and daily care tasks */
.booking-care-date-group {
    display: grid;
    gap: 10px;
}
.booking-care-date-group h3 {
    margin: 4px 0 0;
    font-size: .98rem;
    color: #0f172a;
}
[data-care-task-date-field][hidden] {
    display: none !important;
}

/* v305: current stays and separate diary page */
.current-stays-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
}
.current-stay-unit-card {
    display: grid;
    gap: 12px;
    padding: 16px;
    border: 1px solid #e2e8f0;
    border-radius: 20px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .06);
}
.current-stay-unit-card h3 {
    margin: 0;
    font-size: 1.05rem;
}
.current-stay-pets {
    display: grid;
    gap: 12px;
}
.current-stay-pet-card {
    display: grid;
    gap: 10px;
    padding: 12px;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}
.current-stay-pet-card h4 {
    margin: 0 0 3px;
    font-size: 1.05rem;
}
.current-stay-pet-card p {
    margin: 0;
}
.current-stay-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.current-stay-badges span {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 4px 8px;
    border-radius: 999px;
    background: #e0f2fe;
    color: #075985;
    font-size: .78rem;
    font-weight: 850;
}
.current-stay-badges span.warning {
    background: #fef3c7;
    color: #92400e;
}
.booking-diary-workspace-head,
.booking-diary-shortcut-panel,
.current-stays-head {
    margin-bottom: 16px;
}
.booking-diary-shortcut-panel .view-head,
.current-stays-head .view-head,
.booking-diary-workspace-head .view-head {
    align-items: center;
}
@media (max-width: 720px) {
    .current-stays-grid { grid-template-columns: 1fr; }
}

/* v306: diary forms in modals */
.diary-main-actions-v306 {
    align-items: center;
}
.diary-modal-v306[hidden] {
    display: none !important;
}
.diary-modal-v306 {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: grid;
    place-items: center;
    padding: 24px;
}
.diary-modal-backdrop-v306 {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(15, 23, 42, .52);
    cursor: pointer;
}
.diary-modal-dialog-v306 {
    position: relative;
    z-index: 1;
    width: min(760px, 100%);
    max-height: min(86vh, 900px);
    overflow: auto;
    padding: 20px;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 24px 80px rgba(15, 23, 42, .28);
}
.diary-modal-head-v306 {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
    margin-bottom: 16px;
}
.diary-modal-head-v306 h2 {
    margin: 0 0 4px;
}
.diary-modal-head-v306 p {
    margin: 0;
    color: #64748b;
}
.diary-modal-close-v306 {
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 999px;
    background: #f1f5f9;
    color: #0f172a;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}
.diary-modal-close-v306:hover {
    background: #e2e8f0;
}
html.diary-modal-open-v306 {
    overflow: hidden;
}
@media (max-width: 720px) {
    .diary-modal-v306 {
        padding: 10px;
        align-items: end;
    }
    .diary-modal-dialog-v306 {
        max-height: 92vh;
        border-radius: 20px 20px 0 0;
    }
    .diary-main-actions-v306 {
        display: grid;
        grid-template-columns: 1fr;
    }
}

/* v307: compact care plan day cards */
.booking-care-day-cards-v307 {
    display: grid;
    gap: 12px;
}
.booking-care-day-card-v307 {
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    background: #fff;
    overflow: hidden;
}
.booking-care-day-card-v307.has-pending {
    border-color: #fde68a;
}
.booking-care-day-card-v307.complete {
    border-color: #bbf7d0;
}
.booking-care-day-head-v307 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
}
.booking-care-day-head-v307 h3 {
    margin: 0 0 3px;
    font-size: 1rem;
}
.booking-care-day-head-v307 small {
    color: #64748b;
    font-weight: 750;
}
.care-day-count-v307 {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    white-space: nowrap;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 900;
}
.care-day-count-v307.pending {
    background: #fef3c7;
    color: #92400e;
}
.care-day-count-v307.done {
    background: #dcfce7;
    color: #15803d;
}
.booking-care-task-rows-v307 {
    display: grid;
}
.booking-care-task-row-v307 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 10px 12px;
    border-top: 1px solid #f1f5f9;
}
.booking-care-task-row-v307:first-child {
    border-top: 0;
}
.booking-care-task-row-v307.done {
    background: #fbfdff;
}
.booking-care-task-row-v307.internal-only {
    background-image: linear-gradient(90deg, rgba(251,146,60,.10), transparent 40%);
}
.care-task-main-v307 {
    display: grid;
    grid-template-columns: 10px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    min-width: 0;
}
.care-task-dot-v307 {
    width: 10px;
    height: 10px;
    margin-top: 7px;
    border-radius: 999px;
    background: #f59e0b;
}
.booking-care-task-row-v307.done .care-task-dot-v307 {
    background: #22c55e;
}
.care-task-text-v307 {
    min-width: 0;
}
.care-task-line-v307 {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 8px;
    align-items: baseline;
    color: #0f172a;
}
.care-task-line-v307 strong {
    font-variant-numeric: tabular-nums;
}
.care-task-line-v307 span {
    color: #475569;
    font-weight: 800;
}
.care-task-line-v307 b {
    font-weight: 900;
}
.booking-care-task-row-v307.done .care-task-line-v307 b {
    color: #64748b;
    text-decoration: line-through;
    text-decoration-thickness: 2px;
}
.care-task-meta-v307 {
    margin-top: 3px;
    color: #64748b;
    font-size: .82rem;
    font-weight: 700;
}
.care-task-details-v307 {
    margin-top: 5px;
}
.care-task-details-v307 summary {
    cursor: pointer;
    color: #2563eb;
    font-size: .84rem;
    font-weight: 800;
}
.care-task-details-v307 p {
    margin: 6px 0 0;
    color: #334155;
}
.care-task-toggle-v307 {
    margin: 0;
}
.care-task-toggle-v307 .btn {
    white-space: nowrap;
}
@media (max-width: 720px) {
    .booking-care-day-head-v307 {
        display: grid;
    }
    .booking-care-task-row-v307 {
        grid-template-columns: 1fr;
        align-items: stretch;
    }
    .care-task-toggle-v307 .btn {
        width: 100%;
    }
}

/* v308: care day accordions */
.booking-care-day-accordion-v308 {
    display: block;
}
.booking-care-day-accordion-v308 > summary {
    list-style: none;
    cursor: pointer;
}
.booking-care-day-accordion-v308 > summary::-webkit-details-marker {
    display: none;
}
.booking-care-day-accordion-v308:not([open]) .booking-care-day-head-v307 {
    border-bottom: 0;
}
.care-day-summary-side-v308 {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.care-day-chevron-v308 {
    display: inline-grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 999px;
    background: #e2e8f0;
    color: #0f172a;
    font-weight: 900;
    transition: transform .18s ease;
}
.booking-care-day-accordion-v308[open] .care-day-chevron-v308 {
    transform: rotate(180deg);
}
.booking-care-day-accordion-v308:not([open]) {
    background: #fff;
}
.booking-care-day-accordion-v308:not([open]) .booking-care-day-head-v307 {
    background: #fff;
}
.booking-care-day-accordion-v308:not([open]).has-pending .booking-care-day-head-v307 {
    background: #fffbeb;
}
.booking-care-day-accordion-v308:not([open]).complete .booking-care-day-head-v307 {
    background: #f0fdf4;
}
@media (max-width: 720px) {
    .care-day-summary-side-v308 {
        justify-content: space-between;
        width: 100%;
    }
}

/* v309: separate client diary page */
.client-booking-actions-v309 {
    grid-column: 1 / -1;
    display: flex;
    justify-content: flex-start;
    gap: 8px;
    padding-top: 8px;
    border-top: 1px solid #e2e8f0;
}
/* v441: secure questionnaire action inside the guest booking card */
.client-questionnaire-action-v441 {
    display: inline-flex;
    margin: 0;
}
.client-questionnaire-action-v441 .btn {
    width: auto;
}
.client-diary-page-v309 {
    display: grid;
    gap: 18px;
}
.client-diary-hero-v309 {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
}
.client-diary-hero-v309 h1 {
    margin: 0 0 6px;
}
.client-diary-meta-v309 {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
    color: #475569;
    font-weight: 750;
}
.client-diary-entry-list-v309 {
    display: grid;
    gap: 12px;
}
.client-diary-entry-v309 {
    display: grid;
    gap: 10px;
    padding: 14px;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    background: #fff;
}
.client-diary-entry-v309 header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}
.client-diary-entry-v309 header div {
    display: grid;
    gap: 3px;
}
.client-diary-entry-v309 header small {
    color: #64748b;
    font-weight: 750;
    white-space: nowrap;
}
.client-diary-entry-v309 p {
    margin: 0;
    color: #334155;
}
@media (max-width: 720px) {
    .client-diary-hero-v309,
    .client-diary-entry-v309 header {
        display: grid;
    }
    .client-booking-actions-v309,
    .client-questionnaire-action-v441 {
        width: 100%;
    }
    .client-booking-actions-v309 .btn,
    .client-diary-hero-v309 .actions-row .btn,
    .client-questionnaire-action-v441 .btn {
        width: 100%;
    }
}

/* v311: client booking filters */
.client-bookings-head-v311 {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    margin-bottom: 14px;
}
.client-bookings-head-v311 h2 {
    margin: 0;
}
.client-booking-filter-v311 {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 4px;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    background: #f8fafc;
}
.client-booking-filter-v311 a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    border-radius: 999px;
    color: #475569;
    text-decoration: none;
    font-weight: 850;
    line-height: 1;
}
.client-booking-filter-v311 a.active {
    background: #fff;
    color: #0f172a;
    box-shadow: 0 1px 6px rgba(15, 23, 42, .08);
}
.client-booking-filter-v311 a span {
    min-width: 22px;
    padding: 3px 6px;
    border-radius: 999px;
    background: #e2e8f0;
    color: #334155;
    font-size: .78rem;
    text-align: center;
}
.client-booking-filter-v311 a.active span {
    background: #dbeafe;
    color: #1d4ed8;
}
@media (max-width: 720px) {
    .client-bookings-head-v311 {
        display: grid;
    }
    .client-booking-filter-v311 {
        display: grid;
        grid-template-columns: 1fr;
        border-radius: 18px;
    }
    .client-booking-filter-v311 a {
        justify-content: space-between;
    }
}


/* v312: stronger active client booking filter */
.client-booking-filter-v311 a.active {
    background: #2563eb;
    color: #fff;
    box-shadow: 0 8px 20px rgba(37, 99, 235, .28);
}
.client-booking-filter-v311 a.active span {
    background: rgba(255, 255, 255, .22);
    color: #fff;
}
.client-booking-filter-v311 a.active:hover {
    background: #1d4ed8;
    color: #fff;
}
.client-booking-filter-v311 a:not(.active):hover {
    background: #e0f2fe;
    color: #075985;
}


/* v313: client diary photos */
.client-diary-photos-v313 {
    margin-top: 4px;
}
.client-diary-photo-v313 img {
    display: block;
}
.client-diary-photo-file-v313 {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid #dbeafe;
    border-radius: 14px;
    background: #eff6ff;
    color: #1d4ed8;
    font-weight: 850;
    text-decoration: none;
}
.client-diary-photo-file-v313:hover {
    background: #dbeafe;
}


/* v314: diary upload diagnostics */
.diary-missing-file-v314 {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid #fecaca;
    border-radius: 14px;
    background: #fef2f2;
    color: #991b1b;
    font-weight: 850;
}


/* v315: diary upload progress and photo modal */
.diary-upload-progress-v315 {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    padding: 10px 12px;
    border: 1px solid #bfdbfe;
    border-radius: 14px;
    background: #eff6ff;
    color: #1d4ed8;
    font-weight: 850;
}
.diary-upload-progress-v315[hidden] {
    display: none !important;
}
.diary-upload-spinner-v315 {
    width: 18px;
    height: 18px;
    border: 3px solid rgba(37, 99, 235, .22);
    border-top-color: #2563eb;
    border-radius: 999px;
    animation: diary-upload-spin-v315 .75s linear infinite;
}
@keyframes diary-upload-spin-v315 {
    to { transform: rotate(360deg); }
}
.diary-entry-form.is-uploading-v315 {
    opacity: .82;
}
.diary-entry-form.is-uploading-v315 button[type="submit"] {
    cursor: wait;
}
.diary-photo-modal-v315[hidden] {
    display: none !important;
}
.diary-photo-modal-v315 {
    position: fixed;
    inset: 0;
    z-index: 1400;
    display: grid;
    place-items: center;
    padding: 24px;
}
.diary-photo-modal-backdrop-v315 {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(15, 23, 42, .78);
    cursor: zoom-out;
}
.diary-photo-modal-dialog-v315 {
    position: relative;
    z-index: 1;
    max-width: min(96vw, 1200px);
    max-height: 92vh;
    display: grid;
    place-items: center;
}
.diary-photo-modal-dialog-v315 img {
    display: block;
    max-width: min(96vw, 1200px);
    max-height: 92vh;
    width: auto;
    height: auto;
    border-radius: 18px;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .38);
    background: #fff;
}
.diary-photo-modal-close-v315 {
    position: absolute;
    top: -16px;
    right: -16px;
    z-index: 2;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 999px;
    background: #fff;
    color: #0f172a;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .25);
}
html.diary-photo-modal-open-v315 {
    overflow: hidden;
}
@media (max-width: 720px) {
    .diary-photo-modal-v315 {
        padding: 10px;
    }
    .diary-photo-modal-close-v315 {
        top: 8px;
        right: 8px;
    }
    .diary-photo-modal-dialog-v315 img {
        border-radius: 14px;
    }
}


/* v316: edit/delete diary entries */
.diary-entry-head-side-v316 {
    display: grid;
    gap: 8px;
    justify-items: end;
}
.diary-entry-actions-v316 {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: flex-end;
    align-items: center;
}
.diary-entry-actions-v316 form {
    margin: 0;
}
.btn.danger,
button.btn.danger {
    background: #fee2e2;
    color: #991b1b;
    border-color: #fecaca;
}
.btn.danger:hover,
button.btn.danger:hover {
    background: #fecaca;
    color: #7f1d1d;
}
.diary-edit-files-note-v316 {
    padding: 10px 12px;
    border-radius: 14px;
    background: #f8fafc;
    color: #64748b;
    font-size: .9rem;
    font-weight: 750;
}
@media (max-width: 720px) {
    .diary-entry-head-side-v316 {
        justify-items: start;
    }
    .diary-entry-actions-v316,
    .diary-entry-actions-v316 .btn,
    .diary-entry-actions-v316 form {
        width: 100%;
    }
}


/* v317: tidy diary entry action buttons */
.booking-diary-entry header {
    align-items: flex-start;
}
.booking-diary-entry header > div:first-child {
    min-width: 0;
}
.booking-diary-entry header > small {
    white-space: nowrap;
    text-align: right;
}
.diary-entry-actions-v317 {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    padding-top: 8px;
    margin-top: 2px;
    border-top: 1px solid #f1f5f9;
}
.diary-entry-actions-v317 form {
    margin: 0;
}
.diary-entry-actions-v317 .btn {
    min-height: 34px;
}
@media (max-width: 700px) {
    .booking-diary-entry header > small {
        text-align: left;
        white-space: normal;
    }
    .diary-entry-actions-v317 {
        justify-content: stretch;
    }
    .diary-entry-actions-v317 .btn,
    .diary-entry-actions-v317 form {
        width: 100%;
    }
}


/* v319: compact task edit/delete menu */
.care-task-actions-wrap-v319 {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    min-width: max-content;
}
.care-task-actions-wrap-v319 form {
    margin: 0;
}
.care-task-menu-v319 {
    position: relative;
}
.care-task-menu-v319 > summary {
    list-style: none;
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    background: #fff;
    color: #334155;
    font-size: 20px;
    font-weight: 950;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 1px 5px rgba(15, 23, 42, .06);
}
.care-task-menu-v319 > summary::-webkit-details-marker {
    display: none;
}
.care-task-menu-v319[open] > summary,
.care-task-menu-v319 > summary:hover {
    background: #eff6ff;
    border-color: #bfdbfe;
    color: #1d4ed8;
}
.care-task-menu-list-v319 {
    position: absolute;
    right: 0;
    top: calc(100% + 6px);
    z-index: 30;
    min-width: 150px;
    padding: 6px;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(15, 23, 42, .16);
}
.care-task-menu-list-v319 button {
    width: 100%;
    border: 0;
    border-radius: 10px;
    background: transparent;
    padding: 9px 10px;
    color: #0f172a;
    text-align: left;
    font-weight: 850;
    cursor: pointer;
}
.care-task-menu-list-v319 button:hover {
    background: #f1f5f9;
}
.care-task-menu-list-v319 button.danger {
    color: #991b1b;
}
.care-task-menu-list-v319 button.danger:hover {
    background: #fef2f2;
}
.care-task-repeat-note-v319 {
    padding: 10px 12px;
    border-radius: 14px;
    background: #f8fafc;
    color: #64748b;
    font-size: .9rem;
    font-weight: 750;
}
@media (max-width: 720px) {
    .care-task-actions-wrap-v319 {
        width: 100%;
        justify-content: space-between;
    }
    .care-task-done-button-v319 {
        min-width: 104px;
    }
    .care-task-menu-list-v319 {
        right: 0;
    }
}


/* v320: care task series scope */
.care-task-menu-list-v319 form + form {
    margin-top: 2px;
}
.care-task-menu-list-v319 form button {
    font-size: .9rem;
}


/* v321: fix clipped compact care task menu */
.booking-care-day-card-v307,
.booking-care-day-accordion-v308,
.booking-care-task-rows-v307,
.booking-care-task-row-v307 {
    overflow: visible;
}
.care-task-menu-v319[open] {
    z-index: 120;
}
.care-task-menu-list-v319 {
    min-width: 190px;
    z-index: 121;
}
.care-task-menu-list-v319 button {
    white-space: nowrap;
}
@media (max-width: 720px) {
    .care-task-menu-list-v319 {
        min-width: 178px;
        right: 0;
    }
    .care-task-menu-list-v319 button {
        padding: 10px 11px;
        font-size: .88rem;
    }
}


/* v323: platform admin */
.admin-hero-v323 {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
}
.admin-hero-v323 h2,
.admin-panel-v323 h2 {
    margin: 0 0 4px;
}
.admin-stat-grid-v323 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 16px 0;
}
.admin-stat-grid-v323 article {
    padding: 16px;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .05);
}
.admin-stat-grid-v323 strong {
    display: block;
    font-size: 1.55rem;
    line-height: 1;
    color: #0f172a;
}
.admin-stat-grid-v323 span {
    display: block;
    margin-top: 6px;
    color: #64748b;
    font-weight: 800;
    font-size: .86rem;
}
.admin-panel-v323 {
    margin-top: 16px;
}
.admin-table-wrap-v323 {
    overflow-x: auto;
}
.admin-table-v323 {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 8px;
}
.admin-table-v323 th {
    text-align: left;
    color: #64748b;
    font-size: .82rem;
    padding: 0 10px 4px;
}
.admin-table-v323 td {
    vertical-align: top;
    padding: 12px 10px;
    background: #fff;
    border-top: 1px solid #e2e8f0;
    border-bottom: 1px solid #e2e8f0;
}
.admin-table-v323 td:first-child {
    border-left: 1px solid #e2e8f0;
    border-radius: 14px 0 0 14px;
}
.admin-table-v323 td:last-child {
    border-right: 1px solid #e2e8f0;
    border-radius: 0 14px 14px 0;
}
.admin-table-v323 strong,
.admin-table-v323 small {
    display: block;
}
.admin-table-v323 small {
    margin-top: 4px;
    color: #64748b;
    font-weight: 700;
}
.admin-inline-form-v323,
.admin-user-role-form-v323 {
    display: grid;
    gap: 7px;
    min-width: 220px;
}
.admin-inline-form-v323 textarea,
.admin-user-role-form-v323 select {
    width: 100%;
}
.admin-recent-list-v323 {
    display: grid;
    gap: 10px;
}
.admin-recent-list-v323 article {
    display: grid;
    gap: 4px;
    padding: 12px 14px;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #fff;
}
.admin-recent-list-v323 span,
.admin-recent-list-v323 small {
    color: #64748b;
    font-weight: 750;
}
@media (max-width: 1100px) {
    .admin-stat-grid-v323 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
    .admin-stat-grid-v323 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-table-v323,
    .admin-table-v323 thead,
    .admin-table-v323 tbody,
    .admin-table-v323 tr,
    .admin-table-v323 th,
    .admin-table-v323 td { display: block; }
    .admin-table-v323 thead { display: none; }
    .admin-table-v323 td {
        border-left: 1px solid #e2e8f0;
        border-right: 1px solid #e2e8f0;
        border-radius: 0;
    }
    .admin-table-v323 td:first-child { border-radius: 14px 14px 0 0; }
    .admin-table-v323 td:last-child { border-radius: 0 0 14px 14px; }
}

/* v327: installable manager PWA */
.manager-install-button-v327[hidden] {
    display: none !important;
}
.manager-install-button-v327 {
    width: 100%;
    margin-top: 10px;
    cursor: pointer;
}
.auth-install-button-v327 {
    margin-top: 12px;
}
.manager-pwa-host-v327 .sidebar-footer {
    padding-bottom: max(16px, env(safe-area-inset-bottom));
}
.manager-pwa-host-v327 .topbar {
    padding-top: max(16px, env(safe-area-inset-top));
}
@media (display-mode: standalone) {
    .manager-install-button-v327 {
        display: none !important;
    }
}


/* v328 PetBooking approved brand identity */
:root {
    --petbooking-navy: #0d1f33;
    --petbooking-teal: #158f8a;
    --petbooking-soft-teal: #63b3ad;
    --petbooking-coral: #ffb38a;
    --petbooking-cream: #f2f1ec;
}
.brand-mark.brand-mark-logo {
    padding: 0;
    overflow: hidden;
    background: transparent;
    box-shadow: 0 8px 22px rgba(0, 0, 0, .18);
}
.brand-mark.brand-mark-logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.brand-copy { min-width: 0; }
.install-brand .brand-mark.brand-mark-logo {
    width: 58px;
    height: 58px;
    flex-basis: 58px;
    border-radius: 18px;
    box-shadow: 0 12px 28px rgba(13, 31, 51, .18);
}
.install-brand .brand-title {
    color: var(--petbooking-navy);
    font-size: 18px;
}
.install-brand .brand-subtitle { color: #64748b; }
.customer-brand { gap: 11px; }
.customer-brand-mark {
    display: block;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: 15px;
    object-fit: cover;
    background: transparent;
    box-shadow: 0 9px 22px rgba(13, 31, 51, .16);
}
.customer-brand-text {
    display: inline-flex;
    align-items: baseline;
    font-size: 23px;
    font-weight: 900;
    letter-spacing: -.045em;
}
.customer-brand-pet { color: var(--petbooking-teal); }
.customer-brand-booking { color: var(--petbooking-navy); }
.customer-nav a:hover,
.customer-nav a.active,
.customer-lang-switcher a:hover,
.customer-lang-switcher a.active {
    color: #0f766e;
    background: #ecfdf8;
    border-color: #a7f3d0;
}
@media (max-width: 820px) {
    .customer-brand-mark {
        width: 42px;
        height: 42px;
        flex-basis: 42px;
        border-radius: 14px;
    }
    .customer-brand-text { font-size: 20px; }
}
@media (max-width: 420px) {
    .customer-brand-text { font-size: 18px; }
}


/* v329 — Google Play legal pages, account deletion and asset-link administration */
.manager-legal-links-v329,
.auth-legal-links-v329 {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 14px;
    font-size: 12px;
}
.manager-legal-links-v329 { margin-top: 2px; }
.manager-legal-links-v329 a,
.auth-legal-links-v329 a { color: var(--muted); text-decoration: none; }
.manager-legal-links-v329 a:hover,
.auth-legal-links-v329 a:hover { color: var(--primary); text-decoration: underline; }
.auth-legal-links-v329 { margin-top: 18px; }

.legal-body-v329 {
    min-height: 100vh;
    margin: 0;
    background: #f4f5f3;
    color: #0d1f33;
}
.legal-header-v329 {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 12px clamp(16px, 4vw, 54px);
    background: rgba(255,255,255,.96);
    border-bottom: 1px solid rgba(13,31,51,.09);
    backdrop-filter: blur(12px);
}
.legal-brand-v329 { display: inline-flex; align-items: center; gap: 10px; color: #0d1f33; text-decoration: none; font-weight: 800; }
.legal-brand-v329 img { width: 44px; height: 44px; object-fit: contain; }
.legal-header-actions-v329 { display: flex; align-items: center; gap: 12px; }
.legal-shell-v329 { width: min(900px, calc(100% - 28px)); margin: 34px auto 50px; }
.legal-card-v329 { background: #fff; border: 1px solid rgba(13,31,51,.09); border-radius: 22px; padding: clamp(22px, 5vw, 48px); box-shadow: 0 18px 50px rgba(13,31,51,.07); }
.legal-card-v329 h1 { margin-top: 0; font-size: clamp(28px, 5vw, 44px); line-height: 1.08; }
.legal-card-v329 h2 { margin: 30px 0 10px; font-size: 21px; }
.legal-card-v329 p, .legal-card-v329 li { line-height: 1.68; }
.legal-card-v329 ul { padding-left: 22px; }
.legal-effective-v329 { color: var(--muted); font-size: 14px; }
.legal-footer-v329 { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 20px; padding: 0 18px 34px; color: var(--muted); font-size: 13px; }
.legal-footer-v329 a { color: inherit; }
.account-deletion-card-v329 { max-width: 680px; margin: 0 auto; }
.account-deletion-current-v329 { display: grid; gap: 3px; padding: 16px; border-radius: 14px; background: #f2f8f7; border: 1px solid rgba(21,143,138,.16); }
.account-deletion-current-v329 span { color: var(--muted); font-size: 14px; }
.form-honeypot-v329 { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.legal-contact-note-v329 { margin-top: 22px; font-size: 14px; color: var(--muted); }
.admin-play-settings-v329 { padding: 18px; border-radius: 16px; background: #f4f8f7; border: 1px solid rgba(21,143,138,.18); }
.admin-play-settings-v329 h3 { margin: 0 0 6px; }
.admin-deletion-list-v329 { display: grid; gap: 12px; }
.admin-deletion-card-v329 { padding: 16px; border: 1px solid var(--border); border-radius: 16px; background: #fff; }
.admin-deletion-card-v329.status-pending { border-left: 4px solid #e2b44b; }
.admin-deletion-card-v329.status-completed { border-left: 4px solid #158f8a; }
.admin-deletion-card-v329.status-rejected { border-left: 4px solid #c35f5f; }
.admin-deletion-summary-v329 { display: grid; grid-template-columns: 1.2fr 1fr auto; gap: 16px; align-items: center; }
.admin-deletion-summary-v329 > div { display: grid; gap: 3px; }
.admin-deletion-summary-v329 span, .admin-deletion-summary-v329 small { color: var(--muted); }
.admin-deletion-status-v329 { display: inline-flex; align-items: center; justify-content: center; padding: 6px 10px; border-radius: 999px; background: #f1f3f4; font-size: 12px; font-weight: 700; }
.admin-deletion-form-v329 { display: grid; grid-template-columns: 170px 1fr auto; gap: 10px; align-items: end; margin-top: 12px; }

@media (max-width: 720px) {
    .legal-header-v329 { align-items: flex-start; }
    .legal-brand-v329 span { display: none; }
    .legal-header-actions-v329 { gap: 6px; }
    .legal-header-actions-v329 .btn { padding-inline: 10px; }
    .legal-shell-v329 { margin-top: 18px; }
    .legal-card-v329 { border-radius: 16px; }
    .admin-deletion-summary-v329,
    .admin-deletion-form-v329 { grid-template-columns: 1fr; }
}


/* v330 — Android release metadata and Google Play readiness */
.admin-play-ready-v330 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 16px;
    padding: 13px 15px;
    border-radius: 13px;
    background: rgba(21,143,138,.09);
    border: 1px solid rgba(21,143,138,.18);
}
.admin-play-ready-v330 strong { color: #0d1f33; }
.admin-play-ready-v330 span { color: var(--muted); font-size: 13px; }

/* v331: Android WebView shell. The website remains installable as a PWA in browsers. */
.manager-native-app-v331 .manager-install-button-v327,
.manager-native-app-v331 [data-manager-install-v327] {
    display: none !important;
}

.manager-native-app-v331 {
    overscroll-behavior-y: none;
}

/* v341: public booking pet builder */
.public-pets-builder {
    display: grid;
    gap: 16px;
}

.public-extra-pets-list {
    display: grid;
    gap: 16px;
}

.public-pet-card {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid #dbe3ee;
    border-radius: 20px;
    background: #ffffff;
}

.public-pet-card + .public-pet-card {
    margin-top: 0;
}

.public-pet-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.public-pet-card-head h3 {
    margin: 0;
    color: #0f172a;
    font-size: 18px;
    line-height: 1.25;
}

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

.public-pet-fields[hidden] {
    display: none !important;
}

.public-profile-pet-picker {
    display: grid;
    gap: 8px;
}

.public-profile-pet-picker label {
    display: grid;
    gap: 7px;
}

.public-profile-pet-picker small {
    margin-top: 0;
}

.public-manual-pet-button {
    justify-self: start;
}

.public-add-pet-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
}

.public-add-pet-row small {
    color: var(--muted);
    font-weight: 600;
}

.danger-text {
    color: #b42318 !important;
}

@media (max-width: 640px) {
    .public-pet-card {
        padding: 14px;
        border-radius: 18px;
    }

    .public-pet-fields {
        grid-template-columns: 1fr;
    }

    .public-pet-card-head {
        align-items: flex-start;
    }

    .public-pet-card-head .btn {
        flex: 0 0 auto;
    }

    .public-add-pet-row {
        align-items: stretch;
    }

    .public-add-pet-row .btn {
        width: 100%;
    }
}


/* v342: accommodation preference in the public multi-pet booking form */
.public-housing-mode {
    display: grid;
    gap: 10px;
    padding: 16px;
    border: 1px solid #dbe3ee;
    border-radius: 18px;
    background: #f8fafc;
}

.public-housing-mode-title {
    color: #0f172a;
    font-size: 16px;
    font-weight: 800;
}

.public-housing-mode-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.public-housing-mode-options label {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 54px;
    padding: 12px 14px;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    background: #fff;
    color: #0f172a;
    font-weight: 750;
    cursor: pointer;
}

.public-housing-mode-options label:has(input:checked) {
    border-color: #0d6efd;
    background: #eff6ff;
    box-shadow: 0 0 0 2px rgba(13, 110, 253, .10);
}

.public-housing-mode-options input {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: #0d6efd;
}

.public-housing-mode small {
    color: var(--muted);
    font-weight: 600;
    line-height: 1.45;
}

.public-extra-pet-unit-field,
.public-main-unit-field {
    display: grid;
    gap: 7px;
}

@media (max-width: 640px) {
    .public-housing-mode-options {
        grid-template-columns: 1fr;
    }
}

/* v343: accommodation controls grouped after dates and before place selection */
.public-accommodation-section {
    display: grid;
    gap: 16px;
}

.public-place-selectors {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid #dbe3ee;
    border-radius: 18px;
    background: #fff;
}

.public-extra-pet-places-list {
    display: grid;
    gap: 14px;
}

.public-extra-pet-places-list:empty {
    display: none !important;
}

@media (max-width: 640px) {
    .public-place-selectors {
        padding: 14px;
        border-radius: 18px;
    }
}


/* v344: collapsible visit history in client and pet cards */
.visit-accordion {
    border-top: 1px solid var(--line);
    min-width: 0;
}
.visit-accordion > summary {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    padding: 0 2px;
    list-style: none;
    cursor: pointer;
    color: var(--text);
    font-size: 14px;
    font-weight: 900;
    user-select: none;
}
.visit-accordion > summary::-webkit-details-marker {
    display: none;
}
.visit-accordion > summary::after {
    content: '';
    width: 8px;
    height: 8px;
    flex: 0 0 auto;
    border-right: 2px solid var(--muted);
    border-bottom: 2px solid var(--muted);
    transform: rotate(45deg) translateY(-2px);
    transition: transform .18s ease;
}
.visit-accordion[open] > summary::after {
    transform: rotate(225deg) translate(-1px, -1px);
}
.visit-accordion > summary:hover,
.visit-accordion > summary:focus-visible {
    color: var(--primary-dark);
}
.visit-accordion > summary:focus-visible {
    outline: 3px solid rgba(37, 99, 235, .18);
    outline-offset: 3px;
    border-radius: 10px;
}
.visit-accordion-count {
    margin-left: auto;
    color: var(--muted);
    font-size: 13px;
    font-weight: 850;
    white-space: nowrap;
}
.visit-accordion-body {
    margin: 0;
    padding: 12px 0 2px;
    border-top: 1px solid var(--line);
}
.visit-accordion-body > .muted {
    margin: 0;
}

/* v345: responsive owner cards plus client filtering and sorting */
.clients-page-v345 {
    min-width: 0;
    max-width: 100%;
    overflow-x: clip;
}
.client-toolbar-v345 {
    align-items: flex-end;
}
.client-filter-form-v345 {
    flex: 1 1 auto;
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(240px, 1.6fr) repeat(3, minmax(150px, .8fr)) auto;
    gap: 10px;
    align-items: end;
}
.client-filter-form-v345.has-species-v345 {
    grid-template-columns: minmax(240px, 1.6fr) repeat(4, minmax(150px, .8fr)) auto;
}
.client-filter-form-v345 > label {
    min-width: 0;
    display: grid;
    gap: 6px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 850;
}
.client-filter-form-v345 > label > span {
    padding-left: 2px;
}
.client-filter-form-v345 input,
.client-filter-form-v345 select {
    width: 100%;
    min-width: 0;
}
.client-filter-actions-v345 {
    display: flex;
    gap: 8px;
    align-items: stretch;
}
.client-filter-actions-v345 .btn,
.client-new-booking-v345 {
    margin: 0;
    white-space: nowrap;
}
.owner-client-card-v345,
.owner-client-card-v345 > *,
.owner-client-card-v345 .client-meta > div,
.owner-pet-list-v345,
.owner-pet-line-v345,
.owner-pet-identity-v345,
.owner-pet-actions-v345 {
    min-width: 0;
    max-width: 100%;
}
.owner-client-card-v345 h2,
.owner-client-card-v345 .client-meta > div,
.owner-pet-identity-v345 span,
.owner-pet-identity-v345 small {
    overflow-wrap: anywhere;
    word-break: normal;
}
.owner-client-card-v345 .account-badge {
    max-width: 100%;
    white-space: normal;
    text-align: left;
}
.owner-pet-list-title-v345 {
    display: block;
}
.owner-pet-line-v345 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
}
.owner-pet-identity-v345 {
    display: grid;
    grid-template-columns: minmax(90px, .45fr) minmax(150px, 1fr);
    gap: 12px;
    align-items: center;
}
.owner-pet-identity-v345 span {
    color: var(--text);
    font-weight: 900;
}
.owner-pet-identity-v345 small {
    color: var(--muted);
    text-align: left;
    line-height: 1.35;
}
.owner-pet-actions-v345 {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}
.owner-pet-actions-v345 .mini-link {
    white-space: nowrap;
}
.owner-pet-empty-v345 {
    margin: 0;
}

@media (max-width: 1380px) {
    .client-filter-form-v345,
    .client-filter-form-v345.has-species-v345 {
        grid-template-columns: minmax(220px, 1.4fr) repeat(2, minmax(150px, 1fr));
    }
    .client-filter-actions-v345 {
        grid-column: auto;
    }
}

@media (max-width: 820px) {
    .clients-page-v345 {
        overflow-x: hidden;
    }
    .client-toolbar-v345 {
        align-items: stretch;
    }
    .client-filter-form-v345,
    .client-filter-form-v345.has-species-v345 {
        width: 100%;
        grid-template-columns: 1fr 1fr;
    }
    .client-filter-search-v345,
    .client-filter-actions-v345 {
        grid-column: 1 / -1;
    }
    .client-filter-actions-v345 .btn {
        flex: 1 1 0;
        width: auto;
    }
    .client-new-booking-v345 {
        width: 100%;
    }
    .client-card,
    .owner-client-card-v345 {
        overflow: hidden;
    }
    .owner-client-card-v345 .client-card-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .owner-client-card-v345 .client-card-actions .btn,
    .owner-client-card-v345 .client-card-actions form,
    .owner-client-card-v345 .client-card-actions form .btn {
        width: 100%;
        min-width: 0;
    }
    .owner-pet-line-v345 {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
        padding: 12px;
    }
    .owner-pet-identity-v345 {
        grid-template-columns: minmax(0, 1fr);
        gap: 4px;
    }
    .owner-pet-identity-v345 span {
        font-size: 16px;
    }
    .owner-pet-actions-v345 {
        justify-content: flex-start;
        gap: 7px;
    }
    .owner-pet-actions-v345 .mini-link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 36px;
        padding: 7px 10px;
        border: 1px solid var(--line-strong);
        border-radius: 10px;
        background: #fff;
        color: var(--text);
        font-size: 12px;
        box-shadow: var(--shadow-sm);
    }
    .owner-client-card-v345 .visit-accordion > summary {
        flex-wrap: wrap;
    }
}

@media (max-width: 520px) {
    .client-filter-form-v345,
    .client-filter-form-v345.has-species-v345 {
        grid-template-columns: minmax(0, 1fr);
    }
    .client-filter-search-v345,
    .client-filter-actions-v345 {
        grid-column: auto;
    }
    .owner-client-card-v345 .client-card-actions {
        grid-template-columns: minmax(0, 1fr);
    }
    .owner-pet-actions-v345 {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .owner-pet-actions-v345 .mini-link:last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }
}

/* v347: client view switcher above filters and stable desktop filter layout */
.clients-page-v347 {
    display: grid;
    gap: 16px;
}
.client-view-tabs-v347 {
    margin: 0;
    padding: 0;
}
.client-filter-panel-v347 {
    min-width: 0;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--shadow-sm);
}
.client-filter-form-v347,
.client-filter-form-v347.has-species-v345 {
    width: 100%;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    align-items: end;
}
.client-filter-form-v347.owners-only-v345 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.client-filter-form-v347 .client-filter-search-v345 {
    grid-column: span 2;
}
.client-filter-form-v347 > label {
    min-width: 0;
}
.client-filter-form-v347 input,
.client-filter-form-v347 select {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
}
.client-filter-footer-v347 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}
.client-filter-actions-v347 {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.client-filter-actions-v347 .btn,
.client-filter-footer-v347 .client-new-booking-v345 {
    width: auto;
    min-width: 0;
    margin: 0;
}

@media (max-width: 1280px) {
    .client-filter-form-v347,
    .client-filter-form-v347.has-species-v345,
    .client-filter-form-v347.owners-only-v345 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .client-filter-form-v347 .client-filter-search-v345 {
        grid-column: span 2;
    }
}

@media (max-width: 820px) {
    .clients-page-v347 {
        gap: 14px;
    }
    .client-view-tabs-v347 {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        overflow: visible;
    }
    .client-view-tabs-v347 a {
        text-align: center;
    }
    .client-filter-panel-v347 {
        padding: 14px;
    }
    .client-filter-form-v347,
    .client-filter-form-v347.has-species-v345,
    .client-filter-form-v347.owners-only-v345 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .client-filter-form-v347 .client-filter-search-v345 {
        grid-column: 1 / -1;
    }
    .client-filter-footer-v347 {
        align-items: stretch;
    }
}

@media (max-width: 560px) {
    .client-filter-form-v347,
    .client-filter-form-v347.has-species-v345,
    .client-filter-form-v347.owners-only-v345 {
        grid-template-columns: minmax(0, 1fr);
    }
    .client-filter-form-v347 .client-filter-search-v345 {
        grid-column: auto;
    }
    .client-filter-footer-v347 {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }
    .client-filter-actions-v347 {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .client-filter-actions-v347 .btn,
    .client-filter-footer-v347 .client-new-booking-v345 {
        width: 100%;
    }
}


/* v348: separate client-page navigation action from filter actions */
.client-view-head-v348 {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.client-view-head-v348 .client-view-tabs-v347 {
    flex: 1 1 auto;
    min-width: 0;
}
.client-new-booking-desktop-v348,
.client-new-booking-mobile-v348 {
    margin: 0;
    white-space: nowrap;
}
.topbar-action-v348 {
    display: none;
    margin-left: auto;
}
.client-filter-footer-v347 {
    justify-content: flex-start;
}
.client-filter-actions-v347 .client-apply-v348 {
    border-color: #2563eb;
    background: #2563eb;
    color: #fff;
    box-shadow: 0 8px 18px rgba(37, 99, 235, .20);
}
.client-filter-actions-v347 .client-apply-v348:hover,
.client-filter-actions-v347 .client-apply-v348:focus-visible {
    border-color: #1d4ed8;
    background: #1d4ed8;
    color: #fff;
}
.client-filter-actions-v347 .client-clear-v348 {
    border: 1px solid #fdba74;
    background: #fff7ed;
    color: #9a3412;
    box-shadow: none;
}
.client-filter-actions-v347 .client-clear-v348:hover,
.client-filter-actions-v347 .client-clear-v348:focus-visible {
    border-color: #fb923c;
    background: #ffedd5;
    color: #7c2d12;
}

@media (max-width: 980px) {
    .clients-page-v348 .client-new-booking-desktop-v348 {
        display: none;
    }
    .topbar-action-v348 {
        display: flex;
    }
    .topbar-action-v348 .client-new-booking-mobile-v348 {
        min-height: 38px;
        padding: 8px 12px;
        font-size: 13px;
    }
}

@media (min-width: 981px) {
    .topbar-action-v348 {
        display: none !important;
    }
}

@media (max-width: 560px) {
    .topbar {
        gap: 7px;
    }
    .topbar h1 {
        min-width: 0;
        flex: 1 1 auto;
    }
    .topbar-action-v348 {
        flex: 0 0 auto;
        margin-left: 0;
    }
    .topbar-action-v348 .client-new-booking-mobile-v348 {
        padding: 8px 10px;
        font-size: 12px;
    }
    .client-view-head-v348 {
        display: block;
    }
}


/* v349: sorting moved below filters and applies immediately */
.client-filter-footer-v349 {
    justify-content: space-between;
}
.client-sort-control-v349 {
    min-width: 250px;
    max-width: 340px;
    margin-left: auto;
    display: grid;
    grid-template-columns: auto minmax(190px, 1fr);
    align-items: center;
    gap: 10px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 850;
}
.client-sort-control-v349 > span {
    white-space: nowrap;
}
.client-sort-control-v349 select {
    width: 100%;
    min-width: 0;
    margin: 0;
}

@media (max-width: 820px) {
    .client-filter-footer-v349 {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }
    .client-sort-control-v349 {
        width: 100%;
        min-width: 0;
        max-width: none;
        margin-left: 0;
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
    }
}


/* v350: highlighted active-place control at the end of the place form */
.unit-active-control-v350 {
    display: flex;
    align-items: center;
    gap: 15px;
    width: 100%;
    padding: 17px 19px;
    border: 2px solid rgba(43, 116, 238, 0.28);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(43, 116, 238, 0.10), rgba(43, 116, 238, 0.035));
    box-shadow: 0 8px 22px rgba(27, 70, 135, 0.08);
    cursor: pointer;
}
.unit-active-control-v350:hover {
    border-color: rgba(43, 116, 238, 0.48);
    background: linear-gradient(135deg, rgba(43, 116, 238, 0.14), rgba(43, 116, 238, 0.05));
}
.unit-active-control-v350 input[type="checkbox"] {
    flex: 0 0 auto;
    width: 25px;
    height: 25px;
    min-height: 0;
    margin: 0;
    accent-color: var(--primary);
}
.unit-active-copy-v350 {
    display: grid;
    min-width: 0;
    gap: 3px;
}
.unit-active-title-v350 {
    color: var(--text);
    font-size: 18px;
    font-weight: 900;
    line-height: 1.2;
}
.unit-active-help-v350 {
    color: var(--muted);
    font-size: 13px;
    font-weight: 650;
    line-height: 1.45;
}

@media (max-width: 640px) {
    .unit-active-control-v350 {
        align-items: flex-start;
        padding: 15px 16px;
    }
    .unit-active-title-v350 {
        font-size: 17px;
    }
}

/* v353 — verified account deletion requests */
.account-deletion-scope-v353 {
    display: grid;
    gap: 4px;
    margin: 14px 0 18px;
    padding: 14px 16px;
    border: 1px solid rgba(21, 143, 138, .22);
    border-radius: 14px;
    background: #f2f8f7;
}
.account-deletion-scope-v353 strong { color: #0f5f5b; }
.account-deletion-scope-v353 span,
.account-deletion-password-help-v353 { color: var(--muted); font-size: 14px; }
.account-deletion-password-help-v353 { margin: -6px 0 2px; }
.account-deletion-password-help-v353 a { font-weight: 700; }
.admin-deletion-warning-v353 {
    margin: 0 0 14px;
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px solid #e8c66e;
    background: #fff8df;
    color: #735719;
    font-weight: 700;
}
.admin-deletion-verification-v353 {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 12px;
    padding: 10px 12px;
    border-radius: 12px;
    font-size: 13px;
}
.admin-deletion-verification-v353 strong { font-size: 13px; }
.admin-deletion-verification-v353 span { color: inherit; opacity: .82; }
.admin-deletion-verification-v353.is-verified {
    border: 1px solid rgba(21, 143, 138, .26);
    background: #edf9f6;
    color: #0c6c67;
}
.admin-deletion-verification-v353.is-unverified {
    border: 1px solid rgba(195, 95, 95, .28);
    background: #fff1f1;
    color: #8d3636;
}


/* v354: Places list and editor redesign */
.units-toolbar-v354 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}
.units-toolbar-v354 p { margin: 0; color: var(--muted); }
.units-list-v354 { display: grid; gap: 14px; }
.unit-card-v354 {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
    padding: 18px;
    background: rgba(255,255,255,.96);
    border: 1px solid var(--line);
    border-radius: 20px;
    box-shadow: var(--shadow-sm);
}
.unit-card-icon-v354 {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: linear-gradient(145deg, #eff6ff, #e0ecff);
    font-size: 27px;
}
.unit-card-main-v354 { min-width: 0; }
.unit-card-title-row-v354 {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
}
.unit-card-title-row-v354 h2 { margin: 0; font-size: 19px; }
.unit-card-title-row-v354 p { margin: 3px 0 0; color: var(--muted); }
.unit-status-v354 {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
}
.unit-status-v354 span { width: 8px; height: 8px; border-radius: 50%; }
.unit-status-v354.is-active { color: #15803d; background: #ecfdf3; border: 1px solid #bbf7d0; }
.unit-status-v354.is-active span { background: #22c55e; }
.unit-status-v354.is-inactive { color: #9a3412; background: #fff7ed; border: 1px solid #fed7aa; }
.unit-status-v354.is-inactive span { background: #f59e0b; }
.unit-card-facts-v354 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 14px;
}
.unit-card-facts-v354 > div {
    padding: 11px 13px;
    border-radius: 14px;
    background: #f8fafc;
    border: 1px solid #eef2f7;
}
.unit-card-facts-v354 small,
.unit-card-facts-v354 strong { display: block; }
.unit-card-facts-v354 strong { margin-top: 3px; font-size: 16px; }
.unit-card-notes-v354 {
    margin: 12px 0 0;
    color: var(--muted);
    white-space: pre-line;
}
.unit-card-edit-v354 {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    border: 1px solid var(--line-strong);
    color: var(--primary);
    background: #fff;
    text-decoration: none;
    font-size: 32px;
    line-height: 1;
}
.unit-card-edit-v354:hover { background: var(--primary-soft); border-color: #93c5fd; }
.units-empty-v354 { display: grid; justify-items: center; gap: 14px; padding: 40px 20px; }

.unit-editor-v354 {
    max-width: 1040px;
    margin: 0 auto;
    background: rgba(255,255,255,.97);
    border: 1px solid var(--line);
    border-radius: 24px;
    box-shadow: var(--shadow);
    overflow: hidden;
}
.unit-editor-heading-v354 {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 22px 24px 0;
}
.unit-editor-heading-v354 h2 { margin: 0 0 3px; font-size: clamp(23px, 3vw, 32px); }
.unit-editor-heading-v354 p { margin: 0; color: var(--muted); }
.unit-editor-back-v354 {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: grid;
    place-items: center;
    border: 1px solid var(--line-strong);
    border-radius: 14px;
    background: #fff;
    color: var(--primary);
    text-decoration: none;
    font-size: 23px;
}
.unit-editor-form-v354 { padding: 24px; display: grid; gap: 22px; }
.unit-editor-grid-v354 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}
.unit-field-v354 { display: grid; gap: 8px; min-width: 0; font-weight: 750; }
.unit-field-v354 > span { color: #263244; }
.unit-field-v354 b,
.unit-species-cards-v354 legend b { color: #ef4444; }
.unit-field-v354 input,
.unit-field-v354 textarea {
    width: 100%;
    min-height: 52px;
    border-radius: 14px;
    border: 1px solid var(--line-strong);
    background: #fff;
    padding: 13px 15px;
    font: inherit;
    color: var(--text);
}
.unit-field-v354 textarea { min-height: 128px; resize: vertical; }
.unit-field-v354 input:focus,
.unit-field-v354 textarea:focus {
    outline: none;
    border-color: #60a5fa;
    box-shadow: 0 0 0 4px rgba(37,99,235,.10);
}
.unit-field-name-v354 { grid-column: 1 / -1; }
.unit-field-v354 small { font-weight: 500; }
.unit-species-cards-v354 {
    margin: 0;
    padding: 0;
    border: 0;
    display: grid;
    gap: 10px;
}
.unit-species-cards-v354 legend { padding: 0; margin-bottom: 10px; font-weight: 800; }
.unit-species-grid-v354 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.unit-species-card-v354 { position: relative; cursor: pointer; }
.unit-species-card-v354 input { position: absolute; opacity: 0; pointer-events: none; }
.unit-species-card-body-v354 {
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    position: relative;
    padding: 14px;
    border: 1px solid var(--line-strong);
    border-radius: 16px;
    background: #fff;
    transition: .18s ease;
}
.unit-species-icon-v354 { font-size: 24px; }
.unit-species-check-v354 {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    border: 2px solid #94a3b8;
    border-radius: 50%;
    background: #fff;
    color: transparent;
    font-size: 13px;
    line-height: 1;
    opacity: 1;
    transform: scale(1);
    transition: .18s ease;
}
.unit-species-card-v354 input:checked + .unit-species-card-body-v354 {
    border-color: #2563eb;
    background: linear-gradient(135deg, #eff6ff, #f8fbff);
    color: #1d4ed8;
    box-shadow: 0 0 0 3px rgba(37,99,235,.08);
}
.unit-species-card-v354 input:checked + .unit-species-card-body-v354 .unit-species-check-v354 {
    border-color: #2563eb;
    background: #2563eb;
    color: #fff;
}
.unit-notes-v354 { display: grid; }
.unit-active-card-v354 {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 18px;
    border: 1px solid #86efac;
    border-radius: 18px;
    background: linear-gradient(135deg, #f0fdf4, #f8fff9);
    cursor: pointer;
}
.unit-active-card-v354 > input { position: absolute; opacity: 0; pointer-events: none; }
.unit-active-icon-v354 {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #22c55e;
    color: #fff;
    font-size: 24px;
    font-weight: 900;
    box-shadow: 0 8px 20px rgba(34,197,94,.22);
}
.unit-active-copy-v354 strong,
.unit-active-copy-v354 small { display: block; }
.unit-active-copy-v354 strong { color: #166534; font-size: 18px; }
.unit-active-copy-v354 small { margin-top: 3px; }
.unit-active-switch-v354 {
    width: 58px;
    height: 32px;
    padding: 3px;
    border-radius: 999px;
    background: #cbd5e1;
    transition: .18s ease;
}
.unit-active-switch-v354 span {
    display: block;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 8px rgba(15,23,42,.18);
    transition: .18s ease;
}
.unit-active-card-v354 > input:checked ~ .unit-active-switch-v354 { background: #22c55e; }
.unit-active-card-v354 > input:checked ~ .unit-active-switch-v354 span { transform: translateX(26px); }
.unit-active-card-v354 > input:not(:checked) ~ .unit-active-icon-v354 { background: #94a3b8; }
.unit-active-card-v354:has(> input:not(:checked)) { border-color: var(--line-strong); background: #f8fafc; }
.unit-active-card-v354:has(> input:not(:checked)) .unit-active-copy-v354 strong { color: #334155; }
.unit-editor-actions-v354 {
    display: grid;
    grid-template-columns: minmax(150px, .7fr) minmax(220px, 1.3fr);
    gap: 14px;
}
.unit-editor-actions-v354 .btn { min-height: 50px; font-size: 16px; }
.unit-delete-button-v354 { grid-column: 1 / -1; justify-self: start; }

@media (max-width: 760px) {
    .units-toolbar-v354 { align-items: stretch; }
    .units-toolbar-v354 > div { display: none; }
    .units-toolbar-v354 .btn { width: 100%; }
    .unit-card-v354 { grid-template-columns: auto minmax(0,1fr) auto; gap: 12px; padding: 15px; }
    .unit-card-icon-v354 { width: 46px; height: 46px; border-radius: 15px; font-size: 23px; }
    .unit-card-title-row-v354 { display: grid; gap: 9px; }
    .unit-status-v354 { justify-self: start; }
    .unit-card-facts-v354 { grid-template-columns: 1fr; gap: 8px; }
    .unit-card-edit-v354 { width: 40px; height: 40px; }
    .unit-editor-v354 { margin: 0 -4px; border-radius: 20px; }
    .unit-editor-heading-v354 { padding: 18px 18px 0; }
    .unit-editor-form-v354 { padding: 18px; }
    .unit-editor-grid-v354 { grid-template-columns: 1fr; gap: 15px; }
    .unit-field-name-v354 { grid-column: auto; }
    .unit-species-grid-v354 { grid-template-columns: 1fr; gap: 10px; }
    .unit-species-card-body-v354 { min-height: 60px; justify-content: flex-start; }
    .unit-active-card-v354 { grid-template-columns: auto minmax(0,1fr) auto; padding: 15px; }
    .unit-active-icon-v354 { width: 42px; height: 42px; }
    .unit-active-copy-v354 strong { font-size: 16px; }
    .unit-editor-actions-v354 { grid-template-columns: 1fr; }
    .unit-editor-actions-v354 .btn { width: 100%; }
    .unit-save-button-v354 { order: -1; }
    .unit-delete-button-v354 { grid-column: auto; justify-self: stretch; }
}

@media (max-width: 430px) {
    .unit-card-v354 { grid-template-columns: 1fr auto; }
    .unit-card-icon-v354 { display: none; }
    .unit-card-main-v354 { grid-column: 1; }
    .unit-card-edit-v354 { grid-column: 2; grid-row: 1; align-self: start; }
    .unit-active-card-v354 { grid-template-columns: minmax(0,1fr) auto; }
    .unit-active-icon-v354 { display: none; }
}


/* v356: explicit selected/unselected indicators for animal type cards */
.unit-species-check-v354 {
    border: 0 !important;
    background: transparent !important;
    color: #64748b !important;
    overflow: visible;
    font-size: 0;
}
.unit-species-empty-v356,
.unit-species-tick-v356 {
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-weight: 900;
    line-height: 1;
}
.unit-species-empty-v356 {
    border: 2px solid #94a3b8;
    background: #fff;
    color: transparent;
}
.unit-species-tick-v356 {
    display: none;
    background: #2563eb;
    color: #fff;
    font-size: 13px;
}
.unit-species-card-v354 input:checked + .unit-species-card-body-v354 .unit-species-empty-v356 {
    display: none;
}
.unit-species-card-v354 input:checked + .unit-species-card-body-v354 .unit-species-tick-v356 {
    display: grid;
}

/* v357: Places list — desktop table and mobile cards */
.units-toolbar-v357 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 20px;
}
.units-toolbar-copy-v357 p {
    margin: 0;
    color: var(--muted);
}
.units-add-v357 {
    flex: 0 0 auto;
    min-height: 46px;
    padding-inline: 20px;
}
.units-table-v357 {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: rgba(255,255,255,.98);
    box-shadow: var(--shadow-sm);
}
.units-table-head-v357,
.unit-row-v357 {
    display: grid;
    grid-template-columns:
        minmax(145px, 1.25fr)
        minmax(86px, .72fr)
        minmax(74px, .56fr)
        minmax(105px, .88fr)
        minmax(115px, .95fr)
        minmax(95px, .72fr)
        minmax(125px, 1fr)
        minmax(102px, .72fr);
    align-items: center;
    gap: 12px;
}
.units-table-head-v357 {
    min-height: 68px;
    padding: 14px 18px;
    background: #f8fafc;
    border-bottom: 1px solid var(--line);
    color: #64748b;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .035em;
    text-transform: uppercase;
}
.unit-row-v357 {
    min-height: 92px;
    padding: 15px 18px;
    border-bottom: 1px solid var(--line);
}
.unit-row-v357:last-child { border-bottom: 0; }
.unit-row-v357:hover { background: #fbfdff; }
.unit-name-v357 {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 11px;
}
.unit-name-v357 strong {
    min-width: 0;
    overflow-wrap: anywhere;
    font-size: 16px;
}
.unit-icon-v357,
.unit-species-badge-v357 {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 50%;
}
.unit-icon-v357 {
    width: 38px;
    height: 38px;
    background: #eff6ff;
    font-size: 20px;
}
.unit-species-v357 {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.unit-species-badge-v357 {
    width: 34px;
    height: 34px;
    font-size: 17px;
    border: 1px solid transparent;
}
.unit-species-badge-v357.is-dog { background: #fff7e7; border-color: #fde6b3; }
.unit-species-badge-v357.is-cat { background: #f3efff; border-color: #ddd3ff; }
.unit-species-badge-v357.is-other { background: #f1f5f9; border-color: #dbe3ec; }
.unit-value-v357 strong { font-size: 15px; font-weight: 800; }
.unit-notes-cell-v357 {
    min-width: 0;
    color: #475569;
    font-size: 14px;
    line-height: 1.35;
    overflow-wrap: anywhere;
    white-space: pre-line;
}
.unit-empty-v357 { color: #94a3b8; }
.unit-action-v357 { display: flex; justify-content: flex-end; }
.unit-edit-button-v357 {
    min-height: 40px;
    padding: 9px 12px;
    border-color: #60a5fa;
    color: #1d4ed8;
    background: #fff;
    white-space: nowrap;
}
.unit-edit-button-v357:hover { background: #eff6ff; }

@media (max-width: 1120px) {
    .units-table-head-v357,
    .unit-row-v357 {
        grid-template-columns:
            minmax(130px, 1.2fr)
            76px
            60px
            92px
            100px
            88px
            minmax(105px, .9fr)
            94px;
        gap: 9px;
    }
    .units-table-head-v357 { padding-inline: 14px; font-size: 11px; }
    .unit-row-v357 { padding-inline: 14px; }
}

@media (max-width: 860px) {
    .units-toolbar-v357 {
        align-items: center;
        margin-bottom: 14px;
    }
    .units-toolbar-copy-v357 { display: none; }
    .units-add-v357 { margin-left: auto; }
    .units-table-v357 {
        overflow: visible;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }
    .units-table-head-v357 { display: none; }
    .units-table-body-v357 {
        display: grid;
        gap: 12px;
    }
    .unit-row-v357 {
        width: 100%;
        min-width: 0;
        min-height: 0;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 12px;
        padding: 16px;
        border: 1px solid var(--line);
        border-radius: 18px;
        background: rgba(255,255,255,.98);
        box-shadow: var(--shadow-sm);
    }
    .unit-row-v357:last-child { border-bottom: 1px solid var(--line); }
    .unit-name-v357 {
        grid-column: 1;
        grid-row: 1;
        min-width: 0;
    }
    .unit-status-cell-v357 {
        grid-column: 2;
        grid-row: 1;
        align-self: center;
    }
    .unit-species-v357 {
        grid-column: 1 / -1;
        grid-row: 2;
        padding-top: 2px;
    }
    .unit-value-v357 {
        min-width: 0;
        padding: 11px 12px;
        border: 1px solid #e8edf3;
        border-radius: 13px;
        background: #f8fafc;
    }
    .unit-value-v357::before,
    .unit-notes-cell-v357::before {
        content: attr(data-label);
        display: block;
        margin-bottom: 4px;
        color: #64748b;
        font-size: 11px;
        font-weight: 800;
        letter-spacing: .02em;
    }
    .unit-row-v357 > .unit-value-v357:nth-of-type(3) { grid-column: 1 / -1; }
    .unit-row-v357 > .unit-value-v357:nth-of-type(4) { grid-column: 1; }
    .unit-row-v357 > .unit-value-v357:nth-of-type(5) { grid-column: 2; }
    .unit-notes-cell-v357 {
        grid-column: 1 / -1;
        padding-top: 2px;
    }
    .unit-action-v357 {
        grid-column: 1 / -1;
        justify-content: stretch;
    }
    .unit-edit-button-v357 { width: 100%; }
}

@media (max-width: 480px) {
    .units-toolbar-v357 { margin-top: -4px; }
    .units-add-v357 {
        width: 100%;
        margin-left: 0;
    }
    .unit-row-v357 {
        grid-template-columns: minmax(0,1fr);
        gap: 10px;
        padding: 14px;
    }
    .unit-name-v357,
    .unit-status-cell-v357,
    .unit-species-v357,
    .unit-row-v357 > .unit-value-v357:nth-of-type(3),
    .unit-row-v357 > .unit-value-v357:nth-of-type(4),
    .unit-row-v357 > .unit-value-v357:nth-of-type(5),
    .unit-notes-cell-v357,
    .unit-action-v357 {
        grid-column: 1;
    }
    .unit-name-v357 { grid-row: auto; }
    .unit-status-cell-v357 { grid-row: auto; }
    .unit-status-v354 { width: fit-content; }
    .unit-species-v357 { grid-row: auto; }
    .unit-value-v357 { width: 100%; }
    .unit-icon-v357 { width: 36px; height: 36px; }
}

/* v546: arrival/departure times and paid late checkout */
.settings-stay-times-v546 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fffaf7;
}
.settings-stay-times-v546 .full-span { grid-column: 1 / -1; }
.settings-late-checkout-v546 {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 13px 14px;
    border-radius: 14px;
    background: rgba(197, 93, 65, .08);
}
.settings-late-checkout-v546 input,
.booking-late-checkout-v546 input,
.public-late-checkout-v546 input {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    margin-top: 2px;
    accent-color: var(--primary);
}
.booking-stay-times-v546,
.public-stay-times-v546 {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 22px;
    padding: 12px 15px;
    border: 1px solid #eaded8;
    border-radius: 14px;
    background: #fffaf7;
    color: #665b55;
}
.booking-late-checkout-v546,
.public-late-checkout-v546 {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 5px 10px;
    align-items: start;
    padding: 15px;
    border: 1px solid #e8c7ba;
    border-radius: 15px;
    background: #fff7f2;
}
.booking-late-checkout-v546 small,
.public-late-checkout-v546 small {
    grid-column: 2;
    color: #8d4f3e;
    font-weight: 800;
}
@media (min-width: 1121px) {
    .units-table-head-v357,
    .unit-row-v357 {
        grid-template-columns: minmax(130px,1.2fr) 80px 66px 102px 112px 104px 84px minmax(110px,.9fr) 92px;
        gap: 9px;
    }
}
@media (min-width: 861px) and (max-width: 1120px) {
    .units-table-head-v357,
    .unit-row-v357 {
        grid-template-columns: minmax(115px,1.1fr) 68px 54px 82px 92px 86px 76px minmax(90px,.8fr) 84px;
        gap: 7px;
    }
}
@media (max-width: 860px) {
    .unit-row-v357 > .unit-value-v357:nth-of-type(6) { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
    .settings-stay-times-v546 { grid-template-columns: minmax(0,1fr); padding: 14px; }
    .settings-stay-times-v546 .full-span { grid-column: 1; }
    .booking-stay-times-v546,
    .public-stay-times-v546 { display: grid; gap: 6px; }
}


/* v361: room/place names no longer use decorative leading animal icons */
.unit-name-v357 {
    gap: 0;
}

/* v362: polished Clients cards inspired by the approved mobile reference */
.client-grid-v362 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.client-card-v362 { border-radius: 22px; padding: 20px; gap: 16px; box-shadow: 0 10px 28px rgba(15,23,42,.07); }
.client-card-main-v362 { display:flex; align-items:flex-start; gap:16px; min-width:0; }
.client-avatar-v362 { flex:0 0 72px; width:72px; height:72px; border-radius:50%; display:grid; place-items:center; overflow:hidden; background:linear-gradient(145deg,#eff6ff,#dbeafe); color:#1263df; font-size:26px; font-weight:900; }
.client-avatar-v362 img,.owner-pet-avatar-v362 img { width:100%; height:100%; object-fit:cover; display:block; }
.pet-avatar-v362 { font-size:38px; }
.pet-avatar-v362.cat,.owner-pet-avatar-v362.cat { background:#f3efff; }
.pet-avatar-v362.dog,.owner-pet-avatar-v362.dog { background:#fff5dd; }
.client-card-title-v362 { min-width:0; flex:1; }
.client-card-title-v362 h2 { font-size:24px; margin:2px 0 4px; overflow-wrap:anywhere; }
.client-card-title-v362 p { color:var(--muted); overflow-wrap:anywhere; }
.client-card-title-v362 .account-badge { margin-top:9px; }
.client-contact-line-v362 { display:flex; gap:8px; align-items:center; }
.client-address-v362 { display:flex; gap:10px; align-items:flex-start; color:var(--muted); border-top:1px solid var(--line); padding-top:14px; overflow-wrap:anywhere; }
.client-meta-v362 { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 16px; border-top:1px solid var(--line); padding-top:14px; }
.client-meta-v362 > div { display:grid; gap:2px; min-width:0; }
.client-meta-v362 strong { font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
.client-meta-v362 span { color:var(--text); overflow-wrap:anywhere; }
.owner-pet-list-v362 { border-top:1px solid var(--line); padding-top:14px; }
.owner-pet-list-head-v362 { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.owner-pet-list-head-v362 > span { padding:5px 10px; border-radius:999px; background:#f1f5f9; font-size:12px; font-weight:800; color:var(--muted); }
.owner-pet-chips-v362 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.owner-pet-chip-v362 { display:flex; align-items:center; gap:10px; min-width:0; padding:10px; border:1px solid var(--line); border-radius:16px; background:#fff; text-decoration:none; color:var(--text); }
.owner-pet-chip-v362:hover { border-color:#93c5fd; background:#f8fbff; }
.owner-pet-avatar-v362 { flex:0 0 48px; width:48px; height:48px; border-radius:50%; display:grid; place-items:center; overflow:hidden; background:#f1f5f9; font-size:25px; }
.owner-pet-chip-v362 > span:last-child { min-width:0; display:grid; gap:2px; }
.owner-pet-chip-v362 strong,.owner-pet-chip-v362 small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.owner-pet-chip-v362 small { color:var(--muted); font-size:12px; }
.visit-accordion-v362 { border-top:1px solid var(--line); padding-top:4px; }
.visit-accordion-v362 > summary { min-height:52px; }
.client-card-actions-v362 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.client-card-actions-v362 .btn { width:100%; min-width:0; justify-content:center; min-height:46px; }
.pet-client-card-v362 .client-card-actions-v362 .btn:nth-child(3) { grid-column:1/-1; }
.client-notes-v362 { border-radius:14px; background:#f8fafc; padding:12px 14px; border:1px solid var(--line); }

@media (max-width: 1250px) {
  .client-grid-v362 { grid-template-columns:1fr; }
}
@media (max-width: 820px) {
  .client-card-v362 { padding:16px; border-radius:18px; }
  .client-avatar-v362 { flex-basis:62px; width:62px; height:62px; }
  .owner-pet-chips-v362 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .client-card-title-v362 h2 { font-size:22px; }
}
@media (max-width: 520px) {
  .client-card-main-v362 { gap:12px; }
  .client-avatar-v362 { flex-basis:54px; width:54px; height:54px; font-size:21px; }
  .pet-avatar-v362 { font-size:30px; }
  .client-meta-v362 { grid-template-columns:1fr; }
  .owner-pet-chips-v362 { grid-template-columns:1fr; }
  .client-card-actions-v362 { grid-template-columns:1fr; }
  .pet-client-card-v362 .client-card-actions-v362 .btn:nth-child(3) { grid-column:auto; }
}


/* v364: equal owner-card headers and no addresses on the clients overview */
.owner-client-card-v362 .client-card-main-v362 { min-height: 126px; }
.client-contact-stack-v364 { display:grid; grid-template-rows:repeat(2,minmax(22px,auto)); margin-top:2px; }
.client-contact-stack-v364 .client-contact-line-v362 { margin:0; min-height:22px; }
.client-contact-stack-v364 .is-empty-v364 { visibility:hidden; pointer-events:none; }

@media (max-width: 520px) {
  .owner-client-card-v362 .client-card-main-v362 { min-height:116px; }
}


/* v366: compact owner-card navigation */
.owner-client-card-v366 {
    position: relative;
    padding-bottom: 24px;
}
.owner-profile-link-v366,
.owner-name-link-v366 {
    color: inherit;
    text-decoration: none;
}
.owner-profile-link-v366 {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    transition: transform .16s ease, box-shadow .16s ease;
}
.owner-profile-link-v366:hover,
.owner-profile-link-v366:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 8px 22px rgba(28, 93, 219, .18);
    outline: none;
}
.owner-name-link-v366:hover,
.owner-name-link-v366:focus-visible {
    color: var(--primary, #1769e8);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.client-card-menu-v366 {
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 8;
}
.client-card-menu-v366 > summary {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1px solid transparent;
    border-radius: 12px;
    color: #64748b;
    font-size: 28px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    list-style: none;
    user-select: none;
}
.client-card-menu-v366 > summary::-webkit-details-marker { display: none; }
.client-card-menu-v366 > summary:hover,
.client-card-menu-v366 > summary:focus-visible,
.client-card-menu-v366[open] > summary {
    color: #1769e8;
    background: #eff6ff;
    border-color: #bfdbfe;
    outline: none;
}
.client-card-menu-panel-v366 {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 170px;
    padding: 7px;
    border: 1px solid #dbe3ee;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .18);
}
.client-card-menu-panel-v366 a {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 42px;
    padding: 9px 11px;
    border-radius: 10px;
    color: #152033;
    font-weight: 750;
    text-decoration: none;
    white-space: nowrap;
}
.client-card-menu-panel-v366 a:hover,
.client-card-menu-panel-v366 a:focus-visible {
    color: #1769e8;
    background: #eff6ff;
    outline: none;
}
.owner-client-card-v366 .client-card-main-v362 {
    padding-right: 52px;
}
@media (max-width: 640px) {
    .client-card-menu-v366 { top: 14px; right: 14px; }
    .client-card-menu-v366 > summary { width: 38px; height: 38px; }
    .owner-client-card-v366 .client-card-main-v362 { padding-right: 44px; }
}


/* v367: simplified Clients search — remove account and visit filters */
.client-filter-form-v347,
.client-filter-form-v347.has-species-v345 {
    grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
}
.client-filter-form-v347.owners-only-v345 {
    grid-template-columns: minmax(0, 1fr);
}
.client-filter-form-v347 .client-filter-search-v345 {
    grid-column: auto;
}
@media (max-width: 820px) {
    .client-filter-form-v347,
    .client-filter-form-v347.has-species-v345,
    .client-filter-form-v347.owners-only-v345 {
        grid-template-columns: minmax(0, 1fr);
    }
}


/* v368: page language switcher removed; topbar keeps its mobile layout */
@media (max-width: 980px) {
    .topbar { display: flex; align-items: center; gap: 10px; }
}


/* v369: compact pet-card navigation matching owner cards */
.pet-client-card-v369 {
    position: relative;
}
.pet-profile-link-v369,
.pet-name-link-v369 {
    color: inherit;
    text-decoration: none;
}
.pet-profile-link-v369 {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    transition: transform .16s ease, box-shadow .16s ease;
}
.pet-profile-link-v369:hover,
.pet-profile-link-v369:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 8px 22px rgba(28, 93, 219, .18);
    outline: none;
}
.pet-name-link-v369:hover,
.pet-name-link-v369:focus-visible {
    color: var(--primary, #1769e8);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.pet-questionnaire-action-v369 {
    grid-template-columns: 1fr;
}
.pet-questionnaire-action-v369 .btn {
    width: 100%;
}

/* v371: booking status filter in Clients */
.client-filter-form-v347,
.client-filter-form-v347.has-species-v345 {
    grid-template-columns: minmax(0, 2fr) repeat(2, minmax(190px, 1fr));
}
.client-filter-form-v347.owners-only-v345 {
    grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
}
.status-none-v371 {
    background: #f1f5f9;
    color: #64748b !important;
}

/* v372: compact booking status beside the card menu */
.client-card-header-v372 {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    min-width: 0;
}
.client-card-header-v372 .client-card-main-v362 {
    flex: 1 1 auto;
    min-width: 0;
}
.owner-client-card-v366 .client-card-header-v372 .client-card-main-v362 {
    padding-right: 0;
}
.client-card-top-actions-v372 {
    position: relative;
    z-index: 8;
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    min-width: 0;
}
.client-card-top-actions-v372 .status-pill {
    max-width: 160px;
    color: var(--text);
    text-decoration: none;
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.client-card-top-actions-v372 a.status-pill:hover,
.client-card-top-actions-v372 a.status-pill:focus-visible {
    border-color: #93c5fd;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, .12);
    outline: none;
}
.client-card-top-actions-v372 .client-card-menu-v366 {
    position: relative;
    top: auto;
    right: auto;
    z-index: 1;
    flex: 0 0 auto;
}

@media (max-width: 820px) {
    .client-filter-form-v347,
    .client-filter-form-v347.has-species-v345,
    .client-filter-form-v347.owners-only-v345 {
        grid-template-columns: minmax(0, 1fr);
    }
}
@media (max-width: 520px) {
    .client-card-header-v372 {
        position: relative;
        display: block;
        padding-top: 46px;
    }
    .client-card-top-actions-v372 {
        position: absolute;
        top: 0;
        right: 0;
    }
    .client-card-top-actions-v372 .status-pill {
        max-width: 145px;
    }
}


/* v373: redesign pet cards in Clients to match the approved reference more closely */
.pet-client-card-v373 {
    gap: 0;
    padding: 18px 20px 14px;
}
.pet-card-header-v373 {
    align-items: flex-start;
    gap: 16px;
}
.pet-avatar-v373 {
    flex: 0 0 104px;
    width: 104px;
    height: 104px;
    border-radius: 20px;
    font-size: 52px;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.55);
}
.pet-card-body-v373 {
    flex: 1 1 auto;
    min-width: 0;
    display: grid;
    gap: 10px;
}
.pet-card-title-row-v373 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}
.pet-card-title-v373 h2 {
    margin: 0;
    line-height: 1.08;
}
.pet-card-title-v373 p {
    margin: 4px 0 0;
    font-size: 16px;
}
.pet-account-badge-v373 {
    width: fit-content;
    margin-top: -2px;
}
.pet-card-top-actions-v373 {
    flex-shrink: 0;
    align-self: flex-start;
}
.pet-card-details-v373 {
    display: grid;
    gap: 8px;
    padding-top: 4px;
}
.pet-card-detail-v373 {
    display: flex;
    align-items: baseline;
    gap: 8px;
    min-width: 0;
    color: var(--text);
    line-height: 1.35;
    flex-wrap: wrap;
}
.pet-card-detail-icon-v373 {
    flex: 0 0 18px;
    width: 18px;
    color: #64748b;
    font-size: 15px;
    line-height: 1;
    text-align: center;
}
.pet-card-detail-label-v373 {
    color: #66758b;
    font-weight: 780;
}
.pet-card-detail-value-v373,
.pet-card-owner-link-v373 {
    min-width: 0;
    color: var(--text);
    font-weight: 560;
    overflow-wrap: anywhere;
}
.pet-card-owner-link-v373 {
    color: var(--primary, #1769e8);
    text-decoration: none;
}
.pet-card-owner-link-v373:hover,
.pet-card-owner-link-v373:focus-visible {
    text-decoration: underline;
    text-underline-offset: 3px;
    outline: none;
}
.pet-card-detail-secondary-v373 .pet-card-detail-label-v373,
.pet-card-detail-secondary-v373 .pet-card-detail-value-v373 {
    color: #4b5563;
}
.pet-questionnaire-action-v373 {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
}
.pet-questionnaire-action-v373 .btn {
    min-height: 44px;
    border-radius: 14px;
    font-weight: 780;
}
.pet-visit-accordion-v373 {
    margin-top: 2px;
}
.pet-visit-accordion-v373 > summary {
    min-height: 56px;
}
@media (max-width: 820px) {
    .pet-client-card-v373 {
        padding: 16px;
    }
    .pet-avatar-v373 {
        flex-basis: 90px;
        width: 90px;
        height: 90px;
        border-radius: 18px;
        font-size: 46px;
    }
    .pet-card-title-v373 h2 {
        font-size: 22px;
    }
}
@media (max-width: 560px) {
    .pet-client-card-v373 {
        padding: 14px;
    }
    .pet-card-header-v373 {
        position: relative;
        display: grid;
        grid-template-columns: 88px minmax(0, 1fr);
        gap: 14px;
        padding-top: 48px;
    }
    .pet-avatar-v373 {
        flex-basis: 88px;
        width: 88px;
        height: 88px;
        border-radius: 18px;
        font-size: 42px;
    }
    .pet-card-title-row-v373 {
        display: block;
    }
    .pet-card-top-actions-v373 {
        position: absolute;
        top: 0;
        right: 0;
    }
    .pet-card-title-v373 p {
        font-size: 15px;
    }
    .pet-card-details-v373 {
        gap: 7px;
    }
    .pet-card-detail-v373 {
        gap: 7px;
    }
    .pet-card-detail-icon-v373 {
        flex-basis: 16px;
        width: 16px;
        font-size: 14px;
    }
}

/* v375: complete pet profile hierarchy — pet, owner, then bookings */
.pet-profile-page-v375 {
    display: grid;
    gap: 22px;
    max-width: 1420px;
}
.pet-profile-hero-v375 {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr) auto;
    gap: 24px;
    align-items: center;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(15, 23, 42, .07);
}
.pet-profile-photo-v375 {
    width: 150px;
    height: 150px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 26px;
    background: linear-gradient(145deg, #eff6ff, #dbeafe);
    font-size: 72px;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.65);
}
.pet-profile-photo-v375.dog { background: linear-gradient(145deg, #fff8e8, #ffedc4); }
.pet-profile-photo-v375.cat { background: linear-gradient(145deg, #f6f1ff, #e9ddff); }
.pet-profile-photo-v375 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.pet-profile-hero-copy-v375 { min-width: 0; }
.pet-profile-eyebrow-v375,
.pet-profile-section-kicker-v375 {
    margin: 0 0 6px;
    color: #64748b;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.pet-profile-hero-copy-v375 h1 {
    margin: 0;
    font-size: clamp(32px, 4vw, 48px);
    line-height: 1.02;
    overflow-wrap: anywhere;
}
.pet-profile-subtitle-v375 {
    margin: 8px 0 0;
    color: var(--muted);
    font-size: 18px;
}
.pet-profile-hero-badges-v375 {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}
.pet-questionnaire-state-v375 {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 5px 10px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 850;
}
.pet-questionnaire-state-v375.is-complete-v375 {
    color: #067647;
    background: #ecfdf3;
    border-color: #abefc6;
}
.pet-questionnaire-state-v375.is-empty-v375 {
    color: #667085;
    background: #f8fafc;
    border-color: #e2e8f0;
}
.pet-profile-actions-v375 {
    display: grid;
    gap: 9px;
    min-width: 190px;
}
.pet-profile-actions-v375 .btn { width: 100%; justify-content: center; }
.pet-profile-section-v375 {
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 8px 28px rgba(15, 23, 42, .05);
}
.pet-profile-section-head-v375 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}
.pet-profile-section-head-v375 h2 {
    margin: 0;
    font-size: 26px;
    line-height: 1.15;
}
.pet-profile-section-head-v375 p:not(.pet-profile-section-kicker-v375) {
    max-width: 760px;
    margin: 7px 0 0;
    color: var(--muted);
}
.pet-profile-facts-v375 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}
.pet-profile-facts-v375 > div,
.pet-owner-facts-v375 > div,
.pet-booking-facts-v375 > div {
    display: grid;
    gap: 5px;
    min-width: 0;
    padding: 13px 14px;
    border: 1px solid #e5eaf1;
    border-radius: 15px;
    background: #f8fafc;
}
.pet-profile-facts-v375 span,
.pet-owner-facts-v375 span,
.pet-booking-facts-v375 span,
.pet-owner-note-v375 > span {
    color: #64748b;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .03em;
    text-transform: uppercase;
}
.pet-profile-facts-v375 strong,
.pet-owner-facts-v375 strong,
.pet-booking-facts-v375 strong {
    min-width: 0;
    color: var(--text);
    font-size: 15px;
    overflow-wrap: anywhere;
}
.pet-profile-note-v375,
.pet-owner-note-v375,
.pet-booking-note-v375 {
    margin-top: 14px;
    padding: 14px 16px;
    border: 1px solid #e4eaf2;
    border-radius: 15px;
    background: #fbfcfe;
}
.pet-profile-note-v375 > strong,
.pet-booking-note-v375 > strong {
    display: block;
    margin-bottom: 5px;
}
.pet-profile-note-v375 p,
.pet-owner-note-v375 p,
.pet-booking-note-v375 p {
    margin: 0;
    color: #475467;
    overflow-wrap: anywhere;
}
.pet-questionnaire-summary-v375 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 20px;
    padding: 16px 18px;
    border: 1px solid #cfe0ff;
    border-radius: 18px;
    background: #f5f9ff;
}
.pet-questionnaire-summary-v375 h3 { margin: 0; font-size: 18px; }
.pet-questionnaire-summary-v375 p { margin: 5px 0 0; color: var(--muted); }
.pet-questionnaire-summary-v375 .btn { flex: 0 0 auto; }
.pet-questionnaire-sections-v375 {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}
.pet-questionnaire-section-v375 {
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
}
.pet-questionnaire-section-v375 > summary,
.pet-booking-history-v375 > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 54px;
    padding: 13px 16px;
    cursor: pointer;
    list-style: none;
    font-weight: 850;
}
.pet-questionnaire-section-v375 > summary::-webkit-details-marker,
.pet-booking-history-v375 > summary::-webkit-details-marker { display: none; }
.pet-questionnaire-section-v375 > summary::after,
.pet-booking-history-v375 > summary::after {
    content: '⌄';
    margin-left: auto;
    color: #64748b;
    font-size: 20px;
    transition: transform .16s ease;
}
.pet-questionnaire-section-v375[open] > summary::after,
.pet-booking-history-v375[open] > summary::after { transform: rotate(180deg); }
.pet-questionnaire-section-v375 > summary small,
.pet-booking-history-v375 > summary small {
    margin-left: auto;
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}
.pet-questionnaire-section-v375[open] > summary {
    border-bottom: 1px solid #e2e8f0;
    background: #f8fafc;
}
.pet-questionnaire-answer-grid-v375 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
}
.pet-questionnaire-answer-grid-v375 > div {
    display: grid;
    gap: 5px;
    min-width: 0;
    padding: 14px 16px;
    border-bottom: 1px solid #edf1f5;
}
.pet-questionnaire-answer-grid-v375 > div:nth-child(odd) { border-right: 1px solid #edf1f5; }
.pet-questionnaire-answer-grid-v375 span {
    color: #64748b;
    font-size: 12px;
    font-weight: 800;
}
.pet-questionnaire-answer-grid-v375 strong {
    font-weight: 650;
    overflow-wrap: anywhere;
}
.pet-profile-files-v375 {
    display: grid;
    gap: 9px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
}
.pet-profile-files-v375 > div { display: flex; flex-wrap: wrap; gap: 8px; }
.pet-profile-files-v375 a {
    display: inline-flex;
    padding: 8px 11px;
    border: 1px solid #cbd5e1;
    border-radius: 11px;
    color: var(--primary, #1769e8);
    background: #fff;
    text-decoration: none;
    overflow-wrap: anywhere;
}
.pet-profile-empty-v375 {
    margin: 14px 0 0;
    padding: 18px;
    border: 1px dashed #cbd5e1;
    border-radius: 16px;
    color: var(--muted);
    text-align: center;
    background: #f8fafc;
}
.pet-owner-actions-v375 { display: flex; flex-wrap: wrap; gap: 8px; }
.pet-owner-card-v375 {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}
.pet-owner-avatar-v375 {
    width: 76px;
    height: 76px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #175cd3;
    background: #eaf2ff;
    font-size: 28px;
    font-weight: 900;
    text-decoration: none;
}
.pet-owner-content-v375 { min-width: 0; }
.pet-owner-content-v375 h3 { margin: 0 0 12px; font-size: 22px; }
.pet-owner-content-v375 h3 a { color: inherit; text-decoration: none; }
.pet-owner-content-v375 h3 a:hover,
.pet-owner-content-v375 h3 a:focus-visible { color: var(--primary, #1769e8); text-decoration: underline; }
.pet-owner-facts-v375 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.pet-owner-facts-v375 .is-wide-v375 { grid-column: 1 / -1; }
.pet-owner-note-v375 { display: grid; gap: 5px; }
.pet-booking-count-v375 {
    flex: 0 0 auto;
    padding: 7px 11px;
    border-radius: 999px;
    color: #475467;
    background: #f1f5f9;
    font-size: 12px;
    font-weight: 850;
}
.pet-booking-group-v375 + .pet-booking-group-v375,
.pet-booking-history-v375 { margin-top: 20px; }
.pet-booking-group-v375 > h3 { margin: 0 0 10px; font-size: 18px; }
.pet-booking-list-v375 { display: grid; gap: 12px; }
.pet-booking-card-v375 {
    padding: 16px;
    border: 1px solid #dfe5ed;
    border-radius: 18px;
    background: #fff;
}
.pet-booking-card-v375.is-current-v375 {
    border-color: #86b7ff;
    background: #f7fbff;
    box-shadow: inset 4px 0 0 #2e7be7;
}
.pet-booking-card-head-v375 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}
.pet-booking-card-head-v375 > div { display: grid; gap: 5px; min-width: 0; }
.pet-booking-number-v375 {
    color: var(--primary, #1769e8);
    font-size: 13px;
    font-weight: 850;
    text-decoration: none;
}
.pet-booking-number-v375:hover,
.pet-booking-number-v375:focus-visible { text-decoration: underline; }
.pet-booking-dates-v375 { font-size: 18px; overflow-wrap: anywhere; }
.pet-booking-facts-v375 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
    margin-top: 14px;
}
.pet-booking-facts-v375 > div { padding: 10px 11px; border-radius: 12px; }
.pet-booking-facts-v375 strong { font-size: 14px; }
.pet-booking-actions-v375 {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}
.pet-booking-history-v375 {
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    overflow: hidden;
}
.pet-booking-history-v375 > summary { background: #f8fafc; }
.pet-booking-history-v375 > .pet-booking-list-v375 {
    padding: 12px;
    border-top: 1px solid #e2e8f0;
}

@media (max-width: 1180px) {
    .pet-profile-facts-v375,
    .pet-booking-facts-v375 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .pet-profile-hero-v375 {
        grid-template-columns: 118px minmax(0, 1fr);
    }
    .pet-profile-photo-v375 { width: 118px; height: 118px; border-radius: 22px; font-size: 58px; }
    .pet-profile-actions-v375 {
        grid-column: 1 / -1;
        display: flex;
        flex-wrap: wrap;
        min-width: 0;
    }
    .pet-profile-actions-v375 .btn { width: auto; }
    .pet-profile-facts-v375,
    .pet-booking-facts-v375 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .pet-profile-page-v375 { gap: 14px; }
    .pet-profile-hero-v375,
    .pet-profile-section-v375 { padding: 16px; border-radius: 20px; }
    .pet-profile-hero-v375 {
        grid-template-columns: 88px minmax(0, 1fr);
        gap: 14px;
        align-items: start;
    }
    .pet-profile-photo-v375 { width: 88px; height: 88px; border-radius: 18px; font-size: 44px; }
    .pet-profile-hero-copy-v375 h1 { font-size: 30px; }
    .pet-profile-subtitle-v375 { font-size: 15px; }
    .pet-profile-hero-badges-v375 { grid-column: 1 / -1; }
    .pet-profile-actions-v375 {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .pet-profile-actions-v375 .btn { width: 100%; }
    .pet-profile-actions-v375 .btn:last-child { grid-column: 1 / -1; }
    .pet-profile-section-head-v375 { display: grid; gap: 12px; }
    .pet-profile-section-head-v375 h2 { font-size: 23px; }
    .pet-profile-facts-v375,
    .pet-owner-facts-v375,
    .pet-booking-facts-v375,
    .pet-questionnaire-answer-grid-v375 { grid-template-columns: 1fr; }
    .pet-questionnaire-answer-grid-v375 > div:nth-child(odd) { border-right: 0; }
    .pet-questionnaire-summary-v375 { align-items: stretch; flex-direction: column; }
    .pet-questionnaire-summary-v375 .btn { width: 100%; justify-content: center; }
    .pet-owner-card-v375 { grid-template-columns: 58px minmax(0, 1fr); gap: 13px; }
    .pet-owner-avatar-v375 { width: 58px; height: 58px; font-size: 22px; }
    .pet-owner-content-v375 h3 { font-size: 20px; }
    .pet-booking-card-head-v375 { align-items: flex-start; }
    .pet-booking-dates-v375 { font-size: 16px; }
    .pet-booking-actions-v375 { display: grid; grid-template-columns: 1fr; }
    .pet-booking-actions-v375 .btn { width: 100%; justify-content: center; }
}


/* v376: photo upload in pet editor */
.pet-photo-editor-v376 {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #f8fafc;
}
.pet-photo-preview-v376 {
    flex: 0 0 112px;
    width: 112px;
    height: 112px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid #dbe3ee;
    border-radius: 22px;
    background: #fff5dd;
    font-size: 54px;
}
.pet-photo-preview-v376 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.pet-photo-fields-v376 {
    flex: 1 1 auto;
    min-width: 0;
    display: grid;
    gap: 8px;
}
.pet-photo-fields-v376 > small {
    color: var(--muted);
}
.pet-photo-remove-v376 {
    display: flex;
    grid-template-columns: none;
    align-items: center;
    gap: 9px;
    width: fit-content;
    margin-top: 3px;
    font-weight: 650;
}
.pet-photo-remove-v376 input {
    width: auto;
    min-height: auto;
    margin: 0;
}
@media (max-width: 560px) {
    .pet-photo-editor-v376 {
        align-items: flex-start;
        gap: 14px;
        padding: 14px;
    }
    .pet-photo-preview-v376 {
        flex-basis: 86px;
        width: 86px;
        height: 86px;
        border-radius: 18px;
        font-size: 42px;
    }
}

/* v377: dynamic pet-photo upload with progress and immediate deletion */
.pet-photo-editor-v377 {
    transition: border-color .16s ease, background-color .16s ease;
}
.pet-photo-editor-v377.is-busy-v377 {
    border-color: #93c5fd;
    background: #f5f9ff;
}
.pet-photo-fields-v377 {
    align-content: start;
}
.pet-photo-progress-wrap-v377 {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) auto;
    align-items: center;
    gap: 10px;
    max-width: 520px;
}
.pet-photo-progress-wrap-v377[hidden] {
    display: none;
}
.pet-photo-progress-wrap-v377 progress {
    width: 100%;
    height: 10px;
    accent-color: var(--primary, #1769e8);
}
.pet-photo-progress-wrap-v377 span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}
.pet-photo-status-v377 {
    min-height: 20px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}
.pet-photo-status-v377:empty {
    min-height: 0;
}
.pet-photo-status-v377.is-success-v377 {
    color: #15803d;
}
.pet-photo-status-v377.is-error-v377 {
    color: #b91c1c;
}
.pet-photo-actions-v377 {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.pet-photo-actions-v377 .btn {
    width: fit-content;
}
.pet-photo-editor-v377 input[type="file"]:disabled,
.pet-photo-editor-v377 button:disabled {
    cursor: wait;
    opacity: .65;
}
@media (max-width: 560px) {
    .pet-photo-editor-v377 {
        display: grid;
        grid-template-columns: 86px minmax(0, 1fr);
    }
    .pet-photo-progress-wrap-v377 {
        grid-template-columns: 1fr;
        gap: 5px;
    }
    .pet-photo-progress-wrap-v377 span {
        white-space: normal;
    }
    .pet-photo-actions-v377 .btn {
        width: 100%;
        justify-content: center;
    }
}


/* v378: clearer pet editor hierarchy and field order */
.pet-edit-topbar-v378 {
    display: none;
}
.pet-edit-page-v378 {
    display: grid;
    gap: 16px;
}
.pet-edit-heading-v378 {
    display: grid;
    gap: 5px;
    padding: 2px 2px 0;
}
.pet-edit-heading-v378 p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.pet-edit-heading-v378 h1 {
    margin: 0;
    overflow-wrap: anywhere;
}
.pet-edit-form-v378 {
    margin: 0;
}
.pet-name-field-v378 input {
    font-size: 18px;
    font-weight: 720;
}
@media (max-width: 640px) {
    .pet-edit-page-v378 {
        gap: 12px;
    }
    .pet-edit-heading-v378 {
        padding-inline: 1px;
    }
    .pet-edit-heading-v378 p {
        font-size: 12px;
    }
}


/* v381: existing pet ownership is fixed; show the owner as a profile link */
.pet-owner-readonly-v381 {
    display: grid;
    align-content: start;
    gap: 7px;
    min-width: 0;
    padding: 13px 14px;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    background: #f8fafc;
}
.pet-owner-readonly-label-v381 {
    color: var(--text);
    font-size: 14px;
    font-weight: 780;
}
.pet-owner-readonly-link-v381 {
    width: fit-content;
    max-width: 100%;
    color: var(--primary, #1769e8);
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    overflow-wrap: anywhere;
}
.pet-owner-readonly-link-v381:hover,
.pet-owner-readonly-link-v381:focus-visible {
    text-decoration: underline;
    text-underline-offset: 3px;
    outline: none;
}
.pet-owner-readonly-v381 small {
    color: var(--muted);
    font-weight: 500;
    overflow-wrap: anywhere;
}

/* v382: personal hotel URL field */
.hotel-custom-url-v382 {
    gap: 8px;
}
.hotel-custom-url-field-v382 {
    display: flex;
    align-items: stretch;
    min-width: 0;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}
.hotel-custom-url-field-v382 > span {
    display: flex;
    align-items: center;
    padding: 10px 0 10px 12px;
    color: var(--muted);
    font-weight: 650;
    white-space: nowrap;
}
.hotel-custom-url-field-v382 input {
    min-width: 0;
    border: 0;
    border-radius: 0;
    padding-left: 2px;
    box-shadow: none;
}
.hotel-custom-url-field-v382:focus-within {
    border-color: #60a5fa;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, .12);
}
.hotel-custom-url-preview-v382 {
    display: block;
    color: var(--muted);
    overflow-wrap: anywhere;
}
.hotel-custom-url-preview-v382 strong {
    color: var(--text);
}
.settings-public-link code {
    overflow-wrap: anywhere;
}
@media (max-width: 640px) {
    .hotel-custom-url-field-v382 {
        display: grid;
    }
    .hotel-custom-url-field-v382 > span {
        padding: 9px 12px 0;
        white-space: normal;
        overflow-wrap: anywhere;
    }
    .hotel-custom-url-field-v382 input {
        padding: 6px 12px 10px;
    }
}


/* v383: compact personal-link controls without duplicated sidebar block */
.hotel-custom-url-preview-v383 {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    flex-wrap: wrap;
}
.hotel-custom-url-preview-v383 > span {
    color: var(--muted);
    font-weight: 600;
}
.hotel-custom-url-preview-v383 > a {
    min-width: 0;
    color: var(--text);
    text-decoration: none;
    overflow-wrap: anywhere;
}
.hotel-custom-url-preview-v383 > a:hover,
.hotel-custom-url-preview-v383 > a:focus-visible {
    color: var(--primary, #1769e8);
    text-decoration: underline;
    text-underline-offset: 3px;
    outline: none;
}
.hotel-custom-url-preview-v383 .btn {
    margin-left: 2px;
    flex: 0 0 auto;
}
@media (max-width: 640px) {
    .hotel-custom-url-preview-v383 {
        align-items: flex-start;
    }
    .hotel-custom-url-preview-v383 .btn {
        width: auto;
    }
}


/* v385: optional care instructions inside every public-booking pet card */
.public-pet-care-details {
    overflow: hidden;
    border: 1px solid #dbe3ee;
    border-radius: 16px;
    background: #f8fafc;
}
.public-pet-care-details > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 52px;
    padding: 12px 14px;
    color: #0f172a;
    font-weight: 820;
    cursor: pointer;
    list-style: none;
}
.public-pet-care-details > summary::-webkit-details-marker {
    display: none;
}
.public-pet-care-details > summary::after {
    content: '⌄';
    color: #64748b;
    font-size: 20px;
    line-height: 1;
    transition: transform .16s ease;
}
.public-pet-care-details[open] > summary::after {
    transform: rotate(180deg);
}
.public-pet-care-details > summary small {
    margin-left: auto;
    color: #64748b;
    font-size: 12px;
    font-weight: 700;
}
.public-pet-care-content {
    display: grid;
    gap: 10px;
    padding: 0 14px 14px;
    border-top: 1px solid #e2e8f0;
}
.public-pet-care-content > p {
    margin: 12px 0 0;
    font-size: 13px;
}
.public-pet-care-toggle {
    min-height: 44px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #e5eaf1;
    border-radius: 12px;
    background: #fff;
}
.public-pet-care-textarea {
    margin: -2px 0 2px;
    padding: 0 2px;
}
.public-pet-care-textarea textarea {
    min-height: 76px;
}
@media (max-width: 640px) {
    .public-pet-care-details > summary {
        align-items: flex-start;
        min-height: 48px;
        padding: 11px 12px;
    }
    .public-pet-care-details > summary small {
        display: none;
    }
    .public-pet-care-content {
        padding: 0 12px 12px;
    }
}

/* v387: pinned booking-specific instructions in the guest diary */
.booking-instructions-panel-v387 {
    padding: 0;
    overflow: hidden;
}
.booking-instructions-accordion-v387 > summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 14px;
    min-height: 86px;
    padding: 20px 22px;
    cursor: pointer;
    list-style: none;
}
.booking-instructions-accordion-v387 > summary::-webkit-details-marker { display: none; }
.booking-instructions-accordion-v387 > summary h2 {
    margin: 0 0 4px;
}
.booking-instructions-accordion-v387 > summary p {
    margin: 0;
    color: var(--muted);
}
.booking-instructions-count-v387 {
    padding: 6px 11px;
    border-radius: 999px;
    background: #eef4ff;
    color: #1d4ed8;
    font-size: 12px;
    font-weight: 850;
    white-space: nowrap;
}
.booking-instructions-chevron-v387 {
    color: #64748b;
    font-size: 22px;
    line-height: 1;
    transition: transform .16s ease;
}
.booking-instructions-accordion-v387[open] .booking-instructions-chevron-v387 {
    transform: rotate(180deg);
}
.booking-instructions-pets-v387 {
    display: grid;
    gap: 14px;
    padding: 0 22px 22px;
}
.booking-instructions-pet-v387 {
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fbfdff;
    overflow: hidden;
}
.booking-instructions-pet-v387 > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--line);
    background: #fff;
}
.booking-instructions-pet-title-v387 {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
}
.booking-instructions-pet-icon-v387 {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: #f1f5f9;
    font-size: 24px;
}
.booking-instructions-pet-title-v387 h3 {
    margin: 0;
    overflow-wrap: anywhere;
}
.booking-instructions-pet-title-v387 small {
    color: var(--muted);
}
.booking-instructions-grid-v387 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 14px;
}
.booking-instruction-item-v387 {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    padding: 14px;
    border: 1px solid #e2e8f0;
    border-radius: 15px;
    background: #fff;
}
.booking-instruction-copy-v387 {
    min-width: 0;
    flex: 1 1 auto;
}
.booking-instruction-copy-v387 strong {
    display: block;
    margin-bottom: 6px;
    color: #334155;
}
.booking-instruction-copy-v387 p {
    margin: 0;
    color: var(--text);
    line-height: 1.55;
    overflow-wrap: anywhere;
}
.booking-instruction-task-button-v387 {
    align-self: flex-start;
    margin-top: auto;
}
.booking-instruction-item-v387.is-readonly-v387 {
    min-height: 100%;
}
.care-task-pet-v387 {
    display: inline-flex;
    align-items: center;
    padding: 2px 7px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #475569;
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
}
@media (max-width: 760px) {
    .booking-instructions-accordion-v387 > summary {
        grid-template-columns: minmax(0, 1fr) auto;
        padding: 17px 16px;
    }
    .booking-instructions-count-v387 {
        grid-column: 1;
        width: fit-content;
    }
    .booking-instructions-chevron-v387 {
        grid-column: 2;
        grid-row: 1 / span 2;
    }
    .booking-instructions-pets-v387 {
        padding: 0 14px 16px;
    }
    .booking-instructions-grid-v387 {
        grid-template-columns: minmax(0, 1fr);
    }
}
@media (max-width: 480px) {
    .booking-instructions-accordion-v387 > summary p {
        font-size: 13px;
    }
    .booking-instructions-pet-v387 > header {
        padding: 12px;
    }
    .booking-instructions-grid-v387 {
        padding: 10px;
    }
    .booking-instruction-item-v387 {
        padding: 12px;
    }
    .booking-instruction-task-button-v387 {
        width: 100%;
        justify-content: center;
    }
}

/* v389: compact Clients filter and sort controls styled as inline buttons */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.client-filter-panel-v389 {
    padding: 14px 16px 16px;
}
.client-filter-form-v389,
.client-filter-form-v389.has-species-v345,
.client-filter-form-v389.owners-only-v345 {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    align-items: start;
}
.client-filter-form-v389 .client-filter-search-v389 {
    grid-column: auto;
    gap: 0;
}
.client-filter-search-v389 input {
    min-height: 50px;
    padding-left: 46px;
    border-radius: 16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: 16px 50%;
    background-size: 18px 18px;
}
.client-filter-toolbar-v389 {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.client-compact-control-v389 {
    position: relative;
    display: block;
    min-width: 0;
}
.client-compact-control-v389::before {
    content: '';
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    opacity: .82;
    pointer-events: none;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 18px 18px;
}
.client-compact-control-v389 select,
.client-more-filters-v389 > summary {
    min-height: 48px;
    padding: 11px 40px 11px 42px;
    border: 1px solid #d6dde8;
    border-radius: 14px;
    background: #fff;
    color: #334155;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 1px 1px rgba(15,23,42,.02);
}
.client-compact-control-v389 select {
    padding-right: 40px;
}
.client-compact-control-v389 select:hover,
.client-compact-control-v389 select:focus,
.client-more-filters-v389 > summary:hover,
.client-more-filters-v389 > summary:focus-visible,
.client-more-filters-v389[open] > summary {
    border-color: #bfd0e5;
    background-color: #f8fbff;
    outline: none;
}
.client-compact-control-status-v389::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='8' y1='6' x2='21' y2='6'/%3E%3Cline x1='8' y1='12' x2='21' y2='12'/%3E%3Cline x1='8' y1='18' x2='21' y2='18'/%3E%3Cline x1='3' y1='6' x2='3.01' y2='6'/%3E%3Cline x1='3' y1='12' x2='3.01' y2='12'/%3E%3Cline x1='3' y1='18' x2='3.01' y2='18'/%3E%3C/svg%3E");
}
.client-compact-control-species-v389::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='%2364748b'%3E%3Ccircle cx='6' cy='9' r='2.3'/%3E%3Ccircle cx='12' cy='6' r='2.3'/%3E%3Ccircle cx='18' cy='9' r='2.3'/%3E%3Cpath d='M12 21c-4 0-6.8-2.2-6.8-5.1S7.6 11 10.4 11c.7 0 1.4.16 1.96.52.56-.36 1.2-.52 1.96-.52 2.82 0 5.44 1.94 5.44 4.9 0 2.95-2.77 5.1-6.8 5.1Z'/%3E%3C/svg%3E");
}
.client-sort-control-v389 {
    margin-left: auto;
}
.client-sort-control-v389::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 16 4 4 4-4'/%3E%3Cpath d='M7 20V4'/%3E%3Cpath d='m21 8-4-4-4 4'/%3E%3Cpath d='M17 4v16'/%3E%3C/svg%3E");
}
.client-more-filters-v389 {
    position: relative;
    flex: 0 0 auto;
}
.client-more-filters-v389 > summary {
    list-style: none;
    cursor: pointer;
    white-space: nowrap;
    position: relative;
}
.client-more-filters-v389 > summary::-webkit-details-marker {
    display: none;
}
.client-more-filters-v389 > summary::before {
    content: '';
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5h18'/%3E%3Cpath d='M6 12h12'/%3E%3Cpath d='M10 19h4'/%3E%3C/svg%3E") center/18px 18px no-repeat;
    opacity: .82;
}
.client-more-filters-panel-v389 {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    min-width: 190px;
    display: grid;
    gap: 8px;
    padding: 10px;
    border: 1px solid #dbe3ee;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(15, 23, 42, .14);
    z-index: 20;
}
.client-more-filters-panel-v389 .btn {
    justify-content: center;
    width: 100%;
    margin: 0;
}
.client-more-filters-panel-v389 .btn:not(.primary) {
    border-color: #d6dde8;
    color: #475569;
    background: #fff;
}
@media (max-width: 900px) {
    .client-sort-control-v389 {
        margin-left: 0;
    }
}
@media (max-width: 640px) {
    .client-filter-panel-v389 {
        padding: 12px;
    }
    .client-filter-toolbar-v389 {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: stretch;
    }
    .client-sort-control-v389,
    .client-more-filters-v389 {
        margin-left: 0;
    }
    .client-sort-control-v389 {
        grid-column: 1 / -1;
    }
    .client-more-filters-v389 > summary,
    .client-compact-control-v389 select {
        width: 100%;
    }
    .client-more-filters-panel-v389 {
        left: 0;
        right: 0;
        min-width: 0;
    }
}
@media (max-width: 480px) {
    .client-filter-toolbar-v389 {
        grid-template-columns: minmax(0, 1fr);
    }
    .client-sort-control-v389 {
        grid-column: auto;
    }
}


/* v390: search actions belong directly to the search field */
.client-search-row-v390 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: stretch;
}
.client-search-row-v390 .client-filter-search-v389 {
    min-width: 0;
}
.client-search-actions-v390 {
    display: flex;
    align-items: stretch;
    gap: 8px;
}
.client-search-actions-v390 .btn {
    min-height: 50px;
    margin: 0;
    padding-inline: 20px;
    border-radius: 14px;
    white-space: nowrap;
}
.client-search-apply-v390 {
    border-color: #2563eb;
    background: #2563eb;
    color: #fff;
    box-shadow: 0 7px 16px rgba(37, 99, 235, .18);
}
.client-search-apply-v390:hover,
.client-search-apply-v390:focus-visible {
    border-color: #1d4ed8;
    background: #1d4ed8;
    color: #fff;
}
.client-search-clear-v390 {
    border-color: #d6dde8;
    background: #fff;
    color: #475569;
    box-shadow: none;
}
.client-search-clear-v390:hover,
.client-search-clear-v390:focus-visible {
    border-color: #bcc9d9;
    background: #f8fafc;
    color: #1e293b;
}
.client-filter-toolbar-v390 {
    padding-top: 1px;
}
@media (max-width: 700px) {
    .client-search-row-v390 {
        grid-template-columns: minmax(0, 1fr);
    }
    .client-search-actions-v390 {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .client-search-actions-v390 .btn {
        width: 100%;
        min-height: 44px;
    }
}


/* v391: compact Bookings sort controls styled like button fields */
.bookings-controls-v290 {
    gap: 10px;
}
.bookings-sort-form-v391 {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.bookings-sort-form-v391 label {
    margin: 0;
}
.booking-compact-control-v391 {
    position: relative;
    display: block;
    min-width: 0;
}
.booking-compact-control-v391::before {
    content: '';
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    opacity: .82;
    pointer-events: none;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 18px 18px;
}
.booking-compact-control-sort-v391::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 16 4 4 4-4'/%3E%3Cpath d='M7 20V4'/%3E%3Cpath d='m21 8-4-4-4 4'/%3E%3Cpath d='M17 4v16'/%3E%3C/svg%3E");
}
.booking-compact-control-dir-v391::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14'/%3E%3Cpath d='m19 12-7 7-7-7'/%3E%3C/svg%3E");
}
.booking-compact-control-v391 select {
    min-height: 46px;
    padding: 10px 38px 10px 42px;
    border: 1px solid #d6dde8;
    border-radius: 14px;
    background: #fff;
    color: #334155;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 1px 1px rgba(15,23,42,.02);
}
.booking-compact-control-v391 select:hover,
.booking-compact-control-v391 select:focus {
    border-color: #bfd0e5;
    background-color: #f8fbff;
    outline: none;
}
.booking-compact-control-sort-v391 select {
    min-width: 220px;
}
.booking-compact-control-dir-v391 select {
    min-width: 170px;
}
@media (max-width: 700px) {
    .bookings-sort-form-v391 {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        width: 100%;
        gap: 8px;
    }
    .booking-compact-control-sort-v391 select,
    .booking-compact-control-dir-v391 select {
        min-width: 0;
        width: 100%;
    }
}
@media (max-width: 480px) {
    .bookings-sort-form-v391 {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* v392: booking status menus never stack visually */
.booking-status-menu-v293[open] {
    z-index: 31;
}


/* v393: create several care tasks at different times in one submission */
.care-task-times-v393 {
    display: grid;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #f8fafc;
}
.care-task-times-head-v393 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.care-task-times-head-v393 > div {
    min-width: 0;
    display: grid;
    gap: 3px;
}
.care-task-times-head-v393 strong {
    color: var(--text);
    font-size: 14px;
}
.care-task-times-head-v393 small {
    color: var(--muted);
    font-weight: 550;
    line-height: 1.35;
}
.care-task-time-list-v393 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}
.care-task-time-row-v393 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 38px;
    gap: 7px;
    align-items: center;
}
.care-task-time-row-v393 input[type="time"] {
    min-width: 0;
    width: 100%;
    background: #fff;
}
.care-task-time-remove-v393 {
    width: 38px;
    min-width: 38px;
    height: 38px;
    padding: 0;
    justify-content: center;
    border-color: #fecaca;
    color: #b91c1c;
    background: #fff;
    font-size: 20px;
    line-height: 1;
}
.care-task-time-remove-v393[hidden] {
    display: none;
}
@media (max-width: 760px) {
    .care-task-time-list-v393 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 520px) {
    .care-task-times-head-v393 {
        align-items: stretch;
        flex-direction: column;
    }
    .care-task-times-head-v393 .btn {
        width: 100%;
        justify-content: center;
    }
    .care-task-time-list-v393 {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* v394: keep diary modals below the sticky mobile manager header */
@media (max-width: 820px) {
    .diary-modal-v306 {
        inset: var(--manager-menu-top-v337, 72px) 0 0;
        z-index: 2147482999;
        height: auto;
        padding: 10px 10px max(10px, env(safe-area-inset-bottom));
        align-items: end;
    }
    .diary-modal-dialog-v306 {
        width: 100%;
        max-height: calc(100dvh - var(--manager-menu-top-v337, 72px) - 20px - env(safe-area-inset-bottom));
        border-radius: 20px 20px 0 0;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }
}

/* v395: reduce wasted space below the mobile manager header on normal pages */
@media (max-width: 820px) {
    .app-shell > .main {
        padding-top: 5px;
    }
    .manager-pwa-host-v327 .app-shell > .main > .topbar {
        padding-top: 0;
    }
}
@media (max-width: 760px) {
    .app-shell > .main {
        padding-top: 4px;
    }
}


/* v396: redesigned upper booking form layout */
.booking-edit-form-v396 {
    gap: 18px;
}
.booking-card-v396 {
    border: 1px solid var(--line);
    border-radius: 22px;
    background: #fff;
    padding: 20px;
    box-shadow: 0 8px 26px rgba(15, 23, 42, 0.04);
}
.booking-card-head-v396 {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 18px;
}
.booking-card-icon-v396 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: #eff6ff;
    font-size: 20px;
    line-height: 1;
}
.booking-card-head-v396 h2 {
    margin: 0;
    font-size: 28px;
    line-height: 1.1;
}
.booking-card-head-v396 p {
    margin: 6px 0 0;
}
.booking-card-body-v396 {
    display: grid;
    gap: 14px;
}
.booking-card-grid-v396 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.booking-top-row-v396 .booking-total-stay-v396 {
    min-height: 52px;
    align-self: end;
    justify-content: center;
    background: #f8fafc;
}
.booking-top-row-v396 .date-warning {
    margin-top: -4px;
}
.booking-inner-heading-v396 {
    margin: 4px 0 0;
}
.booking-owner-block.booking-card-v396,
.booking-pet-block.booking-card-v396 {
    padding: 20px;
}
.booking-owner-block.booking-card-v396 .booking-card-body-v396,
.booking-pet-block.booking-card-v396 .booking-card-body-v396 {
    padding: 0;
}
.booking-stay-options-v396 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    padding: 0;
    border: 0;
    background: transparent;
}
.booking-stay-options-v396 .booking-stay-option-v396 {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 66px;
    padding: 16px 18px;
    border: 1.5px solid var(--line);
    border-radius: 18px;
    background: #fff;
    font-weight: 800;
    color: var(--text);
    cursor: pointer;
}
.booking-stay-options-v396 .booking-stay-option-v396 input {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--primary);
}
.booking-stay-options-v396 .booking-stay-option-v396 span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.booking-stay-options-v396 .booking-stay-option-v396 input:checked + span {
    color: var(--primary-dark);
    font-weight: 900;
}
.booking-stay-options-v396 .booking-stay-option-v396:has(input:checked) {
    border-color: #7aa8ff;
    background: #f6faff;
    box-shadow: inset 0 0 0 1px rgba(59, 130, 246, 0.12);
}
.booking-card-accommodation-v396 label,
.booking-card-booking-v396 label {
    margin: 0;
}
.booking-card-accommodation-v396 .cost-summary {
    margin-top: 4px;
}
@media (max-width: 980px) {
    .booking-card-head-v396 h2 {
        font-size: 24px;
    }
}
@media (max-width: 760px) {
    .booking-card-v396,
    .booking-owner-block.booking-card-v396,
    .booking-pet-block.booking-card-v396 {
        padding: 16px;
        border-radius: 18px;
    }
    .booking-card-grid-v396,
    .booking-stay-options-v396 {
        grid-template-columns: 1fr;
    }
    .booking-top-row-v396 .booking-total-stay-v396 {
        justify-content: flex-start;
    }
    .booking-card-head-v396 h2 {
        font-size: 22px;
    }
}

/* v397: reference-style booking details and compact pet modal editor */
.booking-top-grid-v397 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.booking-top-grid-v397 > * {
    min-width: 0;
}
.booking-top-grid-v397 input,
.booking-top-grid-v397 select {
    min-width: 0;
    width: 100%;
}
.booking-pet-list-wrap-v397 {
    gap: 14px;
}
.booking-pet-list-v397,
.booking-extra-pets-list-v397 {
    display: grid;
    gap: 10px;
}
.booking-extra-pets-list-v397 {
    margin: 0;
}
.booking-pet-row-v397,
.extra-pet-card.booking-pet-row-v397 {
    position: relative;
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    min-width: 0;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fff;
    box-shadow: none;
}
.booking-pet-avatar-v397 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    border-radius: 15px;
    background: #eff6ff;
    font-size: 28px;
}
.booking-pet-summary-v397 {
    min-width: 0;
    display: grid;
    gap: 4px;
}
.booking-pet-summary-v397 strong {
    min-width: 0;
    overflow-wrap: anywhere;
    color: var(--text);
    font-size: 18px;
    line-height: 1.15;
}
.booking-pet-summary-v397 span {
    min-width: 0;
    overflow-wrap: anywhere;
    color: var(--muted);
    font-weight: 700;
    line-height: 1.35;
}
.booking-pet-row-actions-v397 {
    display: flex;
    align-items: center;
    gap: 7px;
}
.booking-pet-edit-v397 {
    min-width: 86px;
    margin: 0;
}
.booking-pet-remove-v397 {
    width: 42px;
    min-width: 42px;
    padding: 0;
    margin: 0;
    font-size: 22px;
}
.booking-add-pet-v397 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    min-height: 48px;
    padding: 10px 14px;
    border: 1.5px dashed #b8c7dc;
    border-radius: 15px;
    background: #fff;
    color: var(--primary-dark);
    font: inherit;
    font-weight: 850;
    cursor: pointer;
}
.booking-add-pet-v397:hover,
.booking-add-pet-v397:focus-visible {
    border-color: #7aa8ff;
    background: #f6faff;
    outline: none;
}
.booking-pet-count-v397 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 52px;
    padding: 12px 16px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: #f8fafc;
    font-weight: 800;
}
.booking-pet-count-v397 strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 10px;
    border-radius: 12px;
    background: #fff;
    color: var(--text);
    font-size: 18px;
    box-shadow: inset 0 0 0 1px var(--line);
}
.booking-pet-editor-source-v397[hidden],
.booking-pet-modal-v397[hidden] {
    display: none !important;
}
.booking-pet-modal-v397 {
    position: fixed;
    inset: 0;
    z-index: 1250;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.booking-pet-modal-backdrop-v397 {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(15, 23, 42, .56);
    cursor: default;
}
.booking-pet-modal-dialog-v397 {
    position: relative;
    z-index: 1;
    width: min(680px, 100%);
    max-height: min(780px, calc(100dvh - 48px));
    overflow: auto;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(15, 23, 42, .28);
    overscroll-behavior: contain;
}
.booking-pet-modal-head-v397 {
    position: sticky;
    top: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 18px 20px;
    border-bottom: 1px solid var(--line);
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(8px);
}
.booking-pet-modal-head-v397 h3 {
    margin: 0;
    font-size: 22px;
}
.booking-pet-modal-close-v397 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 0;
    border-radius: 13px;
    background: #f1f5f9;
    color: var(--text);
    font-size: 28px;
    cursor: pointer;
}
.booking-pet-modal-body-v397 {
    padding: 20px;
}
.booking-pet-modal-actions-v397 {
    position: sticky;
    bottom: 0;
    z-index: 3;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 16px 20px;
    border-top: 1px solid var(--line);
    background: rgba(255,255,255,.97);
    backdrop-filter: blur(8px);
}
.booking-pet-editor-grid-v397 {
    padding: 0;
}
.booking-pet-instructions-v397 {
    border: 1px solid var(--line);
    border-radius: 15px;
    background: #f8fafc;
    overflow: hidden;
}
.booking-pet-instructions-v397 > summary {
    padding: 13px 15px;
    cursor: pointer;
    font-weight: 850;
}
.booking-pet-instructions-body-v397 {
    display: grid;
    gap: 10px;
    padding: 0 14px 14px;
}
.booking-pet-modal-open-v397 {
    overflow: hidden;
}
@media (max-width: 760px) {
    .booking-top-grid-v397,
    .booking-card-grid-v396.booking-top-grid-v397 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px;
    }
    .booking-top-grid-v397 label {
        font-size: 12px;
    }
    .booking-top-grid-v397 input,
    .booking-top-grid-v397 select,
    .booking-top-grid-v397 .booking-total-stay-v396 {
        min-height: 48px;
        padding-left: 10px;
        padding-right: 10px;
        font-size: 14px;
    }
    .booking-top-grid-v397 .booking-total-stay-v396 {
        justify-content: flex-start;
        gap: 5px;
    }
    .booking-pet-row-v397,
    .extra-pet-card.booking-pet-row-v397 {
        grid-template-columns: 50px minmax(0, 1fr) auto;
        gap: 10px;
        padding: 10px;
    }
    .booking-pet-avatar-v397 {
        width: 50px;
        height: 50px;
        border-radius: 13px;
        font-size: 24px;
    }
    .booking-pet-summary-v397 strong {
        font-size: 16px;
    }
    .booking-pet-summary-v397 span {
        font-size: 13px;
    }
    .booking-pet-edit-v397 {
        min-width: 0;
        padding: 8px 10px;
        font-size: 13px;
    }
    .booking-pet-remove-v397 {
        width: 38px;
        min-width: 38px;
        height: 38px;
    }
    .booking-pet-modal-v397 {
        align-items: flex-start;
        padding: calc(var(--manager-menu-top-v337, 72px) + 8px) 10px calc(10px + env(safe-area-inset-bottom));
    }
    .booking-pet-modal-dialog-v397 {
        width: 100%;
        max-height: calc(100dvh - var(--manager-menu-top-v337, 72px) - 18px - env(safe-area-inset-bottom));
        border-radius: 18px;
    }
    .booking-pet-modal-head-v397,
    .booking-pet-modal-body-v397,
    .booking-pet-modal-actions-v397 {
        padding-left: 14px;
        padding-right: 14px;
    }
    .booking-pet-editor-grid-v397 {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 430px) {
    .booking-top-grid-v397 input,
    .booking-top-grid-v397 select,
    .booking-top-grid-v397 .booking-total-stay-v396 {
        font-size: 12px;
    }
    .booking-pet-row-v397,
    .extra-pet-card.booking-pet-row-v397 {
        grid-template-columns: 46px minmax(0, 1fr);
    }
    .booking-pet-avatar-v397 {
        width: 46px;
        height: 46px;
    }
    .booking-pet-row-actions-v397,
    .booking-pet-row-v397 > .booking-pet-edit-v397 {
        grid-column: 1 / -1;
        justify-content: flex-end;
    }
    .booking-pet-row-v397 > .booking-pet-edit-v397 {
        width: 100%;
    }
}

/* v398: fixed booking date format and refined mobile pet/stay controls */
.booking-date-label-v398 {
    min-width: 0;
}
.booking-date-control-v398 {
    position: relative;
    display: block;
    width: 100%;
    min-width: 0;
    min-height: 52px;
    border: 1px solid var(--line-strong, #cbd5e1);
    border-radius: 15px;
    background: #fff;
    overflow: hidden;
}
.booking-date-display-v398 {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 50px;
    padding: 10px 40px 10px 44px;
    color: var(--text);
    font-size: 16px;
    font-weight: 800;
    letter-spacing: .01em;
    white-space: nowrap;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 11h18'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: 14px 50%;
    background-size: 20px 20px;
}
.booking-date-control-v398::after {
    content: '';
    position: absolute;
    right: 15px;
    top: 50%;
    width: 8px;
    height: 8px;
    border-right: 1.8px solid #64748b;
    border-bottom: 1.8px solid #64748b;
    transform: translateY(-70%) rotate(45deg);
    pointer-events: none;
}
.booking-date-control-v398 input[type="date"] {
    position: absolute !important;
    inset: 0;
    z-index: 2;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    opacity: 0;
    cursor: pointer;
}
.booking-date-control-v398 input[type="date"]::-webkit-calendar-picker-indicator {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    opacity: 0;
    cursor: pointer;
}
.booking-date-control-v398[role="button"] {
    cursor: pointer;
}
.booking-date-control-v398[role="button"]:focus-visible {
    outline: none;
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, .14);
}
.booking-date-control-v398:focus-within {
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, .14);
}
.booking-pet-edit-v398 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 40px;
    padding: 8px 14px;
    border-color: #cbd5e1;
    color: #172033;
    font-weight: 800;
}
.booking-pet-edit-v398 > span {
    flex: 0 0 17px;
    width: 17px;
    height: 17px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E") center/17px 17px no-repeat;
}
.booking-pet-remove-v398 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-color: #fecaca !important;
    background: #fff5f5 !important;
    color: #dc2626 !important;
}
.booking-pet-remove-v398 > span {
    width: 19px;
    height: 19px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' viewBox='0 0 24 24' fill='none' stroke='%23dc2626' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M8 6V4h8v2'/%3E%3Cpath d='M19 6l-1 14H6L5 6'/%3E%3Cpath d='M10 11v5M14 11v5'/%3E%3C/svg%3E") center/19px 19px no-repeat;
}
.booking-stay-together-v398 > span::before,
.booking-stay-separate-v398 > span::before {
    content: '';
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 28px 28px;
}
.booking-stay-together-v398 > span::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none'%3E%3Cpath d='m4 12 10-8 10 8' stroke='%232563eb' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M6.4 10.8v11.4h15.2V10.8' stroke='%232563eb' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='11' cy='13.2' r='1.65' fill='%232563eb'/%3E%3Ccircle cx='17' cy='13.2' r='1.65' fill='%232563eb'/%3E%3Cpath d='M8.6 18.4c.35-2.15 1.45-3.4 2.95-3.4 1.12 0 2.03.56 2.45 1.62.42-1.06 1.34-1.62 2.45-1.62 1.5 0 2.6 1.25 2.95 3.4' stroke='%232563eb' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.booking-stay-separate-v398 > span::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28' fill='none'%3E%3Cpath d='m2.7 12.2 4.7-3.9 4.7 3.9' stroke='%2364748b' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.1 11.3v9.1h6.6v-9.1' stroke='%2364748b' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='7.4' cy='15.1' r='1.25' fill='%2364748b'/%3E%3Cpath d='M5.65 18.1c.2-1.35.84-2.12 1.75-2.12s1.55.77 1.75 2.12' stroke='%2364748b' stroke-width='1.45' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='m15.9 12.2 4.7-3.9 4.7 3.9' stroke='%2364748b' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M17.3 11.3v9.1h6.6v-9.1' stroke='%2364748b' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='20.6' cy='15.1' r='1.25' fill='%2364748b'/%3E%3Cpath d='M18.85 18.1c.2-1.35.84-2.12 1.75-2.12s1.55.77 1.75 2.12' stroke='%2364748b' stroke-width='1.45' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
@media (max-width: 760px) {
    .booking-date-control-v398 {
        min-height: 48px;
        border-radius: 14px;
    }
    .booking-date-display-v398 {
        min-height: 46px;
        padding: 8px 29px 8px 34px;
        font-size: 13px;
        background-position: 9px 50%;
        background-size: 17px 17px;
    }
    .booking-date-control-v398::after {
        right: 11px;
        width: 7px;
        height: 7px;
    }
    .booking-pet-row-v397,
    .extra-pet-card.booking-pet-row-v397 {
        grid-template-columns: 50px minmax(0, 1fr) !important;
        align-items: center;
        gap: 10px 12px;
        padding: 12px !important;
    }
    .booking-pet-row-v397 > .booking-pet-edit-v398,
    .booking-pet-row-actions-v397 {
        grid-column: 1 / -1 !important;
        width: 100%;
        margin: 2px 0 0;
    }
    .booking-pet-row-v397 > .booking-pet-edit-v398 {
        min-width: 0;
    }
    .booking-pet-row-actions-v397 {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 42px;
        gap: 10px;
        align-items: stretch;
        justify-content: stretch;
    }
    .booking-pet-row-actions-v397 .booking-pet-edit-v398 {
        width: 100%;
        min-width: 0;
    }
    .booking-pet-remove-v398 {
        width: 42px !important;
        min-width: 42px !important;
        height: 42px !important;
        padding: 0 !important;
        border-radius: 13px;
    }
    .booking-add-pet-v397 {
        min-height: 50px;
        border-radius: 15px;
        font-size: 15px;
    }
    .booking-stay-options-v396 {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }
    .booking-stay-options-v396 .booking-stay-option-v396 {
        min-width: 0;
        min-height: 74px;
        padding: 11px 9px;
        gap: 7px;
        border-radius: 16px;
        justify-content: flex-start;
    }
    .booking-stay-options-v396 .booking-stay-option-v396 > span {
        min-width: 0;
        gap: 5px;
        font-size: 13px;
        line-height: 1.15;
    }
    .booking-stay-together-v398 > span::before,
    .booking-stay-separate-v398 > span::before {
        flex-basis: 23px;
        width: 23px;
        height: 23px;
        background-size: 23px 23px;
    }
}
@media (max-width: 380px) {
    .booking-date-display-v398 {
        font-size: 12px;
        letter-spacing: 0;
    }
    .booking-stay-options-v396 .booking-stay-option-v396 {
        padding-left: 7px;
        padding-right: 7px;
    }
    .booking-stay-options-v396 .booking-stay-option-v396 > span {
        font-size: 12px;
    }
}


/* v400: zero-pet initial state and equal actions for every pet row */
.booking-pet-row-v397[hidden] {
    display: none !important;
}
.booking-pet-row-v397[data-main-pet-row] .booking-pet-row-actions-v397 {
    align-self: center;
}
.booking-pet-row-v397 .booking-pet-row-actions-v397 .booking-pet-edit-v398 {
    min-width: 132px;
}
@media (max-width: 760px) {
    .booking-pet-row-v397[data-main-pet-row] {
        grid-template-columns: 50px minmax(0, 1fr) !important;
    }
    .booking-pet-row-v397[data-main-pet-row] .booking-pet-row-actions-v397 {
        grid-column: 1 / -1 !important;
        display: grid;
        grid-template-columns: minmax(0, 1fr) 42px;
        gap: 10px;
        width: 100%;
    }
    .booking-pet-row-v397[data-main-pet-row] .booking-pet-edit-v398 {
        width: 100%;
        min-width: 0;
    }
}

/* v401: fix pet action button icon/text overlap */
.booking-pet-edit-v398 > span[aria-hidden="true"] {
    flex: 0 0 17px;
    width: 17px;
    height: 17px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E") center/17px 17px no-repeat;
}
.booking-pet-edit-v398 > span[data-pet-editor-label] {
    flex: 0 1 auto;
    width: auto;
    height: auto;
    min-width: 0;
    background: none;
    white-space: nowrap;
    overflow: visible;
    line-height: 1.2;
}
.booking-pet-edit-v398 {
    min-width: 132px;
    max-width: 100%;
    white-space: nowrap;
}
.booking-pet-row-actions-v397 {
    justify-content: flex-end;
}
@media (max-width: 760px) {
    .booking-pet-edit-v398 {
        min-width: 0;
    }
    .booking-pet-row-actions-v397 {
        justify-content: stretch;
    }
}


/* v402: allow native scrollbar arrows to move the closed-dates calendar on every click */
.closed-calendar-scroll {
    scroll-snap-type: none;
    scroll-behavior: auto;
}


/* v403: dynamic AJAX save for hotel closed dates */
.closed-dates-save-button-v403 {
    width: 100%;
    min-height: 58px;
    justify-content: center;
    border-radius: 16px;
    border-color: #2563eb;
    background: linear-gradient(135deg, #0b74ff, #1559e8);
    color: #fff;
    font-size: 17px;
    font-weight: 950;
    box-shadow: 0 14px 30px rgba(37, 99, 235, .28);
    transition: transform .16s ease, box-shadow .16s ease, opacity .16s ease;
}
.closed-dates-save-button-v403:hover,
.closed-dates-save-button-v403:focus-visible {
    border-color: #1d4ed8;
    background: linear-gradient(135deg, #0868ea, #124fd0);
    color: #fff;
    box-shadow: 0 16px 34px rgba(37, 99, 235, .34);
    transform: translateY(-1px);
}
.closed-dates-save-button-v403:disabled {
    cursor: wait;
    opacity: .72;
    transform: none;
}
.closed-dates-save-button-v403[hidden] {
    display: none !important;
}
.closed-dates-save-status-v403 {
    margin: 0;
    padding: 10px 12px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 850;
    line-height: 1.35;
}
.closed-dates-save-status-v403.is-success {
    border: 1px solid #86efac;
    background: #f0fdf4;
    color: #166534;
}
.closed-dates-save-status-v403.is-error {
    border: 1px solid #fca5a5;
    background: #fef2f2;
    color: #991b1b;
}
.closed-dates-save-status-v403[hidden] {
    display: none !important;
}


/* v406: aligned hotel settings option cards */
.settings-options-row-v406 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    align-items: stretch;
}
.settings-options-row-v406 .settings-option-card-v406 {
    min-width: 0;
    margin: 0;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fbfcfe;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    color: var(--text);
    box-shadow: 0 4px 14px rgba(15, 23, 42, .025);
}
.settings-options-row-v406 .settings-option-label-v406 {
    display: flex;
    align-items: flex-end;
    min-height: 42px;
    color: var(--text);
    font-size: 15px;
    font-weight: 850;
    line-height: 1.3;
}
.settings-options-row-v406 .settings-option-card-v406 > select,
.settings-options-row-v406 .settings-option-card-v406 > .currency-search-box {
    width: 100%;
    min-width: 0;
}
.settings-options-row-v406 .settings-option-card-v406 > select,
.settings-options-row-v406 .settings-option-card-v406 .currency-search-box > input {
    min-height: 52px;
    height: 52px;
    margin: 0;
    border-radius: 14px;
    background-color: #fff;
}
.settings-options-row-v406 .settings-option-card-v406 > small {
    display: block;
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.45;
}
.settings-options-row-v406 .settings-option-card-v406:not(.settings-option-currency-v406) > small {
    flex: 1 1 auto;
}
.settings-options-row-v406 .settings-option-timezone-v406::after {
    content: '';
    flex: 1 1 auto;
    min-height: 58px;
}
.settings-options-row-v406 .currency-picker input[type="search"] {
    margin: 0;
}
.settings-options-row-v406 .currency-current {
    min-height: 58px;
    margin: 0;
    padding: 10px 12px;
    border-color: #e1e7ef;
    background: #fff;
    box-shadow: none;
}
.settings-options-row-v406 .currency-current span {
    font-size: 11px;
}
.settings-options-row-v406 .currency-current strong {
    font-size: 15px;
    line-height: 1.3;
}
.settings-options-row-v406 .currency-results {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 6px);
    margin: 0;
}
.settings-options-row-v406 .currency-search-box {
    position: relative;
}
@media (max-width: 1180px) {
    .settings-options-row-v406 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 620px) {
    .settings-options-row-v406 {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }
    .settings-options-row-v406 .settings-option-card-v406 {
        padding: 14px;
    }
    .settings-options-row-v406 .settings-option-timezone-v406::after {
        display: none;
    }
}

/* v407: increase spacing in the personal hotel link block */
.hotel-custom-url-v382 {
    display: grid;
    gap: 12px;
}
.hotel-custom-url-v382 > label {
    display: block;
    margin: 0;
    line-height: 1.35;
}
.hotel-custom-url-v382 .hotel-custom-url-field-v382 {
    margin: 0;
}
.hotel-custom-url-preview-v383 {
    margin-top: 2px;
    column-gap: 10px;
    row-gap: 10px;
    line-height: 1.45;
}
.hotel-custom-url-preview-v383 .btn {
    margin-left: 4px;
}
@media (max-width: 640px) {
    .hotel-custom-url-v382 {
        gap: 10px;
    }
    .hotel-custom-url-preview-v383 {
        margin-top: 4px;
        row-gap: 10px;
    }
}


/* v408: revenue breakdown cards */
.stats-card-accommodation-v408 {
    border-color: #bfdbfe;
    background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
}
.stats-card-extra-v408 {
    border-color: #d8d6fe;
    background: linear-gradient(180deg, #ffffff 0%, #faf9ff 100%);
}


/* v409: clear paid/unpaid breakdown for financial statistics */
.stats-financial-card-v409 {
    min-height: 170px;
    align-content: start;
}
.stats-card-total-v409 {
    border-color: #bbf7d0;
    background: linear-gradient(180deg, #ffffff 0%, #f6fff9 100%);
}
.stats-financial-breakdown-v409 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 8px;
}
.stats-financial-item-v409 {
    display: grid;
    gap: 4px;
    min-width: 0;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: rgba(255, 255, 255, .78);
}
.stats-financial-item-v409 small {
    color: var(--muted);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .045em;
    text-transform: uppercase;
}
.stats-financial-item-v409 b {
    color: var(--text);
    font-size: clamp(15px, 1.7vw, 20px);
    line-height: 1.15;
    overflow-wrap: anywhere;
}
.stats-financial-item-v409.is-paid {
    border-color: #bbf7d0;
    background: #f0fdf4;
}
.stats-financial-item-v409.is-paid b {
    color: #166534;
}
.stats-financial-item-v409.is-unpaid {
    border-color: #fed7aa;
    background: #fff7ed;
}
.stats-financial-item-v409.is-unpaid b {
    color: #9a3412;
}
@media (max-width: 420px) {
    .stats-financial-breakdown-v409 {
        grid-template-columns: 1fr;
    }
    .stats-financial-card-v409 {
        min-height: 0;
    }
}


/* v410: operational statistics cards match the financial card layout */
.stats-operational-card-v410 {
    min-height: 170px;
    align-content: start;
}
.stats-card-stays-v410 {
    border-color: #bfdbfe;
    background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
}
.stats-card-occupancy-v410 {
    border-color: #bae6fd;
    background: linear-gradient(180deg, #ffffff 0%, #f4fcff 100%);
}
.stats-card-arrivals-v410 {
    border-color: #fde68a;
    background: linear-gradient(180deg, #ffffff 0%, #fffdf5 100%);
}
.stats-card-places-v410 {
    border-color: #ddd6fe;
    background: linear-gradient(180deg, #ffffff 0%, #faf9ff 100%);
}
.stats-operational-breakdown-v410 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 8px;
}
.stats-operational-breakdown-v410.single-item-v410 {
    grid-template-columns: minmax(0, 1fr);
}
.stats-operational-item-v410 {
    display: grid;
    gap: 4px;
    min-width: 0;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: rgba(255, 255, 255, .82);
}
.stats-operational-item-v410 small {
    color: var(--muted);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .045em;
    text-transform: uppercase;
}
.stats-operational-item-v410 b {
    color: var(--text);
    font-size: clamp(15px, 1.7vw, 20px);
    line-height: 1.15;
    overflow-wrap: anywhere;
}
.stats-operational-item-v410.is-cancelled {
    border-color: #fecaca;
    background: #fff7f7;
}
.stats-operational-item-v410.is-cancelled b {
    color: #b91c1c;
}
.stats-operational-item-v410.is-place-nights,
.stats-operational-item-v410.is-pet-nights {
    border-color: #bae6fd;
    background: #f0f9ff;
}
.stats-operational-item-v410.is-place-nights b,
.stats-operational-item-v410.is-pet-nights b {
    color: #075985;
}
.stats-operational-item-v410.is-departures {
    border-color: #fde68a;
    background: #fffbeb;
}
.stats-operational-item-v410.is-departures b {
    color: #92400e;
}
.stats-operational-item-v410.is-capacity {
    border-color: #ddd6fe;
    background: #f5f3ff;
}
.stats-operational-item-v410.is-capacity b {
    color: #5b21b6;
}
@media (max-width: 420px) {
    .stats-operational-breakdown-v410 {
        grid-template-columns: 1fr;
    }
    .stats-operational-card-v410 {
        min-height: 0;
    }
}

/* v412: combine booking totals, cancellations, arrivals and departures in one card */
.stats-bookings-card-v412 {
    gap: 5px;
}
.stats-booking-counts-v412 {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-width: 0;
}
.stats-booking-count-v412 {
    display: grid;
    gap: 3px;
    min-width: 0;
}
.stats-booking-count-v412 strong {
    font-size: clamp(25px, 3vw, 38px);
    line-height: 1;
    letter-spacing: -.04em;
}
.stats-booking-count-v412 small {
    color: var(--muted);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .045em;
    text-transform: uppercase;
}
.stats-booking-count-v412.is-cancelled-v412 strong,
.stats-booking-count-v412.is-cancelled-v412 small {
    color: #b91c1c;
}
.stats-booking-slash-v412 {
    color: #94a3b8 !important;
    font-size: clamp(21px, 2.5vw, 32px) !important;
    font-weight: 650 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    margin-top: 1px;
}
.stats-booking-events-v412 {
    margin-top: 7px;
}
.stats-operational-item-v410.is-arrivals-v412 {
    border-color: #bbf7d0;
    background: #f0fdf4;
}
.stats-operational-item-v410.is-arrivals-v412 b {
    color: #166534;
}
@media (max-width: 420px) {
    .stats-booking-events-v412 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


/* v414: compact ranking tables so both panels fit without horizontal scrolling */
.stats-ranking-panel-v414 {
    min-width: 0;
}
.stats-ranking-panel-v414 > h2 {
    margin: 0;
    padding: 14px 12px 10px;
    line-height: 1.2;
}
.stats-ranking-table-v414 {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
    font-size: 13px;
}
.stats-ranking-table-v414 th,
.stats-ranking-table-v414 td {
    padding: 10px 8px;
    line-height: 1.25;
    overflow-wrap: anywhere;
}
.stats-ranking-table-v414 th {
    font-size: 10px;
    letter-spacing: .045em;
}
.stats-ranking-table-v414 th:first-child,
.stats-ranking-table-v414 td:first-child {
    padding-left: 12px;
}
.stats-ranking-table-v414 th:last-child,
.stats-ranking-table-v414 td:last-child {
    padding-right: 12px;
}
.stats-ranking-table-v414 th:nth-child(n + 2),
.stats-ranking-table-v414 td:nth-child(n + 2) {
    white-space: nowrap;
}
.stats-ranking-table-v414 th:nth-child(2),
.stats-ranking-table-v414 td:nth-child(2) {
    padding-left: 6px;
}
.stats-ranking-clients-v414 .stats-col-client-v414 { width: 40%; }
.stats-ranking-clients-v414 .stats-col-nights-v414 { width: 14%; }
.stats-ranking-clients-v414 .stats-col-revenue-v414 { width: 24%; }
.stats-ranking-clients-v414 .stats-col-last-v414 { width: 22%; }
.stats-ranking-pets-v414 .stats-col-pet-v414 { width: 22%; }
.stats-ranking-pets-v414 .stats-col-owner-v414 { width: 23%; }
.stats-ranking-pets-v414 .stats-col-nights-v414 { width: 11%; }
.stats-ranking-pets-v414 .stats-col-revenue-v414 { width: 22%; }
.stats-ranking-pets-v414 .stats-col-last-v414 { width: 22%; }
@media (max-width: 640px) {
    .stats-ranking-clients-v414 {
        min-width: 480px;
    }
    .stats-ranking-pets-v414 {
        min-width: 560px;
    }
}


/* v415: compact and align the occupancy-by-place table */
.stats-place-load-panel-v415 {
    min-width: 0;
}
.stats-place-load-panel-v415 > h2 {
    margin: 0;
    padding: 14px 18px 10px;
    line-height: 1.2;
}
.stats-place-load-table-v415 {
    width: 100%;
    max-width: 1040px;
    min-width: 0;
    table-layout: fixed;
}
.stats-place-load-table-v415 th,
.stats-place-load-table-v415 td {
    padding: 10px 12px;
    line-height: 1.25;
}
.stats-place-load-table-v415 th:first-child,
.stats-place-load-table-v415 td:first-child {
    padding-left: 18px;
}
.stats-place-load-table-v415 th:last-child,
.stats-place-load-table-v415 td:last-child {
    padding-right: 18px;
}
.stats-place-load-col-place-v415 { width: 36%; }
.stats-place-load-col-nights-v415 { width: 24%; }
.stats-place-load-col-load-v415 { width: 40%; }
@media (max-width: 640px) {
    .stats-place-load-table-v415 {
        min-width: 560px;
    }
}

/* v416: manager client profile rebuilt as a compact owner, pets and booking workspace */
.owner-profile-topbar-v416 {
    display: none;
}
.owner-profile-page-v416 {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 22px 20px 42px;
    box-sizing: border-box;
    display: grid;
    gap: 16px;
}
.owner-profile-page-v416 svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
    flex: 0 0 auto;
}
.owner-profile-back-v416 {
    width: fit-content;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #405675;
    font-weight: 800;
    text-decoration: none;
    padding: 4px 2px;
}
.owner-profile-back-v416:hover,
.owner-profile-back-v416:focus-visible {
    color: var(--primary);
}
.owner-profile-owner-card-v416,
.owner-profile-section-v416 {
    background: rgba(255, 255, 255, .98);
    border: 1px solid #dce5f0;
    border-radius: 22px;
    box-shadow: 0 10px 28px rgba(35, 55, 87, .065);
}
.owner-profile-owner-card-v416 {
    padding: 24px;
    display: grid;
    gap: 18px;
}
.owner-profile-owner-head-v416,
.owner-profile-owner-copy-v416 {
    min-width: 0;
}
.owner-profile-title-line-v416 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}
.owner-profile-title-line-v416 h1 {
    margin: 0;
    color: #0c203d;
    font-size: clamp(29px, 4vw, 40px);
    line-height: 1.08;
    letter-spacing: -.025em;
}
.owner-profile-account-v416 {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
    padding: 8px 12px;
    border-radius: 11px;
    font-size: 13px;
    font-weight: 850;
    border: 1px solid;
}
.owner-profile-account-v416.is-active {
    color: #087a49;
    border-color: #a9ebcc;
    background: #ecfff5;
}
.owner-profile-account-v416.is-guest {
    color: #6a7280;
    border-color: #d8dee8;
    background: #f7f9fc;
}
.owner-profile-contact-list-v416 {
    margin-top: 14px;
    display: grid;
    gap: 9px;
    color: #526985;
}
.owner-profile-contact-list-v416 > a,
.owner-profile-contact-list-v416 > div {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-width: 0;
    color: inherit;
    text-decoration: none;
    font-size: 16px;
    line-height: 1.38;
}
.owner-profile-contact-list-v416 > a:hover {
    color: var(--primary);
}
.owner-profile-contact-list-v416 span {
    min-width: 0;
    overflow-wrap: anywhere;
}
.owner-profile-empty-inline-v416 {
    margin: 0;
    color: var(--muted);
}
.owner-profile-note-v416 {
    padding: 13px 15px;
    border-radius: 14px;
    background: #f7f9fc;
    border: 1px solid #e4eaf2;
}
.owner-profile-note-v416 strong {
    display: block;
    color: #66758a;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .08em;
}
.owner-profile-note-v416 p {
    margin: 5px 0 0;
    color: #334a68;
    line-height: 1.5;
}
.owner-profile-owner-actions-v416 {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}
.owner-profile-owner-actions-v416 form {
    margin: 0;
}
.owner-profile-btn-v416 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding-inline: 15px;
}
.owner-profile-btn-v416 svg {
    width: 18px;
    height: 18px;
}
.owner-profile-access-v416 {
    border-top: 1px solid #e5ebf3;
    padding-top: 17px;
    display: grid;
    grid-template-columns: minmax(180px, .72fr) minmax(320px, 1.28fr);
    align-items: end;
    gap: 16px;
}
.owner-profile-access-v416 > div:first-child {
    display: grid;
    gap: 4px;
}
.owner-profile-access-v416 strong {
    color: #19304f;
}
.owner-profile-access-v416 small {
    color: var(--muted);
    line-height: 1.4;
}
.owner-profile-access-field-v416 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 9px;
}
.owner-profile-access-field-v416 input {
    min-height: 44px;
    background: #f8fafc;
    color: #607089;
    text-overflow: ellipsis;
}
.owner-profile-copy-v416 {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 44px;
}
.owner-profile-copy-v416 svg {
    width: 18px;
    height: 18px;
}
.owner-profile-section-v416 {
    padding: 20px;
}
.owner-profile-section-head-v416 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
}
.owner-profile-section-head-v416 h2 {
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #102642;
    font-size: 23px;
    line-height: 1.2;
}
.owner-profile-section-head-v416 h2 svg {
    width: 23px;
    height: 23px;
}
.owner-profile-add-v416 {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #1266e8;
    font-weight: 850;
    text-decoration: none;
    white-space: nowrap;
}
.owner-profile-add-v416:hover,
.owner-profile-add-v416:focus-visible {
    color: #0b4fb7;
}
.owner-profile-add-v416 svg {
    width: 21px;
    height: 21px;
}
.owner-profile-section-count-v416 {
    color: #66758a;
    font-size: 13px;
    font-weight: 800;
    padding: 6px 10px;
    border-radius: 999px;
    background: #f2f5f9;
}
.owner-profile-pet-list-v416,
.owner-profile-booking-list-v416,
.owner-profile-more-list-v416 {
    display: grid;
    gap: 9px;
}
.owner-profile-pet-row-v416,
.owner-profile-booking-row-v416 {
    border: 1px solid #dce5f0;
    border-radius: 16px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 3px 10px rgba(35, 55, 87, .035);
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.owner-profile-pet-row-v416:hover,
.owner-profile-pet-row-v416:focus-visible,
.owner-profile-booking-row-v416:hover,
.owner-profile-booking-row-v416:focus-visible {
    border-color: #9fc3f6;
    box-shadow: 0 8px 18px rgba(32, 97, 190, .1);
    transform: translateY(-1px);
    outline: none;
}
.owner-profile-pet-row-v416 {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) 24px;
    align-items: center;
    gap: 14px;
    min-height: 88px;
    padding: 9px 14px 9px 10px;
}
.owner-profile-pet-photo-v416 {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: linear-gradient(145deg, #f6f8fb, #e8eef7);
    border: 1px solid #d9e3ef;
    font-size: 34px;
}
.owner-profile-pet-photo-v416 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.owner-profile-pet-copy-v416 {
    display: grid;
    gap: 2px;
    min-width: 0;
}
.owner-profile-pet-copy-v416 strong {
    color: #102642;
    font-size: 18px;
    line-height: 1.2;
}
.owner-profile-pet-copy-v416 small {
    color: #60738d;
    font-size: 14px;
    line-height: 1.34;
    overflow-wrap: anywhere;
}
.owner-profile-chevron-v416 {
    color: #3c5978;
    display: grid;
    place-items: center;
}
.owner-profile-chevron-v416 svg {
    width: 22px;
    height: 22px;
}
.owner-profile-booking-row-v416 {
    display: grid;
    grid-template-columns: 44px minmax(180px, 1fr) minmax(160px, .8fr);
    align-items: center;
    gap: 14px;
    min-height: 78px;
    padding: 11px 14px;
}
.owner-profile-booking-icon-v416 {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    color: #1769eb;
    background: #eef5ff;
}
.owner-profile-booking-icon-v416 svg {
    width: 23px;
    height: 23px;
}
.owner-profile-booking-dates-v416,
.owner-profile-booking-pets-v416 {
    display: grid;
    gap: 4px;
    min-width: 0;
}
.owner-profile-booking-dates-v416 strong,
.owner-profile-booking-pets-v416 strong {
    color: #142944;
    font-size: 15px;
    overflow-wrap: anywhere;
}
.owner-profile-booking-dates-v416 small {
    color: #63758d;
    line-height: 1.35;
}
.owner-profile-booking-pets-v416 {
    justify-items: end;
    text-align: right;
}
.owner-profile-booking-pets-v416 .status-pill {
    padding: 4px 8px;
    font-size: 11px;
}
.owner-profile-empty-v416 {
    padding: 24px;
    border: 1px dashed #ccd8e7;
    border-radius: 16px;
    color: var(--muted);
    text-align: center;
    background: #fafcff;
}
.owner-profile-more-v416 {
    display: grid;
    gap: 9px;
}
.owner-profile-more-v416 > summary {
    list-style: none;
    cursor: pointer;
    width: fit-content;
    margin: 3px auto 0;
    padding: 8px 12px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #1266e8;
    font-weight: 850;
    border-radius: 10px;
}
.owner-profile-more-v416 > summary::-webkit-details-marker {
    display: none;
}
.owner-profile-more-v416 > summary:hover,
.owner-profile-more-v416 > summary:focus-visible {
    background: #eef5ff;
    outline: none;
}
.owner-profile-more-v416 .show-less-label-v416 {
    display: none;
}
.owner-profile-more-v416[open] .show-more-label-v416 {
    display: none;
}
.owner-profile-more-v416[open] .show-less-label-v416 {
    display: inline;
}
.owner-profile-more-arrow-v416 {
    display: inline-block;
    font-size: 20px;
    line-height: 1;
    transition: transform .16s ease;
}
.owner-profile-more-v416[open] .owner-profile-more-arrow-v416 {
    transform: rotate(180deg);
}
.owner-profile-more-list-v416 {
    margin-top: 9px;
}

@media (max-width: 760px) {
    .owner-profile-page-v416 {
        padding: 14px 12px 30px;
        gap: 12px;
    }
    .owner-profile-owner-card-v416,
    .owner-profile-section-v416 {
        border-radius: 18px;
    }
    .owner-profile-owner-card-v416 {
        padding: 17px;
        gap: 15px;
    }
    .owner-profile-title-line-v416 {
        display: grid;
        gap: 10px;
    }
    .owner-profile-title-line-v416 h1 {
        font-size: 30px;
    }
    .owner-profile-account-v416 {
        width: fit-content;
    }
    .owner-profile-contact-list-v416 > a,
    .owner-profile-contact-list-v416 > div {
        font-size: 15px;
    }
    .owner-profile-owner-actions-v416 {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .owner-profile-owner-actions-v416 form,
    .owner-profile-owner-actions-v416 .owner-profile-btn-v416 {
        width: 100%;
    }
    .owner-profile-access-v416 {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .owner-profile-access-field-v416 {
        grid-template-columns: 1fr auto;
    }
    .owner-profile-copy-v416 span {
        display: none;
    }
    .owner-profile-copy-v416 {
        width: 44px;
        padding: 0;
        justify-content: center;
    }
    .owner-profile-section-v416 {
        padding: 15px;
    }
    .owner-profile-section-head-v416 h2 {
        font-size: 20px;
    }
    .owner-profile-pet-row-v416 {
        grid-template-columns: 60px minmax(0, 1fr) 20px;
        gap: 11px;
        min-height: 76px;
        padding: 8px 11px 8px 8px;
    }
    .owner-profile-pet-photo-v416 {
        width: 58px;
        height: 58px;
        font-size: 29px;
    }
    .owner-profile-pet-copy-v416 strong {
        font-size: 17px;
    }
    .owner-profile-pet-copy-v416 small {
        font-size: 13px;
    }
    .owner-profile-booking-row-v416 {
        grid-template-columns: 40px minmax(0, 1fr);
        gap: 10px;
        min-height: 74px;
        padding: 10px;
    }
    .owner-profile-booking-icon-v416 {
        width: 40px;
        height: 40px;
    }
    .owner-profile-booking-pets-v416 {
        grid-column: 2;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        justify-items: start;
        text-align: left;
        gap: 8px;
    }
    .owner-profile-booking-pets-v416 .status-pill {
        justify-self: end;
    }
}

@media (max-width: 430px) {
    .owner-profile-page-v416 {
        padding-inline: 9px;
    }
    .owner-profile-owner-card-v416 {
        padding: 15px;
    }
    .owner-profile-title-line-v416 h1 {
        font-size: 27px;
    }
    .owner-profile-owner-actions-v416 {
        grid-template-columns: 1fr;
    }
    .owner-profile-section-head-v416 {
        align-items: flex-start;
    }
    .owner-profile-section-count-v416 {
        display: none;
    }
    .owner-profile-add-v416 span {
        font-size: 13px;
    }
    .owner-profile-booking-pets-v416 {
        display: grid;
        grid-template-columns: 1fr;
    }
    .owner-profile-booking-pets-v416 .status-pill {
        justify-self: start;
    }
}


/* v419: replace the cramped native pet-photo file field with a clear action button */
.pet-photo-label-v419 {
    display: block;
    font-weight: 800;
}
.pet-photo-picker-v419 {
    display: flex;
    align-items: center;
    gap: 10px;
}
.pet-photo-input-v419 {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
    opacity: 0 !important;
}
.pet-photo-pick-button-v419 {
    width: fit-content;
    min-height: 44px;
    justify-content: center;
    cursor: pointer;
}
.pet-photo-picker-v419:focus-within .pet-photo-pick-button-v419 {
    outline: 3px solid rgba(37, 99, 235, .22);
    outline-offset: 2px;
}
@media (max-width: 560px) {
    .pet-photo-picker-v419,
    .pet-photo-pick-button-v419 {
        width: 100%;
    }
}

/* v436: square avatar cropper for pet photos */
body.pet-photo-crop-open-v436 {
    overflow: hidden;
}
.pet-photo-crop-overlay-v436 {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(15, 23, 42, .62);
    backdrop-filter: blur(3px);
}
.pet-photo-crop-dialog-v436 {
    width: min(100%, 520px);
    display: grid;
    gap: 14px;
    padding: 18px;
    border-radius: 24px;
    background: #ffffff;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .28);
}
.pet-photo-crop-header-v436 h3 {
    margin: 0;
    font-size: 22px;
}
.pet-photo-crop-help-v436 {
    margin: 0;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.5;
}
.pet-photo-crop-frame-v436 {
    position: relative;
    width: min(100%, 360px);
    aspect-ratio: 1 / 1;
    margin: 0 auto;
    overflow: hidden;
    border-radius: 24px;
    background: linear-gradient(135deg, #eef2f7 25%, #f8fafc 25%, #f8fafc 50%, #eef2f7 50%, #eef2f7 75%, #f8fafc 75%, #f8fafc 100%);
    background-size: 22px 22px;
    box-shadow: inset 0 0 0 1px #dbe3ee;
}
.pet-photo-crop-surface-v436 {
    position: absolute;
    inset: 0;
    overflow: hidden;
    cursor: grab;
    touch-action: none;
}
.pet-photo-crop-surface-v436.is-dragging-v436 {
    cursor: grabbing;
}
.pet-photo-crop-surface-v436 img {
    position: absolute;
    max-width: none;
    user-select: none;
    -webkit-user-drag: none;
    transform: translateZ(0);
}
.pet-photo-crop-grid-v436 {
    position: absolute;
    inset: 0;
    pointer-events: none;
    border: 2px solid rgba(255, 255, 255, .92);
    border-radius: 24px;
    box-shadow: inset 0 0 0 9999px rgba(15, 23, 42, .15);
}
.pet-photo-crop-grid-v436::before,
.pet-photo-crop-grid-v436::after {
    content: '';
    position: absolute;
    inset: 0;
    background-repeat: no-repeat;
}
.pet-photo-crop-grid-v436::before {
    background-image:
        linear-gradient(to right, transparent 33.333%, rgba(255,255,255,.74) 33.333%, rgba(255,255,255,.74) calc(33.333% + 1px), transparent calc(33.333% + 1px), transparent 66.666%, rgba(255,255,255,.74) 66.666%, rgba(255,255,255,.74) calc(66.666% + 1px), transparent calc(66.666% + 1px)),
        linear-gradient(to bottom, transparent 33.333%, rgba(255,255,255,.74) 33.333%, rgba(255,255,255,.74) calc(33.333% + 1px), transparent calc(33.333% + 1px), transparent 66.666%, rgba(255,255,255,.74) 66.666%, rgba(255,255,255,.74) calc(66.666% + 1px), transparent calc(66.666% + 1px));
}
.pet-photo-crop-zoom-v436 {
    display: grid;
    gap: 8px;
    color: var(--text);
    font-size: 14px;
    font-weight: 750;
}
.pet-photo-crop-zoom-v436 input {
    width: 100%;
    min-height: 0;
}
.pet-photo-crop-actions-v436 {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
}
.pet-photo-crop-actions-v436 .btn {
    width: fit-content;
}
@media (max-width: 560px) {
    .pet-photo-crop-overlay-v436 {
        padding: 12px;
    }
    .pet-photo-crop-dialog-v436 {
        padding: 15px;
        gap: 12px;
        border-radius: 20px;
    }
    .pet-photo-crop-header-v436 h3 {
        font-size: 20px;
    }
    .pet-photo-crop-frame-v436 {
        width: min(100%, 82vw);
        border-radius: 20px;
    }
    .pet-photo-crop-grid-v436 {
        border-radius: 20px;
    }
    .pet-photo-crop-actions-v436 {
        display: grid;
        grid-template-columns: 1fr;
    }
    .pet-photo-crop-actions-v436 .btn {
        width: 100%;
        justify-content: center;
    }
}


/* v439: clearer guest profile hierarchy */
.client-profile-page-guest-v439 {
    display: grid;
    gap: 18px;
}
.client-profile-page-guest-v439 .client-profile-menu,
.client-profile-page-guest-v439 .client-profile-details-panel,
.client-profile-page-guest-v439 .client-profile-section-panel {
    margin-top: 0;
}
.client-guest-overview-v439 {
    display: grid;
    gap: 14px;
}
.client-guest-hotel-v439 {
    display: grid;
    grid-template-columns: minmax(240px, .85fr) minmax(0, 1.65fr);
    gap: 22px;
    align-items: center;
    padding: 18px;
}
.client-guest-hotel-brand-v439 {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}
.client-guest-hotel-brand-v439 img,
.client-guest-hotel-placeholder-v439 {
    flex: 0 0 76px;
    width: 76px;
    height: 76px;
    border-radius: 18px;
    border: 1px solid #dbe3ee;
    object-fit: cover;
    background: #fff7e5;
}
.client-guest-hotel-placeholder-v439 {
    display: grid;
    place-items: center;
    font-size: 34px;
}
.client-guest-eyebrow-v439 {
    display: block;
    margin-bottom: 4px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.client-guest-hotel-brand-v439 h2,
.client-guest-identity-heading-v439 h1 {
    margin: 0;
    overflow-wrap: anywhere;
}
.client-guest-hotel-brand-v439 h2 {
    font-size: clamp(22px, 2.2vw, 30px);
}
.client-guest-hotel-contacts-v439 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.client-guest-hotel-contacts-v439 > div {
    min-width: 0;
    display: grid;
    gap: 4px;
    padding: 11px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #f8fafc;
}
.client-guest-hotel-contacts-v439 span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.client-guest-hotel-contacts-v439 strong,
.client-guest-hotel-contacts-v439 a {
    min-width: 0;
    color: var(--text);
    font-size: 14px;
    text-decoration: none;
    overflow-wrap: anywhere;
}
.client-guest-hotel-contacts-v439 a:hover {
    text-decoration: underline;
}
.client-guest-identity-v439 {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
    padding: 20px;
    border-color: #dbe7f5;
    background: linear-gradient(135deg, #ffffff 0%, #f7faff 100%);
}
.client-guest-avatar-v439 {
    width: 74px;
    height: 74px;
    display: grid;
    place-items: center;
    border-radius: 22px;
    background: #111827;
    color: #fff;
    font-size: 30px;
    font-weight: 900;
}
.client-guest-identity-copy-v439 {
    min-width: 0;
    display: grid;
    gap: 12px;
}
.client-guest-identity-heading-v439 {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
}
.client-guest-identity-heading-v439 h1 {
    font-size: clamp(25px, 3vw, 36px);
}
.client-guest-badge-v439 {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 6px 10px;
    border: 1px solid #fed7aa;
    border-radius: 999px;
    background: #fff7ed;
    color: #9a3412;
    font-size: 12px;
    font-weight: 850;
}
.client-guest-identity-copy-v439 > p {
    max-width: 760px;
    margin: 0;
    color: #475569;
    line-height: 1.55;
}
.client-guest-account-prompt-v439 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 13px 14px;
    border: 1px solid #dbeafe;
    border-radius: 16px;
    background: #eff6ff;
}
.client-guest-account-prompt-v439 > div {
    min-width: 0;
    display: grid;
    gap: 3px;
}
.client-guest-account-prompt-v439 strong {
    font-size: 14px;
}
.client-guest-account-prompt-v439 span {
    color: #475569;
    font-size: 13px;
    line-height: 1.4;
}
.client-guest-account-prompt-v439 .btn {
    flex: 0 0 auto;
}
.client-profile-page-guest-v439 .client-profile-menu {
    position: sticky;
    top: 8px;
    z-index: 20;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
}
.client-profile-page-guest-v439 .client-profile-details-panel > h2,
.client-profile-page-guest-v439 .client-profile-section-panel > h2,
.client-profile-page-guest-v439 .client-bookings-head-v311 > h2 {
    margin-top: 0;
}
.client-guest-contact-card-v439 {
    margin-top: 10px;
}
.client-guest-contact-card-v439[open] summary {
    background: #f8fafc;
}
@media (max-width: 900px) {
    .client-guest-hotel-v439 {
        grid-template-columns: 1fr;
    }
    .client-guest-hotel-contacts-v439 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 700px) {
    .client-profile-page-guest-v439 {
        gap: 12px;
    }
    .client-guest-hotel-v439,
    .client-guest-identity-v439 {
        padding: 15px;
    }
    .client-guest-hotel-contacts-v439 {
        grid-template-columns: 1fr;
    }
    .client-guest-identity-v439 {
        grid-template-columns: 58px minmax(0, 1fr);
        gap: 12px;
    }
    .client-guest-avatar-v439 {
        width: 58px;
        height: 58px;
        border-radius: 18px;
        font-size: 24px;
    }
    .client-guest-identity-heading-v439 {
        display: grid;
        gap: 8px;
    }
    .client-guest-badge-v439 {
        justify-self: start;
    }
    .client-guest-account-prompt-v439 {
        display: grid;
    }
    .client-guest-account-prompt-v439 .btn {
        width: 100%;
        justify-content: center;
    }
    .client-profile-page-guest-v439 .client-profile-menu {
        position: static;
    }
}

/* v420: six-language switchers */
.language-switcher,
.auth-lang-switcher {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
}
.language-switcher a,
.auth-lang-switcher a {
    min-width: 0;
}
.customer-lang-switcher {
    display: grid;
    grid-template-columns: repeat(3, minmax(34px, 1fr));
    gap: 4px;
    width: min(132px, 34vw);
}
.customer-lang-switcher a {
    min-width: 0;
    min-height: 30px;
    padding: 5px 7px;
}
@media (max-width: 420px) {
    .customer-lang-switcher {
        width: 112px;
    }
    .customer-lang-switcher a {
        min-width: 0;
        padding-left: 5px;
        padding-right: 5px;
        font-size: 11px;
    }
}


/* v421: compact language dropdowns instead of one button per language */
.language-switcher.language-select-v421,
.auth-lang-switcher.language-select-v421,
.customer-lang-switcher.language-select-v421 {
    display: block;
    grid-template-columns: none;
    gap: 0;
}
.language-select-control-v421 {
    width: 100%;
    min-width: 0;
    height: 42px;
    padding: 0 38px 0 12px;
    border: 1px solid var(--line-strong);
    border-radius: 11px;
    background-color: #fff;
    color: var(--text);
    font: inherit;
    font-size: 13px;
    font-weight: 850;
    line-height: 1;
    cursor: pointer;
}
.language-select-control-v421:focus {
    outline: 3px solid rgba(37, 99, 235, .18);
    outline-offset: 2px;
    border-color: #93c5fd;
}
.language-switcher.language-select-v421 {
    margin-bottom: 10px;
}
.language-switcher .language-select-control-v421 {
    color: #fff;
    border-color: rgba(255,255,255,.18);
    background-color: rgba(255,255,255,.09);
}
.language-switcher .language-select-control-v421:hover {
    background-color: rgba(255,255,255,.13);
}
.language-switcher .language-select-control-v421 option {
    color: #0f172a;
    background: #fff;
}
.auth-lang-switcher.language-select-v421 {
    margin: -8px 0 14px;
}
.customer-lang-switcher.language-select-v421 {
    width: 150px;
    max-width: 34vw;
    justify-self: end;
}
.customer-lang-switcher .language-select-control-v421 {
    height: 38px;
    border-radius: 999px;
    color: #334155;
    background-color: #fff;
    border-color: #dbe4ef;
    font-size: 12px;
}
@media (max-width: 420px) {
    .customer-lang-switcher.language-select-v421 {
        width: 126px;
        max-width: 38vw;
    }
    .customer-lang-switcher .language-select-control-v421 {
        padding-left: 10px;
        padding-right: 30px;
        font-size: 11px;
    }
}


/* v425: calm terracotta, ivory and sage identity for the public hotel directory */
.booking-directory-body-v425 {
    --directory-clay: #bd582e;
    --directory-clay-dark: #943f20;
    --directory-clay-soft: #f6e4da;
    --directory-clay-pale: #fcf4ef;
    --directory-sage: #6f7f68;
    --directory-sage-dark: #465141;
    --directory-sage-soft: #edf1ea;
    --directory-ink: #2f2a27;
    --directory-muted: #746d67;
    --directory-ivory: #f7f3ed;
    --directory-paper: #fffdfa;
    --directory-line: #e5ddd3;
    --directory-shadow: rgba(59, 48, 41, .08);
    background:
        radial-gradient(circle at 8% 0%, rgba(189, 88, 46, .08), transparent 25rem),
        radial-gradient(circle at 94% 8%, rgba(111, 127, 104, .09), transparent 30rem),
        linear-gradient(180deg, #fbf8f3 0%, #f4f0e9 54%, #f1eee8 100%);
    color: var(--directory-ink);
}
.booking-directory-body-v425 .customer-appbar {
    background: rgba(255, 253, 250, .95);
    border-bottom-color: rgba(229, 221, 211, .95);
    box-shadow: 0 8px 28px rgba(59, 48, 41, .06);
}
.booking-directory-body-v425 .customer-brand-pet {
    color: var(--directory-sage-dark);
}
.booking-directory-body-v425 .customer-brand-booking {
    color: var(--directory-clay);
}
.booking-directory-body-v425 .customer-nav a,
.booking-directory-body-v425 .customer-lang-switcher .language-select-control-v421 {
    color: #504a46;
}
.booking-directory-body-v425 .customer-nav a:hover,
.booking-directory-body-v425 .customer-nav a.active {
    color: var(--directory-clay-dark);
    background: var(--directory-clay-pale);
    border-color: #e8c8b7;
}
.booking-directory-body-v425 .customer-lang-switcher .language-select-control-v421 {
    background: var(--directory-paper);
    border-color: var(--directory-line);
}
.booking-directory-body-v425 .customer-lang-switcher .language-select-control-v421:focus {
    border-color: var(--directory-clay);
    outline-color: rgba(189, 88, 46, .18);
}

.booking-directory-body-v425 .booking-app-v281 .panel {
    border-color: var(--directory-line);
    background: rgba(255, 253, 250, .96);
    box-shadow: 0 10px 30px var(--directory-shadow);
}
.booking-directory-body-v425 .booking-app-v281 .booking-search-hero-v281.panel {
    position: relative;
    overflow: hidden;
    padding: clamp(22px, 3vw, 34px);
    color: var(--directory-ink);
    border: 1px solid #e6d5c8;
    background:
        linear-gradient(120deg, rgba(255, 253, 249, .98) 0%, rgba(249, 239, 231, .98) 58%, rgba(239, 228, 218, .98) 100%);
    box-shadow: 0 20px 52px rgba(74, 54, 42, .10);
}
.booking-directory-body-v425 .booking-app-v281 .booking-search-hero-v281::before,
.booking-directory-body-v425 .booking-app-v281 .booking-search-hero-v281::after {
    content: '';
    position: absolute;
    pointer-events: none;
    border-radius: 999px;
}
.booking-directory-body-v425 .booking-app-v281 .booking-search-hero-v281::before {
    width: 270px;
    height: 270px;
    right: -84px;
    top: -138px;
    background: rgba(189, 88, 46, .14);
}
.booking-directory-body-v425 .booking-app-v281 .booking-search-hero-v281::after {
    width: 220px;
    height: 220px;
    right: 120px;
    bottom: -178px;
    background: rgba(111, 127, 104, .12);
}
.booking-directory-body-v425 .booking-search-hero-copy-v281,
.booking-directory-body-v425 .booking-searchbar-v281 {
    position: relative;
    z-index: 1;
}
.booking-directory-body-v425 .booking-app-v281 .booking-search-hero-v281 .public-hotel-eyebrow,
.booking-directory-body-v425 .booking-results-head-v281 .public-hotel-eyebrow {
    width: fit-content;
    color: var(--directory-clay-dark);
    background: var(--directory-clay-soft);
    border: 1px solid #e7c5b3;
    box-shadow: none;
}
.booking-directory-body-v425 .booking-app-v281 .booking-search-hero-v281 h1 {
    max-width: 820px;
    color: var(--directory-ink);
    text-shadow: none;
}
.booking-directory-body-v425 .booking-searchbar-v281 {
    gap: 8px;
    padding: 8px;
    border: 1px solid rgba(215, 204, 193, .95);
    background: rgba(255, 253, 250, .94);
    box-shadow: 0 16px 38px rgba(61, 49, 41, .13);
}
.booking-directory-body-v425 .booking-search-field-v281 {
    color: var(--directory-ink);
    background: #fff;
    box-shadow: inset 0 0 0 1px #e7dfd6;
}
.booking-directory-body-v425 .booking-search-field-v281 label {
    color: #7a7068;
}
.booking-directory-body-v425 .booking-search-field-v281 input {
    color: var(--directory-ink);
}
.booking-directory-body-v425 .booking-search-field-v281:focus-within {
    box-shadow: inset 0 0 0 2px rgba(189, 88, 46, .42);
}
.booking-directory-body-v425 .booking-search-submit-v281 {
    min-width: 120px;
    color: #fff;
    background: var(--directory-clay);
    border-color: var(--directory-clay);
    box-shadow: 0 10px 24px rgba(148, 63, 32, .22);
}
.booking-directory-body-v425 .booking-search-submit-v281:hover {
    background: var(--directory-clay-dark);
    border-color: var(--directory-clay-dark);
}
.booking-directory-body-v425 .booking-search-reset-v281 {
    color: var(--directory-sage-dark);
    background: var(--directory-sage-soft);
    border-color: #d4ddd0;
}
.booking-directory-body-v425 .booking-search-reset-v281:hover {
    color: #fff;
    background: var(--directory-sage-dark);
    border-color: var(--directory-sage-dark);
}
.booking-directory-body-v425 .booking-region-suggestions {
    border-color: var(--directory-line);
    background: var(--directory-paper);
    box-shadow: 0 20px 48px rgba(59, 48, 41, .14);
}
.booking-directory-body-v425 .booking-region-status.loading {
    color: var(--directory-clay-dark);
}

.booking-directory-body-v425 .btn.primary {
    color: #fff;
    background: var(--directory-clay);
    border-color: var(--directory-clay);
}
.booking-directory-body-v425 .btn.primary:hover {
    background: var(--directory-clay-dark);
    border-color: var(--directory-clay-dark);
}
.booking-directory-body-v425 .btn.ghost {
    color: var(--directory-sage-dark);
    background: var(--directory-paper);
    border-color: var(--directory-line);
}
.booking-directory-body-v425 .btn.ghost:hover {
    color: var(--directory-clay-dark);
    background: var(--directory-clay-pale);
    border-color: #e6c4b2;
}
.booking-directory-body-v425 .booking-map-card-title-v281,
.booking-directory-body-v425 .booking-filter-head-v281 strong,
.booking-directory-body-v425 .booking-app-section-head h2 {
    color: var(--directory-ink);
}
.booking-directory-body-v425 .booking-filter-head-v281 {
    border-bottom-color: var(--directory-line);
}
.booking-directory-body-v425 .booking-filter-head-v281 span,
.booking-directory-body-v425 .booking-filters-v281 label,
.booking-directory-body-v425 .booking-app-section-head p,
.booking-directory-body-v425 .booking-hotel-description,
.booking-directory-body-v425 .booking-hotel-titlebox p {
    color: var(--directory-muted);
}
.booking-directory-body-v425 .booking-filters-v281 select,
.booking-directory-body-v425 .booking-filters-v281 input {
    border-color: var(--directory-line);
    background: #fff;
}
.booking-directory-body-v425 .booking-filters-v281 select:focus,
.booking-directory-body-v425 .booking-filters-v281 input:focus {
    border-color: var(--directory-clay);
    outline-color: rgba(189, 88, 46, .16);
}

.booking-directory-body-v425 .booking-map-preview-v281 {
    border-color: #d9dfd5;
    background: linear-gradient(145deg, #f2f4ef, #e8eee7);
}
.booking-directory-body-v425 .booking-map-preview-button-v281 {
    color: #fff;
    background: var(--directory-sage-dark);
    border-color: var(--directory-sage-dark);
    box-shadow: 0 12px 28px rgba(70, 81, 65, .20);
}
.booking-directory-body-v425 .booking-map-preview-button-v281:hover {
    background: #343f31;
}
.booking-directory-body-v425 .booking-map-controls button {
    color: var(--directory-sage-dark);
    border-color: #d2dbcf;
    background: rgba(255, 253, 250, .96);
}
.booking-directory-body-v425 .booking-simple-map-price-marker {
    border-color: rgba(189, 88, 46, .45);
    background: rgba(255, 253, 250, .98);
}
.booking-directory-body-v425 .booking-simple-map-price-marker span,
.booking-directory-body-v425 .booking-simple-map-cluster {
    background: var(--directory-clay);
}
.booking-directory-body-v425 .booking-simple-map-cluster {
    box-shadow: 0 10px 22px rgba(189, 88, 46, .25);
}
.booking-directory-body-v425 .booking-simple-map-price-marker.active,
.booking-directory-body-v425 .booking-simple-map-price-marker:hover {
    border-color: rgba(70, 81, 65, .58);
    background: #f5f7f3;
    box-shadow: 0 10px 24px rgba(70, 81, 65, .18);
}
.booking-directory-body-v425 .booking-simple-map-price-marker.active span,
.booking-directory-body-v425 .booking-simple-map-price-marker:hover span,
.booking-directory-body-v425 .booking-simple-map-cluster:hover,
.booking-directory-body-v425 .booking-simple-map-cluster.active {
    background: var(--directory-sage-dark);
}
.booking-directory-body-v425 .booking-simple-map-cluster:hover,
.booking-directory-body-v425 .booking-simple-map-cluster.active {
    box-shadow: 0 12px 26px rgba(70, 81, 65, .25), 0 0 0 4px rgba(70, 81, 65, .10);
}
.booking-directory-body-v425 .booking-map-popup a {
    background: var(--directory-clay);
}
.booking-directory-body-v425 .booking-map-popup a + a {
    color: var(--directory-sage-dark);
    background: var(--directory-sage-soft);
    border-color: #d2dbcf;
}

.booking-directory-body-v425 .booking-hotel-card-v281 {
    border-color: var(--directory-line);
    background: var(--directory-paper);
}
.booking-directory-body-v425 .booking-hotel-card-v281:hover {
    border-color: #dcb8a4;
    box-shadow: 0 18px 44px rgba(59, 48, 41, .11);
}
.booking-directory-body-v425 .booking-hotel-photo-v281 {
    background: linear-gradient(145deg, var(--directory-clay-pale), var(--directory-sage-soft));
}
.booking-directory-body-v425 .booking-hotel-card-v281 .booking-hotel-titlebox h3 a {
    color: var(--directory-ink);
}
.booking-directory-body-v425 .booking-hotel-card-v281 .booking-hotel-titlebox h3 a:hover {
    color: var(--directory-clay-dark);
    text-decoration-color: rgba(148, 63, 32, .38);
}
.booking-directory-body-v425 .booking-hotel-facts div {
    border-color: #e2ddd5;
    background: #f7f4ef;
}
.booking-directory-body-v425 .booking-hotel-facts span {
    color: #80776f;
}
.booking-directory-body-v425 .booking-hotel-facts strong {
    color: var(--directory-ink);
}
.booking-directory-body-v425 .booking-hotel-contacts a,
.booking-directory-body-v425 .booking-hotel-contacts button {
    color: var(--directory-sage-dark);
    border-color: #d4ddd0;
    background: var(--directory-sage-soft);
}
.booking-directory-body-v425 .booking-hotel-contacts a:hover,
.booking-directory-body-v425 .booking-hotel-contacts button:hover {
    color: var(--directory-clay-dark);
    border-color: #e2bdab;
    background: var(--directory-clay-pale);
}
.booking-directory-body-v425 .booking-hotel-pricebox-v281 {
    border-left-color: var(--directory-line);
}
.booking-directory-body-v425 .booking-hotel-pricebox-v281 span {
    color: #80776f;
}
.booking-directory-body-v425 .booking-hotel-pricebox-v281 strong {
    color: var(--directory-clay-dark);
}
.booking-directory-body-v425 .booking-app-stat-card {
    position: relative;
    overflow: hidden;
    background: var(--directory-paper);
}
.booking-directory-body-v425 .booking-app-stat-card::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 3px;
    background: var(--directory-clay);
}
.booking-directory-body-v425 .booking-app-stat-card:nth-child(even)::before {
    background: var(--directory-sage);
}
.booking-directory-body-v425 .booking-app-stat-card span {
    color: #80776f;
}
.booking-directory-body-v425 .booking-app-stat-card strong {
    color: var(--directory-ink);
}
.booking-directory-body-v425 .booking-app-empty {
    color: var(--directory-muted);
    border-color: #e4d6cb;
    background: var(--directory-clay-pale);
}
.booking-directory-body-v425 .booking-app-empty strong {
    color: var(--directory-ink);
}

.booking-directory-body-v425 .booking-map-modal-dialog-v282,
.booking-directory-body-v425 .booking-simple-map-popup,
.booking-directory-body-v425 .public-message-dialog {
    border-color: var(--directory-line);
    background: var(--directory-paper);
}
.booking-directory-body-v425 .booking-map-modal-head-v282 h2,
.booking-directory-body-v425 .booking-map-modal-hotel-v282 h3 a {
    color: var(--directory-ink);
}
.booking-directory-body-v425 .booking-map-modal-hotel-v282 strong {
    color: var(--directory-clay-dark);
}
.booking-directory-body-v425 .booking-map-modal-close-v282,
.booking-directory-body-v425 .booking-map-popup-close {
    color: var(--directory-sage-dark);
    border-color: var(--directory-line);
    background: var(--directory-ivory);
}

@media (max-width: 820px) {
    .booking-directory-body-v425 .customer-nav a {
        background: var(--directory-paper);
        border-color: var(--directory-line);
    }
}
@media (max-width: 620px) {
    .booking-directory-body-v425 .booking-app-v281 .booking-search-hero-v281.panel {
        padding: 18px;
        border-radius: 20px;
    }
    .booking-directory-body-v425 .booking-searchbar-v281 {
        padding: 7px;
        gap: 7px;
        border-radius: 16px;
    }
    .booking-directory-body-v425 .booking-search-field-v281,
    .booking-directory-body-v425 .booking-search-submit-v281,
    .booking-directory-body-v425 .booking-search-reset-v281 {
        border-radius: 11px;
    }
    .booking-directory-body-v425 .booking-hotel-pricebox-v281 {
        border-top-color: var(--directory-line);
    }
}

/* v426: shared terracotta, ivory and sage palette for public hotel pages */
.public-hotel-body-v426 {
    --hotel-clay: #bd582e;
    --hotel-clay-dark: #943f20;
    --hotel-clay-soft: #f6e4da;
    --hotel-clay-pale: #fcf4ef;
    --hotel-sage: #6f7f68;
    --hotel-sage-dark: #465141;
    --hotel-sage-soft: #edf1ea;
    --hotel-ink: #2f2a27;
    --hotel-muted: #746d67;
    --hotel-ivory: #f7f3ed;
    --hotel-paper: #fffdfa;
    --hotel-line: #e5ddd3;
    --hotel-shadow: rgba(59, 48, 41, .08);
    background:
        radial-gradient(circle at 8% 0%, rgba(189, 88, 46, .08), transparent 25rem),
        radial-gradient(circle at 94% 8%, rgba(111, 127, 104, .09), transparent 30rem),
        linear-gradient(180deg, #fbf8f3 0%, #f4f0e9 54%, #f1eee8 100%);
    color: var(--hotel-ink);
}
.public-hotel-body-v426 .customer-appbar {
    background: rgba(255, 253, 250, .95);
    border-bottom-color: rgba(229, 221, 211, .95);
    box-shadow: 0 8px 28px rgba(59, 48, 41, .06);
}
.public-hotel-body-v426 .customer-brand-pet {
    color: var(--hotel-sage-dark);
}
.public-hotel-body-v426 .customer-brand-booking {
    color: var(--hotel-clay);
}
.public-hotel-body-v426 .customer-nav a,
.public-hotel-body-v426 .customer-lang-switcher .language-select-control-v421 {
    color: #504a46;
}
.public-hotel-body-v426 .customer-nav a:hover,
.public-hotel-body-v426 .customer-nav a.active {
    color: var(--hotel-clay-dark);
    background: var(--hotel-clay-pale);
    border-color: #e8c8b7;
}
.public-hotel-body-v426 .customer-lang-switcher .language-select-control-v421 {
    background: var(--hotel-paper);
    border-color: var(--hotel-line);
}
.public-hotel-body-v426 .customer-lang-switcher .language-select-control-v421:focus {
    border-color: var(--hotel-clay);
    outline-color: rgba(189, 88, 46, .18);
}

.public-hotel-body-v426 .public-hotel-full-page .panel,
.public-hotel-body-v426 .public-message-dialog {
    border-color: var(--hotel-line);
    background: rgba(255, 253, 250, .97);
    box-shadow: 0 12px 34px var(--hotel-shadow);
}
.public-hotel-body-v426 .public-hotel-cover {
    position: relative;
    overflow: hidden;
    border-color: #e4d3c7;
    background:
        linear-gradient(122deg, rgba(255, 253, 250, .99) 0%, rgba(249, 239, 231, .98) 58%, rgba(237, 241, 234, .98) 100%);
    box-shadow: 0 20px 52px rgba(74, 54, 42, .10);
}
.public-hotel-body-v426 .public-hotel-cover::before,
.public-hotel-body-v426 .public-hotel-cover::after {
    content: '';
    position: absolute;
    pointer-events: none;
    border-radius: 999px;
}
.public-hotel-body-v426 .public-hotel-cover::before {
    width: 250px;
    height: 250px;
    right: -90px;
    top: -150px;
    background: rgba(189, 88, 46, .12);
}
.public-hotel-body-v426 .public-hotel-cover::after {
    width: 190px;
    height: 190px;
    right: 180px;
    bottom: -155px;
    background: rgba(111, 127, 104, .13);
}
.public-hotel-body-v426 .public-hotel-cover-main,
.public-hotel-body-v426 .public-hotel-contact-card {
    position: relative;
    z-index: 1;
}
.public-hotel-body-v426 .public-hotel-logo-block img,
.public-hotel-body-v426 .public-hotel-logo-fallback {
    border-color: #e2d6cb;
    background: var(--hotel-paper);
    box-shadow: 0 16px 34px rgba(79, 57, 45, .13);
}
.public-hotel-body-v426 .public-hotel-logo-fallback {
    color: var(--hotel-clay-dark);
}
.public-hotel-body-v426 .public-hotel-title-block h1,
.public-hotel-body-v426 .public-hotel-section-card h2,
.public-hotel-body-v426 .public-booking-form-card .form-section,
.public-hotel-body-v426 .public-hotel-contact-card h2 {
    color: var(--hotel-ink);
}
.public-hotel-body-v426 .public-hotel-lead,
.public-hotel-body-v426 .public-section-head p,
.public-hotel-body-v426 .public-booking-intro,
.public-hotel-body-v426 .public-booking-contact-help,
.public-hotel-body-v426 .public-hotel-full-page .muted {
    color: var(--hotel-muted);
}
.public-hotel-body-v426 .public-hotel-contact-card {
    border-color: #d9dfd5;
    background: rgba(247, 249, 245, .88);
    box-shadow: 0 10px 28px rgba(70, 81, 65, .08);
}
.public-hotel-body-v426 .public-hotel-contact-list strong {
    color: var(--hotel-sage-dark);
}
.public-hotel-body-v426 .public-hotel-contact-list span,
.public-hotel-body-v426 .public-hotel-contact-list a {
    color: var(--hotel-ink);
}

.public-hotel-body-v426 .btn.primary {
    color: #fff;
    background: var(--hotel-clay);
    border-color: var(--hotel-clay);
    box-shadow: 0 10px 24px rgba(148, 63, 32, .20);
}
.public-hotel-body-v426 .btn.primary:hover,
.public-hotel-body-v426 .btn.primary:focus-visible {
    color: #fff;
    background: var(--hotel-clay-dark);
    border-color: var(--hotel-clay-dark);
}
.public-hotel-body-v426 .btn.ghost {
    color: var(--hotel-sage-dark);
    background: var(--hotel-paper);
    border-color: var(--hotel-line);
}
.public-hotel-body-v426 .btn.ghost:hover,
.public-hotel-body-v426 .btn.ghost:focus-visible {
    color: var(--hotel-clay-dark);
    background: var(--hotel-clay-pale);
    border-color: #e2bdab;
}
.public-hotel-body-v426 .btn:focus-visible,
.public-hotel-body-v426 input:focus,
.public-hotel-body-v426 select:focus,
.public-hotel-body-v426 textarea:focus {
    outline-color: rgba(189, 88, 46, .18);
}

.public-hotel-body-v426 .public-hotel-stat-card {
    position: relative;
    overflow: hidden;
    background: var(--hotel-paper);
}
.public-hotel-body-v426 .public-hotel-stat-card::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 3px;
    background: var(--hotel-clay);
}
.public-hotel-body-v426 .public-hotel-stat-card:nth-child(2)::before {
    background: var(--hotel-sage);
}
.public-hotel-body-v426 .public-hotel-stat-card span {
    color: var(--hotel-muted);
}
.public-hotel-body-v426 .public-hotel-stat-card strong {
    color: var(--hotel-ink);
}
.public-hotel-body-v426 .public-hotel-stat-card:nth-child(3) strong {
    color: var(--hotel-clay-dark);
}

.public-hotel-body-v426 .public-hotel-section-card,
.public-hotel-body-v426 .public-booking-form-card {
    background: var(--hotel-paper);
}
.public-hotel-body-v426 .public-place-card-full {
    border-color: var(--hotel-line);
    background: #fff;
    box-shadow: 0 8px 20px rgba(59, 48, 41, .04);
}
.public-hotel-body-v426 .public-place-card-full:hover {
    border-color: #dcb8a4;
    box-shadow: 0 14px 32px rgba(59, 48, 41, .09);
}
.public-hotel-body-v426 .public-place-name,
.public-hotel-body-v426 .public-place-fact-value {
    color: var(--hotel-ink);
}
.public-hotel-body-v426 .public-place-fact {
    border-color: #e2ddd5;
    background: #f7f4ef;
}
.public-hotel-body-v426 .public-place-fact:nth-child(even) {
    border-color: #dbe2d8;
    background: #f1f4ef;
}
.public-hotel-body-v426 .public-place-fact-label {
    color: #80776f;
}
.public-hotel-body-v426 .public-rules-text {
    border-color: var(--hotel-line);
    background: var(--hotel-ivory);
    color: #554e49;
}

.public-hotel-body-v426 .public-booking-form-card {
    overflow: hidden;
    border-color: #dfc8ba;
    box-shadow: 0 20px 48px rgba(74, 54, 42, .10);
}
.public-hotel-body-v426 .public-booking-form-card::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--hotel-clay) 0 64%, var(--hotel-sage) 64% 100%);
}
.public-hotel-body-v426 .public-booking-form-card label,
.public-hotel-body-v426 .public-booking-form-card .public-client-auth-title,
.public-hotel-body-v426 .public-housing-mode-title {
    color: var(--hotel-ink);
}
.public-hotel-body-v426 .public-booking-form-card input:not([type="radio"]):not([type="checkbox"]),
.public-hotel-body-v426 .public-booking-form-card select,
.public-hotel-body-v426 .public-booking-form-card textarea,
.public-hotel-body-v426 .public-message-form input,
.public-hotel-body-v426 .public-message-form textarea {
    color: var(--hotel-ink);
    border-color: var(--hotel-line);
    background: #fff;
}
.public-hotel-body-v426 .public-booking-form-card input:not([type="radio"]):not([type="checkbox"]):focus,
.public-hotel-body-v426 .public-booking-form-card select:focus,
.public-hotel-body-v426 .public-booking-form-card textarea:focus,
.public-hotel-body-v426 .public-message-form input:focus,
.public-hotel-body-v426 .public-message-form textarea:focus {
    border-color: var(--hotel-clay);
    box-shadow: 0 0 0 3px rgba(189, 88, 46, .10);
}
.public-hotel-body-v426 .public-booking-form-card input[type="radio"],
.public-hotel-body-v426 .public-booking-form-card input[type="checkbox"] {
    accent-color: var(--hotel-clay);
}
.public-hotel-body-v426 .public-client-auth,
.public-hotel-body-v426 .public-pet-card,
.public-hotel-body-v426 .public-pet-care-details,
.public-hotel-body-v426 .public-date-range,
.public-hotel-body-v426 .public-housing-mode,
.public-hotel-body-v426 .public-place-selectors {
    border-color: var(--hotel-line);
    background: var(--hotel-ivory);
}
.public-hotel-body-v426 .public-pet-card,
.public-hotel-body-v426 .public-place-selectors {
    background: #fff;
}
.public-hotel-body-v426 .public-pet-card-head h3,
.public-hotel-body-v426 .public-pet-care-details > summary {
    color: var(--hotel-ink);
}
.public-hotel-body-v426 .public-pet-care-details > summary::after,
.public-hotel-body-v426 .public-pet-care-details > summary small,
.public-hotel-body-v426 .public-housing-mode small {
    color: var(--hotel-muted);
}
.public-hotel-body-v426 .public-pet-care-content {
    border-top-color: var(--hotel-line);
}
.public-hotel-body-v426 .public-pet-care-toggle {
    border-color: var(--hotel-line);
    background: #fff;
}
.public-hotel-body-v426 .public-housing-mode-options label {
    color: var(--hotel-ink);
    border-color: var(--hotel-line);
    background: #fff;
}
.public-hotel-body-v426 .public-housing-mode-options label:has(input:checked) {
    color: var(--hotel-clay-dark);
    border-color: #d99d7c;
    background: var(--hotel-clay-pale);
    box-shadow: 0 0 0 2px rgba(189, 88, 46, .09);
}
.public-hotel-body-v426 .public-housing-mode-options input {
    accent-color: var(--hotel-clay);
}

.public-hotel-body-v426 .date-range-summary input[type="date"],
.public-hotel-body-v426 .date-range-calendar {
    border-color: var(--hotel-line);
    background: #fff;
}
.public-hotel-body-v426 .date-range-calendar {
    box-shadow: 0 12px 28px rgba(59, 48, 41, .06);
}
.public-hotel-body-v426 .date-range-period-title,
.public-hotel-body-v426 .date-range-week-month,
.public-hotel-body-v426 .date-range-day {
    color: var(--hotel-ink);
}
.public-hotel-body-v426 .date-range-period-title {
    border-color: var(--hotel-line);
}
.public-hotel-body-v426 .date-range-month-anchor::after {
    background: var(--hotel-line);
}
.public-hotel-body-v426 .date-range-weekday,
.public-hotel-body-v426 .date-range-side-weekday {
    color: var(--hotel-muted);
}
.public-hotel-body-v426 .date-range-day,
.public-hotel-body-v426 .date-range-day.month-tone-a:not(.selected):not(.in-range):not(:disabled):not(.date-range-day-spacer) {
    background: #f8f5f1;
}
.public-hotel-body-v426 .date-range-day.month-tone-b:not(.selected):not(.in-range):not(:disabled):not(.date-range-day-spacer),
.public-hotel-body-v426 .date-range-day.month-tone-b.date-range-day-spacer {
    border-color: #dfe5dc;
    background: #f0f3ee;
}
.public-hotel-body-v426 .date-range-day:hover:not(:disabled):not(.date-range-day-spacer) {
    color: var(--hotel-clay-dark);
    border-color: #d69a79;
    background: var(--hotel-clay-pale);
}
.public-hotel-body-v426 .date-range-day.today:not(.selected) {
    color: var(--hotel-sage-dark);
    border-color: #aebaa9;
    background: var(--hotel-sage-soft);
}
.public-hotel-body-v426 .date-range-day.in-range {
    color: var(--hotel-clay-dark);
    background: var(--hotel-clay-soft);
}
.public-hotel-body-v426 .date-range-day.selected {
    color: #fff;
    border-color: var(--hotel-clay);
    background: var(--hotel-clay);
}
.public-hotel-body-v426 .date-range-day.disabled,
.public-hotel-body-v426 .date-range-day:disabled,
.public-hotel-body-v426 .date-range-day.month-tone-b.disabled,
.public-hotel-body-v426 .date-range-day.month-tone-b:disabled {
    color: #bbb3ac;
    background: #eeeae5;
}
.public-hotel-body-v426 .date-range-day.month-start::before {
    background: #c7beb5;
}
.public-hotel-body-v426 .date-warning {
    color: #8b3b21;
    border-color: #ebc3b0;
    background: #fff3ec;
}

.public-hotel-body-v426 .public-booking-success {
    border-color: #cfd9cb;
    background: var(--hotel-sage-soft);
}
.public-hotel-body-v426 .public-booking-success h1 {
    color: var(--hotel-sage-dark);
}
.public-hotel-body-v426 .public-message-dialog h2 {
    color: var(--hotel-ink);
}

@media (max-width: 820px) {
    .public-hotel-body-v426 .customer-nav a {
        background: var(--hotel-paper);
        border-color: var(--hotel-line);
    }
}
@media (max-width: 620px) {
    .public-hotel-body-v426 .public-hotel-cover,
    .public-hotel-body-v426 .public-hotel-section-card,
    .public-hotel-body-v426 .public-booking-form-card {
        border-radius: 20px;
    }
    .public-hotel-body-v426 .public-booking-form-card {
        padding: 17px;
    }
}


/* v427: duplicate booking status control beside the fully-paid toggle */
.amount-due-actions {
    flex: 0 1 auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    min-width: 0;
}
.payment-status-field {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
    padding: 7px 8px 7px 12px;
    border: 1px solid rgba(37, 99, 235, 0.22);
    border-radius: 16px;
    background: #fff;
    min-width: min(320px, 36vw);
}
.payment-status-field > span {
    flex: 0 0 auto;
    color: var(--text);
    font-size: 14px;
    font-weight: 900;
    white-space: nowrap;
}
.payment-status-field select {
    flex: 1 1 170px;
    min-width: 0;
    margin: 0;
    padding-top: 9px;
    padding-bottom: 9px;
    border-radius: 11px;
    font-weight: 800;
}
@media (max-width: 900px) {
    .amount-due-display {
        align-items: stretch;
        flex-direction: column;
    }
    .amount-due-actions {
        justify-content: flex-start;
        width: 100%;
    }
    .payment-status-field {
        flex: 1 1 auto;
        min-width: 0;
    }
}
@media (max-width: 640px) {
    .amount-due-actions {
        align-items: stretch;
        flex-direction: column;
    }
    .payment-status-field {
        align-items: stretch;
        flex-direction: column;
        gap: 6px;
        width: 100%;
        padding: 10px 12px 12px;
    }
    .payment-status-field select {
        flex-basis: auto;
        width: 100%;
    }
}

/* v429: owner-only questionnaire access and hotel permission controls */
.questionnaire-secure-manager-v429 {
    display: grid;
    gap: 12px;
}
.questionnaire-owner-request-v429 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    padding: 14px;
    border: 1px solid #eadfd7;
    border-radius: 14px;
    background: #fffaf6;
}
.questionnaire-owner-request-v429 small {
    flex: 1 1 280px;
    color: var(--muted);
    line-height: 1.45;
}
.questionnaire-access-state-v429,
.questionnaire-profile-access-note-v429 {
    display: block;
    margin: 0;
    padding: 10px 12px;
    border-radius: 12px;
    font-size: 13px;
    line-height: 1.45;
}
.questionnaire-access-state-v429.is-current-v429,
.questionnaire-profile-access-note-v429 {
    color: #345248;
    background: #edf5f1;
    border: 1px solid #cfdfd7;
}
.questionnaire-access-state-v429.is-archived-v429 {
    color: #76543f;
    background: #fbf2e9;
    border: 1px solid #ead6c4;
}
.questionnaire-access-state-v429.is-restricted-v429 {
    color: #6b6260;
    background: #f4f1ef;
    border: 1px solid #ddd6d2;
}
.questionnaire-hotel-access-form-v429 {
    margin: 14px 0 4px;
    padding: 14px;
    border: 1px solid #e6ddd7;
    border-radius: 14px;
    background: #fffdfb;
}
.questionnaire-hotel-access-form-v429 > strong,
.questionnaire-hotel-access-form-v429 > small {
    display: block;
}
.questionnaire-hotel-access-form-v429 > small {
    margin-top: 5px;
    color: var(--muted);
    line-height: 1.45;
}
.questionnaire-hotel-access-list-v429 {
    display: grid;
    gap: 8px;
    margin: 12px 0;
}
.questionnaire-hotel-access-list-v429 label {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 38px;
    padding: 8px 10px;
    border-radius: 10px;
    background: #f8f5f2;
    cursor: pointer;
}
.questionnaire-hotel-access-list-v429 input {
    width: 18px;
    height: 18px;
    margin: 0;
}
@media (max-width: 640px) {
    .questionnaire-owner-request-v429 {
        align-items: stretch;
        flex-direction: column;
    }
    .questionnaire-owner-request-v429 .btn,
    .questionnaire-hotel-access-form-v429 .btn {
        width: 100%;
        justify-content: center;
    }
}

/* v432: questionnaire history in the hotel pet profile */
.pet-questionnaire-history-v432 {
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
}
.pet-questionnaire-history-head-v432 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}
.pet-questionnaire-history-head-v432 h3 {
    margin: 0;
    font-size: 20px;
}
.pet-questionnaire-history-head-v432 p {
    max-width: 760px;
    margin: 5px 0 0;
    color: var(--muted);
}
.pet-questionnaire-history-head-v432 > span {
    flex: 0 0 auto;
    padding: 7px 10px;
    border: 1px solid #dfe5ec;
    border-radius: 999px;
    background: #f8fafc;
    color: #5f6b7a;
    font-size: 12px;
    font-weight: 800;
}
.pet-questionnaire-history-list-v432 {
    display: grid;
    gap: 10px;
}
.pet-questionnaire-history-item-v432 {
    display: grid;
    grid-template-columns: minmax(230px, 1.2fr) minmax(260px, 1fr) auto;
    align-items: center;
    gap: 16px;
    padding: 14px 15px;
    border: 1px solid #e2e7ed;
    border-radius: 16px;
    background: #fff;
}
.pet-questionnaire-history-main-v432 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-width: 0;
}
.pet-questionnaire-history-main-v432 > div {
    display: grid;
    gap: 3px;
    min-width: 0;
}
.pet-questionnaire-history-main-v432 a {
    width: fit-content;
    color: var(--primary);
    font-weight: 850;
    text-decoration: none;
}
.pet-questionnaire-history-main-v432 strong {
    color: var(--text);
    font-size: 15px;
}
.pet-questionnaire-history-meta-v432 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.pet-questionnaire-history-meta-v432 > div {
    display: grid;
    gap: 3px;
    min-width: 0;
}
.pet-questionnaire-history-meta-v432 span {
    color: #6b7280;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .03em;
    text-transform: uppercase;
}
.pet-questionnaire-history-meta-v432 strong {
    color: var(--text);
    font-size: 14px;
    overflow-wrap: anywhere;
}
.pet-questionnaire-history-actions-v432 {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

@media (max-width: 980px) {
    .pet-questionnaire-history-item-v432 {
        grid-template-columns: 1fr;
        align-items: stretch;
    }
    .pet-questionnaire-history-actions-v432 {
        justify-content: flex-start;
    }
}

@media (max-width: 640px) {
    .pet-questionnaire-history-head-v432 {
        display: grid;
        gap: 10px;
    }
    .pet-questionnaire-history-head-v432 > span {
        width: fit-content;
    }
    .pet-questionnaire-history-main-v432 {
        align-items: flex-start;
    }
    .pet-questionnaire-history-meta-v432 {
        grid-template-columns: 1fr;
    }
    .pet-questionnaire-history-actions-v432 {
        display: grid;
        grid-template-columns: 1fr;
    }
    .pet-questionnaire-history-actions-v432 .btn {
        width: 100%;
        justify-content: center;
    }
}

/* v434: collapsed booking and questionnaire histories in pet profile */
.pet-history-collapsible-v434 {
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    background: #fff;
    overflow: hidden;
}
.pet-questionnaire-history-v432.pet-history-collapsible-v434 {
    margin-top: 22px;
    padding-top: 0;
    border-top: 1px solid #e2e8f0;
}
.pet-history-summary-v434,
.pet-booking-history-v375 > summary.pet-history-summary-v434 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 14px;
    min-height: 70px;
    padding: 14px 16px;
    background: #f8fafc;
    cursor: pointer;
    list-style: none;
    user-select: none;
}
.pet-history-summary-v434::-webkit-details-marker { display: none; }
.pet-history-summary-v434::after,
.pet-booking-history-v375 > summary.pet-history-summary-v434::after { display: none; content: none; }
.pet-history-summary-v434:hover { background: #f3f6fa; }
.pet-history-summary-v434:focus-visible {
    outline: 3px solid rgba(37, 99, 235, .2);
    outline-offset: -3px;
}
.pet-history-summary-copy-v434 {
    display: grid;
    gap: 4px;
    min-width: 0;
}
.pet-history-summary-copy-v434 > strong {
    color: var(--text);
    font-size: 18px;
    font-weight: 850;
}
.pet-history-summary-copy-v434 > small,
.pet-booking-history-v375 > summary .pet-history-summary-copy-v434 > small {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    font-weight: 500;
    line-height: 1.4;
}
.pet-history-summary-count-v434,
.pet-booking-history-v375 > summary .pet-history-summary-count-v434 {
    flex: 0 0 auto;
    margin: 0;
    padding: 7px 10px;
    border: 1px solid #dfe5ec;
    border-radius: 999px;
    background: #fff;
    color: #5f6b7a;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}
.pet-history-summary-action-v434 {
    min-width: 122px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 13px;
    border: 1px solid #b8cff8;
    border-radius: 12px;
    background: #edf4ff;
    color: #175cd3;
    font-size: 13px;
    font-weight: 850;
    white-space: nowrap;
}
.pet-history-chevron-v434 {
    display: inline-block;
    font-size: 19px;
    line-height: .8;
    transition: transform .18s ease;
}
.pet-history-action-open-v434 { display: none; }
.pet-history-collapsible-v434[open] .pet-history-action-closed-v434 { display: none; }
.pet-history-collapsible-v434[open] .pet-history-action-open-v434 { display: inline; }
.pet-history-collapsible-v434[open] .pet-history-chevron-v434 { transform: rotate(180deg); }
.pet-history-collapsible-v434[open] > .pet-history-summary-v434 {
    border-bottom: 1px solid #e2e8f0;
    background: #f8fafc;
}
.pet-history-body-v434 {
    padding: 12px;
}
.pet-booking-history-v375 > .pet-history-body-v434 {
    padding: 12px;
    border-top: 0;
}
.pet-questionnaire-history-v432 .pet-profile-empty-v375 { margin-top: 0; }

@media (max-width: 700px) {
    .pet-history-summary-v434,
    .pet-booking-history-v375 > summary.pet-history-summary-v434 {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 10px;
        padding: 13px 14px;
    }
    .pet-history-summary-copy-v434 { grid-column: 1 / -1; }
    .pet-history-summary-action-v434 { min-width: 112px; }
}

@media (max-width: 430px) {
    .pet-history-summary-action-v434 {
        min-width: 0;
        padding-inline: 11px;
    }
    .pet-history-summary-copy-v434 > strong { font-size: 17px; }
}

/* v436: full pet photo links and separate avatar/full-photo handling */
.pet-photo-preview-link-v436 {
    display: block;
    width: 100%;
    height: 100%;
    color: inherit;
}
.pet-photo-preview-link-v436 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.pet-profile-photo-link-v436 {
    display: block;
    width: fit-content;
    border-radius: 28px;
    color: inherit;
    text-decoration: none;
}
.pet-profile-photo-link-v436 .pet-profile-photo-v375 {
    transition: transform .16s ease, box-shadow .16s ease;
}
.pet-profile-photo-link-v436:hover .pet-profile-photo-v375,
.pet-profile-photo-link-v436:focus-visible .pet-profile-photo-v375 {
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .16);
}
.pet-profile-photo-link-v436:focus-visible {
    outline: 3px solid rgba(37, 99, 235, .24);
    outline-offset: 3px;
}

/* v437: manager questionnaire links for email-free and messenger bookings */
.booking-questionnaire-share-v437 {
    display: grid;
    gap: 16px;
}
.booking-questionnaire-share-list-v437 {
    display: grid;
    gap: 12px;
}
.booking-questionnaire-share-row-v437 {
    display: grid;
    grid-template-columns: minmax(140px, 1fr) auto;
    align-items: center;
    gap: 10px 14px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #f8fafc;
}
.booking-questionnaire-share-pet-v437 {
    min-width: 0;
    display: grid;
    gap: 4px;
}
.booking-questionnaire-share-pet-v437 strong {
    overflow-wrap: anywhere;
}
.booking-questionnaire-share-pet-v437 a {
    width: fit-content;
    font-size: 13px;
    font-weight: 700;
}
.booking-questionnaire-share-actions-v437 {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
}
.booking-questionnaire-share-mode-v437,
.booking-questionnaire-share-unavailable-v437 {
    grid-column: 1 / -1;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.45;
}
.booking-questionnaire-share-unavailable-v437 {
    color: #b45309;
    font-weight: 700;
}
.booking-questionnaire-share-result-v437 {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
}
.booking-questionnaire-share-result-v437[hidden] {
    display: none;
}
.booking-questionnaire-share-result-v437 input {
    min-width: 0;
    font-size: 13px;
}
.booking-questionnaire-share-status-v437 {
    grid-column: 1 / -1;
    min-height: 18px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}
.booking-questionnaire-share-status-v437:empty {
    min-height: 0;
}
.booking-questionnaire-share-status-v437.is-success-v437 {
    color: #15803d;
}
.booking-questionnaire-share-status-v437.is-error-v437 {
    color: #b91c1c;
}
.booking-questionnaire-share-note-v437 {
    margin: 0;
}
@media (max-width: 640px) {
    .booking-questionnaire-share-row-v437 {
        grid-template-columns: 1fr;
        align-items: stretch;
    }
    .booking-questionnaire-share-actions-v437 {
        display: grid;
        grid-template-columns: 1fr;
        justify-content: stretch;
    }
    .booking-questionnaire-share-actions-v437 .btn,
    .booking-questionnaire-share-result-v437 .btn {
        width: 100%;
        justify-content: center;
    }
    .booking-questionnaire-share-result-v437 {
        grid-template-columns: 1fr;
    }
}

/* v443: clearer client login, registration, and password recovery */
.client-auth-panel-v443 {
    display: grid;
    gap: 14px;
}
.client-auth-panel-v443 > h1 {
    margin: 0;
}
.client-auth-intro-v443 {
    margin: -3px 0 2px;
    color: var(--muted);
    line-height: 1.55;
}
.client-auth-forgot-v443 {
    margin-top: -4px;
    text-align: right;
    font-size: 14px;
    font-weight: 750;
}
.client-auth-forgot-v443 a,
.client-auth-secondary-v443 a {
    color: var(--primary, #2563eb);
}
.client-auth-register-v443 {
    display: grid;
    gap: 12px;
    margin-top: 4px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
}
.client-auth-register-v443 > div {
    display: grid;
    gap: 4px;
}
.client-auth-register-v443 strong {
    font-size: 16px;
}
.client-auth-register-v443 span {
    color: var(--muted);
    font-size: 14px;
    line-height: 1.45;
}
.client-auth-secondary-v443 {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    padding-top: 4px;
    font-size: 14px;
}
.client-auth-panel-v443 label > small {
    color: var(--muted);
    font-weight: 500;
}
@media (max-width: 560px) {
    .client-auth-panel-v443 {
        margin-top: 16px;
    }
    .client-auth-forgot-v443 {
        text-align: left;
    }
}

/* v445: clearer registered client account hierarchy */
.client-profile-page-account-v445 {
    display: grid;
    gap: 16px;
}
.client-profile-page-account-v445 .client-profile-menu,
.client-profile-page-account-v445 .client-profile-details-panel,
.client-profile-page-account-v445 .client-profile-section-panel {
    margin-top: 0;
}
.client-account-hero-v445 {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
    padding: 20px;
    border-color: #dbe7f5;
    background: linear-gradient(135deg, #ffffff 0%, #f7faff 100%);
}
.client-account-avatar-v445 {
    width: 72px;
    height: 72px;
    display: grid;
    place-items: center;
    border-radius: 22px;
    background: #111827;
    color: #fff;
    font-size: 29px;
    font-weight: 900;
}
.client-account-hero-copy-v445 {
    min-width: 0;
    display: grid;
    gap: 5px;
}
.client-account-eyebrow-v445 {
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.client-account-hero-copy-v445 h1 {
    margin: 0;
    font-size: clamp(26px, 3vw, 36px);
    overflow-wrap: anywhere;
}
.client-account-hero-meta-v445 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    color: #475569;
    font-size: 14px;
    font-weight: 700;
}
.client-account-verification-v445 {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 4px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 850;
}
.client-account-verification-v445.is-verified-v445 {
    border: 1px solid #bbf7d0;
    background: #f0fdf4;
    color: #166534;
}
.client-account-verification-v445.is-pending-v445 {
    border: 1px solid #fed7aa;
    background: #fff7ed;
    color: #9a3412;
}
.client-account-logout-v445 {
    align-self: start;
}
.client-profile-page-account-v445 .client-profile-details-panel > h2 {
    margin: 0;
}
.client-account-data-intro-v445 p {
    margin: 6px 0 0;
    color: var(--muted);
    line-height: 1.5;
}
.client-account-facts-v445 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 16px;
}
.client-account-facts-v445 > div {
    min-width: 0;
    display: grid;
    gap: 5px;
    padding: 13px 14px;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #f8fafc;
}
.client-account-facts-v445 span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.client-account-facts-v445 strong {
    overflow-wrap: anywhere;
}
.client-account-action-v445 {
    margin-top: 14px;
}
.client-account-action-v445 > summary {
    width: fit-content;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 9px 15px;
    border: 1px solid #dbe4ef;
    border-radius: 12px;
    background: #fff;
    color: var(--text);
    cursor: pointer;
    list-style: none;
    font-weight: 850;
    box-shadow: 0 4px 10px rgba(15, 23, 42, .04);
}
.client-account-action-v445 > summary::-webkit-details-marker {
    display: none;
}
.client-account-action-v445 > summary:hover {
    background: #f8fafc;
}
.client-account-action-v445[open] > summary {
    border-color: #bfdbfe;
    background: #eff6ff;
    color: #1d4ed8;
}
.client-account-form-v445 {
    margin-top: 12px;
    padding: 16px;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #f8fafc;
}
.client-account-security-v445 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid #e2e8f0;
}
.client-account-security-v445 > div {
    min-width: 0;
}
.client-account-security-v445 h3 {
    margin: 0 0 4px;
    font-size: 17px;
}
.client-account-security-v445 p {
    margin: 0;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.45;
}
.client-account-password-v445 {
    flex: 0 0 auto;
    margin-top: 0;
}
.client-account-password-v445[open] {
    grid-column: 1 / -1;
    width: 100%;
}
@media (max-width: 700px) {
    .client-profile-page-account-v445 {
        gap: 12px;
    }
    .client-account-hero-v445 {
        grid-template-columns: 58px minmax(0, 1fr);
        gap: 12px;
        padding: 16px;
    }
    .client-account-avatar-v445 {
        width: 58px;
        height: 58px;
        border-radius: 18px;
        font-size: 24px;
    }
    .client-account-logout-v445 {
        grid-column: 1 / -1;
        width: 100%;
        justify-content: center;
    }
    .client-account-facts-v445 {
        grid-template-columns: 1fr;
    }
    .client-account-action-v445 > summary {
        width: 100%;
    }
    .client-account-security-v445 {
        grid-template-columns: 1fr;
    }
    .client-account-password-v445,
    .client-account-password-v445[open] {
        width: 100%;
    }
}

/* v446: unified PetBooking palette and clearer visual hierarchy for client pages */
.client-portal-body-v446 {
    --client-clay: #bd582e;
    --client-clay-dark: #943f20;
    --client-clay-soft: #f6e4da;
    --client-clay-pale: #fcf4ef;
    --client-sage: #6f7f68;
    --client-sage-dark: #465141;
    --client-sage-soft: #edf1ea;
    --client-ink: #2f2a27;
    --client-muted: #746d67;
    --client-ivory: #f7f3ed;
    --client-paper: #fffdfa;
    --client-line: #e5ddd3;
    --client-shadow: rgba(59, 48, 41, .08);
    background:
        radial-gradient(circle at 7% 0%, rgba(189, 88, 46, .09), transparent 27rem),
        radial-gradient(circle at 95% 12%, rgba(111, 127, 104, .10), transparent 32rem),
        linear-gradient(180deg, #fbf8f3 0%, #f4f0e9 54%, #f1eee8 100%);
    color: var(--client-ink);
}
.client-portal-body-v446 .customer-appbar {
    background: rgba(255, 253, 250, .95);
    border-bottom-color: rgba(229, 221, 211, .96);
    box-shadow: 0 8px 28px rgba(59, 48, 41, .06);
}
.client-portal-body-v446 .customer-brand-pet {
    color: var(--client-sage-dark);
}
.client-portal-body-v446 .customer-brand-booking {
    color: var(--client-clay);
}
.client-portal-body-v446 .customer-nav a,
.client-portal-body-v446 .customer-lang-switcher .language-select-control-v421 {
    color: #504a46;
}
.client-portal-body-v446 .customer-nav a:hover,
.client-portal-body-v446 .customer-nav a.active {
    color: var(--client-clay-dark);
    border-color: #e8c8b7;
    background: var(--client-clay-pale);
}
.client-portal-body-v446 .customer-lang-switcher .language-select-control-v421 {
    border-color: var(--client-line);
    background: var(--client-paper);
}
.client-portal-body-v446 .customer-main {
    color: var(--client-ink);
}
.client-portal-body-v446 .panel {
    border-color: var(--client-line);
    background: rgba(255, 253, 250, .97);
    box-shadow: 0 12px 34px var(--client-shadow);
}
.client-portal-body-v446 h1,
.client-portal-body-v446 h2,
.client-portal-body-v446 h3,
.client-portal-body-v446 strong {
    color: var(--client-ink);
}
.client-portal-body-v446 small,
.client-portal-body-v446 .muted,
.client-portal-body-v446 .client-auth-intro-v443,
.client-portal-body-v446 .client-account-data-intro-v445 p,
.client-portal-body-v446 .client-account-security-v445 p {
    color: var(--client-muted);
}
.client-portal-body-v446 .btn {
    border-color: var(--client-line);
    background: var(--client-paper);
    color: var(--client-ink);
    box-shadow: 0 5px 14px rgba(59, 48, 41, .06);
}
.client-portal-body-v446 .btn:hover,
.client-portal-body-v446 .btn:focus-visible {
    color: var(--client-clay-dark);
    border-color: #dcb49f;
    background: var(--client-clay-pale);
}
.client-portal-body-v446 .btn.primary {
    color: #fff;
    border-color: var(--client-clay);
    background: var(--client-clay);
    box-shadow: 0 8px 18px rgba(148, 63, 32, .18);
}
.client-portal-body-v446 .btn.primary:hover,
.client-portal-body-v446 .btn.primary:focus-visible {
    color: #fff;
    border-color: var(--client-clay-dark);
    background: var(--client-clay-dark);
}
.client-portal-body-v446 .btn.secondary {
    color: #fff;
    border-color: var(--client-sage);
    background: var(--client-sage);
    box-shadow: 0 8px 18px rgba(70, 81, 65, .16);
}
.client-portal-body-v446 .btn.secondary:hover,
.client-portal-body-v446 .btn.secondary:focus-visible {
    color: #fff;
    border-color: var(--client-sage-dark);
    background: var(--client-sage-dark);
}
.client-portal-body-v446 .btn.ghost {
    color: var(--client-sage-dark);
    border-color: #d4ddd0;
    background: var(--client-paper);
}
.client-portal-body-v446 .btn.ghost:hover,
.client-portal-body-v446 .btn.ghost:focus-visible {
    color: var(--client-clay-dark);
    border-color: #e2bdab;
    background: var(--client-clay-pale);
}
.client-portal-body-v446 input:not([type="radio"]):not([type="checkbox"]),
.client-portal-body-v446 select,
.client-portal-body-v446 textarea {
    color: var(--client-ink);
    border-color: var(--client-line);
    background: #fff;
}
.client-portal-body-v446 input:not([type="radio"]):not([type="checkbox"]):focus,
.client-portal-body-v446 select:focus,
.client-portal-body-v446 textarea:focus {
    border-color: var(--client-clay);
    outline-color: rgba(189, 88, 46, .16);
    box-shadow: 0 0 0 3px rgba(189, 88, 46, .10);
}
.client-portal-body-v446 input[type="radio"],
.client-portal-body-v446 input[type="checkbox"] {
    accent-color: var(--client-clay);
}
.client-portal-body-v446 .flash {
    color: var(--client-sage-dark);
    border-color: #cfd9cb;
    background: var(--client-sage-soft);
}
.client-portal-body-v446 .flash.danger {
    color: #8b3b21;
    border-color: #ebc3b0;
    background: #fff3ec;
}
.client-portal-body-v446 .flash.info {
    color: var(--client-sage-dark);
    border-color: #d4ddd0;
    background: var(--client-sage-soft);
}

/* Authentication pages */
.client-portal-body-v446 .client-auth-panel-v443 {
    position: relative;
    overflow: hidden;
    padding: 24px;
    border-color: #e4d3c7;
    background:
        linear-gradient(145deg, rgba(255, 253, 250, .99), rgba(252, 244, 239, .98));
    box-shadow: 0 22px 58px rgba(74, 54, 42, .12);
}
.client-portal-body-v446 .client-auth-panel-v443::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 5px;
    background: linear-gradient(90deg, var(--client-clay) 0 66%, var(--client-sage) 66% 100%);
}
.client-portal-body-v446 .client-auth-panel-v443 > h1 {
    color: var(--client-ink);
}
.client-portal-body-v446 .client-auth-forgot-v443 a,
.client-portal-body-v446 .client-auth-secondary-v443 a {
    color: var(--client-clay-dark);
}
.client-portal-body-v446 .client-auth-register-v443 {
    margin-top: 8px;
    padding: 16px;
    border: 1px solid #d7dfd3;
    border-radius: 16px;
    background: var(--client-sage-soft);
}
.client-portal-body-v446 .client-auth-register-v443 strong {
    color: var(--client-sage-dark);
}
.client-portal-body-v446 .client-auth-register-v443 span {
    color: #667060;
}

/* Registered account hero */
.client-portal-body-v446 .client-account-hero-v445 {
    position: relative;
    overflow: hidden;
    border-color: #e4d3c7;
    background:
        linear-gradient(122deg, rgba(255, 253, 250, .99) 0%, rgba(249, 239, 231, .98) 62%, rgba(237, 241, 234, .98) 100%);
    box-shadow: 0 20px 52px rgba(74, 54, 42, .10);
}
.client-portal-body-v446 .client-account-hero-v445::after {
    content: '';
    position: absolute;
    right: -72px;
    bottom: -88px;
    width: 190px;
    height: 190px;
    border-radius: 50%;
    background: rgba(111, 127, 104, .10);
    pointer-events: none;
}
.client-portal-body-v446 .client-account-avatar-v445 {
    position: relative;
    z-index: 1;
    color: #fff;
    background: linear-gradient(145deg, var(--client-clay), var(--client-clay-dark));
    box-shadow: 0 10px 24px rgba(148, 63, 32, .24);
}
.client-portal-body-v446 .client-account-hero-copy-v445,
.client-portal-body-v446 .client-account-logout-v445 {
    position: relative;
    z-index: 1;
}
.client-portal-body-v446 .client-account-eyebrow-v445 {
    color: var(--client-sage-dark);
}
.client-portal-body-v446 .client-account-hero-meta-v445 {
    color: var(--client-muted);
}
.client-portal-body-v446 .client-account-verification-v445.is-verified-v445 {
    color: var(--client-sage-dark);
    border-color: #cbd7c6;
    background: var(--client-sage-soft);
}
.client-portal-body-v446 .client-account-verification-v445.is-pending-v445 {
    color: var(--client-clay-dark);
    border-color: #e8c8b7;
    background: var(--client-clay-pale);
}

/* Main profile navigation */
.client-portal-body-v446 .client-profile-menu {
    padding: 9px;
    border-color: var(--client-line);
    background: rgba(255, 253, 250, .90);
}
.client-portal-body-v446 .client-profile-menu a {
    position: relative;
    color: var(--client-sage-dark);
    border-color: transparent;
    background: transparent;
    box-shadow: none;
}
.client-portal-body-v446 .client-profile-menu a:hover {
    color: var(--client-clay-dark);
    border-color: #ead1c3;
    background: var(--client-clay-pale);
}
.client-portal-body-v446 .client-profile-menu a.active {
    color: #fff;
    border-color: var(--client-clay);
    background: var(--client-clay);
    box-shadow: 0 7px 16px rgba(148, 63, 32, .18);
}
.client-portal-body-v446 .client-profile-menu a:nth-child(2):not(.active) {
    background: var(--client-sage-soft);
}
.client-portal-body-v446 .client-profile-menu a:nth-child(3):not(.active) {
    background: var(--client-clay-pale);
}

/* Section cards */
.client-portal-body-v446 .client-profile-details-panel,
.client-portal-body-v446 .client-profile-section-panel {
    position: relative;
    overflow: hidden;
    padding: 20px;
}
.client-portal-body-v446 .client-profile-details-panel::before,
.client-portal-body-v446 .client-profile-section-panel::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: var(--client-clay);
}
.client-portal-body-v446 .client-profile-pets-panel::before {
    background: var(--client-sage);
}
.client-portal-body-v446 .client-bookings-panel::before {
    background: linear-gradient(90deg, var(--client-clay) 0 58%, var(--client-sage) 58% 100%);
}
.client-portal-body-v446 .client-profile-details-panel > h2,
.client-portal-body-v446 .client-profile-section-panel > h2,
.client-portal-body-v446 .client-bookings-head-v311 > h2 {
    color: var(--client-ink);
    font-size: 20px;
}
.client-portal-body-v446 .client-account-facts-v445 > div {
    border-color: var(--client-line);
    background: var(--client-ivory);
}
.client-portal-body-v446 .client-account-facts-v445 > div:nth-child(1),
.client-portal-body-v446 .client-account-facts-v445 > div:nth-child(4) {
    border-color: #ead1c3;
    background: var(--client-clay-pale);
}
.client-portal-body-v446 .client-account-facts-v445 > div:nth-child(2),
.client-portal-body-v446 .client-account-facts-v445 > div:nth-child(3) {
    border-color: #d7dfd3;
    background: var(--client-sage-soft);
}
.client-portal-body-v446 .client-account-facts-v445 span {
    color: var(--client-muted);
}
.client-portal-body-v446 .client-account-action-v445 > summary {
    color: var(--client-clay-dark);
    border-color: #e3bda9;
    background: var(--client-clay-pale);
    box-shadow: none;
}
.client-portal-body-v446 .client-account-action-v445 > summary:hover {
    border-color: var(--client-clay);
    background: var(--client-clay-soft);
}
.client-portal-body-v446 .client-account-action-v445[open] > summary {
    color: #fff;
    border-color: var(--client-clay);
    background: var(--client-clay);
}
.client-portal-body-v446 .client-account-form-v445,
.client-portal-body-v446 .client-edit-form {
    border-color: var(--client-line);
    background: var(--client-ivory);
}
.client-portal-body-v446 .client-account-security-v445 {
    padding: 16px;
    border: 1px solid #d5ddd1;
    border-radius: 16px;
    background: var(--client-sage-soft);
}
.client-portal-body-v446 .client-account-security-v445 h3 {
    color: var(--client-sage-dark);
}
.client-portal-body-v446 .client-account-password-v445 > summary {
    color: var(--client-sage-dark);
    border-color: #c9d5c4;
    background: var(--client-paper);
}
.client-portal-body-v446 .client-account-password-v445[open] > summary {
    color: #fff;
    border-color: var(--client-sage);
    background: var(--client-sage);
}

/* Pet cards */
.client-portal-body-v446 .client-pet-edit-card,
.client-portal-body-v446 .client-edit-card {
    border-color: var(--client-line);
    background: var(--client-paper);
}
.client-portal-body-v446 .client-pet-edit-card summary,
.client-portal-body-v446 .client-edit-card summary {
    background: var(--client-paper);
}
.client-portal-body-v446 .client-pet-edit-card summary:hover,
.client-portal-body-v446 .client-edit-card summary:hover {
    background: var(--client-clay-pale);
}
.client-portal-body-v446 .client-pet-edit-card summary em,
.client-portal-body-v446 .client-edit-card summary em {
    color: var(--client-clay-dark);
    border-color: #e8c8b7;
    background: var(--client-clay-pale);
}
.client-portal-body-v446 .client-pet-edit-card[open] summary,
.client-portal-body-v446 .client-edit-card[open] summary {
    border-bottom-color: var(--client-line);
    background: var(--client-sage-soft);
}
.client-portal-body-v446 .client-add-pet-card {
    border-color: #b8c6b3;
    background: var(--client-sage-soft);
}
.client-portal-body-v446 .client-add-pet-card summary em {
    color: var(--client-sage-dark);
    border-color: #c8d3c4;
    background: var(--client-paper);
}
.client-portal-body-v446 .questionnaire-hotel-access-form-v429 {
    border-color: #d5ddd1;
    background: var(--client-sage-soft);
}

/* Booking cards and actions */
.client-portal-body-v446 .client-booking-filter-v311 {
    border-color: var(--client-line);
    background: var(--client-ivory);
}
.client-portal-body-v446 .client-booking-filter-v311 a {
    color: var(--client-sage-dark);
}
.client-portal-body-v446 .client-booking-filter-v311 a.active {
    color: #fff;
    background: var(--client-clay);
    box-shadow: 0 6px 15px rgba(148, 63, 32, .16);
}
.client-portal-body-v446 .client-booking-filter-v311 a.active span {
    color: var(--client-clay-dark);
    background: #fff4ed;
}
.client-portal-body-v446 .client-booking-card {
    position: relative;
    overflow: hidden;
    border-color: var(--client-line);
    background: var(--client-paper);
    box-shadow: 0 8px 24px rgba(59, 48, 41, .05);
}
.client-portal-body-v446 .client-booking-card::before {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: var(--client-sage);
}
.client-portal-body-v446 .client-booking-card:hover {
    border-color: #d8c6b9;
    box-shadow: 0 12px 30px rgba(59, 48, 41, .09);
}
.client-portal-body-v446 .client-action-diary-v446 {
    color: var(--client-sage-dark);
    border-color: #cbd7c6;
    background: var(--client-sage-soft);
}
.client-portal-body-v446 .client-action-questionnaire-v446 {
    color: var(--client-clay-dark);
    border-color: #e4bba6;
    background: var(--client-clay-pale);
}
.client-portal-body-v446 .client-action-diary-v446:hover,
.client-portal-body-v446 .client-action-diary-v446:focus-visible {
    color: #fff;
    border-color: var(--client-sage);
    background: var(--client-sage);
}
.client-portal-body-v446 .client-action-questionnaire-v446:hover,
.client-portal-body-v446 .client-action-questionnaire-v446:focus-visible {
    color: #fff;
    border-color: var(--client-clay);
    background: var(--client-clay);
}

/* Guest profile follows the same public palette */
.client-portal-body-v446 .client-guest-hotel-v439,
.client-portal-body-v446 .client-guest-identity-v439 {
    border-color: var(--client-line);
    background: var(--client-paper);
}
.client-portal-body-v446 .client-guest-hotel-v439 {
    background: linear-gradient(135deg, var(--client-paper), var(--client-clay-pale));
}
.client-portal-body-v446 .client-guest-identity-v439 {
    background: linear-gradient(135deg, var(--client-paper), var(--client-sage-soft));
}
.client-portal-body-v446 .client-guest-avatar-v439,
.client-portal-body-v446 .client-guest-hotel-placeholder-v439 {
    color: #fff;
    background: var(--client-clay);
}
.client-portal-body-v446 .client-guest-eyebrow-v439 {
    color: var(--client-sage-dark);
}
.client-portal-body-v446 .client-guest-badge-v439 {
    color: var(--client-clay-dark);
    border-color: #e8c8b7;
    background: var(--client-clay-pale);
}
.client-portal-body-v446 .client-guest-account-prompt-v439 {
    border-color: #d5ddd1;
    background: var(--client-sage-soft);
}

@media (max-width: 700px) {
    .client-portal-body-v446 .client-profile-menu {
        gap: 7px;
    }
    .client-portal-body-v446 .client-profile-menu a {
        background: var(--client-paper);
    }
    .client-portal-body-v446 .client-profile-menu a.active {
        background: var(--client-clay);
    }
    .client-portal-body-v446 .client-profile-details-panel,
    .client-portal-body-v446 .client-profile-section-panel {
        padding: 16px;
    }
    .client-portal-body-v446 .client-account-security-v445 {
        padding: 14px;
    }
}

/* v447: pet profile photos across client and manager interfaces */
.pet-avatar-v447 {
    flex: 0 0 auto;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 16px;
    background: #f4e4d7;
    color: #9a4f39;
    border: 1px solid rgba(154, 79, 57, .18);
    font-size: 24px;
}
.pet-avatar-v447 img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}
.client-pet-profile-card-v447 > summary {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
}
.client-pet-card-avatar-v447 {
    width: 64px;
    height: 64px;
    border-radius: 20px;
    font-size: 30px;
}
.client-pet-card-copy-v447 {
    min-width: 0;
    display: grid;
    gap: 3px;
}
.client-pet-profile-editor-v447 {
    display: grid;
    gap: 16px;
    padding-top: 16px;
    border-top: 1px solid rgba(154, 79, 57, .14);
}
.client-pet-profile-heading-v447 {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.client-pet-profile-heading-v447 > div {
    display: grid;
    gap: 4px;
}
.client-pet-profile-heading-v447 strong {
    font-size: 18px;
    color: #3f332f;
}
.client-pet-profile-heading-v447 small {
    color: #73645e;
}
.client-pet-photo-editor-v447 {
    background: #fffaf4;
    border-color: rgba(154, 79, 57, .2);
}
.client-pet-basic-form-v447 {
    padding: 16px;
    border-radius: 18px;
    background: #fbf6ef;
    border: 1px solid rgba(154, 79, 57, .12);
}
.client-pet-questionnaire-link-v447 {
    display: grid;
    gap: 8px;
    margin-top: 18px;
    padding: 18px;
    border-radius: 18px;
    background: #f2e2d6;
    border: 1px solid rgba(154, 79, 57, .18);
}
.client-pet-questionnaire-main-v447 {
    width: 100%;
    min-height: 50px;
    justify-content: center;
    font-size: 16px;
}
.client-pet-access-v447 {
    margin-top: 14px;
    background: #eef3e8;
    border-color: rgba(98, 116, 82, .22);
}
.client-booking-pet-identity-v447,
.booking-diary-title-v447 {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}
.client-booking-pet-identity-v447 > div,
.booking-diary-title-v447 > div {
    min-width: 0;
    display: grid;
    gap: 3px;
}
.client-booking-avatar-v447 {
    width: 54px;
    height: 54px;
    border-radius: 17px;
}
.booking-pet-line-v447 {
    display: flex;
    align-items: center;
    gap: 10px;
}
.booking-pet-line-v447 > span:last-child {
    display: grid;
    gap: 2px;
}
.booking-pet-avatar-v447 {
    width: 42px;
    height: 42px;
    border-radius: 13px;
    font-size: 20px;
}
.current-stay-pet-card-v447 {
    grid-template-columns: auto minmax(0, 1fr) auto;
}
.current-stay-avatar-v447,
.booking-diary-avatar-v447,
.questionnaire-pet-avatar-v447 {
    width: 64px;
    height: 64px;
    border-radius: 20px;
    font-size: 30px;
}
.questionnaire-intro-v447 {
    display: flex;
    align-items: center;
    gap: 16px;
}
.questionnaire-intro-v447 > div {
    min-width: 0;
}
.questionnaire-intro-v447 h1,
.questionnaire-intro-v447 p {
    margin-top: 0;
}
@media (max-width: 640px) {
    .client-pet-profile-card-v447 > summary {
        grid-template-columns: 54px minmax(0, 1fr) auto;
        gap: 10px;
    }
    .client-pet-card-avatar-v447 {
        width: 54px;
        height: 54px;
        border-radius: 17px;
    }
    .client-pet-photo-editor-v447 {
        grid-template-columns: 86px minmax(0, 1fr);
    }
    .current-stay-pet-card-v447 {
        grid-template-columns: 58px minmax(0, 1fr);
    }
    .current-stay-pet-card-v447 .current-stay-badges,
    .current-stay-pet-card-v447 .actions-row {
        grid-column: 1 / -1;
    }
    .questionnaire-intro-v447 {
        align-items: flex-start;
    }
    .questionnaire-pet-avatar-v447 {
        width: 54px;
        height: 54px;
        border-radius: 17px;
    }
}
.booking-edit-pet-summary-v447 { display: inline-flex; align-items: center; gap: 10px; }
.booking-edit-pet-avatar-v447 { width: 42px; height: 42px; border-radius: 13px; font-size: 20px; }


/* v448: clearer questionnaire identity hierarchy */
.questionnaire-intro-v448 {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 28px;
}
.questionnaire-pet-avatar-v448 {
    flex: 0 0 auto;
    width: 82px;
    height: 82px;
    border-radius: 24px;
    font-size: 36px;
}
.questionnaire-intro-copy-v448 {
    min-width: 0;
    display: grid;
    gap: 5px;
    padding-top: 1px;
}
.questionnaire-kicker-v448 {
    margin: 0;
    color: var(--muted);
    font-size: 15px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.questionnaire-pet-name-v448 {
    margin: 2px 0 0;
    color: var(--text);
    font-size: clamp(32px, 4vw, 42px);
    line-height: 1.05;
    font-weight: 850;
    overflow-wrap: anywhere;
}
.questionnaire-owner-v448 {
    margin: 4px 0 0;
    color: var(--text);
    font-size: 19px;
    line-height: 1.35;
}
.questionnaire-owner-v448 span {
    color: var(--muted);
    font-weight: 700;
}
.questionnaire-owner-v448 strong {
    font-weight: 800;
}
.questionnaire-hotel-v448 {
    width: fit-content;
    margin: 4px 0 0;
    padding: 6px 10px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--soft);
    color: var(--text);
    font-size: 13px;
    font-weight: 750;
}
.questionnaire-notice-v448 {
    margin: 12px 0 0;
    max-width: 780px;
    font-size: 14px;
    line-height: 1.5;
}
@media (max-width: 640px) {
    .questionnaire-intro-v448 {
        gap: 14px;
        margin-bottom: 24px;
    }
    .questionnaire-pet-avatar-v448 {
        width: 64px;
        height: 64px;
        border-radius: 19px;
        font-size: 29px;
    }
    .questionnaire-kicker-v448 {
        font-size: 12px;
    }
    .questionnaire-pet-name-v448 {
        font-size: clamp(28px, 9vw, 36px);
    }
    .questionnaire-owner-v448 {
        font-size: 17px;
    }
    .questionnaire-notice-v448 {
        grid-column: 1 / -1;
        margin-top: 10px;
    }
}


/* v449: use exactly one pet visual in booking editor */
.booking-pet-avatar-v397 > .booking-edit-pet-avatar-v447 {
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: inherit;
    background: transparent;
}
.booking-pet-avatar-v397 > .booking-edit-pet-avatar-v447 > span {
    font-size: 28px;
}


/* v450: compact questionnaire controls in booking editor */
.booking-questionnaire-share-v437 {
    gap: 12px;
}
.booking-questionnaire-share-head-v450 {
    margin-bottom: 0;
}
.booking-questionnaire-share-head-v450 h2 {
    margin: 0;
}
.booking-questionnaire-share-row-v437 {
    padding: 16px 18px;
    background: #fff;
}
.booking-questionnaire-share-name-v450 {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
.booking-questionnaire-share-name-v450 strong {
    font-size: 18px;
}
.booking-questionnaire-share-badge-v450 {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 3px 9px;
    border: 1px solid #d8e0e9;
    border-radius: 999px;
    background: #f3f6f9;
    color: #526171;
    font-size: 12px;
    font-weight: 800;
}
/* v451: prominent open-questionnaire action */
.booking-questionnaire-open-v451 {
    width: fit-content;
    min-height: 42px;
    margin-top: 10px;
    padding-inline: 16px;
    justify-content: center;
    text-decoration: none !important;
    box-shadow: 0 8px 18px rgba(37, 99, 235, .16);
}
.booking-questionnaire-open-v451:hover {
    text-decoration: none !important;
}
.booking-questionnaire-share-result-v437 {
    margin-top: 2px;
}
.booking-questionnaire-share-status-v437 {
    font-size: 12px;
}
@media (max-width: 640px) {
    .booking-questionnaire-share-row-v437 {
        padding: 14px;
    }
    .booking-questionnaire-open-v451 {
        width: 100%;
    }
}


/* v452: clearer manager questionnaire identity header */
.questionnaire-manager-head-v452 {
    align-items: flex-start;
    gap: 24px;
    margin-bottom: 22px;
}
.questionnaire-manager-identity-v452 {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 18px;
}
.questionnaire-manager-avatar-v452 {
    flex: 0 0 auto;
    width: 82px;
    height: 82px;
    border-radius: 24px;
    font-size: 36px;
}
.questionnaire-manager-copy-v452 {
    min-width: 0;
    display: grid;
    gap: 7px;
}
.questionnaire-manager-kicker-v452 {
    margin: 0;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: .035em;
    text-transform: uppercase;
}
.questionnaire-manager-pet-name-v452 {
    margin: 2px 0 0;
    color: var(--text);
    font-size: clamp(34px, 4vw, 44px);
    line-height: 1.02;
    font-weight: 850;
    overflow-wrap: anywhere;
}
.questionnaire-manager-owner-v452 {
    margin: 2px 0 0;
    color: var(--text);
    font-size: 19px;
    line-height: 1.35;
}
.questionnaire-manager-owner-v452 span {
    color: var(--muted);
    font-weight: 700;
}
.questionnaire-manager-owner-v452 strong {
    font-weight: 800;
}
.questionnaire-manager-actions-v452 {
    flex: 0 0 auto;
}
@media (max-width: 720px) {
    .questionnaire-manager-head-v452 {
        display: grid;
        gap: 16px;
        margin-bottom: 20px;
    }
    .questionnaire-manager-identity-v452 {
        gap: 14px;
    }
    .questionnaire-manager-avatar-v452 {
        width: 66px;
        height: 66px;
        border-radius: 20px;
        font-size: 29px;
    }
    .questionnaire-manager-kicker-v452 {
        font-size: 12px;
    }
    .questionnaire-manager-pet-name-v452 {
        font-size: clamp(30px, 10vw, 38px);
    }
    .questionnaire-manager-owner-v452 {
        font-size: 17px;
    }
    .questionnaire-manager-actions-v452 {
        width: 100%;
    }
    .questionnaire-manager-actions-v452 .btn {
        flex: 1 1 180px;
        justify-content: center;
    }
}


/* v453: questionnaire status filter and visual state in pet client cards */
.client-questionnaire-filter-v453 select {
    min-width: 190px;
}
.pet-questionnaire-status-button-v453 {
    display: inline-grid;
    grid-template-columns: auto auto;
    grid-template-areas: "icon label" "icon status";
    align-items: center;
    justify-content: start;
    column-gap: 9px;
    row-gap: 1px;
    min-width: 190px;
    padding: 11px 16px;
    border-radius: 14px;
    text-decoration: none;
    font-weight: 800;
}
.pet-questionnaire-status-button-v453 > span:first-child {
    grid-area: icon;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    font-size: 17px;
}
.pet-questionnaire-status-button-v453 > span:nth-child(2) { grid-area: label; }
.pet-questionnaire-status-button-v453 small {
    grid-area: status;
    font-size: 12px;
    font-weight: 700;
}
.pet-questionnaire-status-button-v453.is-filled-v453 {
    border: 1px solid #a8c7aa;
    background: #eaf3e8;
    color: #315d3b;
    box-shadow: 0 7px 18px rgba(67, 105, 72, .12);
}
.pet-questionnaire-status-button-v453.is-filled-v453 > span:first-child {
    background: #6f9475;
    color: #fff;
}
.pet-questionnaire-status-button-v453.is-filled-v453 small { color: #55795c; }
.pet-questionnaire-status-button-v453.is-empty-v453 {
    border: 1px solid #ddcfc5;
    background: #fffaf6;
    color: #654f43;
}
.pet-questionnaire-status-button-v453.is-empty-v453 > span:first-child {
    background: #f0e6df;
    color: #8a6f60;
}
.pet-questionnaire-status-button-v453.is-empty-v453 small { color: #927c70; }
.pet-questionnaire-status-button-v453:hover { transform: translateY(-1px); }
@media (max-width: 640px) {
    .client-questionnaire-filter-v453,
    .client-questionnaire-filter-v453 select,
    .pet-questionnaire-status-button-v453 { width: 100%; }
}
/* v454 hotel staff and permission management */
.staff-card-v454{display:grid;gap:18px}.permission-grid-v454{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;border:1px solid var(--border,#ddd);border-radius:14px;padding:14px}.staff-row-v454{display:grid;gap:14px;padding:18px 0;border-top:1px solid var(--border,#ddd)}.staff-row-v454:first-of-type{border-top:0}.staff-summary-v454{display:flex;justify-content:space-between;gap:16px;align-items:center}.staff-summary-v454>div{display:grid;gap:3px}.staff-summary-v454 span{color:var(--muted,#6b7280);font-size:.92rem}@media(max-width:680px){.staff-summary-v454{align-items:flex-start;flex-direction:column}.permission-grid-v454{grid-template-columns:1fr}}


/* v459: consolidated care tasks page */
.tasks-page-head-v459 { display:grid; gap:16px; }
.tasks-count-v459 { min-width:44px; height:44px; border-radius:22px; display:grid; place-items:center; background:#eef4ef; color:#315f4b; font-weight:800; }
.tasks-tabs-v459 { display:flex; flex-wrap:wrap; gap:8px; }
.tasks-tabs-v459 a { padding:9px 14px; border-radius:999px; border:1px solid #d7ded8; background:#fff; color:#465149; text-decoration:none; font-weight:700; }
.tasks-tabs-v459 a.active { background:#315f4b; border-color:#315f4b; color:#fff; }
.tasks-list-v459 { display:grid; gap:12px; }
.task-card-v459 { display:grid; grid-template-columns:82px 58px minmax(0,1fr) 52px; gap:14px; align-items:center; padding:14px 16px; background:#fff; border:1px solid #e3e6e3; border-left:5px solid #8ca892; border-radius:18px; box-shadow:0 8px 24px rgba(45,59,49,.07); }
.task-card-v459.task-type-medication { border-left-color:#8c6bb1; }
.task-card-v459.task-type-feeding { border-left-color:#d38b52; }
.task-card-v459.task-type-walk { border-left-color:#4f8caf; }
.task-card-v459.task-type-grooming { border-left-color:#c56d91; }
.task-card-v459.task-type-health { border-left-color:#b95050; }
.task-card-v459.overdue { background:#fff7f4; border-color:#edc2b7; }
.task-card-v459.done { opacity:.72; background:#f5f7f5; }
.task-time-v459 { display:grid; gap:3px; text-align:center; }
.task-time-v459 strong { font-size:1.35rem; color:#2d3b31; }
.task-time-v459 small { color:#78817a; }
.task-pet-avatar-v459 { width:56px; height:56px; border-radius:18px; object-fit:cover; overflow:hidden; }
.task-body-v459 { min-width:0; display:grid; gap:7px; }
.task-pet-line-v459, .task-title-line-v459 { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.task-pet-line-v459 a { color:#25362b; text-decoration:none; font-size:1.05rem; }
.task-pet-line-v459 span { color:#6f786f; font-size:.9rem; }
.task-type-badge-v459 { padding:4px 8px; border-radius:999px; background:#f0f3f0; color:#56645a; font-size:.78rem; font-weight:800; }
.task-instructions-v459 summary { cursor:pointer; color:#79523d; font-weight:700; }
.task-instructions-v459 p { margin:7px 0 0; }
.task-done-meta-v459 { color:#315f4b; }
.task-toggle-v459 { display:grid; place-items:center; }
.task-check-v459 { width:44px; height:44px; border-radius:14px; border:2px solid #b7c3ba; background:#fff; color:transparent; font-size:1.35rem; font-weight:900; cursor:pointer; }
.task-check-v459:hover { border-color:#315f4b; color:#9bb0a0; }
.task-check-v459.checked { background:#315f4b; border-color:#315f4b; color:#fff; }
@media (max-width: 700px) {
  .task-card-v459 { grid-template-columns:52px minmax(0,1fr) 46px; gap:10px; padding:12px; }
  .task-time-v459 { grid-column:1 / -1; display:flex; text-align:left; gap:8px; align-items:baseline; }
  .task-time-v459 strong { font-size:1.15rem; }
  .task-pet-avatar-v459 { width:50px; height:50px; border-radius:15px; }
  .tasks-tabs-v459 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tasks-tabs-v459 a { text-align:center; }
}


/* v462: manager booking date modal */
.booking-date-control-v398 {
    appearance: none;
    text-align: left;
    padding: 0;
    font: inherit;
    cursor: pointer;
}
.booking-date-modal-v462[hidden] { display: none !important; }
.booking-date-modal-v462 {
    position: fixed;
    inset: 0;
    z-index: 12000;
    display: grid;
    place-items: center;
    padding: 18px;
}
.booking-date-modal-backdrop-v462 {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, .62);
    backdrop-filter: blur(3px);
}
.booking-date-modal-panel-v462 {
    position: relative;
    width: min(760px, 100%);
    max-height: calc(100vh - 36px);
    overflow: auto;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 28px 80px rgba(15, 23, 42, .3);
    padding: 18px;
}
.booking-date-modal-head-v462 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}
.booking-date-modal-head-v462 strong {
    display: block;
    font-size: 1.15rem;
    color: #172033;
}
.booking-date-modal-head-v462 small {
    display: block;
    margin-top: 4px;
    color: #64748b;
}
.booking-date-modal-close-v462 {
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: #f1f5f9;
    color: #334155;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}
.booking-date-range-v462 {
    display: grid;
    gap: 12px;
}
.booking-date-modal-actions-v462 {
    display: flex;
    justify-content: flex-end;
    margin-top: 14px;
}
.booking-date-modal-open-v462,
.booking-date-modal-open-v462 body {
    overflow: hidden;
}
@media (max-width: 780px) {
    .booking-date-modal-v462 { padding: 0; place-items: end stretch; }
    .booking-date-modal-panel-v462 {
        width: 100%;
        max-height: 92vh;
        border-radius: 22px 22px 0 0;
        padding: 14px;
    }
    .booking-date-modal-actions-v462 .btn { width: 100%; }
}

.closed-dates-override{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid #e7b76d;border-radius:12px;background:#fff7e8}.closed-dates-override input{margin-top:3px}.date-range-day.closed{border-color:#d58a43;background:#fff3df;color:#8b4b16}.date-range-day.closed::after{content:'•';position:absolute;right:4px;top:1px;color:#c46d22}


/* v465: compact manager date calendar and conditional closed-date override */
.closed-dates-override[hidden] {
    display: none !important;
}
.closed-dates-override {
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
}
.closed-dates-override input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
}
.booking-date-modal-panel-v462 {
    width: min(680px, calc(100vw - 32px));
    max-height: min(86vh, 660px);
    overflow: hidden;
    padding: 14px;
}
.booking-date-modal-head-v462 {
    margin-bottom: 10px;
}
.booking-date-modal-head-v462 small {
    margin-top: 2px;
}
.booking-date-range-v462 {
    gap: 8px;
}
.booking-date-range-v462 .date-range-toolbar {
    margin-bottom: 0;
}
.booking-date-range-v462 .date-range-calendar {
    padding: 10px;
    border-radius: 16px;
}
.booking-date-range-v462 .date-range-period-title {
    padding-bottom: 8px;
    margin-bottom: 7px;
    font-size: 1rem;
}
.booking-date-range-v462 .date-range-weekday-column {
    grid-template-rows: 28px repeat(7, 34px);
    gap: 4px;
}
.booking-date-range-v462 .date-range-weekday-spacer {
    min-height: 28px;
}
.booking-date-range-v462 .date-range-weeks-row {
    --date-range-day-size: 36px;
    --date-range-row-height: 34px;
    --date-range-gap: 4px;
}
.booking-date-range-v462 .date-range-week-col {
    grid-template-rows: 28px repeat(7, var(--date-range-row-height));
}
.booking-date-range-v462 .date-range-week-month {
    min-height: 28px;
    font-size: .82rem;
}
.booking-date-range-v462 .date-range-day {
    min-width: 34px;
    min-height: 34px;
    font-size: .88rem;
}
.booking-date-range-v462 .date-range-scroll {
    padding-bottom: 6px;
}
.booking-date-modal-actions-v462 {
    margin-top: 10px;
}
@media (max-width: 780px) {
    .booking-date-modal-panel-v462 {
        max-height: 88vh;
        overflow: hidden;
        padding: 12px;
    }
    .booking-date-range-v462 .date-range-weekday-column {
        grid-template-rows: 26px repeat(7, 32px);
    }
    .booking-date-range-v462 .date-range-weeks-row {
        --date-range-day-size: 34px;
        --date-range-row-height: 32px;
    }
    .booking-date-range-v462 .date-range-week-col {
        grid-template-rows: 26px repeat(7, var(--date-range-row-height));
    }
}

/* v467 booking room availability */
.room-availability-status-v467 {
  display: block;
  margin-top: 7px;
  line-height: 1.35;
  color: var(--muted, #667085);
}
.room-availability-status-v467.danger {
  color: #a72727;
  font-weight: 700;
}
select.room-select-conflict-v467 {
  border-color: #d45b5b;
  background: #fff6f6;
}
option.room-option-occupied-v467 {
  color: #9b2f2f;
}


/* v468: booking dates, pet count, housing and available rooms in one compact block */
.booking-top-setup-v468 {
  margin-top: 6px;
  padding-top: 16px;
  border-top: 1px solid var(--line, #e5e7eb);
}
.booking-top-setup-head-v468 {
  margin-bottom: 10px;
  font-size: 1rem;
}
.booking-top-setup-grid-v468 {
  display: grid;
  grid-template-columns: minmax(170px, .55fr) minmax(280px, 1.45fr);
  gap: 12px 16px;
  align-items: center;
}
.booking-top-setup-grid-v468 .booking-pet-count-v397 {
  margin: 0;
}
.booking-top-setup-grid-v468 .booking-stay-options-v396 {
  margin: 0;
}
.booking-top-rooms-v468 {
  margin-top: 14px;
}
.booking-top-rooms-grid-v468 {
  align-items: start;
}
.booking-top-rooms-grid-v468 .cost-summary {
  margin-top: 4px;
}
.booking-top-rooms-grid-v468 select option[hidden] {
  display: none;
}
@media (max-width: 780px) {
  .booking-top-setup-grid-v468 {
    grid-template-columns: 1fr;
  }
}


/* v471: compact equal room selectors and editable pet count */
.booking-pet-count-input-v471 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 92px;
  align-items: center;
  gap: 14px;
  min-height: 52px;
  padding: 8px 10px 8px 16px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #f8fafc;
  font-weight: 800;
}
.booking-pet-count-input-v471 input[type="number"] {
  width: 92px;
  min-width: 92px;
  height: 42px;
  padding: 6px 10px;
  text-align: center;
  font: inherit;
  font-size: 18px;
  font-weight: 850;
  background: #fff;
}
.booking-top-rooms-grid-v468 > label,
.booking-top-rooms-grid-v468 [data-extra-pet-unit-field] {
  width: 100%;
  max-width: 720px;
}
.booking-top-rooms-grid-v468 .place-select-row {
  display: grid;
  grid-template-columns: minmax(280px, 520px) max-content;
  justify-content: start;
  align-items: center;
  gap: 12px;
}
.booking-top-rooms-grid-v468 .place-select-row select {
  width: 100%;
  max-width: 520px;
}
@media (max-width: 720px) {
  .booking-top-rooms-grid-v468 .place-select-row {
    grid-template-columns: 1fr;
  }
  .booking-top-rooms-grid-v468 .place-select-row select,
  .booking-top-rooms-grid-v468 > label,
  .booking-top-rooms-grid-v468 [data-extra-pet-unit-field] {
    max-width: none;
  }
}

/* v472: all manager booking room selectors are one equal-width vertical list */
.booking-top-rooms-grid-v468 {
  display: block;
}
.booking-top-rooms-grid-v468 > label,
.booking-top-rooms-grid-v468 .extra-pet-places-list,
.booking-top-rooms-grid-v468 [data-extra-pet-unit-field] {
  width: min(100%, 720px);
  max-width: 720px;
}
.booking-top-rooms-grid-v468 > label,
.booking-top-rooms-grid-v468 [data-extra-pet-unit-field] {
  display: block;
  margin: 0 0 14px;
}
.booking-top-rooms-grid-v468 .extra-pet-places-list {
  display: block;
}
.booking-top-rooms-grid-v468 .place-select-row {
  display: grid;
  grid-template-columns: minmax(0, 520px) max-content;
  align-items: center;
  gap: 12px;
  width: 100%;
}
.booking-top-rooms-grid-v468 .place-select-row select {
  width: 520px;
  max-width: 100%;
}
.booking-top-rooms-grid-v468 .cost-summary {
  width: 100%;
  max-width: none;
  margin-top: 4px;
}
@media (max-width: 720px) {
  .booking-top-rooms-grid-v468 > label,
  .booking-top-rooms-grid-v468 .extra-pet-places-list,
  .booking-top-rooms-grid-v468 [data-extra-pet-unit-field] {
    width: 100%;
    max-width: none;
  }
  .booking-top-rooms-grid-v468 .place-select-row {
    grid-template-columns: 1fr;
  }
  .booking-top-rooms-grid-v468 .place-select-row select {
    width: 100%;
  }
}

/* v476: prominent booking save and clearer questionnaire actions/status */
.booking-save-primary-v476 {
    min-height: 54px;
    padding: 0 28px;
    border-radius: 15px;
    font-size: 17px;
    font-weight: 900;
    gap: 9px;
    background: linear-gradient(135deg, #ea6a32 0%, #c94f25 100%);
    border-color: #c94f25;
    box-shadow: 0 12px 26px rgba(201, 79, 37, .28);
}
.booking-save-primary-v476:hover {
    transform: translateY(-1px);
    box-shadow: 0 15px 30px rgba(201, 79, 37, .34);
}
.booking-questionnaire-fill-status-v476 {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 28px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
    border: 1px solid transparent;
}
.booking-questionnaire-fill-status-v476.is-filled-v476 {
    color: #18733b;
    background: #e9f8ee;
    border-color: #b9e4c7;
}
.booking-questionnaire-fill-status-v476.is-empty-v476 {
    color: #9b4c18;
    background: #fff4e8;
    border-color: #f0d0ad;
}
.booking-questionnaire-primary-actions-v476 {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
}
.booking-questionnaire-open-v451,
.booking-questionnaire-email-v476 {
    min-height: 42px;
    margin-top: 0;
    padding-inline: 16px;
    justify-content: center;
    color: #264766;
    background: #edf5fb;
    border: 1px solid #c9ddea;
    box-shadow: none;
}
.booking-questionnaire-open-v451:hover,
.booking-questionnaire-email-v476:hover {
    color: #173a58;
    background: #e1eef7;
    border-color: #abc9dc;
}
@media (max-width: 640px) {
    .booking-save-primary-v476 { width: 100%; }
    .booking-questionnaire-primary-actions-v476 { align-items: stretch; }
    .booking-questionnaire-open-v451,
    .booking-questionnaire-email-v476 { width: 100%; }
}

/* v477: status first, dates and stay length on one desktop row */
.booking-top-grid-v477 {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
}
.booking-status-first-v477 {
  width: min(100%, 720px);
  margin: 0;
}
.booking-status-first-v477 select {
  width: 100%;
}
.booking-dates-row-v477 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(190px, .42fr);
  gap: 14px;
  align-items: end;
}
.booking-dates-row-v477 > * {
  min-width: 0;
}
.booking-dates-row-v477 .booking-total-stay-v396 {
  min-height: 52px;
  margin: 0;
  align-self: end;
  justify-content: center;
}
@media (max-width: 760px) {
  .booking-status-first-v477 {
    width: 100%;
  }
  .booking-dates-row-v477 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .booking-dates-row-v477 .booking-total-stay-v396 {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
}
@media (max-width: 430px) {
  .booking-dates-row-v477 {
    gap: 8px;
  }
  .booking-dates-row-v477 .booking-date-control-v398 {
    padding-left: 12px;
    padding-right: 34px;
  }
  .booking-dates-row-v477 .booking-date-display-v398 {
    font-size: 15px;
  }
}

/* v483: visually separate questionnaires and stay diary from the booking form */
.booking-related-tools-v482 {
    display: grid;
    gap: 18px;
    margin: 30px 0 0;
    padding: 22px;
    border: 1px solid #d7dfd2;
    border-radius: 24px;
    background: linear-gradient(180deg, #eef4eb 0%, #f5efe7 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .88), 0 8px 24px rgba(44, 55, 41, .06);
}
.booking-related-tools-v482 > .panel {
    margin: 0;
    border: 1px solid rgba(164, 142, 115, .28);
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 8px 22px rgba(45, 50, 42, .055);
}
.booking-related-tools-v482 .booking-questionnaire-share-v437,
.booking-related-tools-v482 .booking-diary-shortcut-panel {
    position: relative;
    overflow: hidden;
}
.booking-related-tools-v482 .booking-questionnaire-share-v437::before,
.booking-related-tools-v482 .booking-diary-shortcut-panel::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: #8aa17b;
}
.booking-related-tools-v482 .booking-diary-shortcut-panel::before {
    background: #c77952;
}
@media (max-width: 700px) {
    .booking-related-tools-v482 {
        margin-top: 20px;
        padding: 12px;
        border-radius: 19px;
        gap: 12px;
    }
    .booking-related-tools-v482 > .panel {
        border-radius: 16px;
    }
}

/* v484: highlighted booking status panel */
.booking-status-first-v477 {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: 14px;
  width: min(100%, 760px);
  padding: 14px 16px;
  border: 1px solid rgba(194, 88, 46, .24);
  border-left: 5px solid #c65a32;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(255, 247, 239, .98), rgba(247, 242, 232, .96));
  box-shadow: 0 10px 26px rgba(89, 52, 34, .08);
  color: #342a25;
}
.booking-status-first-v477::before {
  content: "✓";
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  grid-row: 1 / span 2;
  border-radius: 14px;
  background: rgba(198, 90, 50, .13);
  color: #b54b29;
  font-size: 22px;
  font-weight: 900;
  line-height: 1;
}
.booking-status-first-v477 > select {
  grid-column: 2;
  min-height: 54px;
  margin-top: 6px;
  border-color: rgba(194, 88, 46, .34);
  background-color: rgba(255, 255, 255, .96);
  box-shadow: 0 4px 14px rgba(89, 52, 34, .06);
  font-weight: 800;
}
.booking-status-first-v477 > select:focus {
  border-color: #c65a32;
  box-shadow: 0 0 0 4px rgba(198, 90, 50, .12);
}
@media (max-width: 760px) {
  .booking-status-first-v477 {
    width: 100%;
    padding: 12px 13px;
    column-gap: 11px;
    border-radius: 16px;
  }
  .booking-status-first-v477::before {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    font-size: 20px;
  }
  .booking-status-first-v477 > select {
    min-height: 50px;
  }
}


/* v485: browser-only ownership footer. Hidden on narrow screens; native Android omits it server-side. */
.site-copyright-footer-v485 {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 6px 10px;
  margin: 0;
  padding: 16px 24px 18px;
  border-top: 1px solid rgba(91, 65, 48, .12);
  background: rgba(255, 252, 247, .88);
  color: #74675f;
  font-size: 12px;
  line-height: 1.4;
  text-align: center;
}
.site-copyright-footer-v485 strong {
  color: #9f472c;
  font-weight: 800;
}
@media (max-width: 760px) {
  .site-copyright-footer-v485 { display: none; }
}


/* v486 — information, legal and FAQ pages */
.site-copyright-footer-v485 { justify-content: space-between; }
.site-copyright-copy-v486, .site-footer-links-v486 { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.site-footer-links-v486 a { color: inherit; text-decoration: none; font-weight: 700; }
.site-footer-links-v486 a:hover { color: #a74f34; text-decoration: underline; }
.info-page-v486 { overflow: hidden; }
.info-hero-v486 { display: grid; grid-template-columns: 88px 1fr; gap: 22px; align-items: center; padding-bottom: 26px; border-bottom: 1px solid rgba(13,31,51,.09); }
.info-hero-v486 img { width: 88px; height: 88px; object-fit: contain; }
.info-hero-v486 h1, .faq-heading-v486 h1 { margin: 2px 0 10px; }
.info-hero-v486 p, .faq-heading-v486 p { margin-bottom: 0; color: var(--muted); }
.info-kicker-v486 { margin: 0 !important; color: #a74f34 !important; font-size: 12px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.info-facts-v486 { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; margin: 26px 0 8px; }
.info-facts-v486 section { display: grid; gap: 5px; padding: 16px; border-radius: 15px; background: #f8f4ef; border: 1px solid rgba(167,79,52,.12); }
.info-facts-v486 span { color: var(--muted); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.info-facts-v486 strong { overflow-wrap: anywhere; }
.faq-heading-v486 { margin-bottom: 28px; }
.faq-group-v486 { margin-top: 28px; }
.faq-group-v486 h2 { margin-bottom: 12px; }
.faq-list-v486 { display: grid; gap: 10px; }
.faq-item-v486 { border: 1px solid rgba(13,31,51,.1); border-radius: 15px; background: #fbfcfb; overflow: hidden; }
.faq-item-v486 summary { cursor: pointer; list-style: none; padding: 15px 48px 15px 17px; font-weight: 800; position: relative; }
.faq-item-v486 summary::-webkit-details-marker { display: none; }
.faq-item-v486 summary::after { content: '+'; position: absolute; right: 17px; top: 50%; transform: translateY(-50%); font-size: 22px; color: #a74f34; }
.faq-item-v486[open] summary::after { content: '−'; }
.faq-item-v486 p { margin: 0; padding: 0 17px 17px; color: var(--muted); }
.faq-contact-v486 { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 18px; margin-top: 30px; padding: 18px; border-radius: 16px; background: #eef6f1; border: 1px solid rgba(72,121,90,.16); }
@media (max-width: 720px) {
  .info-hero-v486 { grid-template-columns: 58px 1fr; gap: 14px; }
  .info-hero-v486 img { width: 58px; height: 58px; }
  .info-facts-v486 { grid-template-columns: 1fr; }
}

/* v487: current stays readability on desktop */
.current-stays-grid {
    grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
    align-items: start;
}
.current-stay-unit-card {
    min-width: 0;
}
.current-stay-pet-card-v447 {
    grid-template-columns: 64px minmax(0, 1fr);
    align-items: start;
    column-gap: 14px;
}
.current-stay-pet-card-v447 > div:nth-child(2) {
    min-width: 0;
}
.current-stay-pet-card-v447 > div:nth-child(2) h4,
.current-stay-pet-card-v447 > div:nth-child(2) p {
    overflow-wrap: anywhere;
}
.current-stay-pet-card-v447 .current-stay-badges {
    grid-column: 2;
    justify-content: flex-start;
}
.current-stay-pet-card-v447 .current-stay-badges span {
    max-width: 100%;
    white-space: normal;
    line-height: 1.25;
}
.current-stay-pet-card-v447 .actions-row {
    grid-column: 1 / -1;
    margin-top: 2px;
}
@media (min-width: 1200px) {
    .current-stays-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (min-width: 1580px) {
    .current-stays-grid {
        grid-template-columns: repeat(4, minmax(360px, 1fr));
    }
}
@media (max-width: 900px) {
    .current-stays-grid {
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    }
}
@media (max-width: 640px) {
    .current-stays-grid {
        grid-template-columns: 1fr;
    }
    .current-stay-pet-card-v447 {
        grid-template-columns: 54px minmax(0, 1fr);
    }
}

/* v488: one shared action row for pets from the same booking */
.current-stay-booking-group {
    display: grid;
    gap: 12px;
}
.current-stay-booking-group + .current-stay-booking-group {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid rgba(15, 23, 42, .08);
}
.current-stay-booking-actions {
    margin-top: -2px;
    padding: 0 2px 2px;
}
@media (max-width: 640px) {
    .current-stay-booking-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }
}

/* v491: native Android shell owns navigation chrome. */
.manager-native-app-v331 .app-shell {
    display: block;
    min-height: 100%;
}
.manager-native-app-v331 .sidebar,
.manager-native-app-v331 .topbar {
    display: none !important;
}
.manager-native-app-v331 .main {
    width: 100%;
    min-width: 0;
    padding: 14px 12px 20px;
}
@media (min-width: 760px) {
    .manager-native-app-v331 .main {
        padding: 18px 16px 24px;
    }
}

/* v492: keep one stable compact PetBooking brand header inside the native Android shell. */
.manager-native-app-v331 .sidebar {
    display: block !important;
    position: sticky;
    top: 0;
    z-index: 2147483000;
    width: 100%;
    height: auto;
    min-height: 0;
    padding: 10px 12px;
    overflow: visible;
    border-right: 0;
    border-bottom: 1px solid rgba(255,255,255,.10);
    box-shadow: 0 6px 18px rgba(5, 15, 30, .14);
}
.manager-native-app-v331 .manager-mobile-header-v336 {
    display: flex !important;
    align-items: center;
    min-height: 48px;
}
.manager-native-app-v331 .manager-mobile-header-v336 .brand {
    min-width: 0;
    flex: 1 1 auto;
}
.manager-native-app-v331 .manager-mobile-header-v336 .brand-mark {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
}
.manager-native-app-v331 .manager-mobile-header-v336 .brand-title {
    font-size: 17px;
    line-height: 1.15;
}
.manager-native-app-v331 .manager-mobile-header-v336 .brand-subtitle {
    font-size: 9px;
    line-height: 1.25;
    letter-spacing: .10em;
}
.manager-native-app-v331 .manager-menu-toggle-v336,
.manager-native-app-v331 .manager-mobile-panel-v336 {
    display: none !important;
}
.manager-native-app-v331 .topbar {
    display: none !important;
}
.manager-native-app-v331 .main {
    padding-top: 12px;
}


/* v494: always-visible pet count decrease/increase controls */
.booking-pet-count-stepper-v494 {
  grid-template-columns: minmax(0, 1fr) auto;
}
.booking-pet-count-stepper-control-v494 {
  display: grid;
  grid-template-columns: 44px 82px 44px;
  align-items: stretch;
  gap: 6px;
}
.booking-pet-count-stepper-control-v494 input[type="number"] {
  width: 82px;
  min-width: 82px;
  margin: 0;
  padding: 6px 4px;
  -moz-appearance: textfield;
  appearance: textfield;
}
.booking-pet-count-stepper-control-v494 input[type="number"]::-webkit-inner-spin-button,
.booking-pet-count-stepper-control-v494 input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.booking-pet-count-step-v494 {
  width: 44px;
  min-width: 44px;
  height: 42px;
  border: 1px solid #cdd7e1;
  border-radius: 13px;
  background: #fff;
  color: #24405f;
  font: inherit;
  font-size: 30px;
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  box-shadow: 0 2px 7px rgba(28, 48, 74, 0.07);
}
.booking-pet-count-step-v494:hover,
.booking-pet-count-step-v494:focus-visible {
  border-color: #6eaaf0;
  background: #f2f7fd;
  outline: none;
}
.booking-pet-count-step-v494:active {
  transform: translateY(1px);
  background: #e9f2fc;
}
.booking-pet-count-step-v494:disabled {
  opacity: .35;
  cursor: default;
  transform: none;
}
@media (max-width: 560px) {
  .booking-pet-count-stepper-v494 {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    padding-left: 14px;
    padding-right: 8px;
  }
  .booking-pet-count-stepper-control-v494 {
    grid-template-columns: 46px 72px 46px;
    gap: 5px;
  }
  .booking-pet-count-stepper-control-v494 input[type="number"] {
    width: 72px;
    min-width: 72px;
  }
  .booking-pet-count-step-v494 {
    width: 46px;
    min-width: 46px;
    height: 46px;
  }
}

/* v495 — payment history */
.booking-payment-panel-v495 {
    margin-top: 10px;
    padding: 18px;
    border: 1px solid #d9e1e7;
    border-radius: 20px;
    background: #f8fafb;
}
.booking-payment-panel-head-v495 {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 14px;
}
.booking-payment-panel-head-v495 h3 {
    margin: 0 0 4px;
    font-size: 20px;
}
.booking-payment-panel-head-v495 p {
    margin: 0;
    color: #6c7a89;
    font-size: 14px;
}
.booking-payment-totals-v495 {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.booking-payment-totals-v495 span {
    padding: 8px 12px;
    border-radius: 12px;
    background: #fff;
    border: 1px solid #e0e6ea;
    white-space: nowrap;
}
.booking-payment-history-v495 {
    display: grid;
    gap: 8px;
    margin-bottom: 14px;
}
.booking-payment-row-v495 {
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid #dfe5e9;
    background: #fff;
}
.booking-payment-row-main-v495 {
    display: grid;
    grid-template-columns: minmax(130px, 0.8fr) minmax(110px, 0.6fr) minmax(130px, 1fr);
    gap: 12px;
    align-items: center;
}
.booking-payment-date-v495 { color: #657586; }
.booking-payment-amount-v495 { font-size: 17px; color: #172536; }
.booking-payment-type-v495 {
    justify-self: start;
    padding: 5px 9px;
    border-radius: 999px;
    background: #edf5f1;
    color: #2d6751;
    font-weight: 700;
}
.booking-payment-row-actions-v495 {
    display: flex;
    gap: 8px;
    margin-top: 10px;
}
.booking-payment-action-btn-v495 {
    min-height: 36px;
    padding: 7px 12px;
}
.booking-payment-edit-v495 {
    display: grid;
    grid-template-columns: minmax(120px, 180px) minmax(160px, 240px) auto auto;
    gap: 8px;
    align-items: center;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #edf0f2;
}
.booking-payment-edit-v495[hidden] { display: none !important; }
.booking-payment-edit-v495 input,
.booking-payment-edit-v495 select,
.booking-payment-add-v495 input,
.booking-payment-add-v495 select {
    width: 100%;
}
.booking-payment-add-v495 {
    display: grid;
    grid-template-columns: minmax(150px, 220px) minmax(180px, 260px) auto;
    gap: 12px;
    align-items: end;
    padding-top: 14px;
    border-top: 1px solid #dfe5e9;
}
.booking-payment-add-v495 label {
    display: grid;
    gap: 6px;
    font-weight: 700;
}
.booking-payment-add-btn-v495 {
    min-height: 46px;
    padding-left: 20px;
    padding-right: 20px;
}
.booking-payment-empty-v495,
.booking-payment-save-first-v495 {
    padding: 14px;
    border-radius: 12px;
    background: #fff;
    color: #6c7a89;
    border: 1px dashed #ccd6dc;
    margin-bottom: 12px;
}
@media (max-width: 720px) {
    .booking-payment-panel-v495 { padding: 14px; border-radius: 16px; }
    .booking-payment-panel-head-v495 { display: block; }
    .booking-payment-totals-v495 { justify-content: flex-start; margin-top: 12px; }
    .booking-payment-row-main-v495 { grid-template-columns: 1fr auto; }
    .booking-payment-type-v495 { grid-column: 1 / -1; }
    .booking-payment-edit-v495,
    .booking-payment-add-v495 { grid-template-columns: 1fr; }
    .booking-payment-add-btn-v495 { width: 100%; }
}

/* v497 — booking payments are a separate post-save workflow */
#booking-save-anchor {
    scroll-margin-top: 24px;
}
.booking-save-confirmation-v497 {
    flex: 1 0 100%;
    padding: 13px 16px;
    border: 1px solid #b7dfca;
    border-radius: 14px;
    background: #edf8f2;
    color: #17623f;
    font-weight: 800;
}
.booking-post-save-payments-v497 {
    margin-top: 18px;
    padding: 22px;
    border: 1px solid #d9e1df;
    border-radius: 24px;
    background: linear-gradient(180deg, #f4f8f5 0%, #f8faf8 100%);
    box-shadow: 0 10px 30px rgba(28, 45, 39, 0.05);
}
.booking-post-save-payments-head-v497 {
    margin-bottom: 14px;
}
.booking-post-save-payments-head-v497 h2 {
    margin: 0 0 5px;
    font-size: clamp(1.25rem, 2vw, 1.55rem);
}
.booking-post-save-payments-head-v497 p {
    margin: 0;
    color: var(--muted, #6f7c89);
}
.booking-post-save-payments-v497 .booking-payment-panel-v495,
.booking-post-save-payments-v497 .amount-due-display {
    width: 100%;
}
@media (max-width: 720px) {
    #booking-save-anchor { scroll-margin-top: 12px; }
    .booking-post-save-payments-v497 {
        margin-top: 12px;
        padding: 14px;
        border-radius: 18px;
    }
}


/* v498: booking-page quick section navigation */
.booking-page-jump-nav-v498 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 16px;
    padding: 10px;
    border: 1px solid rgba(24, 49, 68, .10);
    border-radius: 18px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 8px 24px rgba(24, 49, 68, .06);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}
.booking-page-jump-nav-v498::-webkit-scrollbar { display: none; }
.booking-page-jump-link-v498 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    flex: 0 0 auto;
    min-height: 42px;
    padding: 9px 14px;
    border: 1px solid rgba(24, 49, 68, .12);
    border-radius: 13px;
    background: #f7f9fb;
    color: #162638;
    font-weight: 800;
    line-height: 1.15;
    text-decoration: none;
    white-space: nowrap;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease;
}
.booking-page-jump-link-v498:hover,
.booking-page-jump-link-v498:focus-visible {
    background: #fff;
    border-color: rgba(39, 111, 238, .34);
    box-shadow: 0 6px 16px rgba(39, 111, 238, .10);
    transform: translateY(-1px);
}
.booking-page-jump-link-v498 span[aria-hidden="true"] { font-size: 1.05em; }
.booking-page-anchor-v498 { scroll-margin-top: 104px; }
html { scroll-behavior: smooth; }

@media (max-width: 720px) {
    .booking-page-jump-nav-v498 {
        margin-left: -2px;
        margin-right: -2px;
        padding: 8px;
        gap: 7px;
        border-radius: 15px;
    }
    .booking-page-jump-link-v498 {
        min-height: 40px;
        padding: 8px 11px;
        border-radius: 11px;
        font-size: .92rem;
    }
    .booking-page-anchor-v498 { scroll-margin-top: 86px; }
}


/* v500 — compact payment history rows (fixed real CSS line breaks) */
.booking-payment-row-v495 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 8px 12px;
    border-radius: 12px;
}
.booking-payment-row-main-v495 {
    display: grid;
    grid-template-columns: minmax(145px, .8fr) minmax(100px, .55fr) minmax(120px, .8fr);
    gap: 14px;
    align-items: center;
    min-width: 0;
}
.booking-payment-row-actions-v495 {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 0;
}
.booking-payment-action-btn-v495 {
    min-height: 34px;
    padding: 6px 10px;
}
.booking-payment-action-icon-v499 {
    display: none;
    font-size: 18px;
    line-height: 1;
}
.booking-payment-edit-v495 {
    grid-column: 1 / -1;
    margin-top: 2px;
}
@media (max-width: 720px) {
    .booking-payment-row-v495 {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 7px;
        padding: 7px 8px;
    }
    .booking-payment-row-main-v495 {
        display: flex;
        align-items: center;
        gap: 7px;
        min-width: 0;
        white-space: nowrap;
        overflow: hidden;
    }
    .booking-payment-date-v495 {
        font-size: 12px;
        flex: 0 1 auto;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .booking-payment-amount-v495 {
        font-size: 14px;
        flex: 0 0 auto;
    }
    .booking-payment-type-v495 {
        grid-column: auto;
        padding: 3px 6px;
        font-size: 12px;
        flex: 0 1 auto;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .booking-payment-row-actions-v495 { gap: 4px; }
    .booking-payment-action-btn-v495 {
        width: 34px;
        min-width: 34px;
        height: 34px;
        min-height: 34px;
        padding: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 10px;
    }
    .booking-payment-action-text-v499 { display: none; }
    .booking-payment-action-icon-v499 { display: inline; }
}
@media (max-width: 430px) {
    .booking-payment-date-v495 { max-width: 105px; }
    .booking-payment-type-v495 { max-width: 86px; }
}


/* v504 — payment flow: balance -> add payment -> history */
.booking-payment-balance-v504{display:flex;align-items:center;gap:34px;flex:1 1 auto}
.booking-payment-balance-item-v504{display:flex;align-items:baseline;gap:10px;white-space:nowrap}
.booking-payment-balance-item-v504 span{font-weight:800}
.booking-payment-balance-item-v504 strong{font-size:1.35rem}
.booking-payment-balance-item-v504.is-due strong{font-size:1.8rem}
.booking-payment-history-title-v504{margin:18px 0 10px}
.booking-payment-history-title-v504 h3{margin:0 0 4px}
.booking-payment-history-title-v504 p{margin:0}
@media(max-width:720px){
.booking-payment-balance-v504{width:100%;gap:10px;flex-direction:column;align-items:stretch}
.booking-payment-balance-item-v504{justify-content:space-between}
}


/* v505 — payment summary emphasis */
.booking-payment-balance-item-v504:not(.is-due) strong,
.booking-payment-balance-item-v504:not(.is-due) [data-payment-total-paid] {
    color: #237653;
}

/* Status autosave success message must be clearly green, not muted gray. */
.booking-status-autosave-note-v502.is-saved {
    color: #237653 !important;
    font-weight: 800;
}
.booking-status-autosave-note-v502.is-error {
    color: #b42318 !important;
}


/* v506 — ownership / official app statement */
.ownership-statement-v506,
.ownership-link-card-v506 {
    margin: 18px 0;
    padding: 18px 20px;
    border: 1px solid rgba(35, 118, 83, .22);
    border-radius: 18px;
    background: rgba(235, 247, 241, .78);
}
.ownership-statement-v506 strong,
.ownership-link-card-v506 strong {
    display: block;
    margin-bottom: 8px;
    font-size: 1.05rem;
    color: #237653;
}
.ownership-statement-v506 p,
.ownership-link-card-v506 p {
    margin: 0 0 12px;
}


/* v507 — single payment-history heading in the correct position */
.booking-payment-history-title-v507 {
    margin: 18px 0 10px;
}
.booking-payment-history-title-v507 h3 {
    margin: 0;
}


/* v508 — compact mobile layout for extra expenses + discount controls */
@media (max-width: 720px) {
  .booking-amount-row-v508 {
    display: grid !important;
    grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr) !important;
    gap: 10px !important;
    align-items: end !important;
  }
  .booking-amount-row-v508 > .compact-money-field {
    min-width: 0 !important;
    margin: 0 !important;
  }
  .booking-amount-row-v508 > .discount-field {
    min-width: 0 !important;
  }
  .booking-amount-row-v508 .discount-input-row-with-scope {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 74px minmax(108px, .95fr) !important;
    gap: 8px !important;
    align-items: stretch !important;
  }
  .booking-amount-row-v508 input,
  .booking-amount-row-v508 select {
    min-width: 0 !important;
    width: 100% !important;
  }
}
@media (max-width: 480px) {
  /* On narrow phones: expenses get their own row; the 3 discount controls stay together below. */
  .booking-amount-row-v508 {
    grid-template-columns: 1fr !important;
  }
  .booking-amount-row-v508 .discount-input-row-with-scope {
    grid-template-columns: minmax(0, 1fr) 72px minmax(112px, 1fr) !important;
  }
}


/* v510 — booking notes collapsed by default */
.booking-notes-collapsible-v510 {
    border: 1px solid var(--border, #d9dee7);
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
}
.booking-notes-collapsible-v510 > summary {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 54px;
    padding: 12px 16px;
    cursor: pointer;
    font-weight: 800;
    list-style: none;
    user-select: none;
}
.booking-notes-collapsible-v510 > summary::-webkit-details-marker { display: none; }
.booking-notes-plus-v510 {
    position: relative;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
}
.booking-notes-plus-v510::before,
.booking-notes-plus-v510::after {
    content: "";
    position: absolute;
    left: 5px;
    top: 11px;
    width: 14px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
}
.booking-notes-plus-v510::after { transform: rotate(90deg); }
.booking-notes-collapsible-v510[open] .booking-notes-plus-v510::after { display: none; }
.booking-notes-body-v510 { padding: 0 16px 16px; }
.booking-notes-body-v510 textarea { width: 100%; margin: 0; }


/* v511 — payment status below add-payment action */
.booking-payment-status-row-v511 {
    margin-top: 12px;
    display: flex;
    justify-content: flex-end;
}
.booking-payment-status-row-v511 .payment-status-field {
    width: min(100%, 440px);
}
@media (max-width: 720px) {
    .booking-payment-status-row-v511 {
        justify-content: stretch;
    }
    .booking-payment-status-row-v511 .payment-status-field {
        width: 100%;
    }
}


/* v512 — make lower booking status impossible to miss */
.booking-payment-status-highlight-v512 {
    margin-top: 16px;
    padding: 14px;
    border: 2px solid rgba(234, 112, 72, .45);
    border-radius: 18px;
    background: linear-gradient(180deg, #fff7f1 0%, #fffaf7 100%);
    box-shadow: 0 8px 22px rgba(154, 67, 39, .08);
}
.booking-payment-status-highlight-v512 .payment-status-field {
    display: grid;
    gap: 8px;
}
.booking-payment-status-highlight-v512 .payment-status-field > span {
    font-size: 1rem;
    font-weight: 900;
    color: #8e3f28;
}
.booking-payment-status-highlight-v512 .payment-status-field select {
    border: 2px solid rgba(234, 112, 72, .45);
    background: #fff;
    font-weight: 800;
}
.booking-payment-status-highlight-v512 .booking-status-autosave-note-v502.is-saved {
    color: #237653 !important;
    font-weight: 900;
}


/* v513 — top and lower booking status use the same visual language */
.booking-status-highlight-v513 {
    padding: 14px;
    border: 2px solid rgba(234, 112, 72, .45);
    border-radius: 18px;
    background: linear-gradient(180deg, #fff7f1 0%, #fffaf7 100%);
    box-shadow: 0 8px 22px rgba(154, 67, 39, .08);
}
.booking-status-highlight-v513 > label {
    display: grid;
    gap: 8px;
    margin: 0;
    font-size: 1rem;
    font-weight: 900;
    color: #8e3f28;
}
.booking-status-highlight-v513 select {
    width: 100%;
    border: 2px solid rgba(234, 112, 72, .45);
    background: #fff;
    font-weight: 800;
}


/* v514 — top and bottom booking-status blocks are intentionally identical */
.booking-status-unified-v514 {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
    margin: 0 !important;
    padding: 14px !important;
    border: 2px solid rgba(234, 112, 72, .45) !important;
    border-radius: 18px !important;
    background: linear-gradient(180deg, #fff7f1 0%, #fffaf7 100%) !important;
    box-shadow: 0 8px 22px rgba(154, 67, 39, .08) !important;
    display: block !important;
}
.booking-status-bottom-v514 {
    margin-top: 16px !important;
}
.booking-status-field-v514 {
    width: 100% !important;
    max-width: none !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #8e3f28 !important;
    font-size: 1rem !important;
    font-weight: 900 !important;
}
.booking-status-field-v514 > select {
    width: 100% !important;
    min-height: 46px !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    border: 2px solid rgba(234, 112, 72, .45) !important;
    border-radius: 12px !important;
    background: #fff !important;
    color: inherit !important;
    font: inherit !important;
    font-weight: 800 !important;
}
.booking-status-top-v514 .booking-status-icon-v484,
.booking-status-top-v514::before,
.booking-status-field-v514::before {
    display: none !important;
    content: none !important;
}
.booking-status-bottom-v514 .booking-status-autosave-note-v502 {
    margin-top: 0;
}
.booking-status-bottom-v514 .booking-status-autosave-note-v502:empty {
    display: none;
}


/* v515 — one exact compact component for BOTH booking status fields */
.booking-status-card-v515 {
    box-sizing: border-box !important;
    width: 360px !important;
    max-width: 100% !important;
    padding: 12px 14px !important;
    margin: 0 !important;
    border: 1px solid rgba(208, 104, 73, .38) !important;
    border-radius: 14px !important;
    background: #fff7f3 !important;
    box-shadow: none !important;
}
.booking-status-field-v515 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 6px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #7f3e2b !important;
    font-size: .95rem !important;
    font-weight: 800 !important;
}
.booking-status-field-v515 > span {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}
.booking-status-field-v515 > select {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 42px !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 0 36px 0 12px !important;
    border: 1px solid rgba(208, 104, 73, .42) !important;
    border-radius: 10px !important;
    background-color: #fff !important;
    color: #3f332f !important;
    font: inherit !important;
    font-weight: 700 !important;
}
.booking-status-card-wrap-v515 {
    margin-top: 14px !important;
    display: flex !important;
    justify-content: flex-start !important;
    width: auto !important;
}
.booking-status-card-v515 .booking-status-autosave-note-v502 {
    margin: 0 !important;
    min-height: 0 !important;
    font-size: .85rem !important;
}
.booking-status-card-v515 .booking-status-autosave-note-v502:empty {
    display: none !important;
}
/* Kill visual leftovers from previous status versions. */
.booking-status-card-v515::before,
.booking-status-card-v515::after,
.booking-status-field-v515::before,
.booking-status-field-v515::after {
    content: none !important;
    display: none !important;
}
@media (max-width: 480px) {
    .booking-status-card-v515 {
        width: 100% !important;
    }
    .booking-status-card-wrap-v515 {
        width: 100% !important;
    }
}


/* v516 — upper booking status is outside the booking form and autosaves independently */
.booking-status-top-independent-v516 {
    margin: 0 0 16px 0 !important;
}


/* v517 — payment method icons + mobile tap detail modal */
.booking-payment-type-icon-v517 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 28px;
    padding: 0 7px;
    border-radius: 9px;
    background: #f3eee9;
    font-weight: 900;
    line-height: 1;
}
.booking-payment-row-v517 {
    cursor: default;
}
.booking-payment-modal-v517[hidden] { display: none !important; }

@media (max-width: 720px) {
    .booking-payment-row-v517 {
        cursor: pointer;
    }
    .booking-payment-row-v517 .booking-payment-row-main-v495 {
        display: grid !important;
        grid-template-columns: minmax(92px, auto) 1fr auto !important;
        align-items: center !important;
        gap: 8px !important;
        min-width: 0 !important;
    }
    .booking-payment-row-v517 .booking-payment-date-v495 {
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        font-size: .84rem !important;
    }
    .booking-payment-row-v517 .booking-payment-amount-v495 {
        white-space: nowrap !important;
        text-align: right !important;
    }
    .booking-payment-row-v517 .booking-payment-row-actions-v495 {
        display: none !important;
    }
    .booking-payment-type-icon-v517 {
        min-width: 34px;
        height: 32px;
    }

    .booking-payment-modal-v517 {
        position: fixed;
        inset: 0;
        z-index: 10050;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 20px;
    }
    .booking-payment-modal-backdrop-v517 {
        position: absolute;
        inset: 0;
        background: rgba(27, 24, 22, .48);
    }
    .booking-payment-modal-card-v517 {
        position: relative;
        z-index: 1;
        width: min(100%, 390px);
        padding: 20px;
        border-radius: 20px;
        background: #fff;
        box-shadow: 0 22px 60px rgba(0,0,0,.22);
    }
    .booking-payment-modal-close-v517 {
        position: absolute;
        top: 10px;
        right: 12px;
        width: 36px;
        height: 36px;
        border: 0;
        border-radius: 50%;
        background: #f3eee9;
        font-size: 1.45rem;
        cursor: pointer;
    }
    .booking-payment-modal-card-v517 h3 {
        margin: 0 44px 14px 0;
    }
    .booking-payment-modal-amount-v517 {
        margin: 6px 0 18px;
        font-size: 1.75rem;
        font-weight: 900;
        color: #237653;
    }
    .booking-payment-modal-details-v517 {
        margin: 0;
        display: grid;
        gap: 12px;
    }
    .booking-payment-modal-details-v517 > div {
        display: grid;
        grid-template-columns: 110px 1fr;
        gap: 10px;
        align-items: baseline;
    }
    .booking-payment-modal-details-v517 dt {
        font-weight: 800;
        color: var(--muted, #667085);
    }
    .booking-payment-modal-details-v517 dd {
        margin: 0;
        font-weight: 700;
    }
    .booking-payment-modal-actions-v517 {
        display: flex;
        gap: 10px;
        margin-top: 20px;
    }
    .booking-payment-modal-actions-v517 .btn {
        flex: 1 1 0;
    }
    body.payment-modal-open-v517 {
        overflow: hidden;
    }
}


/* v518 — desktop uses words; mobile uses icons but keeps edit/delete buttons */
.booking-payment-type-v518 {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    white-space: nowrap;
}
.booking-payment-type-v518 .booking-payment-type-icon-v517 {
    display: none;
}
.booking-payment-type-v518 .booking-payment-type-text-v518 {
    display: inline;
}
.booking-payment-type-icon-v517.is-paypal-v518 {
    font-family: Arial, Helvetica, sans-serif;
    font-style: italic;
    font-weight: 900;
    letter-spacing: -1px;
}

@media (max-width: 720px) {
    .booking-payment-type-v518 .booking-payment-type-icon-v517 {
        display: inline-flex !important;
    }
    .booking-payment-type-v518 .booking-payment-type-text-v518 {
        display: none !important;
    }

    /* Keep the action buttons visible on mobile. */
    .booking-payment-row-v517 .booking-payment-row-actions-v495 {
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
        flex: 0 0 auto !important;
    }
    .booking-payment-row-v517 .booking-payment-action-btn-v495 {
        min-width: 34px !important;
        width: 34px !important;
        height: 34px !important;
        padding: 0 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        border-radius: 10px !important;
    }
    .booking-payment-row-v517 .booking-payment-action-text-v499 {
        display: none !important;
    }
    .booking-payment-row-v517 .booking-payment-action-icon-v499 {
        display: inline !important;
        line-height: 1 !important;
        font-size: 1rem !important;
    }

    /* Make the row fit: date | amount | method icon | edit | delete. */
    .booking-payment-row-v517 {
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
    }
    .booking-payment-row-v517 .booking-payment-row-main-v495 {
        flex: 1 1 auto !important;
        display: grid !important;
        grid-template-columns: minmax(80px, auto) minmax(76px, 1fr) auto !important;
        gap: 6px !important;
        min-width: 0 !important;
    }
    .booking-payment-row-v517 .booking-payment-date-v495 {
        font-size: .78rem !important;
    }
    .booking-payment-row-v517 .booking-payment-amount-v495 {
        font-size: .9rem !important;
    }
    .booking-payment-type-icon-v517 {
        min-width: 30px !important;
        width: 30px !important;
        height: 30px !important;
        padding: 0 !important;
        font-size: 1rem !important;
    }
    .booking-payment-type-icon-v517.is-paypal-v518 {
        font-size: 1.05rem !important;
    }
}


/* v519 — mobile payment history actions live only in the tap-opened modal */
@media (max-width: 720px) {
    .booking-payment-row-v517 .booking-payment-row-actions-v495 {
        display: none !important;
    }
}


/* v520 — notification preferences */
.settings-notifications-v520{margin:0 0 22px;padding:16px;border:1px solid var(--border,#e5ddd7);border-radius:16px;background:#fffaf7}
.settings-notifications-v520 h3{margin:0 0 6px}.notification-option-v520{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid rgba(0,0,0,.06);font-weight:700}
.notification-option-v520 input{width:20px;height:20px}.notification-email-extra-v520{display:flex;gap:9px;align-items:center;padding:7px 0 10px;font-size:.92rem}.notification-email-extra-v520 input{width:18px;height:18px}
.notification-time-v520{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px}.notification-time-v520 input{width:120px}
/* v530: independent settings sections */
.settings-tabs-v530 {
    display: flex;
    gap: 8px;
    margin: 0 0 18px;
    padding: 6px;
    overflow-x: auto;
    background: var(--panel, #fff);
    border: 1px solid var(--border);
    border-radius: 18px;
    box-shadow: var(--shadow);
    scrollbar-width: thin;
}
.settings-tabs-v530 a {
    flex: 1 0 auto;
    min-width: 135px;
    padding: 11px 16px;
    border-radius: 13px;
    color: var(--muted);
    font-weight: 800;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
}
.settings-tabs-v530 a:hover,
.settings-tabs-v530 a:focus-visible {
    background: var(--soft);
    color: var(--text);
}
.settings-tabs-v530 a.active {
    background: var(--primary);
    color: #fff;
}
.settings-tab-form-v530:not(.settings-tab-general-v530) {
    display: block;
}
.settings-tab-form-v530:not(.settings-tab-general-v530) > .settings-side,
.settings-section-v530 {
    width: 100%;
    max-width: none;
}
.settings-rules-v530 textarea {
    width: 100%;
    resize: vertical;
}
.settings-notification-save-v530 {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid var(--border);
}
.settings-tab-calendar-v530 .settings-closed-dates,
.settings-tab-notifications-v530 .settings-notifications-v520 {
    max-width: 980px;
    margin: 0 auto;
}
@media (max-width: 700px) {
    .settings-tabs-v530 {
        margin-left: -4px;
        margin-right: -4px;
        padding: 5px;
        border-radius: 15px;
    }
    .settings-tabs-v530 a {
        min-width: auto;
        padding: 10px 13px;
        font-size: 13px;
    }
    .settings-tab-form-v530 .panel {
        padding-left: 14px;
        padding-right: 14px;
    }
}
.booking-care-task-row-v307.cancelled {
    opacity: .62;
    background: #f3f1ee;
}
.booking-care-task-row-v307.cancelled .care-task-dot-v307 {
    background: #8a8178;
}

/* v538: wider currency lookup row */
@media (min-width: 901px) {
    .settings-options-row-v406 .settings-option-currency-v406 {
        grid-template-columns: minmax(180px, 240px) minmax(430px, 1.55fr) minmax(250px, .8fr) !important;
    }
    .settings-options-row-v406 .settings-option-currency-v406 > .currency-search-box {
        min-width: 430px;
    }
}

.settings-tab-label-mobile-v539 {
    display: none;
}

/* v539: mobile settings use full-width controls and a visible 2x2 tab grid */
@media (max-width: 760px) {
    .settings-tabs-v530 {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 5px !important;
        width: 100%;
        margin: 0 0 14px !important;
        padding: 5px !important;
        overflow: visible !important;
        border-radius: 15px;
    }
    .settings-tabs-v530 a {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-width: 0 !important;
        min-height: 40px;
        padding: 8px 6px !important;
        border-radius: 11px;
        font-size: 12px !important;
        line-height: 1.15;
        white-space: normal !important;
        overflow-wrap: anywhere;
    }
    .settings-tab-label-desktop-v539 {
        display: none;
    }
    .settings-tab-label-mobile-v539 {
        display: inline;
    }
    .settings-options-row-v406 .settings-option-card-v406 {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 8px !important;
        padding: 16px 0 !important;
    }
    .settings-options-row-v406 .settings-option-label-v406,
    .settings-options-row-v406 .settings-option-card-v406 > select,
    .settings-options-row-v406 .settings-option-card-v406 > .currency-search-box,
    .settings-options-row-v406 .settings-option-card-v406 > small,
    .settings-options-row-v406 .settings-option-currency-v406 > small,
    .settings-options-row-v406 .currency-current {
        grid-column: 1 !important;
        width: 100% !important;
        min-width: 0 !important;
    }
    .settings-options-row-v406 .settings-option-label-v406 {
        font-size: 15px;
    }
    .settings-options-row-v406 .currency-search-box > input,
    .settings-options-row-v406 .settings-option-card-v406 > select {
        width: 100% !important;
        min-width: 0 !important;
    }
    .settings-options-row-v406 .currency-current {
        min-height: 0;
        padding: 9px 12px;
    }
    .settings-options-row-v406 .currency-results {
        width: 100%;
        max-width: 100%;
    }
}

/* v551 final calendar overrides: must remain after legacy half-day rules. */
.calendar-cell.calendar-cell[data-cell-parts~="late-checkout"] {
    background: linear-gradient(
        90deg,
        var(--departure-fill, var(--booking-fill, var(--occupied))) 0 50%,
        #f6d8cf 50% 100%
    ) !important;
    box-shadow: inset -3px 0 0 rgba(169, 71, 49, .72) !important;
}
.calendar-cell.calendar-cell[data-cell-parts~="late-checkout"]::before {
    content: none !important;
    display: none !important;
}
.calendar-cell.calendar-cell[data-cell-parts~="late-checkout"]::after {
    content: "↗" !important;
    display: grid !important;
    right: 4px;
    bottom: 3px;
    z-index: 13;
    width: 14px;
    height: 14px;
    border: 1px solid rgba(159, 63, 43, .22);
    border-radius: 50%;
    background: rgba(255, 255, 255, .9);
    color: #9f3f2b;
    font-size: 9px;
    font-weight: 900;
    box-shadow: 0 1px 3px rgba(88, 44, 31, .12);
}
.calendar-cell[data-cell-parts~="late-checkout"] .booking-span-label {
    z-index: 12 !important;
}
.booking-span-label.has-late-checkout-v548 {
    border-right: 3px solid #a94731 !important;
    border-radius: 999px 8px 8px 999px;
}
.half-dot.late-checkout-v548 {
    background: linear-gradient(90deg, var(--occupied) 0 50%, #f6d8cf 50% 100%) !important;
    box-shadow: inset -2px 0 0 #a94731 !important;
}

/* v554: hotel owners explicitly choose public catalog visibility. */
.hotel-directory-visibility-v554 {
    margin: 0;
    padding: clamp(18px, 3vw, 26px);
    border: 2px solid rgba(189, 88, 46, .28);
    border-radius: 20px;
    background: linear-gradient(135deg, #fffaf6 0%, #f6f0e9 100%);
    box-shadow: 0 12px 30px rgba(78, 55, 42, .08);
}
.hotel-directory-visibility-v554 > legend {
    padding: 0 8px;
    color: #302a26;
    font-size: clamp(18px, 2vw, 23px);
    font-weight: 900;
}
.hotel-directory-visibility-v554 > p {
    margin: 0 0 16px;
    color: #746d67;
    line-height: 1.55;
}
.hotel-directory-options-v554 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.hotel-directory-option-v554 {
    position: relative;
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr);
    align-items: start;
    gap: 12px;
    min-width: 0;
    padding: 17px;
    border: 2px solid #e5ddd3;
    border-radius: 16px;
    background: #fffdfa;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.hotel-directory-option-v554:hover {
    border-color: #d8aa91;
    box-shadow: 0 8px 22px rgba(78, 55, 42, .07);
}
.hotel-directory-option-v554:has(input:checked) {
    border-color: #6f7f68;
    background: #f0f3ed;
    box-shadow: 0 0 0 3px rgba(111, 127, 104, .11);
}
.hotel-directory-option-v554.is-private:has(input:checked) {
    border-color: #bd582e;
    background: #fcf1eb;
    box-shadow: 0 0 0 3px rgba(189, 88, 46, .11);
}
.hotel-directory-option-v554 input {
    width: 20px;
    height: 20px;
    margin: 3px 0 0;
    accent-color: #5d7056;
}
.hotel-directory-option-v554.is-private input {
    accent-color: #bd582e;
}
.hotel-directory-option-icon-v554 {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 10px;
    background: #e5ebe1;
    color: #52634d;
    font-size: 19px;
    font-weight: 900;
}
.hotel-directory-option-v554.is-private .hotel-directory-option-icon-v554 {
    background: #f6e4da;
    color: #9f4628;
}
.hotel-directory-option-v554 strong,
.hotel-directory-option-v554 small {
    display: block;
}
.hotel-directory-option-v554 strong {
    color: #302a26;
    font-size: 16px;
    line-height: 1.3;
}
.hotel-directory-option-v554 small {
    margin-top: 5px;
    color: #746d67;
    line-height: 1.45;
}
.hotel-directory-direct-link-v554 {
    display: grid;
    gap: 4px;
    margin-top: 14px;
    padding: 13px 15px;
    border-radius: 13px;
    background: rgba(255, 255, 255, .7);
    color: #625b55;
    font-size: 13px;
}
.hotel-directory-direct-link-v554 strong {
    color: #302a26;
    font-size: 14px;
}
.hotel-directory-direct-link-v554 a {
    overflow-wrap: anywhere;
    color: #a94731;
    font-weight: 800;
}
@media (max-width: 720px) {
    .hotel-directory-options-v554 {
        grid-template-columns: minmax(0, 1fr);
    }
    .hotel-directory-option-v554 {
        padding: 15px;
    }
}
