/* PfotenParadies · Design 22. Fonts and the original logo are served locally. */
@font-face{font-family:Manrope;src:url('fonts/manrope-400.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('fonts/manrope-500.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('fonts/manrope-600.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('fonts/manrope-700.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('fonts/manrope-800.ttf') format('truetype');font-weight:800;font-style:normal;font-display:swap}
:root{
  --brand:#d9517c;--pink:#d9517c;--pink-strong:#b93660;--pink-soft:#fff0f4;
  --ink:#35292f;--muted:#786a72;--line:#efdee4;--paper:#fff;--back:#fffbfc;
  --shadow:0 12px 40px rgba(100,45,66,.055);--font-body:Manrope,'Segoe UI',Arial,sans-serif;
  --font-display:Manrope,'Segoe UI',Arial,sans-serif;
  font-family:var(--font-body);color:var(--ink);background:var(--back)
}
body{font-family:var(--font-body);background:var(--back);color:var(--ink);font-size:14px;line-height:1.65}
button,input,textarea,select{font-family:var(--font-body)}
h1,h2{font-family:var(--font-display);font-weight:600;letter-spacing:-.025em;color:var(--ink)}
h1{line-height:1.03}h2{font-size:1.85rem;line-height:1.15}h3{font-weight:800;letter-spacing:-.02em}
p,.muted,.help-text{color:var(--muted)}
:focus-visible{outline:2px solid var(--pink-strong);outline-offset:3px}
.ui-icon{display:inline-block;width:21px;height:21px;flex:0 0 21px;vertical-align:middle}
.salon-logo{display:block;object-fit:contain;max-width:100%;height:auto}
.eyebrow,.sidebar-title{font-size:10px;letter-spacing:.17em;font-weight:800;line-height:1.6}
.container{max-width:1360px;padding:32px 32px 64px;min-height:calc(100dvh - 156px)}
.site-header{height:96px;padding:0 max(32px,calc((100vw - 1296px)/2));gap:24px;background:#fff;border-color:var(--line)}
.brand{gap:14px;letter-spacing:0}.header-logo{width:78px;height:78px;flex:0 0 78px}
.brand-caption{font-family:var(--font-display);font-size:28px;font-weight:600;line-height:1.1;color:var(--pink-strong)}
.brand-caption small{font-family:var(--font-body);font-size:8px;color:var(--muted);letter-spacing:.16em;font-weight:700;margin-top:6px}
.site-header nav{gap:10px;font-size:12px}.site-header nav a,.site-header .nav-button{display:inline-flex;align-items:center;min-height:42px;padding:10px 14px;border-radius:10px;font-size:12px;font-weight:700}
.site-header nav a.current,.site-header nav a:hover{background:var(--pink-soft);color:var(--pink-strong)}
.site-header .nav-button:hover{color:var(--pink-strong);background:var(--pink-soft)}
.footer{font-family:var(--font-body);font-size:11px;letter-spacing:.02em;background:#fff;color:var(--muted);border-color:var(--line);padding:22px}
.button{border-radius:11px;background:var(--pink-strong);border-color:var(--pink-strong);min-height:46px;padding:11px 20px;gap:12px;font-size:13px;font-weight:800;box-shadow:0 5px 14px rgba(185,54,96,.10);transition:background .15s,box-shadow .15s,transform .15s}
.button:hover{background:#a82c54;border-color:#a82c54;box-shadow:0 8px 20px rgba(185,54,96,.15)}
.button:disabled{box-shadow:none}.button.secondary{border-color:#e6b6c6;color:var(--pink-strong);box-shadow:none;background:#fff}
.button.secondary:hover{background:var(--pink-soft);border-color:var(--brand)}
.button.accept-button,.button.attendance-present{background:#257c48;border-color:#257c48;box-shadow:none}
.button.accept-button:hover,.button.attendance-present:hover{background:#1b6238;border-color:#1b6238}
.button.decline-button{color:#aa2539;border-color:#d83d51;background:#fff;box-shadow:none}
.form label{color:#594650;font-size:12px;font-weight:700;gap:7px}
.form input:not([type=checkbox]),.form select,.form textarea,input[type=date],input[type=time],input[type=datetime-local],input[type=number],.customer-search input{border-color:#e5d4dc;border-radius:10px;color:var(--ink);min-height:46px;font-size:13px;background:#fff;padding:11px 13px}
.form input::placeholder,.form textarea::placeholder{color:#91848c;font-weight:400}
.form input:focus,.form select:focus,.form textarea:focus,input[type=date]:focus,input[type=time]:focus,.customer-search input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #fbe6ed}
input[type=checkbox]{accent-color:var(--pink-strong)}
.card{border-color:var(--line);border-radius:17px;box-shadow:var(--shadow)}
.notice{font-size:12px;line-height:1.65;border-radius:12px}
.badge{font-family:var(--font-body);font-size:10px;font-weight:800;padding:5px 10px;letter-spacing:.01em}
.badge.status-confirmed{background:#fce3ec;color:#8b2548;border:1px solid #e6a2b8}
.badge.status-requested{background:#ffe0e4;color:#9f2035;border:1px solid #efa3af}
.badge.status-pending_verification{background:#fff0cd;color:#86570e;border:1px solid #e5c67e}
.badge.status-completed{background:#e0f3e5;color:#266743;border:1px solid #a9d5b9}
.badge.status-proposed{background:#fff0cd;color:#86570e;border:1px solid #e5c67e}
.badge.status-cancelled,.badge.status-declined,.badge.status-no_show,.badge.status-expired{background:#f5e8ec;color:#8b455a;border:1px solid #e2c9d3}
/* The guest landing page: a single clear invitation, with the original identity. */
.page-booking{background:radial-gradient(ellipse at 80% 30%,#fff0f4 0,transparent 50%),var(--back)}
.brand-hero{max-width:1110px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:72px;align-items:center;text-align:left;padding:30px 0 34px;margin:6px auto 0}
.brand-hero-copy{min-width:0}.brand-location{display:inline-flex;align-items:center;gap:8px;color:var(--pink-strong)}
.brand-location .ui-icon{width:15px;height:15px;flex-basis:15px}
.brand-hero h1{font-size:clamp(44px,5.2vw,72px);margin:21px 0 21px;line-height:1.01;font-weight:500}
.brand-hero h1 em{color:var(--pink-strong);font-weight:500}
.brand-hero p{max-width:490px;margin:0;font-size:14px;line-height:1.9}
.brand-hero .booking-start{margin:27px 0 13px;padding:14px 24px;min-height:54px;font-size:14px;box-shadow:0 9px 24px rgba(185,54,96,.18)}
.booking-hero-note{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}.booking-hero-note .ui-icon{width:15px;height:15px;flex-basis:15px;color:var(--pink-strong)}
.brand-hero-logo{display:flex;flex-direction:column;align-items:center;padding:26px 23px 22px;background:white;border:1px solid var(--line);border-radius:28px;box-shadow:0 20px 65px rgba(160,61,93,.065);position:relative;min-width:0}
.hero-logo{width:100%;max-width:305px;aspect-ratio:1}.brand-hero-tagline{font-family:var(--font-display);font-size:26px;font-weight:500;color:var(--pink-strong);line-height:1.1;margin-top:0;padding-top:16px;border-top:1px solid var(--line);width:100%;text-align:center}
.booking-invitation{max-width:1110px;margin:8px auto 22px;border-radius:17px;padding:20px 24px;border-color:var(--line);box-shadow:none}
.booking-invitation .paw{background:var(--pink-soft);border:0;width:44px;height:44px;border-radius:12px;color:var(--pink-strong)}
.booking-invitation .paw .ui-icon{width:23px;height:23px}.booking-invitation strong{font-family:var(--font-display);font-size:25px;font-weight:600}
.booking-invitation p{font-size:12px}.booking-invitation-location{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--pink-strong)}
.booking-invitation-location .ui-icon{width:15px;height:15px;flex-basis:15px}
/* The same identity across booking, administration and customer files. */
.booking-dialog,.catalog-dialog{background:white;border-color:var(--line);box-shadow:0 28px 100px rgba(57,24,38,.24);border-radius:22px}
.booking-dialog::backdrop,.catalog-dialog::backdrop,.fee-dialog::backdrop{background:rgba(54,32,43,.57);backdrop-filter:blur(4px)}
.booking-dialog-head,.customer-file-head{background:#fffafc;border-color:var(--line)}
.booking-dialog-head{padding:23px 30px 18px}.booking-dialog-head h2,.catalog-dialog-head h2{font-family:var(--font-display);font-weight:600;font-size:32px;line-height:1.15;letter-spacing:-.025em}
.dialog-close{background:white;border:1px solid var(--line);color:var(--muted);border-radius:11px;min-width:44px;min-height:44px;display:grid;place-items:center}
.dialog-close:hover{background:var(--pink-soft);border-color:#e1a9be;color:var(--pink-strong)}
.booking-progress{padding:0 30px 17px;background:#fffafc;gap:6px;counter-reset:booking-progress}
.booking-progress span{display:flex;align-items:center;justify-content:center;gap:7px;font-size:11px;padding:10px 3px;background:#f4edf0;color:#75626d;border-radius:9px;font-weight:800}
.booking-progress span::before{counter-increment:booking-progress;content:counter(booking-progress);font-size:10px;font-weight:600;opacity:.7}
.booking-progress span.current{background:var(--pink-strong);color:#fff}.booking-progress span.done{background:#fbe4ed;color:var(--pink-strong)}
.booking-step-heading h3{font-family:var(--font-display);font-weight:600;font-size:36px;line-height:1.15;letter-spacing:-.025em;margin:8px 0}
.booking-step-heading p{font-size:13px;line-height:1.75}.booking-step-heading>span{font-size:10px;color:var(--pink-strong)}
.size-choice,.service-card,.addon-choice{border-color:var(--line);border-radius:14px;background:white}
.size-choice:hover,.service-card:hover{background:#fff8fa;border-color:#dc8ca8}
.size-choice.selected,.booking-size-grid .size-choice.selected,.booking-offer.selected,.service-card.selected{border-color:var(--pink-strong);background:#fff0f5;box-shadow:0 0 0 2px #f3c8d7}
.booking-size-grid .size-choice{min-height:106px}.booking-size-grid .size-choice strong{font-size:15px;color:var(--ink)}
.size-choice small{font-size:11px;color:var(--muted)}
.booking-offer{padding:20px;min-height:195px}.booking-offer strong{font-size:14px;font-weight:800;margin:11px 0 5px}
.booking-offer>span:not(.service-icon){font-size:11px}.booking-offer small{font-size:11px;line-height:1.65;color:var(--muted)}
.service-icon{color:var(--pink-strong);width:34px;height:34px;display:grid;place-items:center;background:var(--pink-soft);border-radius:10px}
.service-icon .ui-icon{width:19px;height:19px}
.booking-offer b.booking-offer-price{font-size:21px;color:var(--pink-strong);font-weight:800;letter-spacing:-.03em}
.addon-choice strong{font-size:13px}.addon-choice input:checked+span strong{color:var(--pink-strong)}
.selection-summary,.quick-price-box{background:var(--pink-soft);border-color:#e7bacb;border-radius:14px}
.selection-summary strong,.quick-price-box strong,.booking-wizard-price{color:var(--pink-strong)}
.booking-wizard-footer{background:#fff;border-color:var(--line);padding:16px 30px}
.booking-wizard-price{font-size:18px;font-weight:800}.guest-tip,.booking-note{background:#fff7fa;border-color:var(--line);color:#765563}
.slot{border-color:#e5ccd7;border-radius:10px;font-size:13px;min-height:44px}.slot:hover,.slot.selected{background:var(--pink-strong);border-color:var(--pink-strong);color:#fff}
.month-picker{border-color:var(--line);border-radius:14px}.month-grid button:not(:disabled){background:var(--pink-soft);color:var(--pink-strong)}
.month-grid button:not(:disabled):hover,.month-grid button.selected{background:var(--pink-strong);color:white}
/* Administration: consistent, compact cards and navigation. */
.page-dashboard{background:#fcf8fa}.page-dashboard .container{max-width:1440px}
.admin-layout{grid-template-columns:230px minmax(0,1fr);gap:30px}
.admin-sidebar{padding:15px 12px 22px;border-color:var(--line);border-radius:20px;box-shadow:var(--shadow)}
.sidebar-brand{display:flex;flex-direction:column;align-items:center;margin:0 6px 17px;padding:0 0 17px;border-bottom:1px solid var(--line)}
.sidebar-logo{width:156px;height:156px}.sidebar-brand>span{font-size:10px;letter-spacing:.02em;color:var(--muted);margin-top:3px}
.sidebar-title{color:#8b6d7b;font-size:9px;padding:0 14px 12px;letter-spacing:.14em}
.admin-sidebar>a{padding:12px 13px;font-size:12px;color:#64525c;gap:11px;border-radius:11px;margin:2px 0}
.admin-sidebar>a:hover{background:#fff5f8;color:var(--pink-strong)}
.admin-sidebar>a.active{background:#fce5ee;color:var(--pink-strong);font-weight:800;box-shadow:inset 3px 0 0 var(--brand)}
.side-icon{display:flex;align-items:center;justify-content:center;width:20px;flex:0 0 20px}.side-icon .ui-icon{width:19px;height:19px;flex-basis:19px}
.sidebar-bottom{font-size:11px;border-color:var(--line);margin-top:17px;padding-top:17px}
.admin-top{margin:8px 0 18px}.admin-top h1{font-family:var(--font-display);font-weight:600;font-size:52px;margin:8px 0 0}
.admin-greeting{color:var(--muted);font-size:11px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:8px 13px}
.page-subtitle{font-size:13px;line-height:1.75;margin-bottom:23px}
.stat-card{border-color:var(--line);border-radius:16px;padding:20px;box-shadow:var(--shadow);gap:6px}
.stat-card strong{font-family:var(--font-display);font-size:42px;font-weight:600;line-height:1;margin-top:8px;color:var(--ink)}
.stat-card>span:last-child{font-size:11px;color:var(--muted)}
.stat-icon{background:var(--pink-soft);color:var(--pink-strong);width:38px;height:38px;border-radius:11px}.stat-icon .ui-icon{width:19px;height:19px;flex-basis:19px}
.stat-card:hover,.stat-card:focus-visible{background:#fff5f8;border-color:#e1a2b9}.stat-card:focus-visible{outline:2px solid var(--pink-strong);outline-offset:3px;box-shadow:none}
.section-heading h2{font-family:var(--font-display);font-size:28px;font-weight:600}.section-heading a{font-size:11px}
.appointment-row{border-color:var(--line);border-radius:14px;min-height:88px;padding:15px 19px;box-shadow:0 3px 12px rgba(90,43,60,.025)}
.appointment-info h3{font-size:13px}.appointment-info p{font-size:11px;color:var(--muted)}
.date-tile{background:#fce7ef;color:var(--pink-strong);border-radius:10px}.date-tile strong{font-size:20px;font-weight:800}
.dashboard-tip{border-color:var(--line);background:#fff2f6;border-radius:15px}.dashboard-tip p{font-size:11px;overflow-wrap:anywhere}
.attendance-overview{background:#fff5f8;border-color:#eec9d7;border-radius:17px}.attendance-overview h2{font-family:var(--font-display);font-size:29px;font-weight:600}
.attendance-overview p{font-size:12px}.attendance-pending{border-color:#ebceda}.attendance-pending strong{font-size:12px}.attendance-count{color:var(--pink-strong);background:#f9dce7}
.reminder-overview{border-radius:16px}.reminder-overview.pending{background:#ffecee;border-color:#eca4b1;color:#9b2840}.reminder-overview.sent{background:#eaf6ee;border-color:#add3b9;color:#236a3c}
.catalog-card,.size-overview-card,.availability-card,.availability-rules-card,.availability-block-row{border-color:var(--line);border-radius:14px;box-shadow:0 4px 16px rgba(90,43,60,.025)}
.catalog-card:hover,.size-overview-card:hover,.availability-card:hover,.availability-rules-card:hover{background:#fff6f9;border-color:#e2a4ba}
.catalog-drag,.catalog-delete-button,.customer-delete-x{background:white;border-color:var(--line);color:#906c7e;border-radius:10px}
.catalog-drag:hover,.catalog-delete-button:hover,.customer-delete-x:hover{background:var(--pink-soft);border-color:#e2a4ba;color:var(--pink-strong)}
.catalog-edit-label,.size-overview-edit,.availability-edit,.availability-name,.size-overview-number{color:var(--pink-strong)}
.size-price-row{border-color:var(--line);background:#fff9fb;border-radius:11px}
.customer-facts>div,.appointment-facts>div{background:#fff7fa;border:1px solid var(--line);border-radius:11px}
.customer-appointment,.customer-fees{border-color:var(--line);border-radius:13px}.customer-number{color:var(--pink-strong)}
.customer-file-head h2{font-family:var(--font-display);font-size:32px}.customer-timeline{font-size:12px}.customer-appointment summary small{color:var(--muted)}
.table-wrap{border-color:var(--line);border-radius:15px}.table-wrap th{background:#fff3f7;color:#765364;font-size:11px}.table-wrap td{font-size:12px}
.fee-summary,.fee-proposal-amount{background:#fff0f5;border-color:#e9c3d2}.fee-summary strong,.fee-proposal-amount strong,.fee-card-amount,.fee-grand-total{color:var(--pink-strong)}
.fee-filters a.active{background:var(--pink-strong);border-color:var(--pink-strong)}
.fee-card,.fee-test-tools,.fee-missing{border-color:var(--line)}.fee-warning,.fee-overview{border-color:#c9334d;background:#fff0f2;color:#8b2037}
.fee-warning p{color:#8b4050}.fee-warning h3{color:#a5213e}.fee-slot-badge{background:#b5223e;color:#fff!important;border-color:#a11c35}
.fee-dialog h2{font-family:var(--font-display);font-size:30px}
.page-auth .narrow,.page-status .narrow{margin-top:34px}.page-auth h1{font-size:48px}.page-auth .narrow>p{font-size:13px}
/* Calendar status colors are functional: rose booked, red requests, green attendance. */
.view-switch{background:#fff;border:1px solid var(--line);border-radius:11px;padding:4px}.view-switch a{border-radius:8px;color:var(--muted);font-size:12px}.view-switch a.active{background:var(--pink-strong);color:white}
.calendar-slots .calendar-day{border-color:var(--line);border-radius:14px}.calendar-day-head{color:#695360}.calendar-month-nav{background:#fff;border-color:var(--line);border-radius:13px}
.month-choice,.week-choice,.week-picker summary{border-color:var(--line);border-radius:8px}
.month-choice.future,.week-choice.future{background:#fff0f5;color:#954565;border-color:#f0cedb}.month-choice.current,.week-choice.current{background:#d8f0df;border-color:#86bd96;color:#256c3d}
.month-choice.past,.week-choice.past{background:#f0edf0;color:#9a9197;border-color:#e5dfe3}
.calendar-slot.occupied.status-confirmed{background:#fbdde8;border:2px solid #c44570;color:#852b4b}
.calendar-slot.occupied.status-confirmed .slot-range,.calendar-slot.occupied.status-confirmed .slot-status{color:#852b4b}
.calendar-slot.occupied.status-requested{background:#ffdce1;border:2px solid #d3344c;color:#8d1d32}
.calendar-slot.occupied.status-pending_verification{background:#fff0c9;border:2px solid #ce973b;color:#78530c}
.calendar-slot.occupied.status-requested .slot-range,.calendar-slot.occupied.status-requested .slot-status{color:#8d1d32}
.calendar-slot.occupied.status-completed{background:#dff2e4;border:2px solid #358252;color:#266540}
.calendar-slot.occupied.status-proposed{background:#fff0c9;border:2px solid #ce973b;color:#78530c}
.calendar-slot.free{background:#edf8f0;border:1px dashed #86bf98;color:#2e7048}.calendar-slot.free strong,.calendar-slot.free .slot-range{color:#2e7048}
.calendar-slot.free:hover{background:#ddf0e3}.calendar-slot.unavailable,.calendar-slot.elapsed{background:#f2eff2;border-color:#e6e0e4;color:#a2969e}
.calendar-slot.occupied:hover{box-shadow:0 4px 12px rgba(115,51,75,.12)}
.calendar-month-legend .confirmed::before{background:#c44570}.calendar-month-legend .requested::before{background:#d3344c}.calendar-month-legend .completed::before{background:#358252}
/* Small screens retain the compact month and use the full width for dialogs. */
@media(max-width:1100px){
  .container{padding:26px 24px 50px}.admin-layout{grid-template-columns:195px minmax(0,1fr);gap:22px}.sidebar-logo{width:130px;height:130px}
  .admin-top h1{font-size:44px}.brand-hero{gap:40px}.brand-hero h1{font-size:58px}
}
@media(max-width:900px){
  .admin-layout{grid-template-columns:1fr;gap:24px}.admin-sidebar{position:static;display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:12px;border-radius:15px}
  .sidebar-brand{display:none}.sidebar-title{width:100%;padding:2px 8px 7px;font-size:9px}.admin-sidebar>a{margin:0;padding:10px 11px;gap:7px;font-size:11px;min-height:42px}
  .admin-sidebar>a.active{box-shadow:none}.sidebar-bottom{margin:0 0 0 auto;padding:10px 8px;border:0}.admin-content{min-width:0}
  .admin-greeting{padding:6px 10px}.brand-hero{gap:26px}.brand-hero h1{font-size:52px}.brand-hero-logo{padding:20px 14px 18px}.brand-hero-tagline{font-size:24px}
  .stat-card{padding:16px}.stat-card strong{font-size:36px}
}
@media(max-width:700px){
  .site-header{height:82px;padding:0 18px;gap:12px}.header-logo{width:62px;height:62px;flex-basis:62px}.brand{gap:8px}.brand-caption{font-size:23px}.brand-caption small{font-size:7px;letter-spacing:.11em}
  .site-header nav{gap:3px}.site-header nav a,.site-header .nav-button{padding:8px 9px;font-size:10px;min-height:40px}
  .container{padding:20px 18px 38px}.brand-hero{grid-template-columns:1fr;text-align:center;gap:18px;padding:4px 0 22px;margin-top:0}
  .brand-hero-logo{order:-1;background:transparent;border:0;box-shadow:none;padding:0;width:168px;justify-self:center}.hero-logo{width:168px;height:168px}.brand-hero-tagline{display:none}
  .brand-hero h1{font-size:48px;margin:13px 0 16px}.brand-hero p{margin:auto;font-size:13px;max-width:470px}.brand-hero .booking-start{margin-top:21px;min-height:52px}.booking-hero-note{justify-content:center}
  .booking-invitation{padding:15px 17px;margin:8px auto 12px;gap:12px}.booking-invitation strong{font-size:22px}.booking-invitation p{font-size:11px}.booking-invitation-location{display:none}
  .booking-dialog-head{padding:18px 20px 14px}.booking-dialog-head h2,.catalog-dialog-head h2{font-size:29px}.booking-progress{padding:0 20px 13px;gap:4px}.booking-progress span{font-size:10px}.booking-step-heading h3{font-size:31px}
  .booking-wizard-footer{padding:13px 20px}.booking-wizard-price{font-size:17px}
  .admin-top{align-items:flex-start;gap:10px;margin:0 0 16px}.admin-top h1{font-size:40px}.admin-greeting{font-size:10px;margin-top:4px;white-space:nowrap}
  .section-heading h2{font-size:26px}.stat-card{padding:16px;border-radius:14px}.stat-card strong{font-size:36px}
  .calendar-board.calendar-slots.month{gap:3px;overflow:visible}.calendar-board.calendar-slots.month .calendar-day{border-radius:7px;padding:3px;min-width:0}
  .calendar-slots.month .calendar-slot{padding:2px;min-height:23px;border-radius:4px}.calendar-slots.month .calendar-slot.free{border-style:solid}
  .attendance-overview h2{font-size:26px}.attendance-overview p{font-size:11px}.appointment-row{padding:13px;gap:12px}
  .appointment-info h3{font-size:12px}.appointment-info p{font-size:10px}.customer-file-head h2{font-size:29px}
}
@media(max-width:540px){
  .brand-caption{display:none}.site-header{height:76px}.header-logo{width:66px;height:66px;flex-basis:66px}.site-header nav a,.site-header .nav-button{font-size:11px;padding:8px 10px}
  .brand-hero-logo{width:140px}.hero-logo{width:140px;height:140px}.brand-hero h1{font-size:43px}.brand-location{font-size:9px;letter-spacing:.12em}
  .brand-hero .booking-start{width:100%;max-width:310px}.brand-hero p{font-size:12px;line-height:1.85}.booking-hero-note{font-size:10px}
  .booking-dialog{width:calc(100vw - 12px);height:calc(100dvh - 12px);max-height:calc(100dvh - 12px);border-radius:16px}
  .booking-dialog-head{padding:16px 17px 13px}.booking-dialog-head h2{font-size:27px}.booking-dialog-head .eyebrow{font-size:8px;letter-spacing:.14em}
  .booking-progress{padding:0 14px 11px;gap:3px}.booking-progress span{font-size:9px;padding:9px 1px}.booking-progress span::before{display:none}
  .booking-step-scroll{padding:21px 17px 26px}.booking-step-heading h3{font-size:29px}.booking-step-heading p{font-size:12px}
  .booking-size-grid .size-choice{min-height:100px}.booking-size-grid .size-choice strong{font-size:14px}
  .booking-service-grid{grid-template-columns:1fr}.booking-offer{min-height:0;padding:16px 17px}.booking-offer strong{font-size:14px}.booking-offer b.booking-offer-price{font-size:21px}
  .booking-wizard-footer{padding:11px 15px}.booking-wizard-price{font-size:16px}.booking-wizard-footer>.button{min-height:44px}
  .admin-sidebar{gap:4px;padding:10px}.admin-sidebar>a{flex:1 0 calc(33.333% - 6px);flex-direction:column;justify-content:center;gap:5px;text-align:center;font-size:9px;padding:9px 4px;min-height:60px;line-height:1.3}
  .admin-sidebar .side-icon{width:18px;height:18px}.admin-sidebar .side-icon .ui-icon{width:18px;height:18px;flex-basis:18px}.sidebar-bottom{width:100%;text-align:center;margin:3px 0 0;padding:8px 0 2px}
  .admin-greeting{font-size:9px;padding:6px 9px}.admin-top h1{font-size:37px}.admin-top .eyebrow{font-size:8px;letter-spacing:.1em}
  .stats-grid{gap:9px}.stat-card{padding:15px}.stat-card strong{font-size:36px}.stat-card>span:last-child{font-size:10px}.stat-icon{width:31px;height:31px}
  .catalog-dialog{border-radius:16px}.customer-file-dialog{border-radius:0}.catalog-dialog-head h2{font-size:28px}
  .fee-dialog h2{font-family:var(--font-display);font-size:28px}.page-auth h1{font-size:40px}
}
@media(max-width:370px){.site-header{padding:0 12px}.site-header nav a,.site-header .nav-button{padding:8px;font-size:10px}.container{padding-left:12px;padding-right:12px}.brand-hero h1{font-size:39px}.admin-top h1{font-size:34px}.admin-greeting{max-width:105px;overflow:hidden;text-overflow:ellipsis}.calendar-slots.month .calendar-slot{font-size:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.button:hover,.stat-card:hover,.calendar-slot.free:hover{transform:none}}
/* A readable input size also prevents automatic form zoom on iPhones. */
@media(max-width:700px){.form input:not([type=checkbox]),.form select,.form textarea,.customer-search input,input[type=date],input[type=time],input[type=datetime-local],input[type=number]{font-size:16px}.site-header nav a,.site-header .nav-button{min-height:44px}}

/* Update 23 · One readable, sans serif type system at every viewport. */
:root{--font-display:var(--font-body)}
body{font-family:var(--font-body);font-size:15px;font-weight:500;line-height:1.7}
h1,h2,h3,h4,h5,h6{font-family:var(--font-body);font-weight:800;letter-spacing:-.035em;line-height:1.24}
h1{line-height:1.12}h2{font-size:clamp(23px,2vw,29px)}
p{font-weight:500}.muted,.help-text{font-weight:500;color:#675d63}
.eyebrow,.sidebar-title{font-weight:800;letter-spacing:.11em}
.brand-caption{font-family:var(--font-body);font-size:22px;font-weight:800;letter-spacing:-.045em}
.brand-caption small{font-family:var(--font-body);font-weight:700;letter-spacing:.12em}
.brand-hero h1{font-family:var(--font-body);font-weight:800;font-size:clamp(42px,4.5vw,61px);line-height:1.12;letter-spacing:-.05em}
.brand-hero h1 em{font-family:inherit;font-weight:800;font-style:normal}
.brand-hero p{font-size:15px;line-height:1.8}
.brand-hero-tagline{font-family:var(--font-body);font-size:18px;font-weight:800}
.booking-invitation strong{font-family:var(--font-body);font-size:18px;font-weight:800}
.booking-invitation p{font-size:13px}
.booking-dialog-head h2,.catalog-dialog-head h2,.customer-file-head h2{font-family:var(--font-body);font-size:26px;font-weight:800;letter-spacing:-.035em;line-height:1.22}
.booking-step-heading h3{font-family:var(--font-body);font-size:27px;font-weight:800;line-height:1.25;letter-spacing:-.04em}
.booking-step-heading p{font-size:14px}
.booking-offer small,.booking-offer>span:not(.service-icon){font-size:12px;line-height:1.65}
.booking-progress span,.month-grid button,.month-head strong{font-weight:700}
.booking-wizard-price,.booking-offer b.booking-offer-price{font-weight:800}
.admin-top h1{font-family:var(--font-body);font-size:43px;font-weight:800;line-height:1.12}
.section-heading h2{font-family:var(--font-body);font-size:23px;font-weight:800;line-height:1.25}
.stat-card strong{font-family:var(--font-body);font-size:34px;font-weight:800;line-height:1.2}
.attendance-overview h2,.fee-dialog h2{font-family:var(--font-body);font-size:23px;font-weight:800}
.page-auth h1{font-size:40px}.page-auth .narrow>p{font-size:14px}
.admin-sidebar>a{font-size:13px;font-weight:700}
.page-subtitle,.appointment-info h3,.form label{font-size:14px}
.appointment-info p,.stat-card>span:last-child,.attendance-overview p,.reminder-info span,.booking-invitation-location,.sidebar-bottom{font-size:12px}
.table-wrap td,.catalog-card small,.size-overview-card small,.availability-card small,.availability-rules-card small{font-size:13px}
.form input:not([type=checkbox]),.form select,.form textarea,input[type=date],input[type=time],input[type=datetime-local],input[type=number],.customer-search input{font-size:15px;font-weight:500}
.form input::placeholder,.form textarea::placeholder{color:#675d63;font-weight:500;opacity:1}
.footer{font-size:12px;font-weight:500}
@media(max-width:1100px){.admin-top h1{font-size:39px}.brand-hero h1{font-size:49px}}
@media(max-width:900px){.admin-sidebar>a{font-size:12px}.brand-hero h1{font-size:44px}}
@media(max-width:700px){
 body{font-size:14px}.brand-caption{font-size:19px}.brand-hero h1{font-size:42px;line-height:1.16}
 .brand-hero p{font-size:14px}.booking-invitation strong{font-size:17px}
 .booking-dialog-head h2,.catalog-dialog-head h2,.customer-file-head h2{font-size:23px}
 .booking-step-heading h3{font-size:24px}.booking-step-heading p{font-size:13px}
 .booking-progress span{font-size:10px}.admin-top h1{font-size:35px}
 .section-heading h2{font-size:21px}.attendance-overview h2{font-size:21px}
 .admin-sidebar>a{font-size:12px}
 .form input:not([type=checkbox]),.form select,.form textarea,.customer-search input,input[type=date],input[type=time],input[type=datetime-local],input[type=number]{font-size:16px}
}
@media(max-width:540px){
 .brand-hero h1{font-size:36px}.brand-hero p{font-size:13px}
 .booking-dialog-head h2,.catalog-dialog-head h2,.customer-file-head h2{font-size:22px}
 .booking-step-heading h3{font-size:23px}.booking-progress span{font-size:10px}
 .admin-top h1{font-size:32px}.admin-sidebar>a{flex:1 0 calc(25% - 6px);font-size:11px;min-height:61px;overflow-wrap:anywhere}
 .stat-card strong{font-size:31px}.page-auth h1{font-size:32px}
}
@media(max-width:370px){.brand-hero h1{font-size:33px}.admin-top h1{font-size:29px}}

/* Update 24 · The photographed puppies landing page. Desktop follows the approved concept. */
.page-booking{
  min-height:100dvh;display:flex;flex-direction:column;
  background:linear-gradient(105deg,#fffdfd 0%,#fffdfd 61%,#fcf0f5 100%);
}
.page-booking .public-header,.page-legal .public-header{
  height:clamp(138px,21vh,205px);flex:0 0 auto;max-width:1600px;width:100%;margin:0 auto;
  padding:0 clamp(30px,7vw,116px);border:0;background:transparent;position:relative;
}
.public-header::after{content:"";position:absolute;bottom:0;left:clamp(30px,7vw,116px);right:clamp(30px,7vw,116px);height:1px;background:#f1e4e9}
.public-header .header-logo{width:auto;height:calc(100% - 8px);max-width:215px;flex-basis:auto;object-fit:contain}
.public-header .salon-login-link{min-height:44px;padding:11px 19px;border:1px solid #eac8d4;border-radius:12px;background:#fff;color:var(--pink-strong);font-size:13px;font-weight:800}
.public-header .salon-login-link:hover{background:#fff0f5;border-color:var(--pink-strong)}
.page-booking>.container{flex:1 1 auto;display:flex;align-items:stretch;max-width:1600px;width:100%;min-height:0;padding:0 clamp(30px,7vw,116px)}
.page-booking .brand-hero{flex:1;max-width:1400px;width:100%;min-height:0;margin:0 auto;padding:0;display:grid;grid-template-columns:minmax(0,52%) minmax(0,48%);gap:0;align-items:center;text-align:left}
.page-booking .brand-hero-copy{position:relative;z-index:1;padding-bottom:8px}
.page-booking .brand-location{font-size:13px;letter-spacing:.025em;font-weight:800;color:var(--pink-strong)}
.page-booking .brand-hero h1{font-family:var(--font-body);font-size:clamp(37px,4vw,64px);font-weight:800;letter-spacing:-.05em;line-height:1.22;margin:35px 0 30px;color:#29262b;white-space:nowrap}
.page-booking .brand-hero h1 em{font-style:normal;color:#cf4b80}
.page-booking .brand-hero p{max-width:540px;font-size:clamp(15px,1.3vw,20px);font-weight:500;line-height:1.65;color:#6b626c;margin:0}
.page-booking .brand-hero .booking-start{margin:39px 0 14px;min-width:310px;min-height:68px;display:inline-flex;justify-content:space-between;padding:17px 28px;border-radius:17px;background:#cf4b80;border-color:#cf4b80;color:#fff;font-size:20px;font-weight:800;box-shadow:none}
.page-booking .brand-hero .booking-start:hover{background:#b93660;border-color:#b93660}
.page-booking .booking-hero-note{display:block;font-size:14px;font-weight:600;color:#6b626c;line-height:1.5}
.page-booking .brand-hero-dogs{align-self:stretch;display:flex;justify-content:flex-end;align-items:flex-end;min-height:0;min-width:0}
.page-booking .brand-hero-dogs img{display:block;width:100%;height:100%;max-height:100%;object-fit:contain;object-position:center bottom}
.public-footer{width:100%;max-width:1600px;margin:0 auto;flex:0 0 auto;min-height:64px;padding:20px clamp(30px,7vw,116px);display:flex;align-items:center;justify-content:space-between;gap:24px;text-align:left;background:transparent;border:0;position:relative;color:#9d7184;font-size:11px;font-weight:700;letter-spacing:.01em}
.public-footer::before{content:"";position:absolute;top:0;left:clamp(30px,7vw,116px);right:clamp(30px,7vw,116px);height:1px;background:#f1e4e9}
.public-footer nav{display:flex;align-items:center;justify-content:flex-end;gap:clamp(12px,2vw,30px);flex-wrap:wrap}
.public-footer a{color:#815765;font-size:12px;font-weight:700;white-space:nowrap}
.public-footer a:hover{color:var(--pink-strong);text-decoration:underline}
.page-legal .container{max-width:980px;min-height:calc(100dvh - 250px);padding-top:42px;padding-bottom:60px}
.legal-content{max-width:810px;margin:auto}.legal-content h1{font-size:clamp(32px,4vw,50px);margin-bottom:20px}.legal-content h2{font-size:23px;margin:34px 0 10px}
.legal-content p,.legal-content li{font-size:15px;line-height:1.8;color:#514750}.legal-content a{color:var(--pink-strong);text-decoration:underline}
.legal-incomplete{border:1px solid #e6b8c7;background:#fff2f6;padding:18px 20px;border-radius:14px;color:#713e55!important}
.page-legal .legal-imprint{max-width:900px}
.legal-imprint-intro{margin:14px 0 29px}
.legal-imprint-intro .eyebrow{margin:0 0 10px;color:var(--pink-strong);font-size:11px;letter-spacing:.11em}
.legal-imprint-intro h1{margin:0 0 12px;font-size:clamp(38px,4.3vw,56px);font-weight:800;letter-spacing:-.055em;line-height:1.12}
.legal-imprint-intro h1 span{color:var(--brand)}
.page-legal .legal-imprint-intro>p:last-child{margin:0;color:var(--muted);font-size:14px;line-height:1.55}
.legal-imprint-card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}
.legal-imprint-card-head{padding:25px 30px 22px;border-bottom:1px solid var(--line);background:linear-gradient(115deg,#fff7fa 0%,#fff 70%)}
.legal-imprint-card-head .eyebrow{margin:0 0 6px;color:var(--pink-strong);font-size:10px;letter-spacing:.11em}
.legal-imprint-card-head h2{font-size:23px;margin:0;line-height:1.25;font-weight:800}
.legal-imprint-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:24px 30px}
.legal-imprint-detail{min-width:0;padding:21px 22px;border:1px solid #f0dce4;border-radius:15px;background:#fffbfc}
.legal-imprint-detail h3{font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--pink-strong);margin:0 0 14px}
.legal-imprint-detail address,.legal-imprint-detail p{margin:0;font-size:14px;line-height:1.85;color:var(--ink);font-style:normal}
.legal-imprint-detail strong{font-size:16px;font-weight:800}
.legal-imprint-detail p+p{margin-top:14px}
.legal-imprint-detail p span{display:block;color:var(--muted);font-size:11px;font-weight:700;line-height:1.5;margin-bottom:2px}
.legal-imprint-detail a{font-weight:700;text-decoration:none;overflow-wrap:anywhere}
.legal-imprint-detail a:hover{text-decoration:underline}
.legal-imprint-ids{margin:0 30px 28px;padding:16px 20px;background:#fff3f7;border:1px solid #f1d8e2;border-radius:13px}
.legal-imprint-ids p{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0;font-size:13px;line-height:1.6;color:var(--muted)}
.legal-imprint-ids p+p{margin-top:8px}
.legal-imprint-ids strong{color:var(--ink);font-size:14px;font-weight:800;white-space:nowrap}
.page-legal .legal-imprint-back{margin-top:23px;min-height:46px;text-decoration:none;padding:11px 19px}
@media(max-width:700px){
  .page-legal .legal-imprint{max-width:100%}
  .legal-imprint-intro{margin:5px 0 22px}
  .legal-imprint-intro h1{font-size:clamp(36px,9vw,47px)}
  .legal-imprint-card{border-radius:18px}
  .legal-imprint-card-head{padding:20px 21px}
  .legal-imprint-card-head h2{font-size:20px}
  .legal-imprint-grid{grid-template-columns:1fr;gap:11px;padding:17px}
  .legal-imprint-detail{padding:17px 18px}
  .legal-imprint-ids{margin:0 17px 18px;padding:14px 17px}
  .legal-imprint-ids p{display:block;overflow-wrap:anywhere}
  .legal-imprint-ids strong{display:block;margin-top:3px;white-space:normal}
  .page-legal .legal-imprint-back{width:100%}
}
.booking-legal-links{font-size:12px;color:#6b626c;margin:0}.booking-legal-links a{color:var(--pink-strong);font-weight:700;text-decoration:underline}
.booking-consents{display:grid;gap:9px}.booking-details .booking-consent{display:flex;align-items:flex-start;gap:11px;padding:11px 13px;border:1px solid #efd8e2;border-radius:12px;background:#fffafd;cursor:pointer;color:#3d3037}.booking-consent:has(input:checked){border-color:#ce729a;background:#fff2f7}.booking-consent input[type=checkbox]{width:18px;height:18px;flex:0 0 18px;margin:2px 0 0;accent-color:#b63267}.booking-consent span{display:grid;gap:3px}.booking-consent strong{font-size:13px;line-height:1.35}.booking-consent small{font-size:12px;line-height:1.45;font-weight:400;color:#695f68}
.marketing-list{padding:24px}.marketing-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.marketing-list-head h2{margin:0}.marketing-list-head span{color:var(--pink-strong);font-weight:700;font-size:13px}.marketing-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 0;border-top:1px solid #f1e1e8}.marketing-row>div{display:grid;gap:3px;min-width:0}.marketing-row strong{font-size:15px}.marketing-row span{color:#b63267}.marketing-row small{color:#756972}.marketing-row form{margin:0}.marketing-row .button{min-height:37px;padding:8px 12px;font-size:12px}.marketing-withdraw{margin-top:13px}.marketing-withdraw button{border:0;background:transparent;color:#b63267;text-decoration:underline;font-size:12px;cursor:pointer;padding:4px 0}@media(max-width:600px){.marketing-list{padding:16px}.marketing-row{align-items:flex-start;flex-direction:column;gap:8px}.booking-details .booking-consent{padding:9px 10px}.booking-consent small{font-size:11px}}
@media(min-width:901px) and (max-height:750px){
  .page-booking .public-header{height:145px}.page-booking .public-header .header-logo{width:160px;height:160px}
  .page-booking .brand-hero h1{margin:18px 0;font-size:clamp(36px,3.5vw,56px)}
  .page-booking .brand-hero .booking-start{margin-top:22px;min-height:58px;font-size:17px}
  .page-booking .brand-hero p{font-size:16px}.page-booking .booking-hero-note{font-size:12px}
  .page-booking .public-footer{min-height:54px;padding-top:12px;padding-bottom:12px}
}
@media(max-width:900px){
  .page-booking .public-header,.page-legal .public-header{height:112px;padding:0 24px}.public-header::after,.public-footer::before{left:24px;right:24px}
  .public-header .header-logo{width:118px;height:118px}.page-booking>.container{display:block;padding:0 24px}
  .page-booking .brand-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:36px 0 0}
  .page-booking .brand-hero-copy{padding:0}.page-booking .brand-hero h1{font-size:clamp(32px,6vw,50px);white-space:normal;line-height:1.18;margin:18px 0}
  .page-booking .brand-hero p{font-size:15px;line-height:1.65;margin:auto}.page-booking .brand-hero .booking-start{margin:24px auto 12px}
  .page-booking .brand-hero-dogs{width:min(75vw,520px);height:min(49vh,460px);margin-top:10px;align-self:center}
  .public-footer{padding:19px 24px;flex-direction:column;gap:12px;text-align:center}.public-footer nav{justify-content:center}
}
@media(max-width:540px){
  .page-booking .public-header,.page-legal .public-header{height:91px;padding:0 16px}.public-header::after,.public-footer::before{left:16px;right:16px}
  .public-header .header-logo{width:96px;height:96px}.public-header .salon-login-link{font-size:12px;padding:10px 12px}
  .page-booking>.container{padding:0 16px}.page-booking .brand-hero{padding:25px 0 0}
  .page-booking .brand-location{font-size:10px}.page-booking .brand-hero h1{font-size:clamp(29px,8vw,39px);margin:16px 0}
  .page-booking .brand-hero p{font-size:14px}.page-booking .brand-hero .booking-start{width:100%;max-width:330px;min-width:0;min-height:58px;font-size:17px}
  .page-booking .booking-hero-note{font-size:12px}.page-booking .brand-hero-dogs{width:min(90vw,440px);height:auto;max-height:38vh}
  .page-booking .brand-hero-dogs img{height:auto;max-height:38vh}.public-footer{padding:17px 16px}.public-footer nav{gap:10px 17px}.public-footer a{font-size:11px}
}

/* Update 25 · Compact booking dialog, with the same Manrope and rose palette as the landing page. */
.booking-dialog{
  width:min(954px,calc(100vw - 28px));max-width:954px;
  height:auto;max-height:calc(100dvh - 24px);border-radius:22px;
  border:1px solid #efdce5;box-shadow:0 30px 100px rgba(46,22,36,.27)
}
.booking-dialog[open]{display:flex;flex-direction:column}
.booking-dialog-head{flex:0 0 auto;background:#fffafc;padding:24px 40px 16px}
.booking-dialog-head .eyebrow{font-size:11px;letter-spacing:.06em}
.booking-dialog-head h2{font-family:var(--font-body);font-size:30px;font-weight:800;letter-spacing:-.035em;line-height:1.2;margin:12px 0 0}
.booking-progress{flex:0 0 auto;background:#fffafc;padding:0 40px 20px;gap:8px;border-bottom:1px solid var(--line)}
.booking-progress span{min-height:42px;padding:9px 3px;border-radius:11px;font-size:12px;font-weight:700;background:#f3eef0;color:#756870}
.booking-progress span.current{background:var(--pink-strong);color:#fff}
.booking-progress span.done{background:#fbe4ed;color:var(--pink-strong)}
#booking-form{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
.booking-step-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:34px 40px 46px}
.booking-step-heading{margin-bottom:26px}
.booking-step-heading>span{font-size:11px;letter-spacing:.08em;font-weight:800}
.booking-step-heading h3{font-family:var(--font-body);font-size:29px;font-weight:800;letter-spacing:-.04em;line-height:1.2;margin:10px 0 7px}
.booking-step-heading p{font-size:14px;line-height:1.55;color:var(--muted)}
.booking-size-grid{max-width:none;gap:12px}
.booking-size-grid .size-choice{position:relative;min-height:122px;border-radius:15px;border:1px solid #ead2dd;gap:7px;padding:18px 12px}
.booking-size-grid .size-choice strong{font-size:16px;font-weight:800;line-height:1.25}
.booking-size-grid .size-choice small{font-size:12px;font-weight:600}
.booking-size-grid .size-choice.selected{border:2px solid var(--pink-strong);background:#fff0f5;box-shadow:none}
.booking-size-grid .size-choice.selected strong,.booking-size-grid .size-choice.selected small{color:var(--pink-strong)}
.booking-size-grid .size-choice.selected::after{content:'✓';position:absolute;right:12px;top:12px;width:23px;height:23px;border-radius:50%;background:var(--pink-strong);color:#fff;display:grid;place-items:center;font-size:14px;font-weight:800;line-height:1}
.booking-service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.booking-service-grid .booking-offer-heading{grid-column:1/-1;margin:18px 0 0;padding:0 0 9px;border-bottom:1px solid #e8cdd9;color:var(--pink-strong);font-size:18px;line-height:1.3;font-weight:800}
.booking-service-grid .booking-offer-heading:first-child{margin-top:0}
.catalog-heading-entry{margin:10px 0 2px!important}
.catalog-heading-entry .catalog-card{position:relative;background:#fff1f6;border-color:#e9bfd0;padding:18px 20px 18px 27px;box-shadow:none}
.catalog-heading-entry .catalog-card::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:4px;border-radius:0 4px 4px 0;background:var(--pink-strong)}
.catalog-heading-entry .catalog-card strong{color:var(--pink-strong);font-size:1.08rem;letter-spacing:.01em}
.catalog-heading-entry .catalog-card small{font-size:.69rem;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:#a07185}
.catalog-heading-entry .catalog-drag,.catalog-heading-entry .catalog-delete-button{background:#fff1f6;border-color:#e9bfd0}
.catalog-entry:not(.catalog-heading-entry) .catalog-card{align-items:flex-start}
.catalog-entry .catalog-card>span:first-child{flex:1;min-width:0;gap:4px}
.catalog-entry .catalog-card .catalog-description{display:block;margin:5px 0 7px;color:var(--muted);font-size:12px;line-height:1.45;white-space:normal;overflow-wrap:anywhere}
.catalog-entry .catalog-card .catalog-prices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 10px;margin-top:6px}
.catalog-entry .catalog-card .catalog-price{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 9px;border:1px solid #f0dce4;border-radius:8px;background:#fff9fb;font-size:11px;line-height:1.3;min-width:0}
.catalog-entry .catalog-card .catalog-price>span:first-child{color:#79636d;min-width:0;overflow-wrap:anywhere}
.catalog-entry .catalog-card .catalog-price>span:last-child{color:var(--ink);font-weight:800;text-align:right;white-space:nowrap}
.catalog-entry .catalog-card .catalog-edit-label{flex:0 0 auto}
@media(max-width:1050px){.catalog-entry .catalog-card .catalog-prices{grid-template-columns:1fr}}
@media(max-width:700px){.catalog-entry:not(.catalog-heading-entry) .catalog-card{padding:13px 11px}.catalog-entry .catalog-card .catalog-price{padding:6px 7px;font-size:10px;gap:4px}.catalog-entry .catalog-card .catalog-description{font-size:11px}.catalog-entry .catalog-card .catalog-edit-label{align-self:flex-start}}
.booking-service-grid .booking-offer{display:flex;flex-direction:column;align-items:stretch;min-height:170px;padding:20px;border-radius:15px;border:1px solid #ead2dd;background:#fff;box-shadow:none;text-align:left}
.booking-service-grid .booking-offer:hover{border-color:var(--pink-strong);background:#fff8fb}
.booking-service-grid .booking-offer.selected{border:2px solid var(--pink-strong);background:#fff0f5;box-shadow:none;padding:19px}
.booking-service-grid .booking-offer .booking-offer-title{display:block;margin:0 0 6px;font-size:16px;font-weight:800;line-height:1.35;color:var(--ink)}
.booking-service-grid .booking-offer .booking-offer-duration{font-size:12px;font-weight:800;line-height:1.4;color:var(--pink-strong)}
.booking-service-grid .booking-offer .booking-offer-description{display:block;margin:10px 0 0;padding:0;font-size:12px;font-weight:500;line-height:1.55;color:var(--muted);overflow-wrap:anywhere}
.booking-service-grid .booking-offer b.booking-offer-price{display:block;align-self:flex-end;margin:auto 0 0;padding-top:18px;font-size:19px;line-height:1.25;font-weight:800;color:var(--pink-strong);text-align:right}
.booking-step .addon-list,.booking-step .selection-summary{max-width:none}
.booking-step .addon-choice{min-height:58px;border-radius:12px}
.booking-step .selection-summary{margin-top:18px}
.booking-step .calendar-grid{grid-template-columns:minmax(240px,290px) minmax(0,1fr);gap:32px}
.booking-step .month-picker{max-width:310px}
.booking-wizard-footer{flex:0 0 auto;min-height:85px;padding:15px 40px;border-top:1px solid var(--line);background:#fff;box-shadow:none}
.booking-wizard-footer .booking-wizard-price{font-size:18px;font-weight:800;white-space:normal}
.booking-wizard-footer.booking-first-step .booking-wizard-price{margin-left:0;margin-right:auto;color:var(--muted);font-size:12px;font-weight:600;text-align:left}
.booking-wizard-footer>.button{min-height:52px;min-width:150px;border-radius:12px;font-size:14px}
.booking-wizard-footer>.button.secondary{min-width:120px}
@media(max-width:750px){
  .booking-dialog-head{padding:20px 24px 14px}.booking-progress{padding:0 24px 16px;gap:5px}
  .booking-step-scroll{padding:26px 24px 32px}.booking-wizard-footer{padding:12px 24px}
  .booking-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .booking-step .calendar-grid{grid-template-columns:1fr;gap:20px}
}
@media(max-width:540px){
  .booking-dialog{width:calc(100vw - 12px);max-width:none;height:auto;max-height:calc(100dvh - 12px);border-radius:16px}
  .booking-dialog-head{padding:16px 17px 12px}.booking-dialog-head h2{font-size:22px;margin-top:7px}.booking-dialog-head .eyebrow{font-size:9px}
  .booking-progress{padding:0 14px 11px;gap:3px}.booking-progress span{font-size:10px;min-height:38px;padding:7px 1px;border-radius:7px}
  .booking-step-scroll{padding:22px 17px 28px}.booking-step-heading{margin-bottom:21px}.booking-step-heading h3{font-size:23px}.booking-step-heading p{font-size:13px}
  .booking-size-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.booking-size-grid .size-choice{min-height:102px;padding:13px 7px}.booking-size-grid .size-choice strong{font-size:14px}.booking-size-grid .size-choice small{font-size:11px}
  .booking-service-grid{grid-template-columns:1fr;gap:9px}.booking-service-grid .booking-offer{min-height:130px;padding:16px}.booking-service-grid .booking-offer.selected{padding:15px}.booking-service-grid .booking-offer .booking-offer-title{font-size:15px}.booking-service-grid .booking-offer b.booking-offer-price{font-size:18px;padding-top:10px}
  .booking-wizard-footer{display:grid;grid-template-columns:auto minmax(0,1fr) auto;min-height:68px;padding:10px 15px;gap:8px}.booking-wizard-footer.booking-first-step{grid-template-columns:minmax(0,1fr) auto}.booking-wizard-footer>.button,.booking-wizard-footer>.button.secondary{flex:none;min-width:0;min-height:46px;padding:9px 12px;font-size:12px}.booking-wizard-footer .booking-wizard-price{order:0;width:auto;margin:0;font-size:14px;text-align:right;min-width:0;line-height:1.3}.booking-wizard-footer.booking-first-step .booking-wizard-price{order:0;width:auto;margin:0;font-size:11px;text-align:left}
}

/* Update 27 · Use the landing page's plain text arrow in every booking action. */
.booking-wizard-footer .button>span[aria-hidden="true"]{font-family:var(--font-body);font-size:1.2em;font-weight:800;line-height:1;color:inherit}

/* On portrait phones the hero image takes only the space left by the copy and legal footer. */
@media(max-width:540px) and (orientation:portrait){
  html:has(body.page-booking){height:100%;overflow:hidden}
  body.page-booking{height:100dvh;min-height:0;overflow:hidden;overscroll-behavior-y:none}
  .page-booking .public-header{height:clamp(68px,11dvh,84px);flex:0 0 auto}
  .page-booking .public-header .header-logo{height:100%;width:auto;max-width:94px}
  .page-booking>.container{display:flex;flex:1 1 0;min-height:0;overflow:hidden;padding:0 16px}
  .page-booking .brand-hero{display:flex;flex:1 1 auto;width:100%;height:100%;min-height:0;flex-direction:column;justify-content:flex-start;align-items:center;padding:clamp(8px,2dvh,18px) 0 0;overflow:hidden}
  .page-booking .brand-hero-copy{flex:0 0 auto;width:100%;padding:0}
  .page-booking .brand-hero h1{margin:12px 0;line-height:1.13}
  .page-booking .brand-hero p{line-height:1.5}
  .page-booking .brand-hero .booking-start{margin:18px auto 7px}
  .page-booking .brand-hero-dogs{flex:1 1 auto;align-self:center;min-height:0;width:min(90vw,440px);height:auto;max-height:none;margin:5px 0 0}
  .page-booking .brand-hero-dogs img{width:100%;height:100%;max-height:100%;object-fit:contain;object-position:center bottom}
  .page-booking .public-footer{flex:0 0 auto;width:100%;min-height:0;padding:9px 16px 12px;gap:4px;overflow:hidden}
  .page-booking .public-footer>span{font-size:10px;line-height:1.25}
  .page-booking .public-footer nav{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 9px;text-align:center}
  .page-booking .public-footer a{white-space:normal;font-size:10px;line-height:1.25}
}
@media(max-width:540px) and (orientation:portrait) and (max-height:650px){
  .page-booking .public-header{height:68px}
  .page-booking .brand-hero{padding-top:7px}
  .page-booking .brand-hero h1{font-size:clamp(25px,7vw,31px);margin:8px 0}
  .page-booking .brand-hero p{font-size:12px}
  .page-booking .brand-hero .booking-start{min-height:48px;margin:12px auto 5px;font-size:15px}
  .page-booking .booking-hero-note{font-size:10px}
  .page-booking .public-footer{padding:6px 16px 8px}
}

/* Update 28 · Appointment-request confirmation, matching the approved desktop/phone previews. */
html:has(body.page-success){height:100%;overflow:hidden}
body.page-success{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden;overscroll-behavior:none;background:radial-gradient(ellipse at 94% 50%,#fbe6ee 0%,#fffdfd 53%,#fffdfd 100%)}
.page-success .public-header{height:146px;flex:0 0 146px;max-width:none;padding:0 64px;border:0;background:transparent;position:relative}
.page-success .public-header::after{left:64px;right:64px}
.page-success .public-header .header-logo{width:130px;height:130px;max-width:none;flex-basis:auto}
.page-success .public-header .salon-login-link{min-height:49px;padding:12px 22px;font-size:14px;border-radius:13px;transform:translateY(7px)}
.page-success>.container{flex:1 1 0;width:100%;max-width:none;min-height:0;margin:0;padding:0 82px;display:flex;overflow:hidden}
.success-content{width:100%;max-width:1276px;height:100%;min-height:0;margin:0 auto;display:grid;grid-template-columns:minmax(0,654px) minmax(0,1fr);gap:49px;align-items:center}
.success-copy{min-width:0;position:relative;z-index:1}
.success-eyebrow{height:44px;display:flex;align-items:center;gap:20px;margin-bottom:15px;color:#d9517c;font-size:12px;font-weight:800;letter-spacing:.08em;white-space:nowrap}
.success-check{width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;border-radius:50%;background:#bd3665;color:#fff;font-size:28px;line-height:1;font-weight:800;letter-spacing:0}
.success-label-mobile{display:none}
.page-success h1{margin:0 0 27px;color:#302a30;font-size:clamp(34px,3.4vw,49px);font-weight:800;line-height:1.25;letter-spacing:-.045em}
.success-message{max-width:650px;margin:0 0 52px;color:#71656e;font-size:18px;font-weight:500;line-height:1.6}
.success-summary{min-height:174px;padding:18px 24px 16px;background:#fff;border:1px solid #eddde4;border-radius:18px}
.success-summary h2{margin:0 0 14px;padding:0 0 12px;border-bottom:1px solid #eddde4;color:#d9517c;font-size:11px;font-weight:800;letter-spacing:.1em;line-height:1.4}
.success-details{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px;row-gap:10px;margin:0}
.success-details>div{min-width:0}
.success-details dt{color:#71656e;font-size:11px;font-weight:700;line-height:1.4;letter-spacing:.03em}
.success-details dd{margin:3px 0 0;color:#302a30;font-size:16px;font-weight:800;line-height:1.3;overflow-wrap:anywhere}
.success-home.button{display:inline-flex;align-items:center;justify-content:space-between;width:234px;min-height:57px;margin-top:28px;padding:14px 25px;border-radius:14px;background:#bd3665;border-color:#bd3665;color:white;font-size:17px;font-weight:800;box-shadow:none}
.success-home:hover{background:#a82c54;color:#fff}
.success-home span{font-size:26px;line-height:1;font-weight:600}
.success-photo{height:min(586px,100%);min-width:0;align-self:end;display:flex;align-items:end;justify-content:center;padding-bottom:24px}
.success-photo img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom}
.page-success .public-footer{max-width:none;min-height:70px;height:70px;padding:0 64px;gap:15px;background:transparent}
.page-success .public-footer::before{left:64px;right:64px}
.page-success .public-footer>span{font-size:11px;font-weight:700}
.page-success .public-footer nav{flex-wrap:nowrap;gap:24px}
.page-success .public-footer a{font-size:11px}
@media(max-width:1100px) and (min-width:701px){
  .page-success .public-header{height:108px;flex-basis:108px;padding:0 32px}.page-success .public-header::after{left:32px;right:32px}
  .page-success .public-header .header-logo{height:102px;width:102px}
  .page-success>.container{padding:0 36px}.success-content{gap:20px;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
  .page-success h1{font-size:clamp(30px,3.7vw,40px)}.success-message{font-size:15px;margin-bottom:20px}.success-photo{height:min(490px,100%)}
  .page-success .public-footer{padding:4px 32px;min-height:62px;height:62px;flex-direction:column;justify-content:center;gap:3px;text-align:center}.page-success .public-footer::before{left:32px;right:32px}.page-success .public-footer nav{justify-content:center;gap:12px}
}
@media(max-width:700px){
  .page-success .public-header{height:88px;flex-basis:88px;padding:0 16px}.page-success .public-header::after{left:16px;right:16px}
  .page-success .public-header .header-logo{width:81px;height:81px;max-width:none}
  .page-success .public-header .salon-login-link{min-height:41px;padding:8px 12px;font-size:11px;border-radius:11px;transform:none}
  .page-success>.container{flex-direction:column;padding:0 22px}
  .success-content{height:100%;display:flex;flex-direction:column;gap:0;align-items:stretch}
  .success-copy{flex:0 0 auto;padding-top:16px}
  .success-eyebrow{height:28px;gap:9px;margin-bottom:11px;font-size:10px;letter-spacing:.045em}
  .success-check{width:28px;height:28px;flex-basis:28px;font-size:18px}
  .success-label-desktop{display:none}.success-label-mobile{display:inline}
  .page-success h1{margin:0 0 16px;font-size:clamp(25px,7.7vw,30px);line-height:1.24;letter-spacing:-.05em}
  .success-message{margin:0 0 39px;font-size:13px;line-height:1.55}
  .success-summary{min-height:144px;padding:12px 16px 10px;border-radius:15px}
  .success-summary h2{margin-bottom:10px;padding-bottom:9px;font-size:10px}
  .success-details{column-gap:12px;row-gap:11px}
  .success-details dt{font-size:9px}.success-details dd{font-size:12px;margin-top:2px}
  .success-year{display:none}
  .success-home.button{width:100%;min-height:52px;margin-top:20px;padding:11px 19px;border-radius:14px;font-size:16px}
  .success-photo{flex:1 1 0;align-self:center;width:min(100%,256px);height:auto;min-height:0;margin-top:4px;padding:0}
  .success-photo img{height:100%;width:100%;object-fit:contain;object-position:center bottom}
  .page-success .public-footer{flex:0 0 84px;width:100%;height:84px;min-height:0;padding:8px 16px 10px;gap:3px;overflow:hidden;flex-direction:column;justify-content:flex-start;text-align:center}
  .page-success .public-footer::before{left:16px;right:16px}
  .page-success .public-footer>span{font-size:9px;line-height:1.35;white-space:nowrap}
  .page-success .public-footer nav{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 5px}
  .page-success .public-footer a{font-size:9px;line-height:1.3;white-space:normal}
}
@media(max-width:700px) and (max-height:735px){
  .page-success .public-header{height:69px;flex-basis:69px}.page-success .public-header .header-logo{width:66px;height:66px}
  .success-copy{padding-top:8px}.success-eyebrow{height:23px;margin-bottom:7px}.success-check{width:23px;height:23px;flex-basis:23px;font-size:16px}
  .page-success h1{font-size:clamp(23px,6.7vw,27px);margin-bottom:8px;line-height:1.18}
  .success-message{font-size:12px;line-height:1.38;margin-bottom:10px}
  .success-summary{min-height:0;padding:9px 12px}.success-summary h2{margin-bottom:6px;padding-bottom:5px}.success-details{row-gap:5px}.success-details dd{font-size:11px}
  .success-home.button{min-height:42px;margin-top:9px;padding:8px 14px;font-size:14px}
  .page-success .public-footer{flex-basis:69px;height:69px;padding:5px 16px 7px;gap:2px}.page-success .public-footer nav{gap:2px 4px}
}
@media(max-width:360px){
  .page-success>.container{padding:0 15px}.page-success .public-footer a{font-size:8px}
  .success-details{column-gap:7px}.success-details dd{font-size:11px}
}
@media(min-width:701px) and (max-height:750px){
  .page-success .public-header{height:100px;flex-basis:100px}.page-success .public-header .header-logo{width:98px;height:98px}
  .page-success .public-footer{height:56px;min-height:56px}
  .success-eyebrow{height:34px;margin-bottom:6px}.success-check{height:34px;width:34px;flex-basis:34px;font-size:22px}
  .page-success h1{font-size:clamp(28px,3.2vw,41px);line-height:1.17;margin-bottom:12px}
  .success-message{font-size:15px;line-height:1.45;margin-bottom:12px}
  .success-summary{min-height:0;padding:12px 18px}.success-summary h2{margin-bottom:8px;padding-bottom:7px}.success-details{row-gap:5px}.success-details dd{font-size:14px}
  .success-home.button{min-height:46px;margin-top:13px;font-size:15px}
  .success-photo{height:min(480px,100%)}
}
@media(orientation:landscape) and (max-height:500px){
  .page-success .public-header{height:48px;flex-basis:48px;padding:0 24px}.page-success .public-header::after{left:24px;right:24px}
  .page-success .public-header .header-logo{width:46px;height:46px}.page-success .public-header .salon-login-link{min-height:30px;padding:4px 11px;font-size:10px;transform:none}
  .page-success>.container{padding:0 24px}
  .success-content{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:14px}
  .success-copy{padding:0}.success-eyebrow{height:23px;margin:0 0 5px;gap:8px;font-size:9px}.success-check{height:23px;width:23px;flex-basis:23px;font-size:16px}
  .page-success h1{font-size:clamp(21px,3vw,28px);line-height:1.12;margin:0 0 5px}
  .success-message{font-size:11px;line-height:1.3;margin:0 0 7px}
  .success-summary{min-height:0;padding:6px 10px}.success-summary h2{font-size:8px;margin-bottom:4px;padding-bottom:3px}.success-details{row-gap:2px}.success-details dt{font-size:8px}.success-details dd{font-size:10px;margin-top:0}
  .success-home.button{width:160px;min-height:30px;margin-top:6px;padding:4px 11px;font-size:11px;border-radius:8px}.success-home span{font-size:17px}
  .success-photo{height:100%;width:100%;margin:0;padding:0;min-height:0}
  .page-success .public-footer{height:36px;min-height:36px;flex:0 0 36px;padding:2px 24px;flex-direction:row;gap:8px}.page-success .public-footer::before{left:24px;right:24px}.page-success .public-footer>span{font-size:8px}.page-success .public-footer nav{display:flex;width:auto;gap:9px;flex-wrap:nowrap}.page-success .public-footer a{font-size:8px;white-space:nowrap}
}

/* Update 30 · Salon login matches the public identity. The photo has its own
   grid area, so it never overlaps the form on short mobile viewports. */
html:has(.page-auth),.page-auth{height:100%;height:100dvh;overflow:hidden}
.page-auth{display:flex;flex-direction:column;background:linear-gradient(105deg,#fffdfd 0%,#fffdfd 59%,#fcf0f5 100%)}
.page-auth .auth-header{height:clamp(88px,14dvh,132px);flex:0 0 auto;width:100%;max-width:1600px;margin:0 auto;padding:0 clamp(24px,5vw,72px);position:relative;background:transparent;border:0}
.auth-header::after,.auth-footer::before{content:"";position:absolute;height:1px;background:#efdce4;left:clamp(24px,5vw,72px);right:clamp(24px,5vw,72px)}
.auth-header::after{bottom:0}.auth-footer::before{top:0}
.auth-header .header-logo{width:clamp(80px,11dvh,105px);height:clamp(80px,11dvh,105px);flex-basis:auto}
.auth-header .auth-back-link{min-height:48px;padding:10px 19px;border:1px solid #eac8d4;border-radius:12px;background:#fff;color:var(--pink-strong);font-size:14px;font-weight:800;white-space:nowrap}
.auth-header .auth-back-link:hover{background:#fff0f5;border-color:var(--pink-strong)}
.page-auth>.auth-main{width:100%;max-width:1600px;flex:1 1 0;min-height:0;padding:0 clamp(24px,5vw,72px);display:flex;align-items:stretch}
.auth-shell{width:100%;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(16px,4vw,64px)}
.auth-content{width:100%;max-width:555px;justify-self:center;min-width:0}
.auth-content .eyebrow{font-size:13px;letter-spacing:.035em;color:var(--pink-strong)}
.page-auth .auth-content h1{font-size:clamp(34px,3.5vw,51px);font-weight:800;letter-spacing:-.05em;line-height:1.15;margin:20px 0 15px}
.auth-intro{max-width:520px;font-size:clamp(16px,1.4vw,20px);line-height:1.5;font-weight:500;color:#6b626c;margin:0 0 28px}
.auth-form.card{display:grid;gap:15px;padding:29px 36px 22px;border:1px solid #efd5e0;border-radius:22px;box-shadow:0 15px 42px rgba(110,38,69,.07)}
.auth-form label{display:grid;gap:8px;font-size:15px;font-weight:700;color:var(--ink)}
.auth-form input:not([type=checkbox]){min-height:54px;padding:13px 17px;border-radius:11px;font-size:15px;border-color:#eac8d4}
.auth-password{position:relative;display:block}.auth-password input{padding-right:55px!important}
.auth-password-toggle{position:absolute;top:50%;right:10px;transform:translateY(-50%);width:40px;height:40px;display:grid;place-items:center;border:0;background:transparent;color:#796d73;border-radius:9px}
.auth-password-toggle:hover{color:var(--pink-strong);background:#fff1f5}
.auth-form .auth-submit{display:flex;width:100%;min-height:62px;justify-content:center;position:relative;border-radius:13px;font-size:18px;margin-top:1px;background:var(--pink-strong)}
.auth-submit span:last-child{position:absolute;right:20px;font-size:25px;line-height:1}
.auth-links{text-align:right;line-height:1.3;margin:0}.auth-links a{font-size:14px;font-weight:700;color:var(--pink-strong)}
.auth-photo{width:100%;height:min(100%,610px);min-height:0;align-self:end;position:relative;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}
.auth-photo::before{content:"";position:absolute;width:min(96%,540px);aspect-ratio:1;border-radius:50%;background:#fce8ef;bottom:8%;left:50%;transform:translateX(-50%)}
.auth-photo img{position:relative;display:block;max-height:96%;max-width:100%;object-fit:contain;object-position:bottom}
.auth-footer{height:65px;min-height:65px;flex:0 0 65px;position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;max-width:1600px;margin:0 auto;padding:0 clamp(24px,5vw,72px);background:transparent;border:0;color:#9d7184;text-align:left;font-size:12px;font-weight:700}
.auth-footer span:last-child{color:#786a72;font-weight:500}
@media(max-width:700px){
  .page-auth .auth-header{height:88px;min-height:0;flex:0 0 88px;padding:0 20px;flex-wrap:nowrap}
  .auth-header::after,.auth-footer::before{left:20px;right:20px}
  .auth-header .header-logo{width:78px;height:78px}.auth-header .auth-back-link{min-height:40px;padding:8px 12px;font-size:12px}
  .page-auth>.auth-main{padding:0 20px}
  .auth-shell{display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:0;align-content:stretch}
  .auth-content{max-width:460px;justify-self:center;align-self:start;padding-top:22px}
  .auth-content .eyebrow{font-size:11px}
  .page-auth .auth-content h1{font-size:clamp(29px,8vw,37px);margin:12px 0 10px;line-height:1.12}
  .auth-intro{font-size:13px;line-height:1.45;margin:0 0 17px}
  .auth-form.card{padding:17px 20px 15px;gap:10px;border-radius:17px}
  .auth-form label{font-size:13px;gap:5px}
  .auth-form input:not([type=checkbox]){min-height:43px;padding:9px 12px;font-size:13px}
  .auth-form .auth-submit{min-height:48px;font-size:15px;margin:1px 0 0}
  .auth-links a{font-size:12px}
  .auth-photo{align-self:stretch;justify-self:center;width:min(100%,320px);height:100%;min-height:0;margin:9px 0 0;overflow:hidden}
  .auth-photo::before{width:min(94%,260px);bottom:0}
  .auth-photo img{max-width:100%;max-height:100%;object-fit:contain;object-position:center bottom}
  .auth-footer{flex:0 0 38px;height:38px;min-height:38px;padding:0 20px;justify-content:center;font-size:10px}
  .auth-footer span:last-child{display:none}
}
@media(max-width:700px) and (max-height:700px){
  .page-auth .auth-header{height:66px;flex-basis:66px}.auth-header .header-logo{width:61px;height:61px}
  .auth-content{padding-top:10px}.page-auth .auth-content h1{font-size:29px;margin:6px 0}
  .auth-intro{font-size:12px;margin-bottom:10px}
  .auth-form.card{padding:12px 15px 10px;gap:7px}
  .auth-form input:not([type=checkbox]){min-height:39px}.auth-form .auth-submit{min-height:43px}
  .auth-photo{margin-top:4px}.auth-footer{height:32px;flex-basis:32px;min-height:32px}
}
@media(max-width:700px) and (max-height:530px){
  .auth-photo{display:none}.auth-shell{grid-template-rows:1fr}.auth-content{align-self:center;padding-top:0}
  .auth-intro{margin-bottom:7px}
}
@media(min-width:701px) and (max-height:640px){
  .page-auth .auth-header{height:75px}.auth-header .header-logo{width:70px;height:70px}
  .auth-footer{height:42px;min-height:42px;flex-basis:42px}
  .page-auth .auth-content h1{font-size:34px;margin:8px 0}.auth-intro{font-size:15px;margin-bottom:12px}
  .auth-form.card{padding:16px 24px 13px;gap:9px}.auth-form input:not([type=checkbox]){min-height:42px}.auth-form .auth-submit{min-height:46px}
}

/* Update 31 · Keep login feedback in the content column and lock the page to
   the visual viewport. The previous flash occupied a whole flex column. */
html:has(>body.page-auth){width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
body.page-auth{position:fixed;inset:0;width:100%;height:100dvh;overflow:hidden;overscroll-behavior:none}
.page-auth>.auth-main{display:flex;flex-direction:column;position:relative;overflow:hidden}
.page-auth .auth-shell{flex:1 1 0;min-height:0}
.page-auth .auth-feedback{flex:0 0 auto;align-self:center;width:min(555px,100%);max-width:100%;height:auto;min-height:0;margin:12px auto 0;padding:10px 15px;line-height:1.45;font-size:13px;border:1px solid #edc7d5;border-radius:12px;box-shadow:none;overflow-wrap:anywhere}
@media(max-width:700px){
  .page-auth .auth-feedback{width:100%;margin:9px auto 0;padding:8px 12px;font-size:12px}
  .page-auth .auth-shell{align-content:stretch}
  .page-auth .auth-photo{margin-top:5px}
}
@media(max-width:700px) and (max-height:750px){
  .page-auth:has(.auth-feedback) .auth-photo{display:none}
  .page-auth:has(.auth-feedback) .auth-shell{grid-template-rows:1fr}
  .page-auth:has(.auth-feedback) .auth-content{align-self:center;padding-top:0}
}
@media(max-width:700px) and (max-height:500px){
  .page-auth .auth-header{height:48px;flex-basis:48px}.auth-header .header-logo{width:44px;height:44px}
  .page-auth .auth-content h1{font-size:24px;line-height:1.08;margin:3px 0 7px}
  .page-auth .auth-intro{display:none}
  .page-auth .auth-form.card{gap:5px;padding:9px 13px 8px}
  .page-auth .auth-form input:not([type=checkbox]){min-height:35px}
  .page-auth .auth-form .auth-submit{min-height:37px;font-size:13px}
  .page-auth .auth-footer{height:24px;min-height:24px;flex-basis:24px}
  .page-auth .auth-feedback{margin-top:4px;padding:5px 9px;font-size:11px}
}

/* Final login fixes: Safari should expose the light page background when its
   browser bars move, and auth notices are real top-layer dialogs. */
html:has(>body.page-auth){position:fixed;inset:0;width:100%;height:100%;background:#fffdfd;overflow:hidden;overscroll-behavior:none}
body.page-auth{position:fixed;inset:0;width:100%;height:100%;height:100dvh;margin:0;background:linear-gradient(105deg,#fffdfd 0%,#fffdfd 59%,#fcf0f5 100%);overflow:hidden;overscroll-behavior:none}
.page-auth .auth-message-dialog{position:fixed;inset:0;margin:auto;width:min(420px,calc(100vw - 36px));max-width:calc(100vw - 36px);max-height:calc(100dvh - 48px);padding:0;border:1px solid #eac8d4;border-radius:20px;background:#fff;box-shadow:0 25px 75px rgba(78,27,49,.2);color:var(--ink);overflow:hidden}
.auth-message-dialog::backdrop{background:rgba(50,35,43,.48)}
.auth-message-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 22px 12px}
.auth-message-head span{font-size:18px;line-height:1.3;font-weight:800;color:var(--ink)}
.auth-message-close{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;padding:0;border:1px solid var(--line);border-radius:10px;background:#fff;color:#796d73;font-size:25px;line-height:1}
.auth-message-close:hover{background:var(--pink-soft);color:var(--pink-strong)}
.auth-message-dialog p{margin:0;padding:0 22px 24px;font-size:15px;line-height:1.55;color:#6b626c}
@media(max-width:700px){
  .page-auth .auth-message-dialog{width:calc(100vw - 34px);border-radius:18px}
  .auth-message-head{padding:17px 18px 11px}.auth-message-head span{font-size:16px}
  .auth-message-dialog p{padding:0 18px 20px;font-size:14px}
}

/* Public booking · photographic size guidance. Only step one changes. */
.booking-step-scroll:has([data-booking-step="1"]:not([hidden])){padding-top:24px;padding-bottom:22px}
.booking-step[data-booking-step="1"] .booking-step-heading{margin-bottom:18px}
.booking-size-grid{gap:10px}
.booking-size-grid .size-choice{height:clamp(160px,26dvh,244px);min-height:0;display:flex;flex-direction:column;align-items:center;overflow:hidden;padding:15px 10px 0}
.booking-size-grid .size-choice strong{flex:0 0 auto}
.booking-size-grid .size-choice small{flex:0 0 auto}
.booking-size-grid .size-dog{display:block;flex:1 1 auto;min-height:0;height:100%;aspect-ratio:485.5 / 809;margin-top:5px;background-image:url('groessen-hunde.png');background-size:400% 100%;background-position:var(--dog-position) bottom;background-repeat:no-repeat}
.size-measure-guide{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(160px,.85fr) minmax(0,1fr);align-items:center;gap:16px;min-height:136px;margin-top:15px;padding:10px 20px;border-radius:15px;background:#fff3f7;color:var(--ink)}
.size-measure-copy,.size-measure-note{display:grid;gap:7px;min-width:0}
.size-measure-copy strong{font-size:17px;line-height:1.25;font-weight:800;letter-spacing:-.025em}
.size-measure-copy span,.size-measure-note span{font-size:12px;line-height:1.45;color:var(--muted)}
.size-measure-note{border-left:1px solid #edc9d8;padding-left:16px}
.size-measure-note small{font-size:11px;line-height:1.4;font-weight:700;color:var(--pink-strong)}
.size-measure-visual{position:relative;width:min(100%,205px);margin:auto;align-self:end}
.size-measure-visual img{display:block;width:100%;height:auto}
.size-measure-line{position:absolute;top:27%;bottom:6%;left:32%;border-left:2px solid var(--pink-strong)}
.size-measure-line::before,.size-measure-line::after{content:'';position:absolute;left:-5px;width:9px;height:9px;border-radius:50%;background:var(--pink-strong)}
.size-measure-line::before{top:-2px}.size-measure-line::after{bottom:-2px}
@media(max-height:850px) and (min-width:541px){
  .booking-size-grid .size-choice{height:clamp(128px,23dvh,185px);padding-top:10px}
  .size-measure-guide{min-height:105px;margin-top:10px;padding:7px 16px}
  .size-measure-visual{max-width:165px}
  .booking-step-scroll:has([data-booking-step="1"]:not([hidden])){padding-top:16px;padding-bottom:14px}
  .booking-step[data-booking-step="1"] .booking-step-heading{margin-bottom:11px}
}
@media(max-width:540px){
  .booking-step-scroll:has([data-booking-step="1"]:not([hidden])){padding:14px 17px 12px}
  .booking-step[data-booking-step="1"] .booking-step-heading{margin-bottom:11px}
  .booking-step[data-booking-step="1"] .booking-step-heading h3{margin:5px 0 4px}
  .booking-step[data-booking-step="1"] .booking-step-heading p{line-height:1.35}
  .booking-size-grid{gap:7px}
  .booking-size-grid .size-choice{height:clamp(99px,17dvh,143px);min-height:0;padding:8px 4px 0;gap:1px;border-radius:12px}
  .booking-size-grid .size-choice strong{font-size:13px}
  .booking-size-grid .size-choice small{font-size:10px}
  .booking-size-grid .size-choice.selected::after{right:5px;top:5px;width:17px;height:17px;font-size:11px}
  .booking-size-grid .size-dog{margin-top:0}
  .size-measure-guide{grid-template-columns:minmax(0,1fr) 86px;grid-template-rows:auto auto;column-gap:5px;row-gap:3px;min-height:0;margin-top:9px;padding:9px 11px}
  .size-measure-copy,.size-measure-note{gap:2px}
  .size-measure-copy strong{font-size:12px}
  .size-measure-copy span,.size-measure-note span{font-size:10px;line-height:1.3}
  .size-measure-note{grid-column:1;grid-row:2;border:0;padding:0}
  .size-measure-note small{font-size:10px;line-height:1.25}
  .size-measure-visual{grid-column:2;grid-row:1/3;width:86px;align-self:center}
}
@media(max-width:540px) and (max-height:700px){
  .booking-step-scroll:has([data-booking-step="1"]:not([hidden])){padding-top:9px;padding-bottom:8px}
  .booking-step[data-booking-step="1"] .booking-step-heading{margin-bottom:7px}
  .booking-step[data-booking-step="1"] .booking-step-heading h3{font-size:20px}
  .booking-step[data-booking-step="1"] .booking-step-heading p{font-size:11px}
  .booking-size-grid .size-choice{height:clamp(78px,15dvh,104px);padding-top:5px}
  .size-measure-guide{margin-top:6px;padding:6px 9px}
  .size-measure-copy strong{font-size:11px}
  .size-measure-copy span,.size-measure-note span,.size-measure-note small{font-size:9px}
  .size-measure-visual{width:66px}
}
@media(max-width:540px) and (max-height:600px){
  .booking-size-grid .size-choice{height:72px;padding-top:3px}
  .booking-size-grid .size-choice strong{font-size:12px}
  .booking-size-grid .size-choice small{font-size:9px}
  .booking-step[data-booking-step="1"] .booking-step-heading h3{font-size:18px}
  .size-measure-guide{grid-template-columns:minmax(0,1fr) 55px}
  .size-measure-visual{width:55px}
  .size-measure-copy strong{font-size:10px}
}
@media(max-height:500px) and (min-width:541px){
  .booking-size-grid .size-choice{height:86px;padding-top:4px}
  .booking-size-grid .size-choice strong{font-size:13px}
  .booking-size-grid .size-choice small{font-size:10px}
  .size-measure-guide{min-height:68px;margin-top:6px;padding:4px 12px}
  .size-measure-copy strong{font-size:13px}
  .size-measure-copy span,.size-measure-note span,.size-measure-note small{font-size:10px}
  .size-measure-visual{max-width:95px}
  .booking-step[data-booking-step="1"] .booking-step-heading h3{font-size:20px;margin:3px 0}
  .booking-step[data-booking-step="1"] .booking-step-heading p{font-size:11px}
}

/* Update 33 · Tablet portrait and landscape. Phone and desktop rules remain separate. */
@media(min-width:701px) and (max-width:1100px){
  .page-dashboard .container{padding:22px 22px 46px}
  .page-dashboard .admin-layout{display:block;min-width:0}
  .page-dashboard .admin-sidebar{position:relative;top:auto;display:flex;flex-wrap:nowrap;align-items:center;gap:6px;width:100%;max-width:100%;margin:0 0 24px;padding:9px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
  .page-dashboard .admin-sidebar .sidebar-brand,.page-dashboard .admin-sidebar .sidebar-title,.page-dashboard .admin-sidebar .sidebar-bottom{display:none}
  .page-dashboard .admin-sidebar>a{flex:0 0 auto;white-space:nowrap;min-height:48px;padding:11px 13px;margin:0;scroll-snap-align:start;font-size:13px}
  .page-dashboard .admin-sidebar>a.active{box-shadow:inset 0 -3px 0 var(--pink-strong)}
  .page-dashboard .admin-content{min-width:0;width:100%}
  .page-dashboard .admin-top{flex-wrap:wrap;gap:10px;margin:0 0 18px}
  .page-dashboard .admin-top h1{font-size:clamp(32px,4vw,42px)}
  .page-dashboard .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-dashboard .toolbar{flex-wrap:wrap;gap:12px}
  .page-dashboard .calendar-board.calendar-slots.week{grid-template-columns:repeat(7,minmax(155px,1fr));max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
  .page-dashboard .month-choice{min-height:44px}
  .page-dashboard .month-year a{width:42px;height:42px}
  .page-dashboard .calendar-slots.month .calendar-slot{min-height:32px}
  .page-dashboard .calendar-slots.month .calendar-day-head a{min-height:32px}
  .page-dashboard .table-wrap{max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
  .catalog-dialog{max-height:calc(100dvh - 28px)}
  .catalog-dialog.catalog-edit-dialog[open],.catalog-dialog:is(#new-service-dialog,#new-package-dialog)[open]{max-height:calc(100dvh - 28px)}
  .catalog-dialog .catalog-form{min-width:0}
  .customer-file-dialog{max-height:calc(100dvh - 28px)}
  .catalog-dialog .button,.booking-dialog .button,.page-dashboard .button{min-height:44px}
  .page-legal .container{padding:32px 32px 55px}
  .page-legal .legal-content{max-width:780px}

  html:has(>body.page-booking){height:100%;overflow:hidden}
  body.page-booking{height:100dvh;min-height:0;overflow:hidden;overscroll-behavior-y:none}
  .page-booking .public-header{height:clamp(84px,12dvh,115px);flex:0 0 auto;padding:0 30px}
  .page-booking .public-header::after,.page-booking .public-footer::before{left:30px;right:30px}
  .page-booking .public-header .header-logo{width:auto;height:100%;max-width:120px}
  .page-booking>.container{flex:1 1 0;min-height:0;padding:0 30px;overflow:hidden}
  .page-booking .brand-hero{min-height:0;overflow:hidden}
  .page-booking .brand-hero h1{font-size:clamp(34px,3.8vw,45px);line-height:1.15;margin:14px 0 15px}
  .page-booking .brand-hero p{font-size:14px;line-height:1.5}
  .page-booking .brand-hero .booking-start{min-width:0;min-height:53px;margin:18px 0 8px;padding:12px 20px;font-size:16px}
  .page-booking .booking-hero-note{font-size:12px}
  .page-booking .public-footer{min-height:54px;padding:10px 30px;gap:12px}
  .page-booking .public-footer nav{gap:9px 15px}
  .page-booking .public-footer a{font-size:10px}

  .booking-dialog{width:min(950px,calc(100vw - 32px));max-height:calc(100dvh - 28px)}
  .booking-dialog-head{padding:18px 26px 11px}
  .booking-dialog-head h2{margin-top:6px;font-size:25px}
  .booking-progress{padding:0 26px 13px;gap:6px}
  .booking-progress span{min-height:39px;font-size:11px}
  .booking-step-scroll{padding:19px 26px 25px}
  .booking-step-heading{margin-bottom:17px}
  .booking-step-heading h3{font-size:26px;margin:6px 0 5px}
  .booking-step-heading p{line-height:1.45}
  .booking-wizard-footer{min-height:67px;padding:10px 26px}
  .booking-wizard-footer>.button{min-height:47px}
  .booking-size-grid .size-choice{height:clamp(125px,20dvh,205px)}
  .size-measure-guide{min-height:110px;gap:11px;padding:8px 16px}
  .size-measure-visual{max-width:155px}

  .page-auth .auth-header{height:clamp(80px,11dvh,105px);flex-basis:clamp(80px,11dvh,105px)}
  .page-auth .auth-header .header-logo{height:clamp(76px,10dvh,100px);width:clamp(76px,10dvh,100px)}
  .page-auth .auth-shell{gap:24px}
  .page-auth .auth-content h1{font-size:clamp(30px,3.7vw,39px);margin:10px 0}
  .page-auth .auth-intro{font-size:14px;margin-bottom:14px;line-height:1.45}
  .page-auth .auth-form.card{padding:18px 22px 15px;gap:9px}
  .page-auth .auth-form input:not([type=checkbox]){min-height:46px;font-size:16px}
  .page-auth .auth-form .auth-submit{min-height:50px;font-size:16px}
  .page-auth .auth-footer{height:48px;min-height:48px;flex-basis:48px}
  .page-auth .auth-photo{height:100%}
  .page-auth .auth-message-dialog{max-height:calc(100dvh - 28px)}
}

@media(min-width:701px) and (max-width:900px){
  .page-dashboard .calendar-board.calendar-slots.month .calendar-day{padding:3px;min-height:85px}
  .page-dashboard .calendar-slots.month .calendar-day-head{font-size:10px}
  .page-dashboard .calendar-slots.month .calendar-day-head strong{display:none}
  .page-dashboard .calendar-slots.month .calendar-day-slots{grid-template-columns:1fr;gap:2px}
  .page-dashboard .calendar-slots.month .calendar-slot{min-height:29px;font-size:10px;padding:2px}
  .page-dashboard .calendar-slots.month .fee-slot-badge{max-width:100%;font-size:8px!important}
  .page-dashboard .calendar-month-tabs{grid-template-columns:repeat(6,minmax(0,1fr))}
  .page-dashboard .availability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-dashboard .customer-table tbody{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-dashboard .reminder-row,.page-dashboard .attendance-pending{flex-wrap:wrap}
  .page-dashboard .reminder-actions{width:100%;justify-content:flex-start}
  .page-dashboard .calendar-whatsapp-pending{flex-wrap:wrap}
  .page-dashboard .calendar-whatsapp-pending span{white-space:normal}
  .booking-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .booking-step .calendar-grid{grid-template-columns:minmax(250px,290px) minmax(0,1fr);gap:18px}
  .size-measure-guide{grid-template-columns:minmax(0,1fr) 120px minmax(0,1fr)}
  .size-measure-copy strong{font-size:15px}
  .size-measure-copy span,.size-measure-note span{font-size:11px}
}

@media(min-width:701px) and (max-width:850px) and (orientation:portrait){
  .page-booking>.container{display:flex}
  .page-booking .brand-hero{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;width:100%;height:100%;padding:clamp(8px,2dvh,18px) 0 0;text-align:center}
  .page-booking .brand-hero-copy{flex:0 0 auto;width:100%;padding:0}
  .page-booking .brand-hero h1{font-size:clamp(33px,5vw,43px);white-space:normal;margin:9px 0}
  .page-booking .brand-hero p{max-width:620px;margin:auto}
  .page-booking .brand-hero .booking-start{margin:15px auto 6px;min-width:270px}
  .page-booking .brand-hero-dogs{flex:1 1 0;align-self:center;width:min(64vw,400px);height:auto;max-height:none;min-height:0;margin:4px 0 0}
  .page-booking .brand-hero-dogs img{width:100%;height:100%;max-height:100%;object-fit:contain;object-position:center bottom}
  .page-booking .public-footer{flex-direction:column;justify-content:center;gap:4px;padding:7px 30px;min-height:70px}
  .page-booking .public-footer nav{justify-content:center}

  .page-auth .auth-shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:0;align-items:stretch}
  .page-auth .auth-content{max-width:530px;align-self:start;padding-top:14px}
  .page-auth .auth-photo{width:min(50vw,330px);height:100%;min-height:0;margin:5px auto 0}
  .page-auth .auth-photo img{max-height:100%}
  .page-auth:has(.auth-feedback) .auth-photo{display:none}
  .page-auth:has(.auth-feedback) .auth-content{align-self:center}

  .page-success .success-content{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:0;align-content:center}
  .page-success .success-copy{width:100%;max-width:650px;justify-self:center;align-self:end;padding-top:8px}
  .page-success .success-photo{width:min(46vw,350px);height:100%;min-height:0;justify-self:center;align-self:end;padding-bottom:0}
  .page-success .success-message{margin-bottom:16px}
  .page-success .success-summary{min-height:0}
  .page-success .success-home.button{margin-top:14px}
}

@media(min-width:701px) and (max-width:900px) and (orientation:landscape){
  .page-booking>.container{display:flex}
  .page-booking .brand-hero{display:grid;grid-template-columns:minmax(0,53%) minmax(0,47%);align-items:center;padding:0;text-align:left}
  .page-booking .brand-hero-copy{min-width:0}
  .page-booking .brand-hero h1{white-space:normal;font-size:clamp(30px,4.2vw,38px)}
  .page-booking .brand-hero p{font-size:13px;margin:0}
  .page-booking .brand-hero .booking-start{margin:15px 0 7px}
  .page-booking .brand-hero-dogs{width:100%;height:100%;max-height:100%;margin:0;align-self:stretch}
  .page-booking .brand-hero-dogs img{height:100%;max-height:100%}
  .page-booking .public-footer{flex-direction:row;gap:9px}
  .page-booking .public-footer>span{font-size:10px;white-space:nowrap}
  .page-booking .public-footer nav{justify-content:flex-end}
}

@media(min-width:701px) and (max-width:1100px) and (max-height:760px){
  .page-booking .public-header{height:78px}
  .page-booking .brand-hero h1{margin:8px 0;font-size:clamp(29px,3.6vw,39px)}
  .page-booking .brand-hero .booking-start{min-height:46px;margin-top:12px;font-size:15px}
  .page-booking .public-footer{min-height:44px;padding-top:6px;padding-bottom:6px}
  .booking-dialog-head{padding-top:12px;padding-bottom:8px}
  .booking-progress{padding-bottom:9px}
  .booking-progress span{min-height:34px}
  .booking-step-scroll{padding-top:13px;padding-bottom:14px}
  .booking-step-heading{margin-bottom:12px}
  .booking-step-heading h3{font-size:23px}
  .booking-wizard-footer{min-height:55px;padding-top:6px;padding-bottom:6px}
  .page-auth .auth-header{height:68px;flex-basis:68px}
  .page-auth .auth-header .header-logo{width:65px;height:65px}
  .page-auth .auth-footer{height:36px;min-height:36px;flex-basis:36px}
  .page-auth .auth-content h1{font-size:30px;margin:5px 0}
  .page-auth .auth-intro{margin-bottom:8px;font-size:13px}
  .page-auth .auth-form.card{padding:12px 18px;gap:6px}
  .page-auth .auth-form input:not([type=checkbox]){min-height:41px}
  .page-auth .auth-form .auth-submit{min-height:44px}
}

/* Update 34 · Size examples and shoulder measurement, matched to the visual reference. */
#booking-dialog:has([data-booking-step="1"]:not([hidden])){width:min(1140px,calc(100vw - 28px));max-width:1140px}
.booking-step[data-booking-step="1"] .booking-step-heading{margin-bottom:17px}
.booking-step[data-booking-step="1"] .booking-size-grid{max-width:none;gap:12px}
.booking-step[data-booking-step="1"] .booking-size-grid .size-choice{height:clamp(205px,34dvh,360px);min-height:0;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow:hidden;padding:16px 8px 0}
.booking-step[data-booking-step="1"] .booking-size-grid .size-choice strong,
.booking-step[data-booking-step="1"] .booking-size-grid .size-choice small{position:relative;z-index:1;flex:none}
.booking-step[data-booking-step="1"] .booking-size-grid .size-dog{position:absolute;left:50%;bottom:3px;display:block;flex:none;width:auto;height:calc(100% - 69px);min-height:0;aspect-ratio:485.5 / 809;margin:0;transform:translateX(-50%) scale(var(--dog-scale,1));transform-origin:center bottom;background-size:400% 100%;background-repeat:no-repeat;background-position:var(--dog-position) bottom;pointer-events:none}
.booking-step[data-booking-step="1"] .size-choice[data-size-option="size_1"]{--dog-scale:1.35}
.booking-step[data-booking-step="1"] .size-choice[data-size-option="size_2"]{--dog-scale:1.23}
.booking-step[data-booking-step="1"] .size-choice[data-size-option="size_3"]{--dog-scale:1.16}
.booking-step[data-booking-step="1"] .size-choice[data-size-option="size_4"]{--dog-scale:1}
.booking-step[data-booking-step="1"] .size-choice[data-size-option="size_2"] .size-dog{clip-path:inset(0 8% 0 0)}
.size-measure-guide{grid-template-columns:minmax(0,1.25fr) minmax(225px,.95fr) minmax(0,1fr);min-height:clamp(132px,20dvh,210px);gap:15px;margin-top:16px;padding:10px 22px}
.size-measure-visual{width:min(100%,280px);max-width:none;align-self:center}
.size-measure-line{top:30%;bottom:6%;left:32%;border-left:2px solid var(--pink-strong);z-index:2}
.size-measure-line::before,.size-measure-line::after{content:'';position:absolute;left:-6px;width:0;height:0;background:none;border-left:5px solid transparent;border-right:5px solid transparent;border-radius:0}
.size-measure-line::before{top:-2px;border-bottom:8px solid var(--pink-strong)}
.size-measure-line::after{bottom:-2px;border-top:8px solid var(--pink-strong)}
.size-measure-shoulder{position:absolute;top:30%;left:20%;width:12%;border-top:2px dashed var(--pink-strong);z-index:2}
.size-measure-ground{position:absolute;left:18%;right:17%;bottom:6%;border-top:1px solid #bbaeb4;z-index:1}

@media(min-width:701px) and (max-width:1100px){
  .booking-step[data-booking-step="1"] .booking-size-grid .size-choice{height:clamp(200px,31dvh,300px);padding-top:14px}
  .booking-step[data-booking-step="1"] .booking-size-grid .size-dog{height:calc(100% - 60px)}
  .size-measure-guide{grid-template-columns:minmax(0,1fr) minmax(160px,.8fr) minmax(0,1fr);min-height:clamp(125px,20dvh,170px);gap:10px;padding:8px 16px}
  .size-measure-visual{width:min(100%,215px);max-width:none}
}
@media(min-width:541px) and (max-width:700px){
  .size-measure-guide{grid-template-columns:minmax(0,1fr) 150px;grid-template-rows:auto auto;min-height:0;column-gap:10px;row-gap:3px}
  .size-measure-copy{grid-column:1;grid-row:1}
  .size-measure-note{grid-column:1;grid-row:2;border:0;padding:0}
  .size-measure-visual{grid-column:2;grid-row:1/3;width:150px;max-width:none}
}
@media(min-width:541px) and (max-height:850px){
  .booking-step[data-booking-step="1"] .booking-size-grid .size-choice{height:clamp(190px,30dvh,260px)}
  .size-measure-guide{min-height:clamp(120px,18dvh,155px);margin-top:11px}
}
@media(min-width:541px) and (max-height:700px){
  .booking-step[data-booking-step="1"] .booking-size-grid .size-choice{height:clamp(165px,30dvh,235px)}
  .size-measure-guide{min-height:118px;margin-top:10px;padding-top:5px;padding-bottom:5px}
  .size-measure-visual{width:min(100%,176px)}
}
@media(min-width:541px) and (max-height:560px){
  .booking-step[data-booking-step="1"] .booking-size-grid .size-choice{height:110px;padding-top:5px}
  .booking-step[data-booking-step="1"] .booking-size-grid .size-dog{height:calc(100% - 35px)}
  .size-measure-guide{min-height:78px;margin-top:6px;padding:4px 10px}
  .size-measure-visual{width:min(100%,115px)}
  .booking-step[data-booking-step="1"] .booking-step-heading{margin-bottom:7px}
}
@media(max-width:540px){
  .booking-step[data-booking-step="1"] .booking-size-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .booking-step[data-booking-step="1"] .booking-size-grid .size-choice{height:clamp(120px,19dvh,170px);padding:8px 4px 0}
  .booking-step[data-booking-step="1"] .booking-size-grid .size-dog{height:calc(100% - 39px);bottom:1px}
  .booking-step[data-booking-step="1"] .booking-step-heading{margin-bottom:10px}
  .size-measure-guide{grid-template-columns:minmax(0,1fr) clamp(90px,32vw,140px);grid-template-rows:auto auto;column-gap:6px;row-gap:3px;min-height:0;margin-top:9px;padding:8px 10px}
  .size-measure-visual{grid-column:2;grid-row:1/3;width:100%;max-width:none;align-self:center}
  .size-measure-line{border-left-width:2px}
  .size-measure-shoulder{border-top-width:2px}
}
@media(max-width:540px) and (max-height:700px){
  .booking-step[data-booking-step="1"] .booking-size-grid .size-choice{height:clamp(105px,17dvh,125px)}
  .booking-step[data-booking-step="1"] .booking-size-grid .size-dog{height:calc(100% - 35px)}
  .size-measure-guide{grid-template-columns:minmax(0,1fr) clamp(85px,28vw,105px);margin-top:6px;padding:6px 8px}
}
@media(max-width:540px) and (max-height:600px){
  .booking-step[data-booking-step="1"] .booking-size-grid .size-choice{height:95px}
  .booking-step[data-booking-step="1"] .booking-size-grid .size-dog{height:calc(100% - 33px)}
  .size-measure-guide{grid-template-columns:minmax(0,1fr) 80px}
}

/* Update 35 · Opening-hours dialog on every weekday and Sunday consent. */
.hours-edit-dialog{width:min(540px,calc(100vw - 24px));max-width:540px;max-height:calc(100dvh - 24px);padding:24px 27px 0;overflow:hidden}
.availability-card .availability-sunday-note{color:var(--pink-strong);font-weight:800}
.hours-edit-dialog[open]{display:flex;flex-direction:column}
.hours-dialog-head{flex:0 0 auto;align-items:center;border-bottom:1px solid var(--line);padding-bottom:19px}
.hours-dialog-head .eyebrow{color:var(--pink-strong);font-weight:800;letter-spacing:.12em;font-size:11px}
.hours-dialog-head h2{font-family:var(--font-body);font-size:29px;font-weight:800;letter-spacing:-.035em;line-height:1.2}
.hours-dialog-form.form{display:flex;flex-direction:column;gap:17px;min-height:0;margin:0;padding:19px 0 0;overflow-y:auto;overscroll-behavior:contain}
.hours-dialog-form .form-row{gap:12px}
.hours-dialog-form label{font-size:13px;font-weight:700;color:var(--muted)}
.hours-dialog-form input:not([type=checkbox]){min-height:49px;margin-top:7px;border-radius:10px;font-size:16px;font-weight:700;color:var(--ink)}
.hours-dialog-form .availability-closed{flex:0 0 auto;min-height:43px;padding:10px 15px;background:var(--pink-soft);border-radius:9px;color:var(--muted);font-weight:700}
.hours-dialog-form .availability-closed input{accent-color:var(--pink-strong)}
.hours-dialog-form .availability-time-fields{flex:0 0 auto;gap:13px}
.hours-dialog-form .availability-time-fields.is-closed,.hours-surcharge.is-closed{opacity:.45}
.hours-surcharge{border-top:1px solid var(--line);padding-top:18px}
.hours-surcharge h3{font-size:17px;line-height:1.35;font-weight:800;margin:0 0 11px;color:var(--ink)}
.hours-unit-field{display:block;position:relative}
.hours-unit-field input{width:100%;padding-right:43px!important}
.hours-unit-field>span{position:absolute;right:16px;bottom:14px;color:var(--pink-strong);font-size:17px;font-weight:800;pointer-events:none}
.hours-surcharge-help{margin:14px 0 0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--pink-soft);color:var(--muted);font-size:12px;line-height:1.45}
.hours-weekday-note{margin:0;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--pink-soft);font-size:12px;color:var(--muted)}
.hours-dialog-hint{margin:0;font-size:12px;line-height:1.45}
.hours-dialog-actions{position:sticky;bottom:0;z-index:1;flex:0 0 auto;margin:0 -2px;padding:13px 2px 17px;border-top:1px solid var(--line);background:#fff;box-shadow:0 -5px 18px #fff}
.hours-dialog-actions .button{min-height:47px;border-radius:10px;font-weight:800}

.month-grid button.sunday-available:not(:disabled):not(.selected){position:relative;background:#fff0f4;border:1px solid #e9b9c9}
.month-grid button.sunday-available:not(:disabled):not(.selected)::after{content:'+';position:absolute;right:-3px;top:-5px;display:grid;place-items:center;width:12px;height:12px;border-radius:50%;background:var(--pink-strong);color:#fff;font-size:10px;font-weight:800;line-height:1}
.month-grid button.sunday-available.selected{box-shadow:0 0 0 2px #e6abbf}
.sunday-consent-dialog{width:min(590px,calc(100vw - 28px));max-width:590px;max-height:calc(100dvh - 24px);margin:auto;padding:26px 28px 28px;border:1px solid var(--line);border-radius:21px;background:#fff;color:var(--ink);box-shadow:0 32px 90px rgba(46,22,36,.27);overflow-y:auto;overscroll-behavior:contain}
.sunday-consent-dialog::backdrop{background:rgba(53,41,47,.44);backdrop-filter:blur(2px)}
.sunday-consent-top{display:flex;align-items:center;gap:15px}
.sunday-consent-top>div:nth-child(2){flex:1;min-width:0}
.sunday-consent-top .eyebrow{color:var(--pink-strong);font-size:11px;font-weight:800;letter-spacing:.08em}
.sunday-consent-top h2{font-family:var(--font-body);font-size:26px;line-height:1.25;letter-spacing:-.035em;font-weight:800;margin:5px 0 0}
.sunday-consent-top .dialog-close{align-self:flex-start;flex:0 0 39px;width:39px;height:39px}
.sunday-paw{display:grid;place-items:center;flex:0 0 58px;width:58px;height:58px;border-radius:16px;background:var(--pink-soft);color:var(--pink-strong);font-size:27px}
.sunday-consent-dialog>p{font-size:14px;line-height:1.65;color:var(--muted);margin:20px 0 0}
.sunday-consent-dialog>p strong{color:var(--ink)}
.sunday-consent-prices{display:grid;gap:0;margin-top:21px;padding:6px 19px;border:1px solid var(--line);border-radius:12px;background:#fff8fa}
.sunday-consent-prices>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;font-size:15px}
.sunday-consent-prices>div strong{white-space:nowrap;font-size:16px}
.sunday-consent-prices>div:nth-child(2) strong{color:var(--pink-strong)}
.sunday-consent-prices>div:last-child{border-top:1px solid var(--line);font-weight:800;font-size:18px}
.sunday-consent-prices>div:last-child strong{font-size:24px;color:var(--pink-strong)}
.sunday-consent-dialog .sunday-consent-note{margin-top:13px;font-size:12px}
.sunday-consent-actions{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:11px;margin-top:22px}
.sunday-consent-actions .button{min-height:55px;padding:10px 12px;border-radius:11px;font-size:14px;font-weight:800;white-space:normal}
.sunday-consent-actions .button span{color:inherit;font-size:18px;line-height:1}
.sunday-review{display:grid;gap:7px;padding:15px 17px;margin:0 0 18px;border:1px solid var(--line);border-radius:12px;background:#fff8fa}
.sunday-review[hidden]{display:none}
.sunday-review>span{display:flex;justify-content:space-between;gap:12px;font-size:13px}
.sunday-review>span:nth-child(2) strong,.sunday-review>span:last-child strong{color:var(--pink-strong)}
.sunday-review>span:last-child{border-top:1px solid var(--line);padding-top:8px;font-size:16px;font-weight:800}
.sunday-admin-price{display:grid;gap:8px;margin:15px 0;padding:15px 17px;border:1px solid var(--line);border-radius:12px;background:#fff8fa}
.sunday-admin-price>strong{font-size:15px;color:var(--pink-strong)}
.sunday-admin-price>span{display:flex;justify-content:space-between;gap:12px;font-size:13px}
.sunday-admin-price>span:last-child{border-top:1px solid var(--line);padding-top:8px;font-size:16px;font-weight:800}
.sunday-admin-price>span:last-child b{color:var(--pink-strong)}
.sunday-move-preview{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--pink-soft);color:var(--pink-strong);font-weight:700}

@media(min-width:701px) and (max-width:900px){
  .hours-edit-dialog{width:min(540px,calc(100vw - 32px))}
  .sunday-consent-dialog{width:min(590px,calc(100vw - 48px))}
}
@media(max-width:650px){
  .hours-edit-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:17px 17px 0}
  .hours-dialog-head h2{font-size:25px}
  .hours-dialog-form.form{gap:14px;padding-top:15px}
  .hours-dialog-form .form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .hours-dialog-form .form-row label{min-width:0}
  .hours-dialog-form input:not([type=checkbox]){min-width:0}
  .hours-dialog-actions{padding-bottom:max(13px,env(safe-area-inset-bottom))}
  .sunday-consent-dialog{width:calc(100vw - 18px);max-height:calc(100dvh - 18px);padding:19px 18px 20px;border-radius:17px}
  .sunday-consent-top{gap:9px}
  .sunday-consent-top h2{font-size:20px}
  .sunday-consent-top .eyebrow{font-size:9px}
  .sunday-paw{flex-basis:42px;width:42px;height:42px;font-size:20px;border-radius:11px}
  .sunday-consent-top .dialog-close{flex-basis:36px;width:36px;height:36px}
  .sunday-consent-dialog>p{margin-top:16px;font-size:13px}
  .sunday-consent-prices{margin-top:16px;padding:4px 12px}
  .sunday-consent-prices>div{font-size:13px;padding:10px 0}
  .sunday-consent-prices>div strong{font-size:14px}
  .sunday-consent-prices>div:last-child strong{font-size:21px}
  .sunday-consent-actions{display:flex;flex-direction:column-reverse;gap:9px;margin-top:17px}
  .sunday-consent-actions .button{width:100%;min-height:48px;font-size:13px}
}
/* Tagesübersicht: kompakte Liste im bestehenden Salon-Design. */
.page-dashboard .overview-stats{grid-template-columns:repeat(3,minmax(210px,1fr));margin:16px 0 20px}
@media(max-width:950px){.page-dashboard .overview-stats{grid-template-columns:repeat(2,minmax(210px,1fr))}}
.today-appointments{background:#fff;border:1px solid #f0dce4;border-radius:17px;overflow:hidden;margin:20px 0;box-shadow:0 8px 28px rgba(87,39,60,.04)}
.today-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 21px;border-bottom:1px solid #f3e6eb}
.today-head h2{font:800 17px/1.3 var(--font-body);margin:0}.today-head a{font-size:12px;color:var(--muted)}
.today-entry{display:grid;grid-template-columns:56px minmax(0,1fr) 130px;gap:12px;padding:20px 20px;border-bottom:1px solid #f3e6eb;align-items:start}
.today-entry:last-child{border-bottom:0}.today-awaiting{background:#fff6f9;box-shadow:inset 3px 0 #c83b71}
.today-time{font-size:13px;font-weight:800;color:#634e5a}.today-info{min-width:0}.today-info>strong{display:block;font-size:14px;color:#352a31}.today-info>small{display:block;margin:5px 0 10px;color:#786c75;font-size:12px}.today-info>.badge{display:inline-flex;margin-right:6px}
.today-end{text-align:right}.today-end strong{display:block;color:#c03568;font-size:14px;margin:14px 0 5px}.today-end a{font-size:12px;font-weight:700;color:#c03568}.today-empty{padding:25px;margin:0}
.today-attendance{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:12px}.today-attendance span{font-size:12px;font-weight:800;color:#a3295b}.today-attendance form{margin:0}.today-attendance button{border-radius:10px;padding:8px 11px;font:750 12px var(--font-body);cursor:pointer}
.today-present{background:#e1f4e8;border:1px solid #afd6bd;color:#276944}.today-absent{background:#fff0f2;border:1px solid #edbbc7;color:#aa2c47}
.verification-content .success-message{margin-bottom:30px}
.verification-content .success-home.button{width:min(100%,390px);gap:18px}
.verification-action{margin:0}
.success-costs{display:grid;gap:4px;margin-top:12px;padding-top:10px;border-top:1px solid #eddde4;font-size:12px;color:#71656e}
.success-costs>div{display:flex;justify-content:space-between;gap:12px;line-height:1.4}
.success-costs strong{color:#302a30;font-weight:800;text-align:right;white-space:nowrap}
.success-costs .success-cost-total{font-size:14px;color:#302a30;font-weight:800}
.success-costs .success-cost-total strong{color:#bd3665}
.calendar-whatsapp-message{white-space:pre-wrap;overflow-wrap:anywhere;overflow-x:hidden}
@media(max-width:700px){
  .verification-content .success-message{margin-bottom:18px}
  .verification-content .success-home.button{width:100%;margin-top:16px}
  .verification-content .success-copy{padding-top:11px}
  .verification-content .success-photo{width:min(100%,300px)}
  .success-costs{margin-top:9px;padding-top:7px;gap:2px;font-size:10px}
  .success-costs .success-cost-total{font-size:12px}
}
@media(max-width:700px) and (max-height:735px){
  .verification-content .success-message{margin-bottom:8px}
  .verification-content .success-home.button{margin-top:8px}
  .verification-content .success-photo{width:min(100%,220px)}
  .success-costs{margin-top:5px;padding-top:4px;gap:0;font-size:9px}
  .success-costs .success-cost-total{font-size:11px}
}
@media(min-width:701px) and (max-height:750px){
  .verification-content .success-message{margin-bottom:12px}
  .verification-content .success-home.button{margin-top:12px}
}
@media(orientation:landscape) and (max-height:500px){
  .verification-content .success-message{margin-bottom:6px}
  .verification-content .success-home.button{width:min(100%,255px);margin-top:6px}
  .success-costs{margin-top:4px;padding-top:3px;gap:0;font-size:9px}
  .success-costs .success-cost-total{font-size:10px}
}
@media(max-width:740px){.page-dashboard .overview-stats{grid-template-columns:1fr}.today-head{padding:15px}.today-head h2{font-size:16px}.today-head a{font-size:11px}.today-entry{grid-template-columns:42px minmax(0,1fr);padding:15px;gap:8px}.today-info>strong{font-size:13px}.today-end{grid-column:2;display:flex;align-items:center;justify-content:space-between;text-align:left}.today-end strong{margin:4px 0}.today-attendance span{flex-basis:100%}}
.today-entry .badge.status-no_show{color:#a82c46;background:#ffe5e9;border-color:#eda6b5}
.today-entry .badge.status-completed{color:#20633f;background:#e0f3e5;border-color:#a9d5b9}
/* Open requests and customer confirmations remain distinct at a glance. */
.page-dashboard .stat-card-unread{animation:reminder-breathe 2.2s ease-in-out infinite;will-change:background-color,box-shadow}
.page-dashboard .stat-card-waiting{animation:waiting-breathe 2.2s ease-in-out infinite;will-change:background-color,box-shadow}
.page-dashboard .stat-card-expired-active{animation:expired-breathe 2.2s ease-in-out infinite;will-change:background-color,box-shadow}
.page-dashboard .stat-card-expired .stat-icon{background:#fce4e7;color:#9e1732}
.page-dashboard .stat-card-confirmations .stat-icon{background:#fff6db;color:#9b6b13}
.page-dashboard .reminder-overview.pending,.page-dashboard .reminder-overview.sent{background:#eaf8ef;border-color:#8acba3;color:#1c7045;animation:reminder-breathe 2.2s ease-in-out infinite;will-change:background-color,box-shadow}
@keyframes request-breathe{
  0%,100%{background-color:#fff;border-color:#f0dce4;box-shadow:0 3px 12px rgba(196,52,67,.04)}
  50%{background-color:#ffe1e4;border-color:#d3394b;box-shadow:0 5px 30px rgba(196,52,67,.26),0 0 0 3px rgba(211,57,75,.12)}
}
@keyframes waiting-breathe{
  0%,100%{background-color:#fff;border-color:#f0dce4;box-shadow:0 3px 12px rgba(192,137,31,.04)}
  50%{background-color:#fff0b8;border-color:#d59b20;box-shadow:0 5px 30px rgba(192,137,31,.28),0 0 0 3px rgba(218,169,49,.13)}
}
@keyframes reminder-breathe{
  0%,100%{background-color:#fff;border-color:#d3eadb;box-shadow:0 3px 12px rgba(39,133,82,.04)}
  50%{background-color:#d5f4de;border-color:#39a568;box-shadow:0 5px 30px rgba(39,133,82,.25),0 0 0 3px rgba(61,171,100,.12)}
}
@keyframes expired-breathe{
  0%,100%{background-color:#fff8f9;border-color:#e5a6ae;box-shadow:0 3px 12px rgba(123,19,39,.10)}
  50%{background-color:#efbcc6;border-color:#9d1732;box-shadow:0 5px 34px rgba(123,19,39,.40),0 0 0 4px rgba(157,23,50,.18)}
}
@keyframes unread-breathe{
  0%,100%{background-color:#fff;border-color:#f0dce4;box-shadow:0 3px 12px rgba(183,52,100,.04)}
  50%{background-color:#ffd5e6;border-color:#c6346b;box-shadow:0 5px 30px rgba(183,52,100,.28),0 0 0 3px rgba(217,81,124,.11)}
}
@media(prefers-reduced-motion:reduce){.page-dashboard .stat-card-unread{animation:none;background-color:#eaf8ef;border-color:#39a568;will-change:auto}.page-dashboard .stat-card-waiting{animation:none;background-color:#fff2cb;border-color:#d59b20;will-change:auto}.page-dashboard .stat-card-expired-active{animation:none;background-color:#f8d7df;border-color:#9d1732;will-change:auto}.page-dashboard .reminder-overview.pending,.page-dashboard .reminder-overview.sent{animation:none;background-color:#eaf8ef;border-color:#39a568;will-change:auto}}
/* Anfragen: a single expandable row keeps the visitor in this tab. */
.request-entry{min-width:0}
.request-entry>.appointment-row{gap:14px;border-radius:14px 14px 0 0;border-bottom-color:transparent;background:#fff8fa}
.request-entry .request-form{padding:18px 21px 23px;background:#fff;border:1px solid var(--line);border-top:0;border-radius:0 0 14px 14px}
.request-decisions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:9px;padding:14px 20px;border:1px solid var(--line);border-top:0;border-radius:0 0 14px 14px;background:#fff8fa}
.request-entry:has(.request-decisions) .request-form{border-top:0}
.request-entry:has(.request-editor:not([hidden])) .request-decisions{border-radius:0}
.request-editor[hidden]{display:none}
.request-entry:not(:has(.request-decisions))>.appointment-row{border-bottom-color:var(--line);border-radius:14px}
.request-entry:not(:has(.request-decisions)):has(.request-editor:not([hidden]))>.appointment-row{border-bottom-color:transparent;border-radius:14px 14px 0 0}
.request-decisions p{flex:1 1 240px;margin:0;font-size:12px}.request-decisions form{margin:0}.request-decisions .button{min-height:42px}
.request-expand{border:0;background:transparent;font-size:12px;font-weight:800;color:var(--pink-strong);white-space:nowrap;padding:8px;cursor:pointer}
.request-expand[aria-expanded="true"] span{display:inline-block;transform:rotate(180deg)}
.appointment-info .appointment-short-mark,.today-info .appointment-short-mark{display:inline-grid;place-items:center;vertical-align:middle;flex:none;width:19px;height:19px;margin:0 7px 2px 0;border-radius:5px;background:#b7356a;color:#fff;font-size:11px;font-weight:900;line-height:1}
[data-block-times][hidden]{display:none}
#catalog-delete-submit[hidden]{display:none}
@media(max-width:700px){.request-entry .request-form{padding:16px}.request-expand{margin-left:auto}.request-entry>.appointment-row .badge{margin-left:0}.request-decisions{padding:12px 16px}.request-decisions form{flex:1}.request-decisions .button{width:100%}}

/* Update 44 · Public landing page while no bookable services are configured. */
.page-booking .brand-hero.booking-hero-empty{max-width:1400px;grid-template-columns:minmax(0,1.55fr) minmax(0,.78fr) minmax(220px,.7fr);gap:24px}
.page-booking .booking-hero-empty .brand-hero-copy{min-width:0}
.page-booking .booking-hero-empty h1{font-size:clamp(37px,3.8vw,60px);white-space:normal}
.page-booking .booking-hero-empty .brand-hero-dogs{position:relative;align-self:center;width:100%;height:auto;max-height:min(55dvh,470px);aspect-ratio:1.05;display:flex;align-items:flex-end;justify-content:center;margin:0}
.page-booking .booking-hero-empty .brand-hero-dogs::before{content:"";position:absolute;inset:7% 1% 2%;border-radius:50%;background:#fff0f5}
.page-booking .booking-hero-empty .brand-hero-dogs img{position:relative;z-index:1;width:100%;height:100%;max-height:100%;object-fit:contain;object-position:center bottom}
.page-booking .brand-hero .booking-empty-contact{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;margin:30px 0 12px;min-height:58px;padding:13px 22px;border-radius:14px;background:var(--pink-strong);border:1px solid var(--pink-strong);color:#fff;font-size:16px;font-weight:800;text-decoration:none;box-shadow:0 9px 24px rgba(185,54,96,.15)}
.page-booking .brand-hero .booking-empty-contact:hover{background:#a82c54;border-color:#a82c54}
.booking-empty-phone{display:block;color:var(--muted);font-size:13px;font-weight:600}
.booking-empty-phone a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.booking-empty-card{align-self:center;min-width:0;width:100%;padding:28px 26px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:var(--shadow)}
.booking-empty-card .eyebrow{color:var(--pink-strong);letter-spacing:.1em}
.booking-empty-card h2{margin:24px 0 23px;font-size:clamp(22px,2vw,33px);line-height:1.32;font-weight:800;letter-spacing:-.04em}
.booking-empty-card h2 em{font-style:normal;color:var(--pink-strong)}
.page-booking .booking-empty-card p{font-size:14px;line-height:1.7;margin:0;color:var(--muted)}
@media(max-width:1100px) and (min-width:701px) and (orientation:landscape){
  .page-booking .brand-hero.booking-hero-empty{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);grid-template-rows:auto auto;align-content:center;gap:14px 28px;text-align:left;overflow:hidden}
  .page-booking .booking-hero-empty .brand-hero-copy{grid-area:1/1}
  .page-booking .booking-hero-empty .brand-hero-dogs{grid-area:1/2/3/3;max-height:55dvh}
  .page-booking .booking-hero-empty .booking-empty-card{grid-area:2/1;padding:15px 20px}
  .page-booking .booking-hero-empty h1{font-size:clamp(29px,3.5vw,41px);white-space:normal;margin:11px 0}
  .page-booking .booking-hero-empty .brand-hero-copy p{font-size:13px}
  .page-booking .brand-hero .booking-empty-contact{min-height:45px;margin:14px 0 7px;font-size:14px}
  .booking-empty-card h2{display:inline;margin:0 12px 0 0;font-size:21px}
  .booking-empty-card h2 br{display:none}
  .page-booking .booking-empty-card p{display:inline;font-size:12px}
}
@media(max-width:1100px) and (min-width:701px) and (orientation:portrait){
  .page-booking .brand-hero.booking-hero-empty{display:flex;flex-direction:column;justify-content:center;gap:10px;text-align:center;overflow:hidden}
  .page-booking .booking-hero-empty .brand-hero-copy{flex:0 0 auto}
  .page-booking .booking-hero-empty h1{font-size:clamp(33px,4.4vw,43px);margin:10px 0}
  .page-booking .booking-hero-empty .brand-hero-dogs{flex:0 1 auto;align-self:center;width:min(53vw,350px);max-height:29dvh}
  .page-booking .booking-hero-empty .booking-empty-card{flex:0 0 auto;max-width:550px;padding:17px 20px}
  .booking-empty-card h2{margin:6px 0;font-size:24px}
  .booking-empty-card h2 br{display:none}
  .page-booking .booking-empty-card p{font-size:12px}
}
@media(max-width:700px){
  body.page-booking:has(.booking-hero-empty){height:100dvh;min-height:0;overflow:hidden}
  .page-booking:has(.booking-hero-empty)>.container{display:flex;flex:1 1 0;min-height:0;overflow:hidden;padding:0 16px}
  .page-booking .brand-hero.booking-hero-empty{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:8px;min-height:0;height:100%;padding:clamp(7px,2dvh,18px) 0 5px;text-align:center;overflow:hidden}
  .page-booking .booking-hero-empty .brand-hero-copy{flex:0 0 auto;width:100%}
  .page-booking .booking-hero-empty h1{font-size:clamp(27px,7.4vw,38px);white-space:normal;line-height:1.13;margin:10px 0}
  .page-booking .booking-hero-empty .brand-hero-copy p{font-size:13px;line-height:1.45}
  .page-booking .brand-hero .booking-empty-contact{width:min(100%,340px);min-height:48px;margin:13px auto 5px;padding:10px 17px;font-size:15px}
  .booking-empty-phone{font-size:12px}
  .page-booking .booking-hero-empty .brand-hero-dogs{flex:1 1 auto;align-self:center;width:min(64vw,300px);height:auto;min-height:0;max-height:min(26dvh,215px);aspect-ratio:1.05}
  .page-booking .booking-hero-empty .booking-empty-card{flex:0 0 auto;width:100%;max-width:450px;padding:14px 17px;border-radius:17px}
  .booking-empty-card .eyebrow{font-size:10px}
  .booking-empty-card h2{margin:6px 0;font-size:21px;line-height:1.2}
  .booking-empty-card h2 br{display:none}
  .page-booking .booking-empty-card p{font-size:12px;line-height:1.45}
}
@media(max-width:700px) and (max-height:700px){
  .page-booking .booking-hero-empty h1{font-size:clamp(25px,7vw,32px);margin:7px 0}
  .page-booking .booking-hero-empty .brand-hero-copy p{font-size:12px}
  .page-booking .brand-hero .booking-empty-contact{min-height:43px;margin:8px auto 3px;font-size:13px}
  .page-booking .booking-hero-empty .brand-hero-dogs{max-height:20dvh}
  .page-booking .booking-hero-empty .booking-empty-card{padding:10px 14px}
  .booking-empty-card h2{font-size:18px}
}
@media(max-width:700px) and (max-height:570px){
  .page-booking .booking-hero-empty .brand-hero-dogs{display:none}
  .page-booking .brand-hero.booking-hero-empty{justify-content:center;gap:14px}
}
@media(max-width:700px) and (orientation:landscape) and (max-height:500px){
  .page-booking:has(.booking-hero-empty) .public-header{height:50px}
  .page-booking:has(.booking-hero-empty) .public-header .header-logo{height:47px;width:47px}
  .page-booking:has(.booking-hero-empty) .public-footer{min-height:38px;padding:4px 16px;flex-direction:row;gap:10px}
  .page-booking:has(.booking-hero-empty) .public-footer nav{display:flex;gap:5px 12px;width:auto}
  .page-booking:has(.booking-hero-empty) .public-footer a{font-size:9px}
  .page-booking .brand-hero.booking-hero-empty{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:16px;text-align:left;align-items:center}
  .page-booking .booking-hero-empty .brand-hero-copy p{margin:0}
  .page-booking .booking-hero-empty h1{font-size:clamp(24px,4vw,30px)}
  .page-booking .booking-hero-empty .booking-empty-card{max-width:none}
  .page-booking .booking-hero-empty .booking-empty-card h2 br{display:none}
}
/* Short appointments: the catalog editor matches the full-width service mockup. */
.catalog-design-dialog{width:min(820px,calc(100vw - 24px));max-width:820px;padding:25px 34px 0}
.catalog-design-dialog .catalog-design-form{display:grid;grid-template-columns:minmax(0,1fr);gap:15px;margin-top:16px}
.catalog-design-form .catalog-main{display:grid;gap:14px}
.catalog-design-form .catalog-main>label:not(.catalog-short-choice){display:grid;gap:7px}
.catalog-design-form .catalog-short-choice{display:flex;align-items:flex-start;gap:12px;padding:16px;background:#fff1f6;border:1px solid #eab6ca;border-radius:13px;color:var(--ink);font-size:13px}
.catalog-design-form .catalog-short-choice input{width:20px;height:20px;flex:none;margin:1px 0 0}
.catalog-design-form .catalog-short-choice strong{display:block;font-size:13px}
.catalog-design-form .catalog-short-choice small{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:500;line-height:1.55}
.catalog-design-form .catalog-sizes .field-label{color:var(--pink-strong);font-size:11px;letter-spacing:.07em;text-transform:uppercase}
.catalog-design-form .size-prices{display:block;overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fff9fb}
.catalog-design-form .size-price-heading,.catalog-design-form .size-price-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,.9fr) minmax(0,.9fr);align-items:center;gap:13px;padding:8px 13px}
.catalog-design-form .size-price-heading{background:#fff0f5;color:#956879;font-size:10px;font-weight:800;text-transform:uppercase}
.catalog-design-form .size-price-row{background:transparent;border-radius:0;border-top:1px solid var(--line)}
.catalog-design-form .size-price-row>strong{font-size:12px}
.catalog-design-form .size-price-row label{min-width:0;font-size:12px}
.catalog-design-form .size-price-row input{min-height:38px;padding:7px 9px}
.catalog-design-form .size-price-mobile-label{display:none}
.catalog-pet-switch{margin:0;padding:0;border:0;min-width:0}
.catalog-pet-switch legend{margin-bottom:8px;font-size:13px;font-weight:750;color:var(--ink)}
.catalog-pet-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:5px;border:1px solid #ecd4de;background:#fff5f8;border-radius:14px}
.catalog-pet-options label{cursor:pointer;position:relative;min-width:0}
.catalog-pet-options input{position:absolute;opacity:0;width:1px;height:1px}
.catalog-pet-options span{display:flex;align-items:center;justify-content:center;min-height:43px;border-radius:10px;color:#786b71;font-weight:750;border:1px solid transparent}
.catalog-pet-options input:checked+span{background:#b63162;color:#fff;box-shadow:0 3px 10px #b6316233}
.catalog-pet-options input:focus-visible+span{outline:3px solid #f4a3c1;outline-offset:2px}
.catalog-design-form .size-prices[hidden],.catalog-design-form [data-pet-component][hidden]{display:none}
.catalog-design-form .catalog-footer{grid-column:1;border-top:1px solid var(--line);margin-top:0}
.booking-offer-short{color:var(--pink-strong)!important;font-weight:800}
/* Short appointments use a compact K marker while retaining green/red availability colors. */
.calendar-month-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:7px}
.calendar-month-tools .calendar-month-legend{margin-bottom:0}
.calendar-month-legend .short-free-legend::before{background:#42a968}
.calendar-month-legend .short-booked-legend::before{background:#d84b5b}
.short-spots-toggle{display:inline-flex;align-items:center;gap:9px;min-height:39px;padding:6px 10px;border:1px solid #e8cbd7;border-radius:12px;background:#fff;color:var(--ink);font:inherit;font-size:12px;font-weight:750;white-space:nowrap;cursor:pointer}
.short-spots-toggle:focus-visible{outline:3px solid #b53566;outline-offset:2px}
.short-toggle-track{display:inline-flex;align-items:center;width:42px;height:23px;padding:3px;border-radius:99px;background:#26845b;transition:background .2s ease;flex:none}
.short-toggle-thumb{display:block;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transform:translateX(19px);transition:transform .2s ease}
.short-toggle-state{min-width:22px;color:#20764f}
.short-spots-toggle[aria-checked="false"] .short-toggle-track{background:#cb3d4b}
.short-spots-toggle[aria-checked="false"] .short-toggle-thumb{transform:translateX(0)}
.short-spots-toggle[aria-checked="false"] .short-toggle-state{color:#ad2b39}
@media(prefers-reduced-motion:reduce){.short-toggle-track,.short-toggle-thumb{transition:none}}
.page-dashboard .calendar-slots.month .calendar-slot-pair{min-width:0;display:flex;flex-direction:column;align-self:start}
.page-dashboard .calendar-slots.month .calendar-slot-pair>.calendar-slot{width:100%;min-width:0}
.page-dashboard .calendar-slots.month .calendar-slot.short-spot{min-width:0;min-height:23px;display:flex;align-items:center;justify-content:center;gap:2px;margin-top:3px;padding:2px 3px;border-radius:6px;font-size:9px;font-weight:800;letter-spacing:0;line-height:1.1;text-align:center;white-space:nowrap}
.calendar-slot.short-spot .short-mark{display:inline-grid;place-items:center;flex:none;width:12px;height:14px;border-radius:3px;background:currentColor;font-size:0}
.calendar-slot.short-spot .short-mark::after{content:"K";font-size:9px;font-weight:900;color:#fff}
.calendar-slot.short-spot .slot-range{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800!important}
.calendar-slot.short-spot .short-add{font-size:12px;font-weight:900;line-height:1;flex:none}
.calendar-slot.short-spot.free-short{background:#e0f6e8;border:1px solid #67bd84;color:#17643a;cursor:pointer}
.calendar-slot.short-spot.free-short:hover{background:#c9eed5;border-color:#399b62}
.calendar-slot.short-spot.occupied-short{background:#ffe0e4;border:1px solid #d84b5b;color:#87202e}
.calendar-slot.short-spot.occupied-short.status-requested,.calendar-slot.short-spot.occupied-short.status-no_show{background:#ffdce1;border:2px solid #d3344c;color:#8d1d32}
.calendar-slot.short-spot.occupied-short.status-pending_verification,.calendar-slot.short-spot.occupied-short.status-proposed{background:#fff0c9;border:2px solid #ce973b;color:#78530c}
.calendar-slot.short-spot.occupied-short.status-confirmed{background:#fbdde8;border:2px solid #c44570;color:#852b4b}
.calendar-slot.short-spot.occupied-short.status-completed{background:#dff2e4;border:2px solid #358252;color:#266540}
.calendar-slot.short-spot.elapsed-short{background:#f2ecf4;border:1px solid #ded0e2;color:#806f88}
.page-dashboard .calendar-slots.month .calendar-short-standalone{min-width:0}
.page-dashboard .calendar-slots.month .calendar-short-standalone .short-spot{width:100%}
.calendar-slot.short-spot[hidden]{display:none!important}
.quick-slot-mode{padding:9px 12px;background:#fff0f5;border:1px solid #efcbd9;border-radius:9px;color:var(--pink-strong);font-size:12px;font-weight:800}
@media(max-width:700px){.page-dashboard .calendar-slots.month .calendar-slot.short-spot{min-height:23px;font-size:9px;padding:2px;gap:2px}}
@media(max-width:650px){.catalog-design-dialog{width:calc(100vw - 16px);padding:16px 16px 0}.catalog-design-form .size-price-heading{display:none}.catalog-design-form .size-price-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 10px;padding:10px}.catalog-design-form .size-price-row>strong{grid-column:1/-1;font-size:13px}.catalog-design-form .size-price-mobile-label{display:block;font-size:11px;margin-bottom:4px}}

/* Katze als eigene Auswahl im Buchungsdialog. */
.booking-step[data-booking-step="1"] .booking-size-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.booking-step[data-booking-step="1"] .booking-size-grid .size-choice-cat{background:#fff}
.booking-step[data-booking-step="1"] .booking-size-grid .size-choice-cat.selected{background:#fff}
.booking-step[data-booking-step="1"] .size-cat-image{display:block;position:absolute;bottom:0;left:50%;transform:translateX(-50%);height:calc(100% - 64px);width:96%;object-fit:contain;object-position:center bottom;pointer-events:none}
@media(max-width:700px){.booking-step[data-booking-step="1"] .booking-size-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-step[data-booking-step="1"] .booking-size-grid .size-choice-cat{grid-column:1/-1}.booking-step[data-booking-step="1"] .size-cat-image{width:55%;max-width:190px;height:calc(100% - 48px)}}
@media(max-width:540px){.booking-step[data-booking-step="1"] .booking-size-grid .size-choice-cat{grid-column:1/-1;height:clamp(115px,18dvh,155px)}.booking-step[data-booking-step="1"] .size-cat-image{height:calc(100% - 33px);width:48%}}
/* Booking errors stay in the dialog, immediately above the phone input. */
.booking-phone-error{position:relative;display:block;margin:2px 0 4px;padding:10px 12px;border:1px solid #edabb5;border-radius:10px;background:#fff0f1;box-shadow:0 8px 18px rgba(134,32,55,.11);color:#9b2840;font-size:12px;font-weight:700;line-height:1.4}
.booking-phone-error::after{content:"";position:absolute;left:20px;bottom:-6px;width:10px;height:10px;background:#fff0f1;border-right:1px solid #edabb5;border-bottom:1px solid #edabb5;transform:rotate(45deg)}
.booking-phone-error[hidden],.booking-consent-error[hidden]{display:none!important}
.booking-phone-field input[aria-invalid="true"]{border-color:#d7465a!important;box-shadow:0 0 0 3px rgba(215,70,90,.12)!important}
.booking-consents .booking-consent-error{position:relative;margin:0 0 2px;padding:12px 14px 12px 37px;border:1px solid #e9a1b7;border-radius:12px;background:#fff1f6;box-shadow:0 8px 18px rgba(134,32,55,.10);color:#9b284f;font-size:12px;font-weight:700;line-height:1.45}
.booking-consent-error::before{content:"!";position:absolute;left:13px;top:11px;width:17px;height:17px;display:grid;place-items:center;border-radius:50%;background:#bd346c;color:#fff;font-size:11px;font-weight:800}
.booking-consent-error::after{content:"";position:absolute;left:21px;bottom:-6px;width:10px;height:10px;background:#fff1f6;border-right:1px solid #e9a1b7;border-bottom:1px solid #e9a1b7;transform:rotate(45deg)}
.booking-details .booking-consent-required.has-error{border-color:#d74675;background:#fff4f8;box-shadow:0 0 0 3px rgba(215,70,117,.10)}
.booking-submit-error{display:flex;align-items:flex-start;gap:12px;margin:0 0 16px;padding:15px 16px;border:1px solid #efb6c6;border-left:4px solid #bc3469;border-radius:13px;background:#fff2f6;color:#852943;font-size:14px;font-weight:700;line-height:1.5;box-shadow:0 8px 22px rgba(137,35,75,.07)}
.booking-submit-error[hidden]{display:none!important}
.booking-submit-error-icon{display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:50%;background:#bd346c;color:#fff;font-size:15px;font-weight:900}

/* Update 66 · Hinweise direkt vor dem Absenden der Terminanfrage. */
.booking-notice-dialog{box-sizing:border-box;width:min(760px,calc(100vw - 28px));max-width:760px;max-height:calc(100dvh - 28px);margin:auto;padding:0;border:1px solid var(--line);border-radius:21px;background:#fff;color:var(--ink);box-shadow:0 32px 90px rgba(46,22,36,.27);overflow:hidden}
.booking-notice-dialog[open]{display:flex;flex-direction:column}
.booking-notice-dialog::backdrop{background:rgba(53,41,47,.56);backdrop-filter:blur(3px)}
.booking-notice-header{display:flex;align-items:flex-start;gap:15px;flex:none;padding:14px 25px 10px;border-bottom:1px solid var(--line);background:#fffafc}
.booking-notice-brand{display:flex;align-items:center;gap:14px;flex:1;min-width:0}
.booking-notice-brand img{display:block;flex:none;width:104px;height:104px;object-fit:contain}
.booking-notice-brand .eyebrow{color:var(--pink-strong);font-size:10px;font-weight:800;letter-spacing:.08em}
.booking-notice-brand h2{font-family:var(--font-body);font-size:30px;line-height:1.16;letter-spacing:-.035em;font-weight:800;margin:6px 0 5px}
.booking-notice-brand p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}
.booking-notice-header .dialog-close{flex:none;margin-top:7px}
.booking-notice-scroll{display:grid;gap:14px;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:18px 25px 20px}
.booking-notice-card{box-sizing:border-box;display:grid;grid-template-columns:minmax(0,39%) minmax(0,61%);align-items:stretch;width:100%;min-height:210px;overflow:hidden;border:1px solid #edc7d5;border-radius:15px;background:#fff}
.booking-notice-arrival{background:#fff1f6;border-color:#f2d9e2}
.booking-notice-photo{display:flex;align-items:flex-end;justify-content:center;min-width:0;min-height:210px;overflow:hidden}
.booking-notice-photo img{display:block;max-width:100%;width:100%;height:100%;object-fit:contain;object-position:center bottom}
.booking-notice-card>div:last-child{display:flex;flex-direction:column;justify-content:center;gap:10px;min-width:0;padding:21px 22px}
.booking-notice-card h3{margin:0;color:var(--pink-strong);font-size:19px;font-weight:800;line-height:1.25;letter-spacing:-.02em}
.booking-notice-card p{margin:0;color:var(--ink);font-size:13px;line-height:1.5;hyphens:auto}
.booking-notice-fur .booking-notice-tip{padding:9px 11px;border-radius:9px;background:#fff0f5;color:#594852;font-size:12px}
.booking-notice-footer{flex:none;border-top:1px solid var(--line);background:#fff}
.booking-notice-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:53px;padding:10px 25px;color:var(--muted);font-size:13px}
.booking-notice-summary strong{flex:none;color:var(--pink-strong);font-size:20px;font-weight:800}
.booking-notice-actions{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(0,1.4fr);gap:12px;padding:12px 25px max(15px,env(safe-area-inset-bottom));border-top:1px solid var(--line)}
.booking-notice-actions .button{min-height:51px;border-radius:11px;font-size:14px;font-weight:800}
.booking-notice-actions .button span{color:inherit;font-size:19px;line-height:1}
@media(min-width:541px) and (max-width:900px){.booking-notice-dialog{width:min(720px,calc(100vw - 32px))}.booking-notice-scroll{padding:16px 21px}.booking-notice-card{grid-template-columns:minmax(0,37%) minmax(0,63%)}}
@media(max-width:540px){
  .booking-notice-dialog{width:calc(100vw - 14px);max-height:calc(100dvh - 16px);border-radius:17px}
  .booking-notice-header{gap:7px;padding:8px 13px 9px}
  .booking-notice-brand{gap:6px}.booking-notice-brand img{width:69px;height:72px}
  .booking-notice-brand .eyebrow{font-size:8px;letter-spacing:.04em}
  .booking-notice-brand h2{font-size:24px;margin:3px 0}.booking-notice-brand p{font-size:11px;line-height:1.35}
  .booking-notice-header .dialog-close{width:37px;height:37px;min-width:37px;margin-top:4px}
  .booking-notice-scroll{gap:10px;padding:12px 13px 14px}
  .booking-notice-card{grid-template-columns:minmax(0,39%) minmax(0,61%);min-height:0;border-radius:12px}
  .booking-notice-photo{height:auto;min-height:0;padding:8px 0 0 4px}.booking-notice-photo img{height:auto;max-height:100%;object-position:center bottom}
  .booking-notice-card>div:last-child{gap:8px;padding:15px 12px 15px 6px}
  .booking-notice-card h3{font-size:16px}
  .booking-notice-card p{font-size:12px;line-height:1.43}
  .booking-notice-fur .booking-notice-tip{padding:7px 8px;font-size:11px;line-height:1.35}
  .booking-notice-summary{min-height:44px;padding:8px 14px;font-size:11px}.booking-notice-summary strong{font-size:16px}
  .booking-notice-actions{grid-template-columns:minmax(0,.75fr) minmax(0,1.45fr);gap:8px;padding:9px 13px max(10px,env(safe-area-inset-bottom))}
  .booking-notice-actions .button{min-width:0;min-height:46px;padding:8px 6px;font-size:12px}
}
@media(max-width:370px){.booking-notice-brand img{width:58px;height:64px}.booking-notice-brand h2{font-size:21px}.booking-notice-brand p{font-size:10px}.booking-notice-actions .button{font-size:11px}}
.booking-notice-arrival .booking-notice-photo{background:#fff1f6}
.booking-notice-fur .booking-notice-photo{background:#fff}
@media(max-width:370px){.booking-notice-card{grid-template-columns:minmax(0,36%) minmax(0,64%)}.booking-notice-card>div:last-child{padding:12px 9px 12px 4px}.booking-notice-card h3{font-size:15px}.booking-notice-card p{font-size:11px}}
