
:root {
  --green: #18392b;
  --green-soft: #214835;
  --gold: #8f7441;
  --gold-soft: #d8cfb8;
  --ivory: #fcfaf4;
  --linen: #f6f2e8;
  --white: #ffffff;
  --text: #18392b;
  --muted: #667163;
  --border: #e2d9c5;
  --card: #fcfaf5;
}
* { box-sizing: border-box; }
body { margin: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif; background: var(--linen); color: var(--text); }
a { text-decoration: none; }
.app-shell { display: flex; min-height: 100vh; }
.sidebar { width: 280px; background: var(--green); color: #fff; padding: 20px; border-right: 1px solid rgba(255,255,255,.08); }
.brand-card { background: rgba(255,255,255,.05); border-radius: 24px; padding: 18px; margin-bottom: 24px; }
.brand-title { font-size: 1.1rem; font-weight: 700; }
.brand-subtitle { color: #d7c79e; font-size: .76rem; letter-spacing: .18em; text-transform: uppercase; margin-top: 6px; }
.nav-link { display: block; padding: 14px 16px; border-radius: 18px; color: #fff; margin-bottom: 8px; }
.nav-link.active { background: #f5f0e4; color: var(--green); font-weight: 600; }
.main-content { flex: 1; padding: 20px 24px 40px; }
.page-header { background: var(--ivory); border: 1px solid #ddd3bc; border-radius: 28px; padding: 20px; display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-bottom: 24px; }
.eyebrow { color: var(--gold); text-transform: uppercase; letter-spacing: .2em; font-size: .72rem; margin-bottom: 8px; }
.page-header h1 { margin: 0; font-size: 2rem; }
.facility-chip { background: #f4efe2; color: var(--gold); padding: 10px 14px; border-radius: 999px; font-size: .9rem; }
.card { background: var(--white); border: 1px solid var(--gold-soft); border-radius: 28px; padding: 20px; box-shadow: 0 8px 20px rgba(20,20,20,.04); }
.card.soft, .soft-pane { background: var(--card); border: 1px solid var(--border); }
.grid { display: grid; gap: 24px; }
.two-col-tight { grid-template-columns: 1fr 1fr; gap: 16px; }
.stack-lg > * + * { margin-top: 16px; }
.stack-sm > * + * { margin-top: 10px; }
.top-gap { margin-top: 14px; }
h2 { margin: 0 0 10px; }
.muted { color: var(--muted); font-size: .92rem; }
.strong { font-weight: 600; }
label { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; color: #6b735f; margin: 0 0 6px; }
input, select { width: 100%; border: 1px solid var(--gold-soft); border-radius: 18px; background: #fff; padding: 12px 14px; color: var(--text); }
input[type="time"] { min-height: 44px; }
.btn { border: 1px solid var(--gold-soft); border-radius: 14px; padding: 11px 16px; background: #fff; color: var(--text); cursor: pointer; font-weight: 600; }
.btn-primary { background: var(--green); color: #f8f4ea; border-color: var(--green); }
.btn-secondary { background: #fff; color: var(--text); }
.btn-block { width: 100%; }
.flash { padding: 14px 16px; border-radius: 18px; margin-bottom: 16px; }
.flash.success { background: #eff7f1; color: #24583a; border: 1px solid #cfe3d3; }
.flash.error { background: #fff7e7; color: #8a6420; border: 1px solid #ead8ae; }
.booking-builder .builder-grid { display: grid; grid-template-columns: 320px 1fr; gap: 16px; }
.pane { border-radius: 24px; padding: 16px; }
.pill-select-wrap label { margin-bottom: 8px; }
.pill-select-shell { display:flex; align-items:center; gap:10px; border:2px solid var(--gold-soft); background:#fdfbf6; border-radius:999px; padding:0 16px; min-height:56px; }
.pill-select-shell .pill-select { border:none; background:transparent; padding:14px 0; appearance:auto; }
.pill-select-shell .pill-select:focus { outline:none; }
.pill-select-icon { color: var(--gold); font-size: 14px; }
.search-input-shell { display:flex; align-items:center; gap:10px; border:1px solid var(--gold-soft); background:#fff; border-radius:999px; padding:0 14px; min-height:44px; }
.search-input-shell input { border:none; padding:12px 0; background:transparent; }
.search-input-shell input:focus { outline:none; }
.search-icon { color: var(--gold); font-size: 14px; }
.search-results { margin-top:8px; border:1px solid var(--border); border-radius:16px; background:#fff; overflow:hidden; }
.search-result-item { display:flex; width:100%; text-align:left; flex-direction:column; gap:4px; padding:12px 14px; border:none; border-bottom:1px solid var(--border); background:#fff; cursor:pointer; }
.search-result-item:last-child { border-bottom:none; }
.search-result-item:hover { background:#faf5ea; }
.search-result-empty { padding: 12px 14px; color: var(--muted); font-size: .9rem; }
.pet-chooser { display:flex; flex-wrap:wrap; gap:8px; min-height:44px; padding:10px; border:1px solid var(--border); border-radius:18px; background:#fff; }
.pet-chooser.empty-state { color: var(--muted); align-items:center; }
.pet-check { display:inline-flex; align-items:center; gap:8px; border:1px solid var(--border); background:#fcfaf5; border-radius:999px; padding:8px 12px; font-size:.9rem; }
.booking-inline-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; align-items: end; }
.compact-row label { font-size: .68rem; margin-bottom: 5px; }
.compact-input, .rounded-pill-field { border-radius:999px; }
.dashed-card { border-style: dashed; }
.row-between { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip-checkbox { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--border); background: #fff; border-radius: 999px; padding: 8px 12px; font-size: .9rem; }
.actions-row { display: flex; flex-wrap: wrap; gap: 12px; }
.hidden { display: none !important; }
.themed-date-trigger { width:100%; display:flex; align-items:center; justify-content:space-between; border:2px solid var(--gold-soft); border-radius:999px; background:#fffdf8; color:var(--text); padding:11px 14px; min-height:44px; box-shadow:0 2px 8px rgba(20,20,20,.03); cursor:pointer; }
.themed-date-trigger.disabled-trigger { background:#f5f1e8; color:#a19682; cursor:not-allowed; }
.date-popover { position:absolute; z-index:30; top:calc(100% + 6px); left:0; width:320px; max-width:min(320px, calc(100vw - 48px)); border:1px solid var(--gold-soft); background:#fffaf1; border-radius:18px; padding:8px; box-shadow:0 10px 20px rgba(20,20,20,.08); }
.calendar-card { border-radius:14px; padding:7px; }
.calendar-title { font-size:1rem; padding:6px 10px !important; border-radius:14px !important; }
.calendar-weekdays, .calendar-grid { gap:4px; }
.calendar-weekdays span { font-size:.62rem; text-transform:uppercase; letter-spacing:.12em; color:#7b7464; text-align:center; padding:4px 0; }
.calendar-day, .calendar-grid .blank { height:36px; }
.calendar-day { height:34px !important; border-radius:12px !important; font-size:.86rem !important; }
.calendar-day:hover { background:#f4efe2; }
.calendar-day.selected { background:var(--green); color:#f8f4ea; }
.calendar-duo-shell { max-width:320px; }
.chip-date { display:inline-flex; align-items:center; gap:8px; border:1px solid var(--border); background:#f4efe2; color:var(--gold); border-radius:999px; padding:8px 12px; font-size:.9rem; }
.block-date { width:100%; justify-content:flex-start; border-radius:18px; }
.specialist-row { border:1px solid var(--border); border-radius:20px; background:#fff; padding:14px; }
.specialist-date-label { margin-bottom:10px; font-weight:600; }
.specialist-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.specialist-grid-boarding { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.pill-display { display:flex; align-items:center; min-height:44px; border:1px solid var(--gold-soft); border-radius:999px; background:#fffdf8; padding:0 14px; font-size:.95rem; }
@media (max-width: 1100px) {
  .booking-builder .builder-grid { grid-template-columns: 1fr; }
  .sidebar { width: 100%; }
  .app-shell { flex-direction: column; }
}
@media (max-width: 900px) {
  .booking-inline-grid, .two-col-tight, .calendar-duo-shell, .specialist-grid, .specialist-grid-boarding { grid-template-columns: 1fr; }
  .page-header { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 640px) {
  .actions-row { flex-direction: column; }
  .main-content { padding: 16px; }
}
.clients-grid { grid-template-columns: 320px 1fr; }
.clients-list { border: 1px solid var(--border); border-radius: 18px; background: #fff; overflow: auto; max-height: 540px; }
.client-list-row { padding: 12px 14px; border-bottom: 1px solid var(--border); }
.client-list-row:last-child { border-bottom: none; }
.subsection-card { border: 1px solid var(--border); border-radius: 22px; background: #fff; padding: 16px; }
.subsection-title { font-weight: 700; color: var(--text); margin-bottom: 12px; }
.subsection-mini { font-weight: 600; color: var(--text); margin-top: 14px; margin-bottom: 8px; }
.full-span { grid-column: 1 / -1; }
.row-end { display: flex; align-items: end; justify-content: flex-end; }
.three-col-tight { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.meds-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.vaccine-grid { grid-template-columns: 1fr; gap: 10px; }
.vaccine-row { display: grid; grid-template-columns: 160px 1fr; gap: 12px; align-items: center; }
.vaccine-name { font-weight: 600; color: var(--text); }
.qr-placeholder { margin-top: 14px; border: 1px dashed var(--gold-soft); border-radius: 18px; padding: 12px 14px; color: var(--gold); background: #fcfaf5; font-size: .9rem; }
.extra-booking-rows { margin-top: 14px; display: grid; gap: 12px; }
.extra-booking-row { border: 1px solid var(--border); border-radius: 18px; background: #fff; padding: 12px; }
.extra-booking-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; align-items: end; }
@media (max-width: 1100px) {
  .clients-grid { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .three-col-tight, .extra-booking-grid { grid-template-columns: 1fr; }
}


.field { position: relative; overflow: visible; }
.booking-builder, .booking-builder .pane, .builder-grid { overflow: visible; }
.client-selected-card { border: 1px solid var(--border); border-radius: 20px; background: #fff; padding: 12px 14px; margin-top: 10px; }
.client-selected-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.client-selected-name { font-weight:700; color: var(--text); }
.client-selected-pets { color: var(--muted); font-size: .92rem; margin-top: 4px; }
.client-edit-grid { display:grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap:12px; margin-top:12px; }
.pet-chooser { display:grid; grid-template-columns:1fr; gap:10px; }
.pet-check { display:grid; grid-template-columns: 28px 1fr; align-items:center; width:100%; border-radius: 24px; padding: 10px 14px; }
.pet-check-text { display:flex; flex-direction:column; min-width:0; }
.pet-check-title { font-weight:600; color:var(--text); line-height:1.15; }
.pet-check-sub { color:var(--muted); font-size:.85rem; line-height:1.15; margin-top:2px; white-space:normal; }
.meds-wrap .med-row + .med-row { margin-top: 12px; }
.calendar-day.today { outline: 2px solid var(--gold); outline-offset: -2px; }
@media (max-width: 1100px) {
  .client-edit-grid { grid-template-columns: 1fr 1fr; }
  .meds-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .client-edit-grid, .meds-grid { grid-template-columns: 1fr; }
}


.booking-builder-tight .details-tight label,
.booking-builder-tight .details-tight .muted,
.booking-builder-tight .details-tight .strong,
.booking-builder-tight .details-tight input,
.booking-builder-tight .details-tight .chip-checkbox,
.booking-builder-tight .details-tight .chip-date,
.booking-builder-tight .details-tight .pill-display,
.booking-builder-tight .details-tight .search-result-item,
.booking-builder-tight .details-tight .pet-check-title,
.booking-builder-tight .details-tight .pet-check-sub { font-size: .8rem; }
.booking-builder-tight .details-tight .card.dashed-card { padding: 16px; }
.booking-builder-tight .details-tight .row-between { align-items: center; }
.booking-builder-tight .details-tight .actions-row { margin-top: 6px; }
.booking-builder-tight .details-tight .search-input-shell input,
.booking-builder-tight .details-tight input,
.booking-builder-tight .details-tight select { min-height: 42px; }
.btn-keep-size { font-size: .86rem !important; }
.client-list-row { display:block; text-decoration:none; color:inherit; }
.client-list-row.active-client-row { background:#f4efe2; }
.client-list-row:hover { background:#faf5ea; }
.booking-top-grid { align-items: start; }
.compact-pill { min-height: 42px; }
.pet-chooser { min-height: 78px; }
.meds-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.meds-grid .full-span { grid-column: 1 / -1; }
@media (min-width: 1200px) {
  .meds-grid { grid-template-columns: 1.2fr .8fr 1fr; }
  .meds-grid .med-row-extra { grid-column: span 1; }
}
@media (max-width: 900px) {
  .booking-top-grid { grid-template-columns: 1fr; }
}

.booking-builder-tight .details-tight h2, .booking-builder-tight .details-tight .strong { letter-spacing: 0; }
.booking-builder-tight .details-tight .search-result-item { padding: 10px 12px; }
.booking-builder-tight .details-tight .pet-check { padding: 8px 12px; }

.btn-small-font { font-size: .76rem; }
.settings-tile { display:block; padding:16px; border:1px solid var(--border); border-radius:22px; background:#fff; color:var(--text); }
.settings-tile:hover { background:#faf5ea; }
.three-col-tight { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:12px; }
.four-col-tight { display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap:12px; }
.full-span-three { grid-column: span 3; }
.add-cost-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(120px,1fr)); gap:10px; }
.inline-checks { display:flex; gap:16px; flex-wrap:wrap; }
.inline-checks label { font-size:.9rem; color:var(--muted); }
.enclosure-unit-row { align-items:center; }
.yard-row input, .yard-row select, .enclosure-type-block input, .enclosure-type-block select { width:100%; }
.top-gap { margin-top: 12px; }

.btn { font-size: .86rem; }
.btn.btn-primary.btn-keep-size, .btn.btn-secondary.btn-keep-size { font-size: .86rem !important; }
.settings-tile .strong { font-size: .95rem; }

.three-col-uniform { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:16px; align-items:start; }
.four-col-uniform { display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap:16px; align-items:start; }
.multi-select-box { min-height: 148px; border-radius: 18px; padding: 10px 12px; }
.multi-select-box option { padding: 4px 6px; }
.subsection-card input,
.subsection-card select,
.subsection-card .btn { min-height: 46px; }
.inline-cost-row { display:grid; grid-template-columns: 96px 1fr auto; gap:12px; align-items:center; }
.inline-cost-label { font-size:.82rem; color:var(--muted); font-weight:600; }
.block-header-row { align-items:center; }
.compact-block-header { margin-bottom: 10px; }
.mb0 { margin-bottom: 0; }
.enclosure-unit-row { display:grid; grid-template-columns: 140px minmax(0,1fr) auto; gap:16px; align-items:center; }
.enclosure-unit-row .strong { font-size:1rem; }
.js-unit-list .facility-row { padding: 12px 14px; border: 1px solid var(--border); border-radius: 18px; background:#fff; }
.inline-checks label { display:flex; align-items:center; gap:8px; font-size:.88rem; }
.inline-checks input[type="checkbox"] { width:auto; }
.actions-row .btn { min-width: 180px; }
.row-end .btn, .row-between .btn { min-height: 42px; }
@media (max-width: 1200px) {
  .four-col-uniform { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .enclosure-unit-row { grid-template-columns: 1fr; }
}
@media (max-width: 800px) {
  .three-col-uniform, .four-col-uniform, .inline-cost-row { grid-template-columns: 1fr; }
}
.module-check-list { display:grid; gap:10px; border:1px solid var(--border); border-radius:18px; background:#fff; padding:14px; }
.module-check-list label { display:flex; align-items:center; gap:8px; font-size:.9rem; color:var(--text); text-transform:none; letter-spacing:0; margin:0; }
.module-check-list input[type="checkbox"] { width:auto; }
.static-list { background:#fcfaf5; }

.add-cost-span { grid-column: span 2; }
.pet-type-picker { display:grid; gap:10px; }
.pet-type-controls { display:grid; grid-template-columns: minmax(0,1fr) auto; gap:10px; align-items:center; }
.pet-type-dropdown { min-height:46px; border-radius:18px; }
.pet-type-selected { display:flex; flex-wrap:wrap; gap:8px; min-height:46px; padding:10px 12px; border:1px solid var(--gold-soft); border-radius:18px; background:#fff; }
.pet-type-chip { display:inline-flex; align-items:center; gap:8px; background:#f4efe2; color:var(--text); border:1px solid var(--gold-soft); border-radius:999px; padding:6px 10px; font-size:.88rem; }
.pet-type-chip button { border:none; background:transparent; color:var(--gold); cursor:pointer; font-size:1rem; line-height:1; padding:0; }
.pet-type-empty { display:flex; align-items:center; }
.superadmin-facility-head { align-items:center; margin-bottom:12px; }
.superadmin-search-wrap { display:flex; align-items:center; gap:8px; min-width:280px; border:1px solid var(--gold-soft); border-radius:999px; background:#fff; padding:0 14px; min-height:44px; }
.superadmin-search-wrap input { border:none; background:transparent; padding:0; min-height:auto; }
.superadmin-search-wrap input:focus { outline:none; }
.superadmin-search-icon { color:var(--gold); font-size:14px; }
.facilities-stack { display:grid; gap:14px; }
.facility-card-row { display:grid; grid-template-columns: minmax(220px, 1fr) 1.6fr; gap:16px; align-items:center; padding:16px; border:1px solid var(--border); border-radius:22px; background:#fff; }
.facility-card-name { font-size:1.05rem; }
.facility-card-actions { display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; }
.facility-card-actions .btn { min-height:40px; }
@media (max-width: 1200px) { .facility-card-row { grid-template-columns: 1fr; } .facility-card-actions { justify-content:flex-start; } }
@media (max-width: 900px) { .add-cost-span { grid-column: span 1; } .pet-type-controls { grid-template-columns: 1fr; } .superadmin-facility-head { flex-direction:column; align-items:flex-start; } .superadmin-search-wrap { width:100%; min-width:0; } }

.pet-type-picker { display:grid; gap:10px; min-width:0; }
.pet-type-controls { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; }
.pet-type-dropdown { min-height:46px; border-radius:18px; width:100%; }
.pet-type-selected { display:flex; flex-wrap:wrap; gap:8px; min-height:46px; padding:10px 12px; border:1px solid var(--gold-soft); border-radius:18px; background:#fff; }
.pet-type-chip { display:inline-flex; align-items:center; gap:8px; background:#f4efe2; color:var(--text); border:1px solid var(--gold-soft); border-radius:999px; padding:6px 10px; font-size:.88rem; }
.pet-type-chip button { border:none; background:transparent; color:var(--gold); cursor:pointer; font-size:1rem; line-height:1; padding:0; }
.pet-type-empty { display:flex; align-items:center; }
.add-cost-span { grid-column:auto; min-width:0; }
.add-cost-span .compact-block-header { margin-bottom:8px; }
.inline-cost-row { display:grid; grid-template-columns: 88px minmax(132px,200px) auto; gap:10px; align-items:center; }
.inline-cost-row input { width:100%; max-width:200px; }
.inline-cost-row .btn { white-space:nowrap; }
.enclosure-unit-meta { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.enclosure-unit-pets { display:flex; flex-wrap:wrap; gap:6px; }
.enclosure-pill { display:inline-flex; align-items:center; padding:6px 10px; border:1px solid var(--gold-soft); border-radius:999px; background:#f4efe2; color:var(--text); font-size:.82rem; line-height:1; }
.btn-tiny { padding:8px 12px; font-size:.82rem; }
.inline-cost-label { font-size:.95rem; font-weight:600; color:var(--text); }
input[inputmode="decimal"]::-webkit-outer-spin-button,
input[inputmode="decimal"]::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
input[inputmode="decimal"] { appearance:textfield; -moz-appearance:textfield; }
@media (max-width: 900px) {
  .pet-type-controls { grid-template-columns:1fr; }
  .inline-cost-row { grid-template-columns:1fr; }
}

.file-tabs { display:flex; gap:10px; margin-bottom:16px; }
.file-tab { display:inline-block; padding:10px 16px; border:1px solid var(--border); border-bottom:none; border-radius:16px 16px 0 0; background:#f4efe2; color:var(--text); font-weight:600; }
.file-tab.active { background:#fff; }
.invoice-table { width:100%; border-collapse:separate; border-spacing:0; margin-top:12px; }
.invoice-table th, .invoice-table td { padding:12px 14px; border-bottom:1px solid var(--border); text-align:left; font-size:.92rem; }
.invoice-table thead th { color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-size:.72rem; }
.invoice-table tfoot th { font-weight:700; }

.inventory-grid { display:grid; grid-template-columns: minmax(180px,1.6fr) 100px 100px 90px 70px 90px 110px 60px; gap:12px; align-items:center; }
.inventory-head { font-size:.76rem; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); padding:0 4px; }
.inventory-row { padding:12px; border:1px solid var(--border); border-radius:18px; background:#fff; }
.inventory-row input[type='text'], .inventory-row input[type='number'] { width:100%; }
.qr-thumb-wrap { display:flex; justify-content:center; }
.qr-thumb { width:52px; height:52px; border:1px solid var(--gold-soft); border-radius:10px; background:#fff; }
.small-center { text-align:center; font-size:.8rem; }
.qr-display { display:flex; flex-direction:column; gap:8px; }
.qr-image { width:108px; height:108px; border:1px solid var(--gold-soft); border-radius:14px; background:#fff; }
.label-print-body { background:#fff; }
.label-print-actions { padding:16px; }
.label-sheet { display:flex; flex-wrap:wrap; gap:12px; padding:16px; }
.retail-label { width:2.5in; height:1.5in; border:1px solid #000; display:grid; grid-template-columns: 1fr .82in; align-items:center; padding:.08in; box-sizing:border-box; break-inside:avoid; }
.retail-label-copy { padding-right:.08in; overflow:hidden; }
.retail-label-name { font-size:12px; font-weight:700; line-height:1.1; }
.retail-label-cost { margin-top:6px; font-size:11px; }
.retail-label-qr { display:flex; justify-content:center; align-items:center; }
.retail-label-qr img { width:.72in; height:.72in; }
@media print { .label-print-actions { display:none; } body { margin:0; } .label-sheet { gap:.06in; padding:.06in; } }
@media (max-width: 1100px) { .inventory-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .inventory-head { display:none; } }

.retail-sale-type-row { display:flex; align-items:center; gap:12px; min-height:44px; }
.retail-client-choice { flex:1; min-height:44px; display:flex; align-items:center; padding:0 14px; border:1px solid var(--border); border-radius:999px; background:#fff; }
.retail-item-list { display:grid; gap:8px; }
.retail-line-item { display:grid; grid-template-columns: 24px 1fr auto; width:100%; border-radius:18px; padding:10px 12px; }
.retail-line-name { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.retail-line-price { font-weight:600; color:var(--text); }


.client-search-wide { display:block; }
.pet-chooser-inline { display:flex; flex-wrap:wrap; gap:8px; min-height:36px; margin-top:8px; }
.pet-chooser-inline.empty-state { color: var(--muted); align-items:center; padding:12px 0 0; }
.pet-pill { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:1px; min-width:92px; min-height:42px; padding:7px 12px; border-radius:999px; border:1px solid #18392b; background:#18392b; color:#f8f4ea; cursor:pointer; text-align:left; }
.pet-pill.selected { background:#BFD0B8; border-color:#BFD0B8; color:#18392b; }
.pet-pill-name { font-size:.82rem; font-weight:600; line-height:1.05; max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pet-pill-meta { font-size:.58rem; opacity:.92; line-height:1.05; max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.booking-actions-inline { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; margin-top:10px; }
.booking-actions-left { display:flex; gap:12px; flex-wrap:wrap; }
.booking-actions-right { justify-self:end; }
.date-popover { width:320px; max-width:min(320px, calc(100vw - 48px)); padding:8px; border-radius:18px; }
.calendar-card { border-radius:14px; padding:7px; }
.calendar-title { font-size:1rem; padding:6px 10px !important; border-radius:14px !important; }
.calendar-weekdays { font-size:.58rem; margin-bottom:4px; }
.calendar-weekdays span { padding:2px 0; }
.calendar-grid { gap:4px; }
.calendar-day { height:34px !important; border-radius:12px !important; font-size:.86rem !important; }
.calendar-duo-shell { max-width:320px; }
@media (max-width: 900px) { .date-popover { width:360px; max-width:92vw; } .booking-actions-inline { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; margin-top:10px; } .booking-actions-right { justify-self:end; } }
.invoice-table .retail-unit-price input[disabled] { background:#f5f1e8; color:#8a806d; cursor:not-allowed; }


.details-header-row { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.cost-placeholder { font-size:.85rem; font-weight:600; color:var(--gold); white-space:nowrap; }
.draft-expiry-note { font-size:.72rem; line-height:1.35; color:var(--muted); }
.today-drafts-panel { border:1px dashed var(--gold-soft); border-radius:20px; padding:14px; background:#fffdf8; }
.today-drafts-list { display:flex; flex-direction:column; gap:10px; }
.today-draft-row { display:flex; align-items:center; justify-content:space-between; gap:14px; border:1px solid var(--border); border-radius:16px; padding:10px 12px; background:#fff; }
.today-draft-actions { display:flex; align-items:center; gap:8px; }
.small-note { font-size:.75rem; }
.booking-actions-right-double { display:flex; align-items:center; gap:10px; justify-self:end; }

@media (max-width: 900px) {
  .details-header-row { flex-direction:column; align-items:flex-start; }
  .today-draft-row { flex-direction:column; align-items:flex-start; }
  .today-draft-actions { width:100%; }
  .booking-actions-right-double { justify-self:stretch; width:100%; justify-content:flex-end; }
}

/* Wave 2 shared UI select */
.ui-select-wrap { display:block; }
.ui-select-label { display:block; margin-bottom:6px; font-size:.78rem; color:var(--muted); }
.ui-select { position:relative; }
.ui-select-trigger { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:44px; border:1px solid var(--gold-soft); background:#fffdf8; border-radius:18px; padding:10px 14px; color:var(--text); box-shadow:0 1px 0 rgba(0,0,0,.02); }
.ui-select-trigger-inner { display:flex; align-items:center; gap:10px; min-width:0; }
.ui-select-emoji { width:22px; text-align:center; font-size:1rem; line-height:1; flex:0 0 22px; }
.ui-select-text, .ui-select-option-label { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ui-select-caret { color:#8f7441; font-size:.9rem; }
.ui-select-panel { position:absolute; top:calc(100% + 8px); left:0; right:0; z-index:35; border:1px solid var(--gold-soft); background:#fffdf8; border-radius:20px; padding:6px; box-shadow:0 10px 24px rgba(20,20,20,.12); }
.ui-select-option { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; border-radius:14px; background:transparent; color:var(--text); }
.ui-select-option-left { display:flex; align-items:center; gap:10px; min-width:0; }
.ui-select-option:hover, .ui-select-option.is-selected { background:#eef3eb; }
.ui-select-check { opacity:0; color:#18392b; font-size:.9rem; }
.ui-select-option.is-selected .ui-select-check { opacity:1; }
.booking-type-select .ui-select-trigger { min-height:56px; border-radius:999px; border-width:2px; }
.record-scope-select .ui-select-trigger { min-height:42px; }

/* Wave 2 bookings hub */
.tab-strip { display:flex; gap:10px; align-items:flex-end; flex-wrap:wrap; }
.bookings-filter-grid { align-items:end; }
.bookings-hub-card .row-end { justify-content:flex-end; }
.badge { display:inline-flex; align-items:center; justify-content:center; min-width:82px; padding:6px 10px; border-radius:999px; font-size:.72rem; font-weight:700; border:1px solid transparent; }
.badge-draft { background:#f4efe2; color:#8f7441; border-color:#d8cfb8; }
.badge-booked { background:#e7f1eb; color:#18392b; border-color:#bfd0b8; }
.badge-cancelled { background:#f7e8e8; color:#8d4949; border-color:#e6c3c3; }
.badge-paid { background:#e5efe8; color:#1d5d3a; border-color:#b7d2c0; }
.badge-unpaid { background:#f8f1df; color:#8a6420; border-color:#ead8ae; }
.empty-state-row { min-height:72px; }
.small-note { font-size:.74rem; }

/* ensure calendar uses shared compact styling */
.date-popover { position:absolute; z-index:30; top:calc(100% + 6px); left:0; width:320px; max-width:min(320px, calc(100vw - 48px)); border:1px solid var(--gold-soft); background:#fffaf1; border-radius:18px; padding:8px; box-shadow:0 10px 20px rgba(20,20,20,.08); }
.calendar-card { border-radius:14px; padding:7px; background:#fffdf8; border:1px solid #eadfca; }
.calendar-title { padding:4px 6px 8px; font-size:.88rem; font-weight:700; color:#18392b; }
.calendar-weekdays { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; margin-bottom:6px; }
.calendar-weekdays span { text-align:center; font-size:.62rem; color:#8a806d; text-transform:uppercase; letter-spacing:.02em; }
.calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
.calendar-grid .blank { min-height:32px; }
.calendar-day { min-height:32px; border-radius:10px; background:#f9f5ec; color:#18392b; font-size:.82rem; }
.calendar-day.selected { background:#18392b; color:#fff; }
.calendar-day.today:not(.selected) { outline:1px solid #c8b094; }

.calendar-header{display:grid;grid-template-columns:24px 1fr 24px;align-items:center;gap:6px;margin-bottom:6px;}
.calendar-nav-btn{height:24px;width:24px;border:none;border-radius:999px;background:#f4efe2;color:#18392b;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.calendar-nav-btn:hover{background:#e8dfcf;}
.calendar-header .calendar-title{margin:0;padding:0 !important;text-align:center;}


/* Phase 2 redesign */
.app-shell.no-sidebar-shell { display:block; min-height:100vh; }
.sidebar { display:none !important; }
.no-sidebar-main { padding-top: 8px; }
.top-toolbar-wrap { position: sticky; top: 0; z-index: 60; background: var(--linen); padding: 10px 24px 0; }
.top-toolbar { display:flex; justify-content:space-between; gap:16px; align-items:center; overflow-x:auto; padding-bottom:8px; }
.toolbar-group { display:flex; gap:10px; align-items:center; white-space:nowrap; }
.toolbar-group-right { margin-left:auto; }
.toolbar-link { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:0 16px; border-radius:14px; background:var(--green); color:#f8f4ea; border:1px solid var(--green); font-weight:600; flex:0 0 auto; }
.toolbar-link.active { background:#f5f0e4; color:var(--green); border-color:var(--gold-soft); }
.placeholder-link { background:#f4efe2; color:var(--gold); border-color:var(--gold-soft); }

.bookings-retail-menu-card { margin-bottom:16px; }
.bookings-retail-heading h2 { margin:0 0 6px; }
.bookings-menu-scroll { overflow-x:auto; }
.bookings-menu-row { display:flex; gap:10px; min-width:max-content; padding:4px 0; flex-wrap:nowrap; }
.booking-mode-pill { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 16px; border-radius:999px; border:1px solid var(--gold-soft); background:#fff; color:var(--text); font-weight:600; cursor:pointer; flex:0 0 auto; }
.booking-mode-pill.is-selected { background:#BFD0B8; border:2px solid var(--gold); color:var(--text); }
.booking-mode-pill.is-inactive { opacity:.55; cursor:not-allowed; }
.mode-icon { font-size:16px; line-height:1; }

.booking-builder-redesign .builder-grid { grid-template-columns:1fr; }
.booking-detail-head { align-items:flex-start; margin-bottom:12px; }
.detail-cost-pill { background:#dfe8e2; color:#223126; border:1px solid #c8a96a; padding:8px 14px; border-radius:999px; font-weight:800; white-space:nowrap; letter-spacing:.04em; }
.booking-footer-bar { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:12px; }
.footer-actions-left, .footer-actions-right { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.pill-select-wrap { display:none !important; }

@media (max-width: 900px) {
  .top-toolbar-wrap { padding: 10px 12px 0; }
  .main-content { padding: 16px 12px 32px; }
  .top-toolbar { justify-content:flex-start; }
  .booking-detail-head, .booking-footer-bar { flex-direction:column; align-items:flex-start; }
  .footer-actions-right { width:100%; justify-content:flex-end; }
}


/* Phase 2 toolbar + booking window */
.toolbar-link {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 16px;
  border-radius:14px;
  background:var(--green);
  color:#f8f4ea;
  border:1px solid var(--green);
  font-weight:600;
  flex:0 0 auto;
}
.toolbar-link.active {
  background:var(--green);
  color:#f8f4ea;
  border-color:var(--gold);
  box-shadow: inset 0 0 0 1px var(--gold);
}
.placeholder-link {
  background:var(--green);
  color:#f8f4ea;
  border-color:var(--green);
}
.booking-window-card { margin-top: 16px; }
.editing-row { border-color: var(--gold) !important; box-shadow: inset 0 0 0 1px var(--gold); }

.booking-top-stack { display:block; }
.pet-chooser.pet-pill-row {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  min-height:auto;
  align-items:flex-start;
  padding:0;
  border:none;
  background:transparent;
}
.pet-pill {
  position:relative;
  display:inline-flex;
  align-items:flex-start;
  border:1px solid var(--green);
  background: var(--green);
  color:#f8f4ea;
  border-radius:999px;
  padding:8px 12px;
  min-width:130px;
  max-width:180px;
  cursor:pointer;
}
.pet-pill input { position:absolute; opacity:0; pointer-events:none; }
.pet-pill-body { display:flex; flex-direction:column; gap:1px; }
.pet-pill-title { font-size:.78rem; font-weight:700; line-height:1.05; color:#f8f4ea; text-transform:uppercase; letter-spacing:.08em; }
.pet-pill-sub { font-size:.72rem; line-height:1.05; color:#eef1e8; text-transform:uppercase; letter-spacing:.04em; }
.pet-pill.selected {
  background:#BFD0B8;
  border-color:var(--gold);
  color:var(--text);
}
.pet-pill.selected .pet-pill-title,
.pet-pill.selected .pet-pill-sub { color:var(--text); }

.calendar-header {
  display:grid;
  grid-template-columns:36px 1fr 36px;
  align-items:center;
  gap:8px;
  margin-bottom:10px;
}
.calendar-nav-btn {
  border:1px solid var(--gold-soft);
  background:#fff;
  color:var(--text);
  border-radius:999px;
  min-height:32px;
  width:32px;
  cursor:pointer;
  font-size:18px;
  line-height:1;
}
.field { position:relative; }
.date-popover { z-index:40; }

.booking-footer-bar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  width:100%;
}
.footer-actions-left, .footer-actions-right {
  display:flex;
  gap:12px;
  align-items:center;
  flex-wrap:nowrap;
}
.footer-actions-right { margin-left:auto; }

@media (max-width: 980px) {
  .booking-footer-bar {
    flex-wrap:wrap;
    row-gap:12px;
  }
  .footer-actions-left,
  .footer-actions-right {
    width:100%;
  }
  .footer-actions-left { justify-content:flex-start; }
  .footer-actions-right { justify-content:flex-end; margin-left:0; }
}


/* Phase 2 region lock: component-owned dashboard regions */
.booking-window-card { margin-top: 16px; }


/* Targeted footer re-anchor fix */
.booking-details-footer {
  width: 100%;
  margin-top: 18px;
}
.booking-footer-bar {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
.footer-actions-left,
.footer-actions-right {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: nowrap;
}
.footer-actions-right {
  margin-left: auto;
}

.booking-inline-sections {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.booking-inline-section {
  width: 100%;
}
.booking-section-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid var(--gold-soft);
  border-radius: 18px;
  background: #1f4d3a;
  color: #fff;
  min-height: 56px;
  padding: 0 18px;
  font-weight: 700;
  font-size: 1rem;
  cursor: pointer;
}
.booking-section-toggle .booking-section-chevron {
  font-size: 1.25rem;
  line-height: 1;
}
.booking-section-body {
  margin-top: 12px;
}
.inline-addon-panel {
  border: 1px solid var(--border);
  background: #fff;
  border-radius: 22px;
  padding: 16px;
}
.retail-booking-stack > * + * {
  margin-top: 14px;
}
.retail-results-panel,
.retail-selected-panel,
.retail-summary-card {
  border: 1px solid var(--border);
  background: #fff;
  border-radius: 22px;
  padding: 14px;
}
.retail-results-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}
.small-copy { font-size: .82rem; }
.retail-results-list > * + * { margin-top: 8px; }
.retail-result-pill {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--gold-soft);
  border-radius: 999px;
  background: #fff;
  color: var(--text);
  min-height: 48px;
  padding: 0 16px;
  cursor: pointer;
}
.retail-result-pill:hover { background: #f6f2e8; }
.retail-result-name { text-align: left; font-weight: 600; }
.retail-result-price { color: var(--gold); font-weight: 700; }
.retail-selected-head,
.retail-selected-row {
  display: grid;
  grid-template-columns: minmax(180px,2fr) 100px 110px 110px 110px;
  gap: 10px;
  align-items: center;
}
.retail-selected-head {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gold);
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 10px;
}
.retail-selected-list > * + * { margin-top: 8px; }
.retail-selected-row {
  border: 1px solid var(--border);
  border-radius: 18px;
  background: #fcfaf5;
  padding: 10px 12px;
}
.retail-selected-name { font-weight: 600; }
.retail-qty-input { min-height: 40px; }
.retail-summary-card {
  display: flex;
  justify-content: flex-end;
  gap: 18px;
  align-items: center;
}
@media (max-width: 900px) {
  .retail-summary-card {
    flex-direction: column;
    align-items: flex-start;
  }
  .retail-selected-head,
  .retail-selected-row {
    grid-template-columns: 1fr;
  }
}


.package-select-card{display:block;width:100%;text-align:left;border:1px solid #d8d2c8;border-radius:16px;background:#fff;padding:14px 16px;cursor:pointer;transition:.18s ease;}
.package-select-card:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(0,0,0,.06);}
.package-select-card.is-selected{background:#c7d5c7;border:2px solid #c4a34a;}
.package-select-card.is-disabled{background:#ece9e3;border-color:#d3cec4;color:#8b877f;cursor:not-allowed;box-shadow:none;opacity:.9;}
.package-select-card.is-disabled:hover{transform:none;box-shadow:none;}
.package-select-card.is-disabled .package-select-title,.package-select-card.is-disabled .package-select-sub{color:#8b877f;}
.package-select-title{display:block;font-weight:700;color:#223126;}
.package-select-sub{display:block;margin-top:4px;color:#5d6a63;font-size:.92rem;}
.client-package-row{border:1px solid #e4ddd2;border-radius:16px;padding:12px 14px;background:#fff;}
.client-package-row .title{font-weight:700;color:#223126;}
.client-package-row .sub{margin-top:4px;color:#5d6a63;font-size:.92rem;}

/* Bookings by Hugo reusable clock picker */
.bbh-time-picker-shell { width: 100%; }
.bbh-time-picker {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 2px solid var(--gold-soft);
  border-radius: 999px;
  background: #fffdf8;
  color: var(--text);
  padding: 11px 14px;
  min-height: 44px;
  box-shadow: 0 2px 8px rgba(20,20,20,.03);
  cursor: pointer;
  font: inherit;
  text-align: left;
}
.bbh-time-picker.is-empty { color: var(--muted); }
.bbh-time-picker.is-open { box-shadow: 0 0 0 3px rgba(180,138,44,.14); }
.bbh-time-picker-icon { opacity: .75; margin-left: 8px; }
.bbh-clock-popover {
  position: absolute;
  z-index: 70;
  top: calc(100% + 8px);
  left: 0;
  width: min(430px, calc(100vw - 42px));
  border: 1px solid var(--gold-soft);
  border-radius: 22px;
  background: #fffaf1;
  box-shadow: 0 16px 32px rgba(20,20,20,.12);
  padding: 12px;
}
.bbh-clock-head {
  font-weight: 800;
  color: #254331;
  margin: 2px 4px 10px;
}
.bbh-clock-body {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 10px;
  align-items: stretch;
}
.bbh-clock-col {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  max-height: 190px;
  overflow: auto;
  padding-right: 2px;
}
.bbh-clock-choice,
.bbh-clock-period {
  border: 1px solid var(--gold-soft);
  border-radius: 999px;
  background: #fffdf8;
  color: #254331;
  min-height: 34px;
  padding: 7px 9px;
  font-weight: 700;
  cursor: pointer;
}
.bbh-clock-choice.selected,
.bbh-clock-period.selected {
  background: #24543d;
  border-color: #24543d;
  color: #fff;
  box-shadow: 0 0 0 2px rgba(180,138,44,.16) inset;
}
.bbh-clock-ampm {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 72px;
}
.bbh-clock-period {
  min-height: 62px;
  font-size: 13px;
}
.bbh-clock-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 12px;
}
@media (max-width: 640px) {
  .bbh-clock-popover { width: min(360px, calc(100vw - 32px)); }
  .bbh-clock-body { grid-template-columns: 1fr; }
  .bbh-clock-col { grid-template-columns: repeat(4, minmax(0, 1fr)); max-height: none; }
  .bbh-clock-ampm { flex-direction: row; min-width: 0; }
  .bbh-clock-period { flex: 1; min-height: 42px; }
}

.bbh-conflict-modal.hidden { display: none; }
.bbh-conflict-modal { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; padding: 24px; }
.bbh-conflict-backdrop { position: absolute; inset: 0; background: rgba(28, 31, 24, 0.42); backdrop-filter: blur(3px); }
.bbh-conflict-card { position: relative; width: min(720px, 96vw); max-height: 86vh; overflow: auto; background: #fffaf1; border: 1px solid rgba(169, 133, 64, 0.42); border-radius: 24px; box-shadow: 0 24px 80px rgba(20, 24, 18, 0.26); padding: 22px; }
.bbh-conflict-head { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; margin-bottom: 14px; }
.bbh-conflict-head h3 { margin: 4px 0 0; font-size: 22px; color: #26381f; }
.bbh-conflict-x { border: 0; background: transparent; font-size: 28px; line-height: 1; cursor: pointer; color: #5b614f; }
.bbh-conflict-body p { margin: 0 0 14px; color: #2f332c; line-height: 1.55; }
.bbh-conflict-list { display: grid; gap: 10px; margin: 14px 0; }
.bbh-conflict-row { border: 1px solid rgba(169, 133, 64, 0.28); border-radius: 16px; background: rgba(255, 255, 255, 0.58); padding: 12px 14px; }
.bbh-conflict-row-title { font-weight: 800; color: #26381f; margin-bottom: 4px; }
.bbh-conflict-row-copy { color: #4e5448; font-size: 13px; line-height: 1.45; }
.bbh-conflict-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.bbh-conflict-modal.is-busy .bbh-conflict-card { opacity: 0.74; pointer-events: none; }


/* Today roster */
.roster-shell { margin-top: 18px; padding: 18px; }
.roster-topline { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.roster-topline h2 { margin: 0; }
.roster-date-nav { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.roster-date-pill { border: 1px solid rgba(181, 151, 80, .55); background: rgba(250, 240, 230, .75); border-radius: 999px; padding: 9px 16px; font-weight: 700; color: #1f4b3b; }
.roster-search-row { margin: 16px 0; }
.roster-search { width: 100%; border-radius: 999px; border: 1px solid rgba(181, 151, 80, .45); padding: 12px 16px; background: #fffdf8; }
.roster-grid { display: grid; grid-template-columns: 1.15fr .65fr .78fr .9fr .82fr .82fr 1fr 1.2fr; gap: 10px; align-items: start; }
.roster-header { padding: 10px 14px; border-radius: 16px; background: rgba(31, 75, 59, .08); color: #1f4b3b; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.roster-card-list { display: grid; gap: 10px; }
.roster-pet-card { padding: 12px; border: 1px solid rgba(181, 151, 80, .30); border-radius: 18px; background: rgba(255,255,255,.82); box-shadow: 0 8px 22px rgba(31, 75, 59, .06); }
.roster-client-name { font-size: 11px; color: #7a6a54; margin-bottom: 2px; }
.roster-pet-name { font-weight: 800; color: #1f4b3b; line-height: 1.25; }
.quirk-chip, .booking-type-chip { display: inline-flex; border-radius: 999px; padding: 5px 9px; background: rgba(200, 176, 148, .28); color: #1f4b3b; font-size: 12px; font-weight: 700; }
.booking-type-chip { background: rgba(181, 151, 80, .20); }
.status-label { font-weight: 800; color: #1f4b3b; margin-bottom: 8px; }
.roster-action-buttons { display: flex; flex-wrap: wrap; gap: 6px; }
.roster-action-buttons .btn { padding: 6px 9px; font-size: 12px; white-space: nowrap; }
.roster-additional-cell { line-height: 1.45; }
.empty-card { border: 1px dashed rgba(181, 151, 80, .45); border-radius: 18px; padding: 22px; text-align: center; color: #7a6a54; background: rgba(250, 240, 230, .35); }
@media (max-width: 980px) { .roster-grid { grid-template-columns: 1fr; } .roster-header { display: none; } .roster-pet-card .roster-grid > div { padding-bottom: 8px; border-bottom: 1px solid rgba(31,75,59,.08); } }
@media print { .top-toolbar-wrap, .bookings-retail-menu-card, .roster-search-row, .roster-action-form, .btn { display: none !important; } .roster-shell { box-shadow: none; border: none; } }

/* Roster confirmed-time editing */
.roster-time-cell { min-width: 0; }
.roster-time-readonly { display: inline-flex; min-height: 34px; align-items: center; color: #6f7568; font-weight: 800; font-size: 12px; }
.roster-time-picker-shell { position: relative; display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.roster-time-picker-shell .bbh-time-picker-shell { width: auto; min-width: 92px; }
.roster-time-picker-shell .bbh-time-picker { min-height: 34px; padding: 6px 8px; font-size: 12px; border-width: 1px; }
.roster-time-picker-shell .bbh-time-picker-icon { display: none; }
.roster-time-picker-shell .bbh-clock-popover { z-index: 9000; }
.roster-time-picker-shell.is-saving .bbh-time-picker { opacity: .62; pointer-events: none; }
.roster-edited-tag { display: inline-flex; align-items: center; border-radius: 999px; padding: 3px 6px; background: rgba(181, 151, 80, .18); color: #7a5b16; font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .04em; }
.roster-additional-cell { line-height: 1.35; font-size: 13px; }

/* Checkout / Summary & Payments */
.bbh-checkout-header{background:#fff;border-bottom:1px solid #C8B094;margin:-1rem -1rem 0;padding:1.5rem 1.5rem 1.25rem}.bbh-checkout-header h1{font-family:Georgia,serif;color:#1F3D2B;font-size:1.6rem;letter-spacing:.03em;margin:0}.bbh-checkout-header p{font-family:Georgia,serif;color:rgba(31,61,43,.72);text-transform:uppercase;letter-spacing:.12em;font-size:.82rem;margin:.25rem 0 0}.bbh-gold-rule{width:3rem;height:2px;background:#C8B094;margin:.45rem 0}.bbh-checkout-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(280px,1fr);gap:1.25rem;padding:1.25rem 0}.bbh-checkout-main{display:flex;flex-direction:column;gap:1rem}.bbh-checkout-client-card h2{margin:0;color:#1F3D2B}.bbh-checkout-client-card p{margin:.2rem 0;color:#647066}.bbh-line-items-card .muted{font-size:.82rem}.bbh-pet-line-wrap{display:flex;flex-direction:column;gap:1rem}.bbh-pet-line-card{border:1px solid #C8B094;border-radius:1rem;overflow:hidden;background:#fff}.bbh-pet-line-header{background:#1F3D2B;color:#fff;padding:.7rem 1rem;font-weight:700}.bbh-line-grid{display:grid;grid-template-columns:minmax(230px,1fr) 110px 170px 95px 100px;gap:.75rem;align-items:center}.bbh-line-title-row{padding:.55rem 1rem;background:#fff;border-top:1px solid #C8B094;color:rgba(31,61,43,.72);font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.bbh-line-title-row>div:not(:first-child){text-align:right}.bbh-line-row{padding:.75rem 1rem;background:#E3F0EA;border-top:1px solid #E5D6C7}.bbh-line-description{width:100%;border:0;background:transparent;color:#1F3D2B;font-weight:650;padding:0}.bbh-line-description:focus{outline:1px solid #C8B094;background:#fff;border-radius:.4rem;padding:.2rem}.bbh-line-subnote{font-size:.74rem;color:#637268;margin-top:.15rem}.bbh-money-input{display:flex;align-items:center;gap:.35rem;justify-content:flex-end}.bbh-money-input span{color:#637268;font-size:.85rem}.bbh-derived-price-cell strong{min-width:5.2rem;text-align:right}.bbh-money-input input,.bbh-discount-cell input,.bbh-payment-entry input,.bbh-payment-panel select{border:1px solid #C8B094;border-radius:.55rem;background:#fff;color:#1F3D2B;padding:.45rem .55rem}.bbh-money-input input{width:5.2rem;text-align:right}.bbh-discount-cell{display:flex;justify-content:flex-end;gap:.35rem}.bbh-discount-toggle{border:1px solid #C8B094;border-radius:.5rem;background:#fff;color:#1F3D2B;font-size:.78rem;font-weight:800;padding:.42rem .55rem}.bbh-discount-toggle.is-active{background:#1F3D2B;border-color:#1F3D2B;color:#fff}.bbh-discount-cell input{width:4rem;text-align:right}.bbh-service-total{text-align:right}.bbh-service-total strong{display:block}.bbh-service-total small{color:#637268;font-size:.72rem}.bbh-comp-button{justify-self:end;display:flex;align-items:center;gap:.4rem;border:1px solid #1F3D2B;background:#1F3D2B;color:#fff;border-radius:.55rem;padding:.4rem .55rem;font-size:.75rem;font-weight:800}.bbh-comp-button span{width:1.15rem;height:1.15rem;background:#fff;border:1px solid #C8B094;border-radius:.2rem;display:flex;align-items:center;justify-content:center}.bbh-comp-button b{color:transparent}.bbh-comp-button.is-comped b{color:#1F3D2B}.bbh-summary-card{position:sticky;top:1rem;background:#fff}.bbh-summary-card h2{margin-top:0}.bbh-summary-row{display:flex;justify-content:space-between;gap:1rem;font-size:.92rem;margin:.65rem 0}.bbh-summary-total{font-size:1.08rem}.bbh-summary-rule{height:1px;background:#C8B094;margin:.9rem 0}.bbh-payment-panel{display:flex;flex-direction:column;gap:.65rem;margin-top:1rem}.bbh-payment-panel select{width:100%}.bbh-payment-entry{background:#E3F0EA;border:1px solid #C8B094;border-radius:.9rem;padding:.85rem;display:flex;flex-direction:column;gap:.55rem}.bbh-payment-entry label{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:rgba(31,61,43,.72)}.bbh-payment-warning{color:#a23b3b;font-size:.78rem;margin:0}.bbh-complete-payment{width:100%}.bbh-checkout-line-topbar{display:grid;grid-template-columns:1fr auto auto;gap:1rem;align-items:start}.bbh-checkout-time-summary{display:grid;grid-template-columns:130px 130px auto;align-items:end;gap:.55rem}.bbh-checkout-time-field label{display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:rgba(31,61,43,.72);font-weight:850;margin:0 0 .18rem .2rem}.bbh-checkout-time-field .bbh-time-picker{border-radius:.85rem;background:#E3F0EA;border-color:#C8B094;min-height:42px;padding:.55rem .75rem;font-weight:850}.bbh-checkout-time-field .bbh-clock-popover{left:auto;right:0}.bbh-checkout-duration{font-size:.78rem;color:#657267;white-space:nowrap;align-self:end;padding-bottom:.52rem}.bbh-receipt-modal,.bbh-payment-success-modal{position:fixed;inset:0;background:rgba(0,0,0,.32);z-index:999;display:flex;align-items:center;justify-content:center}.bbh-receipt-card{background:#fff;border:1px solid #C8B094;border-radius:1rem;box-shadow:0 18px 40px rgba(0,0,0,.18);width:min(420px,calc(100vw - 2rem));padding:1.25rem}.bbh-receipt-card h2{margin-top:0;color:#1F3D2B}.bbh-receipt-card p{color:#637268}.bbh-receipt-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.55rem}.bbh-payment-success-card{position:relative;overflow:hidden;background:#E3F0EA;border:1px solid #C8B094;border-radius:1.2rem;box-shadow:0 18px 40px rgba(0,0,0,.18);width:min(380px,calc(100vw - 2rem));padding:1.5rem;text-align:center}.bbh-payment-success-card h2{color:#1F3D2B;margin:.4rem 0}.bbh-payment-success-card p{color:rgba(31,61,43,.72)}.bbh-confetti{position:absolute;inset:0;pointer-events:none}.bbh-confetti span{position:absolute;width:6px;height:14px;border-radius:2px;left:calc((var(--i) * 17%));top:calc((var(--i) * 29%) - 20px);background:#C8B094;animation:bbh-confetti-fall calc(.9s + (var(--i) * .02s)) ease-in-out infinite;transform:rotate(calc(var(--i) * 37deg))}.bbh-confetti span:nth-child(3n){background:#1F3D2B}.bbh-confetti span:nth-child(3n+1){background:#fff}@keyframes bbh-confetti-fall{0%{transform:translateY(-30px) rotate(0);opacity:0}50%{opacity:1}100%{transform:translateY(130px) rotate(180deg);opacity:0}}@media(max-width:980px){.bbh-checkout-layout{grid-template-columns:1fr}.bbh-summary-card{position:static}.bbh-line-grid{grid-template-columns:1fr}.bbh-line-title-row{display:none}.bbh-line-row>div,.bbh-line-row button{justify-self:stretch}.bbh-discount-cell,.bbh-money-input{justify-content:flex-start}.bbh-service-total{text-align:left}.bbh-checkout-line-topbar{grid-template-columns:1fr}.bbh-checkout-time-summary{grid-template-columns:1fr 1fr auto}.bbh-checkout-time-field .bbh-clock-popover{left:0;right:auto}}@media(max-width:640px){.bbh-checkout-time-summary{grid-template-columns:1fr}}

/* Checkout split payments + fuller payment-success confetti */
.bbh-split-payment-panel{gap:.75rem}.bbh-split-payments{display:flex;flex-direction:column;gap:.75rem}.bbh-split-payment-row{border:1px solid #C8B094;border-radius:.95rem;background:#E3F0EA;padding:.85rem;display:flex;flex-direction:column;gap:.55rem}.bbh-split-payment-row>label{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:rgba(31,61,43,.72)}.bbh-add-split-payment{width:100%}.bbh-payment-remaining-row{border-top:1px solid #C8B094;padding-top:.65rem}.bbh-payment-success-card{min-height:210px}.bbh-confetti span{left:var(--x)!important;top:-24px!important;width:8px!important;height:18px!important;animation:bbh-confetti-fall-dense 1.65s ease-in-out infinite!important;animation-delay:var(--delay)!important;transform:rotate(var(--rot))!important}.bbh-confetti span:nth-child(4n){width:6px!important;height:6px!important;border-radius:999px!important}.bbh-confetti span:nth-child(5n){background:#E8D7A2!important}.bbh-confetti span:nth-child(7n){background:#C8B094!important}.bbh-confetti span:nth-child(3n){background:#1F3D2B!important}.bbh-confetti span:nth-child(3n+1){background:#fff!important}@keyframes bbh-confetti-fall-dense{0%{transform:translateY(-35px) rotate(var(--rot));opacity:0}12%{opacity:1}100%{transform:translateY(260px) rotate(calc(var(--rot) + 240deg));opacity:0}}

/* Paid roster items stay visible but inactive at the bottom */
.roster-pet-card.is-inactive{opacity:.58;background:#f2f0eb;border-style:dashed;filter:grayscale(.25)}.roster-pet-card.is-inactive .roster-grid{color:#68736b}.roster-pet-card.is-inactive .booking-type-chip,.roster-pet-card.is-inactive .quirk-chip{opacity:.7}.roster-inactive-pill{display:inline-flex;align-items:center;justify-content:center;border:1px solid #C8B094;border-radius:999px;background:#eee9df;color:#68736b;font-weight:800;padding:.45rem .75rem;font-size:.82rem}

.booking-status-pill{display:inline-flex!important;align-items:center;justify-content:center;border-radius:999px!important;padding:.55rem 1rem!important;font-weight:800!important;min-width:94px;text-align:center;white-space:nowrap}.booking-status-pill.is-solid{background:#123f2d!important;color:#fff!important;border-color:#123f2d!important}.bbh-real-invoice-table td,.bbh-real-invoice-table th{vertical-align:middle}

/* Payment success full celebration burst */
.bbh-complete-payment{position:relative;overflow:hidden}
.bbh-complete-payment.bbh-payment-button-bursting::before,.bbh-complete-payment.bbh-payment-button-bursting::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:10px;border-radius:999px;pointer-events:none;box-shadow:0 -38px 0 #C8B094,27px -27px 0 #E8D7A2,38px 0 0 #fff,27px 27px 0 #C8B094,0 38px 0 #E8D7A2,-27px 27px 0 #fff,-38px 0 0 #C8B094,-27px -27px 0 #fff;animation:bbh-payment-button-burst .72s ease-out infinite;transform:translate(-50%,-50%) scale(.2)}
.bbh-complete-payment.bbh-payment-button-bursting::after{animation-delay:.14s;transform:translate(-50%,-50%) scale(.12) rotate(22deg)}
@keyframes bbh-payment-button-burst{0%{opacity:1;transform:translate(-50%,-50%) scale(.15) rotate(0deg)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.55) rotate(70deg)}}
.bbh-payment-success-burst{background:rgba(0,0,0,.38);z-index:1200}
.bbh-payment-success-burst .bbh-payment-success-card{min-height:260px;width:min(460px,calc(100vw - 2rem));overflow:hidden;transform:scale(.98);animation:bbh-success-card-pop .35s ease-out forwards}
.bbh-confetti-full-burst{position:absolute;inset:0;overflow:hidden}
.bbh-confetti-full-burst span{left:var(--x)!important;top:-28px!important;width:9px!important;height:20px!important;border-radius:3px!important;animation:bbh-confetti-full-burst-fall 2.15s cubic-bezier(.12,.76,.28,1) infinite!important;animation-delay:var(--delay)!important;transform:translateX(0) rotate(var(--rot)) scale(var(--scale))!important}
.bbh-confetti-full-burst span:nth-child(4n){width:7px!important;height:7px!important;border-radius:999px!important}
.bbh-confetti-full-burst span:nth-child(5n){width:12px!important;height:12px!important;border-radius:1px!important}
.bbh-confetti-full-burst span:nth-child(6n){background:#E8D7A2!important}
.bbh-confetti-full-burst span:nth-child(7n){background:#C8B094!important}
.bbh-confetti-full-burst span:nth-child(3n){background:#1F3D2B!important}
.bbh-confetti-full-burst span:nth-child(3n+1){background:#fff!important}
@keyframes bbh-confetti-full-burst-fall{0%{opacity:0;transform:translateY(-40px) translateX(0) rotate(var(--rot)) scale(var(--scale))}8%{opacity:1}48%{opacity:1}100%{opacity:0;transform:translateY(340px) translateX(var(--drift)) rotate(calc(var(--rot) + 540deg)) scale(var(--scale))}}
@keyframes bbh-success-card-pop{0%{opacity:.75;transform:scale(.94) translateY(8px)}100%{opacity:1;transform:scale(1) translateY(0)}}

/* Roster v9: completed rows stay visible but muted at bottom */
.digital-roster-row.is-inactive{opacity:.55;background:#f2f0eb;border-style:dashed;filter:grayscale(.25)}
.digital-roster-row.is-inactive input{cursor:not-allowed}
.digital-roster-row.is-inactive .digital-roster-pet-block small{color:#68736b;font-weight:800}

/* Digital roster restored card layout */
.digital-roster-shell .digital-roster-tabs{display:flex;gap:.45rem;flex-wrap:wrap;margin:.75rem 0 .7rem}
.digital-roster-tab{border:1px solid #d9c9a8;background:#f6f2e9;color:#173d2b;border-radius:999px;padding:.45rem .9rem;font-weight:800;cursor:pointer}
.digital-roster-tab.is-active{background:#173d2b;color:#fff;border-color:#173d2b}
.digital-roster-sections.is-tabbed .digital-roster-section{display:none}
.digital-roster-sections.is-tabbed .digital-roster-section.is-active{display:block}
.digital-roster-section{border:1px solid #dfd1b7;border-radius:1.15rem;background:#fffdf8;padding:1rem;margin-top:.65rem}
.digital-roster-section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}
.digital-roster-section-head h3{margin:0;color:#173d2b;font-size:1.1rem}
.digital-roster-count{border:1px solid #d9c9a8;background:#f8f3e8;color:#173d2b;border-radius:999px;padding:.25rem .65rem;font-weight:800;font-size:.85rem;white-space:nowrap}
.digital-roster-list{display:flex;flex-direction:column;gap:.7rem}
.digital-roster-row{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:.8rem;border:1px solid #dfd1b7;border-radius:.9rem;background:#fff;padding:.75rem .8rem;min-height:58px;cursor:pointer;box-shadow:0 1px 0 rgba(31,61,43,.03)}
.digital-roster-row input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:24px;height:24px;border:2px solid rgba(31,61,43,.42);border-radius:.45rem;background:#fff;margin:0;display:block;position:relative;cursor:pointer}
.digital-roster-row input[type="checkbox"]:checked{background:#173d2b;border-color:#173d2b}
.digital-roster-row input[type="checkbox"]:checked:after{content:'✓';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:900;line-height:1}
.digital-roster-pet-block{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.digital-roster-pet-block strong{display:block;color:#173d2b;font-size:.96rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase;white-space:normal;word-break:break-word}
.digital-roster-pet-block small{display:block;color:#667367;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;white-space:normal;word-break:break-word;margin-top:.15rem}
.digital-roster-row.is-checked{background:#e8f2ec;border-color:#b9d3c0}
.digital-roster-row.is-checked .digital-roster-pet-block strong{color:#0f3b2b}
.digital-roster-row.is-inactive{opacity:.62;background:#f2f0eb;border-style:dashed;filter:grayscale(.25);cursor:not-allowed;order:999}
.digital-roster-row.is-inactive input{cursor:not-allowed;background:#eee}
.digital-roster-row.is-inactive .digital-roster-pet-block{position:relative}
.digital-roster-row.is-inactive .digital-roster-pet-block:after{content:'';position:absolute;left:0;right:0;top:50%;height:2px;background:rgba(31,61,43,.35);transform:translateY(-50%)}
.digital-quick-add{margin-top:1rem}.digital-quick-add-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem;align-items:center}.digital-pet-results,.digital-selected-pets{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.75rem}.digital-pet-choice,.digital-selected-pet{border:1px solid #d9c9a8;border-radius:999px;background:#fff;color:#173d2b;padding:.55rem .8rem;font-weight:800;cursor:pointer}.digital-pet-choice.is-selected,.digital-selected-pet{background:#173d2b;color:#fff;border-color:#173d2b}
@media(max-width:760px){.digital-quick-add-line{grid-template-columns:1fr}.digital-roster-row{grid-template-columns:30px minmax(0,1fr)}}

/* Payment confetti is intentionally isolated inside the payment-success card only. */
/* v11 quick check-in decisive pet selection buttons */
.digital-pet-results{
  display:block;
  margin-top:.85rem;
}
.digital-pet-result-group{
  border:1px dashed #e0d0af;
  border-radius:18px;
  background:rgba(255,255,255,.72);
  padding:.75rem;
  margin:.65rem 0;
}
.digital-pet-result-client{
  color:#173d2b;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
  font-size:.82rem;
  margin-bottom:.5rem;
}
.digital-pet-result-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
}
.digital-pet-choice,
.digital-selected-pet{
  appearance:none;
  border:1px solid #d9c9a8;
  border-radius:999px;
  background:#fff;
  color:#173d2b;
  padding:.65rem 1rem;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 4px 10px rgba(23,61,43,.06);
}
.digital-pet-choice:hover{
  border-color:#b08d42;
  box-shadow:0 6px 14px rgba(23,61,43,.1);
}
.digital-pet-choice.is-selected,
.digital-selected-pet{
  background:#173d2b;
  color:#fff;
  border-color:#173d2b;
}
.digital-pet-choice-check{
  font-weight:900;
}
.digital-search-muted{
  display:inline-block;
  border:1px dashed #e0d0af;
  border-radius:14px;
  color:#7a6b58;
  padding:.65rem .85rem;
  background:#fffaf3;
}


/* v12: isolate payment-success confetti to the card, not the full viewport */
.bbh-payment-success-card{position:relative;overflow:hidden;isolation:isolate;}
.bbh-payment-success-card .bbh-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;}
.bbh-payment-success-card > h2,
.bbh-payment-success-card > p,
.bbh-payment-success-card > a,
.bbh-payment-success-card > button{position:relative;z-index:1;}

/* v13: force Quick Check In search results into real selectable pill buttons */
.digital-quick-add #digitalPetResults,
.bbh-modal-card #digitalPetResults,
#bookingWindow #digitalPetResults,
#digitalRoster #digitalPetResults{
  display:block !important;
  margin-top:1rem !important;
  width:100% !important;
}
.digital-quick-add .digital-pet-result-group,
.bbh-modal-card .digital-pet-result-group,
#bookingWindow .digital-pet-result-group,
#digitalRoster .digital-pet-result-group{
  display:block !important;
  width:100% !important;
  border:1px dashed #e0d0af !important;
  border-radius:18px !important;
  background:rgba(255,255,255,.78) !important;
  padding:.85rem !important;
  margin:.7rem 0 !important;
}
.digital-quick-add .digital-pet-result-client,
.bbh-modal-card .digital-pet-result-client,
#bookingWindow .digital-pet-result-client,
#digitalRoster .digital-pet-result-client{
  display:block !important;
  color:#173d2b !important;
  font-weight:900 !important;
  letter-spacing:.04em !important;
  text-transform:uppercase !important;
  font-size:.82rem !important;
  margin:0 0 .55rem 0 !important;
}
.digital-quick-add .digital-pet-result-buttons,
.bbh-modal-card .digital-pet-result-buttons,
#bookingWindow .digital-pet-result-buttons,
#digitalRoster .digital-pet-result-buttons{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:.6rem !important;
  align-items:center !important;
}
.digital-quick-add button.digital-pet-choice,
.bbh-modal-card button.digital-pet-choice,
#bookingWindow button.digital-pet-choice,
#digitalRoster button.digital-pet-choice,
.digital-quick-add button.digital-selected-pet,
.bbh-modal-card button.digital-selected-pet,
#bookingWindow button.digital-selected-pet,
#digitalRoster button.digital-selected-pet{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:42px !important;
  width:auto !important;
  max-width:100% !important;
  appearance:none !important;
  -webkit-appearance:none !important;
  border:1px solid #d9c9a8 !important;
  border-radius:999px !important;
  background:#fff !important;
  color:#173d2b !important;
  padding:.68rem 1.05rem !important;
  font-size:.95rem !important;
  font-weight:900 !important;
  line-height:1 !important;
  text-align:center !important;
  white-space:nowrap !important;
  cursor:pointer !important;
  box-shadow:0 4px 10px rgba(23,61,43,.06) !important;
}
.digital-quick-add button.digital-pet-choice:hover,
.bbh-modal-card button.digital-pet-choice:hover,
#bookingWindow button.digital-pet-choice:hover,
#digitalRoster button.digital-pet-choice:hover{
  border-color:#b08d42 !important;
  box-shadow:0 6px 14px rgba(23,61,43,.11) !important;
}
.digital-quick-add button.digital-pet-choice.is-selected,
.bbh-modal-card button.digital-pet-choice.is-selected,
#bookingWindow button.digital-pet-choice.is-selected,
#digitalRoster button.digital-pet-choice.is-selected,
.digital-quick-add button.digital-selected-pet,
.bbh-modal-card button.digital-selected-pet,
#bookingWindow button.digital-selected-pet,
#digitalRoster button.digital-selected-pet{
  background:#173d2b !important;
  color:#fff !important;
  border-color:#173d2b !important;
}
.digital-pet-choice-check{display:inline-block !important;margin-right:.25rem !important;font-weight:900 !important;}

/* v14: confirmed payment success confetti originates from the Payment Successful card itself. */
.bbh-payment-success-modal.bbh-payment-success-burst{background:rgba(0,0,0,.38);z-index:1200;}
.bbh-payment-success-card{position:relative;overflow:hidden;isolation:isolate;min-height:260px;width:min(460px,calc(100vw - 2rem));}
.bbh-payment-success-card .bbh-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;}
.bbh-payment-success-card > h2,
.bbh-payment-success-card > p,
.bbh-payment-success-card > a,
.bbh-payment-success-card > button{position:relative;z-index:1;}
.bbh-confetti-card-burst span{position:absolute!important;left:50%!important;top:45%!important;width:9px!important;height:18px!important;border-radius:3px!important;background:#C8B094;opacity:0;animation:bbh-card-origin-confetti-burst 1.75s cubic-bezier(.12,.76,.28,1) forwards!important;animation-delay:var(--delay)!important;transform:translate(-50%,-50%) rotate(var(--rot)) scale(var(--scale))!important;}
.bbh-confetti-card-burst span:nth-child(4n){width:7px!important;height:7px!important;border-radius:999px!important;}
.bbh-confetti-card-burst span:nth-child(5n){width:12px!important;height:12px!important;border-radius:1px!important;background:#E8D7A2!important;}
.bbh-confetti-card-burst span:nth-child(6n){background:#fff!important;}
.bbh-confetti-card-burst span:nth-child(3n){background:#1F3D2B!important;}
.bbh-confetti-card-burst span:nth-child(7n){background:#C8B094!important;}
@keyframes bbh-card-origin-confetti-burst{
  0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--rot)) scale(.25);}
  8%{opacity:1;}
  34%{opacity:1;transform:translate(calc(-50% + var(--mid-x)),calc(-50% + var(--mid-y))) rotate(calc(var(--rot) + 220deg)) scale(var(--scale));}
  100%{opacity:0;transform:translate(calc(-50% + var(--end-x)),calc(-50% + var(--end-y))) rotate(calc(var(--rot) + 720deg)) scale(var(--scale));}
}

/* Pet Quirks */
.pet-quirk-selector{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border:1px solid var(--border);border-radius:18px;background:#fff;padding:12px;margin:8px 0 14px}.pet-quirk-choice{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--quirk-color,#7f1d1d);border-radius:999px;background:#fff;color:var(--quirk-color,#7f1d1d);padding:8px 13px;font-weight:800;cursor:pointer;line-height:1}.pet-quirk-choice input{position:absolute;opacity:0;pointer-events:none}.pet-quirk-choice.active{background:var(--quirk-color,#7f1d1d);color:#fff}.pet-quirk-save-message{font-size:.86rem;font-weight:800;margin-left:4px}.pet-quirk-save-message.is-success{color:#1f5d37}.pet-quirk-save-message.is-error{color:#8f1f1f}.pet-quirk-save-message.is-saving{color:var(--muted)}.pet-quirk-pill-wrap{display:flex;gap:5px;align-items:center;flex-wrap:wrap;position:relative}.pet-quirk-pill{display:inline-flex;align-items:center;max-width:138px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:999px;background:var(--quirk-color,#7f1d1d);color:#fff;padding:5px 9px;font-size:.78rem;font-weight:850;line-height:1}.pet-quirk-more{border:1px solid var(--gold-soft);background:#fffdf8;border-radius:999px;min-width:34px;height:28px;font-weight:900;cursor:pointer}.pet-quirk-popover{position:absolute;z-index:30;top:34px;left:0;display:flex;flex-wrap:wrap;gap:6px;min-width:220px;max-width:320px;padding:10px;border:1px solid var(--gold-soft);border-radius:16px;background:#fff;box-shadow:0 12px 28px rgba(0,0,0,.16)}.pet-quirk-popover:not([hidden]){display:flex}.digital-roster-quirks{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}.print-quirks{display:flex;gap:4px;flex-wrap:wrap}.print-quirk-pill{display:inline-block;border:1px solid #444;border-radius:999px;padding:2px 5px;font-size:10px;white-space:nowrap}.print-quirk-more{font-weight:700}

/* Roster v39: per-pet quirk alignment, no overflow popovers */
.roster-grid{grid-template-columns:.92fr 1.48fr .72fr .72fr .68fr .68fr .86fr .62fr;align-items:start;}
.roster-pets-cell,.roster-quirks-cell{display:flex;flex-direction:column;gap:0;}
.roster-client-spacer{height:17px;margin-bottom:2px;}
.roster-pet-line{min-height:25px;display:flex;align-items:center;border-bottom:1px solid rgba(31,75,59,.16);}
.roster-pet-line:last-child{border-bottom:0;}
.roster-pet-quirks-line{gap:5px;min-width:0;}
.roster-pet-quirks-line .pet-quirk-pill-wrap{align-items:center;flex-wrap:wrap;gap:5px;}
.pet-quirk-pill-wrap{display:flex;gap:5px;align-items:center;flex-wrap:wrap;position:relative;}
.pet-quirk-pill{max-width:118px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:999px;background:var(--quirk-color,#7f1d1d);color:#fff;padding:4px 8px;font-size:.75rem;font-weight:850;line-height:1;}
.pet-quirk-more,.pet-quirk-popover{display:none!important;}
.roster-status-cell{min-width:0;}
.roster-header{align-items:center;}
@media(max-width:980px){.roster-grid{grid-template-columns:1fr}.roster-client-spacer{display:none}.roster-pet-line{border-bottom:0;min-height:auto;margin-bottom:4px}}

/* Roster v40: preserve v39 look, tighten non-quirk columns, keep quirk pills on one line */
.roster-grid{
  grid-template-columns:.72fr 2.05fr .62fr .62fr .54fr .54fr .72fr .43fr !important;
  column-gap:12px;
  align-items:start;
}
.roster-header{
  align-items:center;
}
.roster-pets-cell,
.roster-quirks-cell{
  min-width:0;
}
.roster-pet-quirks-line{
  min-width:0;
  overflow:hidden;
}
.roster-pet-quirks-line .pet-quirk-pill-wrap{
  display:flex;
  flex-wrap:nowrap !important;
  gap:5px;
  align-items:center;
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
.roster-pet-quirks-line .pet-quirk-pill{
  flex:0 0 auto;
  max-width:none;
  padding:4px 7px;
  font-size:.72rem;
  line-height:1;
}
.roster-status-cell{
  min-width:0;
  white-space:nowrap;
}
.roster-status-cell .btn,
.roster-status-cell button{
  padding:.45rem .7rem;
}
.roster-additional-cell{
  min-width:0;
}
.digital-roster-quirks{
  display:flex;
  flex-wrap:nowrap !important;
  gap:6px;
  align-items:center;
  max-width:100%;
  overflow:hidden;
}
.digital-roster-quirks .pet-quirk-pill-wrap{
  display:flex;
  flex-wrap:nowrap !important;
  gap:6px;
  align-items:center;
  max-width:100%;
  overflow:hidden;
}
.digital-roster-quirks .pet-quirk-pill{
  flex:0 0 auto;
  max-width:none;
  padding:4px 8px;
  font-size:.72rem;
  line-height:1;
}
@media(max-width:980px){
  .roster-grid{grid-template-columns:1fr !important;}
  .roster-pet-quirks-line .pet-quirk-pill-wrap,
  .digital-roster-quirks,
  .digital-roster-quirks .pet-quirk-pill-wrap{flex-wrap:wrap !important;}
}

/* Boarding Phase 1: booking date/enclosure buffer */
.booking-date-enclosure-buffer {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}
.booking-daycare-extra-dates,
.booking-enclosure-shell {
  border: 1px dashed var(--gold-soft, #d6c8a8);
  border-radius: 18px;
  background: rgba(255,253,248,.72);
  padding: 10px 12px;
}
.booking-buffer-title,
.booking-enclosure-label {
  display: flex;
  gap: 8px;
  align-items: center;
  color: var(--text, #173b2b);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 7px;
}
.booking-enclosure-label span {
  color: #8a806d;
  font-size: .68rem;
  letter-spacing: .06em;
  text-transform: none;
}
.booking-buffer-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
  min-height: 30px;
}
.booking-buffer-empty {
  color: #8a806d;
  font-size: .84rem;
}
.booking-extra-date-pill,
.booking-buffer-add,
.booking-enclosure-pill,
.booking-enclosure-clear {
  border: 1px solid var(--gold-soft, #d6c8a8);
  border-radius: 999px;
  background: #fffdf8;
  color: var(--text, #173b2b);
  font-weight: 800;
  cursor: pointer;
}
.booking-extra-date-pill {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  padding: 6px 10px;
  border-style: dashed;
  font-size: .84rem;
}
.booking-extra-date-x {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: #f1eadb;
}
.booking-buffer-add {
  margin-top: 8px;
  padding: 7px 12px;
  font-size: .84rem;
}
.booking-enclosure-controls {
  position: relative;
  display: inline-flex;
  gap: 6px;
  align-items: center;
  max-width: 100%;
}
.booking-enclosure-pill {
  min-width: 190px;
  max-width: 280px;
  min-height: 42px;
  padding: 8px 13px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  box-shadow: 0 2px 8px rgba(20,20,20,.03);
}
.booking-enclosure-clear {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.booking-enclosure-menu {
  position: absolute;
  z-index: 55;
  left: 0;
  top: calc(100% + 8px);
  min-width: 260px;
  max-height: 240px;
  overflow-y: auto;
  border: 1px solid var(--gold-soft, #d6c8a8);
  border-radius: 16px;
  background: #fffdf8;
  box-shadow: 0 14px 30px rgba(20,20,20,.12);
  padding: 6px;
}
.booking-enclosure-option {
  width: 100%;
  border: 0;
  background: transparent;
  border-radius: 12px;
  padding: 9px 10px;
  text-align: left;
  cursor: pointer;
  color: var(--text, #173b2b);
}
.booking-enclosure-option:hover { background: #f4efe2; }
.booking-enclosure-option strong,
.booking-enclosure-option span { display: block; }
.booking-enclosure-option span {
  margin-top: 2px;
  color: #8a806d;
  font-size: .78rem;
}
.booking-enclosure-empty {
  padding: 10px;
  color: #8a806d;
  font-size: .84rem;
}

/* Boarding Phase 1: pill enclosure auto selector */
.booking-enclosure-auto {
  border: 1px dashed var(--theme-border, #d6cbb5);
  background: rgba(255,255,255,.85);
  border-radius: 999px;
  padding: 7px 12px;
  font-size: 12px;
  font-weight: 700;
  color: var(--theme-primary, #244231);
  cursor: pointer;
  white-space: nowrap;
}
.booking-enclosure-auto:hover {
  background: rgba(198, 176, 148, .18);
}
.booking-enclosure-option span {
  font-size: 11px;
  opacity: .75;
}

/* Indulgences & Care Center pill selector under Booking Details enclosure */
.booking-care-center-shell {
  border: 2px dashed var(--gold-soft);
  border-radius: 22px;
  padding: 16px 18px;
  background: rgba(255,255,255,.48);
  margin-top: 14px;
}
.care-center-help {
  margin: 4px 0 14px;
  font-size: .88rem;
}
.care-center-pill-group + .care-center-pill-group {
  margin-top: 14px;
}
.care-center-pill-group-title {
  text-transform: uppercase;
  letter-spacing: .18em;
  color: var(--green-dark);
  font-weight: 900;
  font-size: .72rem;
  margin-bottom: 8px;
}
.care-center-pill-list {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}
.care-center-choice {
  border-radius: 999px;
  padding: 10px 15px;
  font-weight: 900;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease, filter .12s ease;
}
.care-center-choice:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(22, 61, 45, .14);
}
.care-center-choice-indulgences {
  background: #B8C9B0;
  color: var(--green-dark);
  border: 2px solid var(--gold);
}
.care-center-choice-medications {
  background: #8A2F2F;
  color: #fff;
  border: 2px solid #A94747;
}
.care-center-choice.is-selected {
  filter: none;
  box-shadow: 0 0 0 4px var(--gold), 0 8px 18px rgba(22, 61, 45, .16);
}
.care-center-choice strong {
  font-weight: 950;
}
.care-center-empty {
  padding: 8px 0;
}
.care-center-settings .care-center-settings-rows {
  display: grid;
  gap: 10px;
}
.care-center-settings-row {
  display: grid;
  grid-template-columns: minmax(90px, .72fr) 118px 118px 100px 76px 68px 176px minmax(90px, .55fr) 78px;
  gap: 9px;
  align-items: end;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: #fff;
  padding: 10px;
}
.care-center-settings-row .field { min-width: 0; }
.care-center-settings-row .field label {
  display: block;
  margin-bottom: 4px;
  font-size: .62rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 900;
}
.care-center-settings-row input[type="text"],
.care-center-settings-row input[type="number"],
.care-center-settings-row select {
  min-height: 38px;
  border-radius: 14px;
  width: 100%;
  box-sizing: border-box;
  min-width: 0;
  padding: 7px 10px;
}
.care-center-check {
  min-height: 38px;
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 850;
  color: var(--green-dark);
}
.care-center-delete {
  min-height: 38px;
}
@media (max-width: 1100px) {
  .care-center-settings-row {
    grid-template-columns: 1fr 1fr;
  }
  .care-center-name-field,
  .care-center-description-field {
    grid-column: 1 / -1;
  }
}


/* Indulgences & Care Center roster card */
.care-center-roster-card { margin: 18px 0; }
.care-center-head h2 { margin: 0 0 4px; color: var(--green-dark); }
.care-center-table { display: grid; gap: 8px; }
.care-center-grid { display: grid; grid-template-columns: 1.2fr 1.4fr .8fr .55fr .55fr .55fr .7fr .8fr; gap: 8px; align-items: center; }
.care-center-grid-head { font-size: .72rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); padding: 0 8px; }
.care-center-row { border: 1px solid var(--border); border-radius: 18px; padding: 10px; background: rgba(255,255,255,.82); }
.care-center-row.is-very-urgent { border-color: #9f2f2f; background: rgba(159,47,47,.11); box-shadow: inset 4px 0 0 #9f2f2f; }
.care-center-row.is-complete { opacity: .58; filter: grayscale(.25); background: rgba(235,232,224,.72); }
.care-client-name { display: block; font-size: .78rem; margin-top: 2px; }
.care-urgency-pill { display: inline-flex; border-radius: 999px; padding: 5px 8px; font-size: .72rem; font-weight: 900; text-transform: capitalize; border: 1px solid var(--gold); }
.care-urgency-very_urgent { background: #9f2f2f; color: #fff; }
.care-urgency-normal { background: #B8C9B0; color: var(--green-dark); }
.care-slot-btn { border-radius: 999px; border: 2px solid var(--gold); background: #fff; color: var(--green-dark); font-weight: 900; padding: 7px 10px; cursor: pointer; }
.care-slot-done { display: inline-flex; border-radius: 999px; background: #B8C9B0; color: var(--green-dark); font-weight: 900; padding: 7px 10px; border: 1px solid var(--gold); }
.care-slot-muted { color: var(--muted); font-weight: 900; }
.care-initials-input { width: 100%; min-height: 38px; border-radius: 14px; border: 1px solid var(--border); padding: 7px 9px; box-sizing: border-box; }
.care-complete-whole { min-height: 38px; }
@media (max-width: 1100px) { .care-center-grid { grid-template-columns: 1fr 1fr; } .care-center-grid-head { display:none; } }

/* Care Center tight corrective overrides */
.care-center-settings .care-center-settings-row {
  display: grid !important;
  grid-template-columns: minmax(180px, 1.1fr) 120px 120px 94px 82px 74px 190px minmax(105px, .55fr) 82px !important;
  gap: 8px !important;
  align-items: end !important;
  padding: 9px 10px !important;
}
.care-center-settings .care-center-time-slots {
  min-height: 38px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 6px !important;
  white-space: nowrap !important;
  margin: 0 !important;
}
.care-center-settings .care-center-time-slots label,
.care-center-settings .care-center-check {
  min-height: 38px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 4px !important;
  margin: 0 !important;
  white-space: nowrap !important;
  font-size: .72rem !important;
  font-weight: 900 !important;
  letter-spacing: .08em !important;
  color: var(--green-dark) !important;
}
.care-center-settings .care-center-time-slots input[type="checkbox"],
.care-center-settings .care-center-check input[type="checkbox"] {
  width: 14px !important;
  height: 14px !important;
  min-width: 14px !important;
  margin: 0 !important;
  position: static !important;
}
.care-center-settings .care-center-description-field input[type="text"] { max-width: 100% !important; }
.care-center-settings .care-center-settings-row input[type="text"],
.care-center-settings .care-center-settings-row input[type="number"],
.care-center-settings .care-center-settings-row select {
  min-height: 34px !important;
  padding: 6px 8px !important;
}
.care-center-roster-card .care-center-table {
  max-height: 342px !important;
  overflow-y: auto !important;
  padding-right: 6px !important;
  scrollbar-gutter: stable !important;
}
.care-center-roster-card .care-slot-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
@media (max-width: 1100px) {
  .care-center-settings .care-center-settings-row { grid-template-columns: 1fr 1fr !important; }
}


.inline-cancel-form { display: inline-flex; margin: 0; }
.btn-danger { background: #8f2f2f; border-color: #c8a96a; color: #fff; }
.btn-danger:hover { filter: brightness(.96); }

/* Booking lifecycle card layout */
.booking-card-stack { display: grid; gap: 10px; }
.booking-lifecycle-card {
  border: 1px solid var(--border);
  border-radius: 18px;
  background: rgba(255,255,255,.72);
  padding: 12px 14px;
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
}
.booking-lifecycle-card.editing-row {
  border-color: var(--gold);
  box-shadow: 0 0 0 2px rgba(200,169,106,.22);
}
.booking-lifecycle-line {
  display: grid;
  grid-template-columns: minmax(220px, 1.35fr) minmax(100px, .55fr) minmax(150px, .8fr) minmax(210px, 1fr) auto;
  gap: 12px;
  align-items: center;
}
.booking-card-identity .strong { font-size: 1rem; }
.booking-card-service,
.booking-card-date,
.booking-card-action-note {
  color: var(--green-dark);
  font-weight: 800;
}
.booking-card-action-note { color: var(--muted); font-size: .9rem; }
.booking-card-controls {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  white-space: nowrap;
}
.booking-initials-input {
  width: 86px;
  min-height: 40px;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 0 12px;
  font-weight: 850;
  color: var(--green-dark);
  background: rgba(255,255,255,.9);
  text-transform: uppercase;
}
.booking-initials-input::placeholder { text-transform: none; color: var(--muted); }
.booking-card-controls .inline-cancel-form { display: inline-flex; margin: 0; }
.btn.is-disabled { opacity: .55; pointer-events: none; }
@media (max-width: 1300px) {
  .booking-lifecycle-line { grid-template-columns: 1fr; align-items: stretch; }
  .booking-card-controls { justify-content: flex-start; flex-wrap: wrap; }
}


/* Cancelled booking and invoice visibility */
.booking-lifecycle-card.booking-cancelled-card {
  background: rgba(241, 239, 232, .82);
  opacity: .72;
  border-color: rgba(200, 169, 106, .55);
}
.booking-lifecycle-card.booking-cancelled-card .booking-card-identity,
.booking-lifecycle-card.booking-cancelled-card .booking-card-service,
.booking-lifecycle-card.booking-cancelled-card .booking-card-date,
.booking-lifecycle-card.booking-cancelled-card .booking-card-action-note {
  color: rgba(22, 61, 45, .72);
}
.invoice-row-cancelled td {
  color: rgba(22, 61, 45, .58);
  text-decoration: line-through;
  background: rgba(241, 239, 232, .55);
}
.invoice-row-cancelled td:last-child {
  text-decoration: none;
}

/* Grooming appointment calendar responsive card rebuild */
.grooming-calendar-board{border:1px solid #d9cba9;border-radius:24px;background:#fffaf5;padding:16px;min-height:360px;color:#123e2d;font-weight:800;overflow:hidden;}
.grooming-calendar-empty{padding:18px;border:1px dashed #d9cba9;border-radius:20px;background:#fff;color:#123e2d;font-weight:900;}
.grooming-calendar-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(260px,1fr);gap:12px;align-items:center;margin-bottom:16px;}
.grooming-calendar-filter-pills{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0;}
.grooming-calendar-filter-pill,.grooming-calendar-view-pill{border:1px solid #d9cba9;border-radius:999px;background:#fffaf5;color:#123e2d;padding:9px 16px;font-weight:950;cursor:pointer;box-shadow:0 4px 10px rgba(62,43,21,.05);white-space:nowrap;}
.grooming-calendar-filter-pill.is-active,.grooming-calendar-view-pill.is-active{background:#123e2d;color:#fffaf5;border-color:#123e2d;}
.grooming-calendar-date-nav{display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #d9cba9;border-radius:999px;background:#fff;padding:6px 10px;min-width:260px;}
.grooming-calendar-date-nav button{width:34px;height:34px;border-radius:999px;border:1px solid #d9cba9;background:#fffaf5;color:#123e2d;font-size:1.4rem;line-height:1;cursor:pointer;font-weight:950;}
.grooming-calendar-date-nav strong{font-size:.92rem;font-weight:950;text-align:center;white-space:nowrap;color:#123e2d;}
.grooming-calendar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;}
.grooming-calendar-view-pills{display:flex;align-items:center;gap:6px;}
.grooming-calendar-block-toggle{border:2px solid #b58b1f;border-radius:999px;background:#fffaf5;color:#123e2d;padding:10px 18px;font-weight:950;cursor:pointer;white-space:nowrap;}
.grooming-calendar-block-toggle.is-active{background:#b58b1f;color:#111;border-color:#b58b1f;}
.grooming-card-scroller{overflow-x:auto;overflow-y:hidden;padding-bottom:14px;scrollbar-color:#726f66 #eee9dd;scrollbar-width:auto;}
.grooming-card-track{display:flex;gap:16px;align-items:flex-start;min-width:max-content;}
.groomer-day-card{flex:0 0 430px;max-width:430px;border:1px solid #d9cba9;border-radius:24px;background:#fff;box-shadow:0 10px 24px rgba(62,43,21,.08);overflow:hidden;}
.groomer-day-card.is-selected{box-shadow:0 0 0 3px rgba(181,139,31,.24),0 10px 24px rgba(62,43,21,.08);}
.groomer-day-card-head{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid #d9cba9;background:#fffaf5;}
.groomer-day-card-head h3{margin:0;color:#123e2d;font-size:1.05rem;font-weight:950;}
.groomer-day-card-head p{margin:2px 0 0;color:#5d6658;font-size:.8rem;font-weight:900;}
.grooming-appt-avatar{width:42px;height:42px;border-radius:999px;background:#123e2d;color:#fffaf5;display:flex;align-items:center;justify-content:center;font-weight:950;font-size:1.15rem;box-shadow:0 2px 8px rgba(0,0,0,.12);flex:0 0 42px;}
.groomer-day-columns{display:grid;grid-template-columns:repeat(var(--day-count,1),360px);gap:0;overflow-x:auto;overflow-y:hidden;scrollbar-color:#726f66 #eee9dd;scrollbar-width:auto;}
.groomer-day-column{border-right:1px solid #d9d9d9;min-width:360px;}
.groomer-day-column:last-child{border-right:0;}
.groomer-day-date{height:78px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:#fff;border-bottom:1px solid #d9cba9;text-align:center;}
.groomer-day-date strong{font-size:.92rem;color:#123e2d;font-weight:950;}
.groomer-day-date span{font-size:.78rem;color:#3b83bd;font-weight:950;}
.groomer-day-date em{font-style:normal;font-size:.68rem;color:#5d6658;font-weight:900;}
.groomer-mini-grid{display:grid;grid-template-columns:72px minmax(180px,1fr);background:#fff;}
.groomer-time-rail{position:relative;border-right:1px solid #d9d9d9;background:#fffaf5;}
.grooming-appt-time-label{position:absolute;left:0;right:0;transform:translateY(-9px);text-align:center;color:#4d4d4d;font-size:.82rem;font-weight:950;z-index:3;white-space:nowrap;}
.grooming-appt-lane{position:relative;background:#b9d4c3;background-image:linear-gradient(to bottom,rgba(159,129,45,.52) 0,rgba(159,129,45,.52) 1px,transparent 1px,transparent 84px),linear-gradient(to bottom,rgba(255,255,255,.42) 0,rgba(255,255,255,.42) 1px,transparent 1px,transparent 21px);background-size:100% 84px,100% 21px;overflow:hidden;}
.grooming-appt-lane.is-unavailable{background-color:#dfe6dc;}
.grooming-appt-hit-zone{position:absolute;left:0;right:0;border:0;background:transparent;padding:0;margin:0;cursor:default;z-index:2;}
.grooming-appt-hit-zone.is-open{cursor:pointer;}
.grooming-appt-hit-zone.is-blockable{cursor:crosshair;}
.grooming-appt-hit-zone.is-open:hover,.grooming-appt-hit-zone.is-blockable:hover{background:rgba(255,250,245,.34);}
.grooming-appt-hit-zone.is-closed{cursor:not-allowed;}
.grooming-appt-block{position:absolute;left:10px;right:10px;z-index:8;border-radius:10px;border:1px solid rgba(255,255,255,.65);padding:8px;box-shadow:0 5px 12px rgba(62,43,21,.18);box-sizing:border-box;overflow:hidden;cursor:grab;}
.grooming-block-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}
.grooming-appt-block strong{display:block;font-size:.86rem;line-height:1.1;font-weight:950;}
.grooming-addon-count{display:inline-flex;align-items:center;justify-content:center;margin-left:4px;border:1px solid #b58b1f;border-radius:999px;background:#dbe9df;color:#123e2d;padding:1px 6px;font-size:.72rem;font-weight:950;}
.grooming-stay-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;border-radius:999px;background:#d8ad28;color:#050505;font-size:.72rem;font-weight:950;padding:0 7px;}
.grooming-appt-block small{display:inline-flex;margin-top:5px;border-radius:5px;background:rgba(255,255,255,.25);padding:3px 7px;font-size:.76rem;font-weight:900;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.grooming-appt-block em{display:block;margin-top:4px;font-style:normal;font-size:.68rem;font-weight:850;opacity:.85;}
.grooming-appt-hard-block{position:absolute;left:8px;right:8px;z-index:7;border-radius:12px;border:1px solid #a8a8a8;background:repeating-linear-gradient(135deg,#d6d6d6 0,#d6d6d6 8px,#c8c8c8 8px,#c8c8c8 16px);color:#123e2d;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-weight:950;box-shadow:0 5px 12px rgba(62,43,21,.12);pointer-events:auto;}
.grooming-appt-hard-block strong{font-size:.9rem;letter-spacing:.08em;}
.grooming-appt-hard-block span{font-size:.7rem;margin-top:3px;}
.grooming-appt-block-remove{position:absolute;right:6px;top:5px;border:0;border-radius:999px;background:rgba(255,255,255,.85);color:#222;width:22px;height:22px;font-weight:950;cursor:pointer;}
.grooming-appt-unavailable{position:absolute;left:12px;right:12px;top:30px;z-index:6;border:1px solid #d9cba9;border-radius:14px;background:rgba(255,250,245,.92);color:#123e2d;padding:12px;text-align:center;font-weight:950;box-shadow:0 6px 14px rgba(62,43,21,.08);}
@media(max-width:1100px){.grooming-calendar-toolbar{grid-template-columns:1fr;}.grooming-calendar-date-nav{order:2;justify-self:stretch;}.grooming-calendar-actions{justify-content:flex-start;}.groomer-day-card{flex-basis:min(430px,calc(100vw - 56px));max-width:min(430px,calc(100vw - 56px));}.groomer-day-columns{grid-template-columns:repeat(var(--day-count,1),330px);overflow-x:auto;}.groomer-day-column{min-width:330px;}.groomer-mini-grid{grid-template-columns:64px minmax(170px,1fr);}}
@media(max-width:700px){.grooming-calendar-board{padding:10px;border-radius:20px;}.groomer-day-card{flex-basis:calc(100vw - 42px);max-width:calc(100vw - 42px);}.grooming-calendar-view-pills{width:100%;}.grooming-calendar-view-pill{flex:1;padding-left:10px;padding-right:10px;}.groomer-day-columns{grid-template-columns:repeat(var(--day-count,1),270px);overflow-x:auto;}.groomer-day-column{min-width:270px;}.groomer-day-card-head{padding:12px;}.grooming-calendar-date-nav strong{font-size:.82rem;}.grooming-calendar-date-nav{min-width:0;}}



/* Client list/cards + client booking card containment patch */
.clients-list {
  padding: 10px;
  display: grid;
  gap: 8px;
  border-radius: 18px;
  scrollbar-color: #123e2d #2f312f;
  scrollbar-width: auto;
}
.clients-list::-webkit-scrollbar {
  width: 13px;
}
.clients-list::-webkit-scrollbar-track {
  background: #2f312f;
  border-radius: 999px;
}
.clients-list::-webkit-scrollbar-thumb {
  background: #123e2d;
  border-radius: 999px;
  border: 3px solid #2f312f;
}
.clients-list::-webkit-scrollbar-thumb:hover { background: #1f5b43; }
.client-list-card,
.client-list-row {
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(255,255,255,.82);
  padding: 12px 14px;
  border-bottom: 1px solid var(--border) !important;
}
.client-list-row:last-child { border-bottom: 1px solid var(--border) !important; }
.client-list-row.active-client-row {
  background: #f4efe2;
  border-color: var(--gold);
  box-shadow: inset 4px 0 0 rgba(200,169,106,.55);
}
.client-list-row.walk-in-client-row {
  order: -1;
  background: #fffaf2;
  border-color: rgba(200,169,106,.72);
}
.client-list-row.walk-in-client-row .strong::after {
  content: 'Static';
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 8px;
  padding: 2px 7px;
  border-radius: 999px;
  background: #123e2d;
  color: #fff;
  font-size: .62rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  vertical-align: middle;
}
.client-booking-card-stack {
  max-width: 100%;
  overflow-x: hidden;
}
.client-booking-card-stack .booking-lifecycle-card {
  max-width: 100%;
  overflow: hidden;
}
.client-booking-card-stack .booking-lifecycle-line {
  grid-template-columns: minmax(150px,1.2fr) minmax(92px,.65fr) minmax(130px,.9fr) minmax(120px,1fr);
  align-items: center;
}
.client-booking-card-stack .booking-card-controls {
  grid-column: 1 / -1;
  justify-content: flex-start;
  flex-wrap: wrap;
  white-space: normal;
  padding-top: 8px;
  border-top: 1px solid rgba(200,176,148,.45);
}
.client-booking-card-stack .booking-card-controls .btn,
.client-booking-card-stack .booking-card-controls .badge,
.client-booking-card-stack .booking-card-controls .booking-initials-input {
  flex: 0 0 auto;
}
.client-booking-card-stack .booking-card-identity,
.client-booking-card-stack .booking-card-service,
.client-booking-card-stack .booking-card-date,
.client-booking-card-stack .booking-card-action-note {
  min-width: 0;
  overflow-wrap: anywhere;
}
@media (max-width: 900px) {
  .client-booking-card-stack .booking-lifecycle-line { grid-template-columns: 1fr; }
  .client-booking-card-stack .booking-card-controls { grid-column: auto; }
}

/* Grooming calendar horizontal scrollbars: dark default-pill style */
.grooming-card-scroller,
.groomer-day-columns {
  overflow-x: scroll !important;
  scrollbar-gutter: stable;
  scrollbar-color: #123e2d #2f312f !important;
  scrollbar-width: auto !important;
}
.grooming-card-scroller::-webkit-scrollbar,
.groomer-day-columns::-webkit-scrollbar {
  height: 13px;
}
.grooming-card-scroller::-webkit-scrollbar-track,
.groomer-day-columns::-webkit-scrollbar-track {
  background: #2f312f;
  border-radius: 999px;
}
.grooming-card-scroller::-webkit-scrollbar-thumb,
.groomer-day-columns::-webkit-scrollbar-thumb {
  background: #123e2d;
  border-radius: 999px;
  border: 3px solid #2f312f;
}
.grooming-card-scroller::-webkit-scrollbar-thumb:hover,
.groomer-day-columns::-webkit-scrollbar-thumb:hover {
  background: #1f5b43;
}

/* Grooming isolation repair: Pet View component, internal day scroll, and old modal suppression */
.grooming-notes-modal{display:none!important;}
.grooming-pet-view-host.hidden{display:none!important;}
.grooming-pet-view-host{padding:12px 16px 0;background:#fffaf5;}
.grooming-pet-view-card{position:relative;border:1px solid #d9cba9;border-radius:22px;background:#fffaf5;padding:18px;box-shadow:0 8px 20px rgba(62,43,21,.08);color:#123e2d;max-width:100%;box-sizing:border-box;overflow:hidden;}
.grooming-pet-view-kicker{text-transform:uppercase;letter-spacing:.22em;color:#9f812d;font-weight:950;font-size:.72rem;margin-bottom:4px;}
.grooming-pet-view-card h3{margin:0;color:#123e2d;font-size:1.35rem;font-weight:950;line-height:1.05;}
.grooming-pet-view-subtitle{margin:5px 44px 12px 0;color:#6f7b6c;font-weight:900;line-height:1.2;}
.grooming-pet-view-close{position:absolute;right:14px;top:14px;width:40px;height:40px;border-radius:999px;border:1px solid #d9cba9;background:#fff;color:#123e2d;font-size:1.2rem;font-weight:950;cursor:pointer;}
.grooming-pet-view-timer-row{display:flex;gap:10px;align-items:center;border:1px solid #d9cba9;border-radius:18px;padding:10px;margin:0 0 14px 0;flex-wrap:wrap;}
.grooming-timer-status{border:1px solid #d9cba9;border-radius:999px;background:#fffaf5;padding:10px 16px;font-weight:950;}
.grooming-context-buttons{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 14px 0;}
.grooming-context-buttons .btn.is-active{background:#123e2d;color:#d8ad28;border-color:#123e2d;}
.grooming-pet-view-notes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:8px;}
.grooming-pet-view-label{display:flex;flex-direction:column;gap:7px;text-transform:uppercase;letter-spacing:.18em;color:#6f7b6c;font-weight:950;font-size:.72rem;min-width:0;}
.grooming-pet-view-label span{text-transform:none;letter-spacing:0;color:#6f7b6c;font-size:.9rem;font-weight:900;}
.grooming-pet-view-label textarea{width:100%;box-sizing:border-box;border:1px solid #d9cba9;border-radius:14px;background:#fff;color:#123e2d;padding:10px;font-weight:800;resize:vertical;min-height:96px;}
.grooming-pet-view-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:14px;}
.grooming-pet-view-actions [data-grooming-finished]{margin-right:auto;}
.grooming-pickup-placeholder{font-size:.78rem;line-height:1.05;padding:9px 12px;min-width:98px;}
.grooming-pickup-placeholder span{display:block;}
.groomer-day-columns{max-height:560px;overflow-y:auto;scrollbar-color:#123e2d #eee9dd;scrollbar-width:auto;}
.groomer-day-columns::-webkit-scrollbar{width:12px;height:12px;}
.groomer-day-columns::-webkit-scrollbar-track{background:#eee9dd;border-radius:999px;}
.groomer-day-columns::-webkit-scrollbar-thumb{background:#123e2d;border:3px solid #eee9dd;border-radius:999px;}
.groomer-day-columns::-webkit-scrollbar-thumb:hover{background:#1f5b43;}
.grooming-stay-badge{background:#050505!important;color:#d8ad28!important;border-radius:999px;min-width:26px;height:26px;padding:0 7px;font-size:.72rem;font-weight:950;}
.grooming-appt-block small{display:inline-flex;margin:4px 4px 0 0;border-radius:6px;background:rgba(255,255,255,.25);padding:3px 7px;font-size:.76rem;font-weight:900;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:top;}
.grooming-appt-block em{display:none!important;}
@media(max-width:700px){.grooming-pet-view-card{padding:14px;border-radius:18px;}.grooming-pet-view-notes-grid{grid-template-columns:1fr;}.grooming-pet-view-actions{justify-content:flex-start;}.grooming-pet-view-actions [data-grooming-finished]{margin-right:0;}.groomer-day-columns{max-height:430px;}}

/* Employee Security isolated settings card helpers */
.compact-security-grid { gap: 12px; align-items: end; }
.employee-security-row { gap: 12px; align-items: center; }
.employee-security-badges { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.compact-actions { display: flex; gap: 6px; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
.compact-actions form { margin: 0; }
.button.small { padding: 6px 10px; font-size: 12px; line-height: 1.1; }
.status-pill.warning { background: #fff3cd; color: #5f4600; border-color: #d4af37; }
.status-pill.danger { background: #f6dddd; color: #6e1e1e; border-color: #b25a5a; }
@media (max-width: 900px) {
  .form-grid.five-col.compact-security-grid { grid-template-columns: 1fr; }
  .employee-security-row { grid-template-columns: 1fr; }
  .compact-actions { justify-content: flex-start; }
}
