:root{--ink:#27242d;--muted:#827b89;--pink:#d46d99;--pink-strong:#bd4b7d;--pink-soft:#fff0f6;--line:#efe7ec;--paper:#fff;--back:#fbf9fa;--shadow:0 18px 60px rgba(64,28,46,.07);font-family:Manrope,'Segoe UI',Arial,sans-serif;color:var(--ink);background:var(--back)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-size:15px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2{letter-spacing:-.035em}h1{font-family:Manrope,'Segoe UI',Arial,sans-serif;font-size:clamp(2.3rem,4vw,4rem);line-height:1.1;font-weight:500}h2{font-size:1.45rem;line-height:1.25}h3{font-size:1.05rem}p{color:#6d6673}.muted,.help-text{color:var(--muted)}.help-text{font-size:.81rem}.container{max-width:1260px;margin:0 auto;padding:36px 30px 80px;min-height:calc(100vh - 150px)}.site-header{height:84px;padding:0 max(30px,calc((100vw - 1200px)/2));background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{display:flex;align-items:center;gap:11px;font-weight:800;font-size:1.17rem;line-height:1.1;letter-spacing:-.05em}.brand small{display:block;font-size:.54rem;letter-spacing:.27em;font-weight:700;color:var(--muted);margin-top:5px}.brand-pink{color:var(--pink-strong)}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:var(--pink-soft);color:var(--pink);font-size:1.6rem}.site-header nav{display:flex;align-items:center;gap:28px;font-size:.88rem;font-weight:650}.site-header nav a:hover,.site-header nav a.current,.text-button:hover{color:var(--pink-strong)}.site-header nav form{margin:0}.nav-button{border:0;background:none;color:var(--muted);padding:0;font-size:.88rem}.footer{text-align:center;font-size:.75rem;color:#a399a4;padding:22px 20px;border-top:1px solid var(--line);background:#fff}.eyebrow,.step-label,.field-label,.sidebar-title{font-size:.71rem;letter-spacing:.16em;color:var(--pink-strong);font-weight:800;text-transform:uppercase}.hero{text-align:center;padding:45px 10px 50px;max-width:740px;margin:auto}.hero h1{margin:18px 0 18px}.hero h1 em{color:var(--pink-strong);font-weight:400}.hero p{max-width:560px;margin:auto;font-size:1.01rem}.booking-shell{display:grid;grid-template-columns:280px 1fr;background:var(--paper);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);overflow:hidden}.booking-intro{padding:42px 30px;background:#fff9fc;border-right:1px solid var(--line)}.booking-intro h2{font-family:Manrope,'Segoe UI',Arial,sans-serif;font-size:2rem;font-weight:500;line-height:1.16;margin:15px 0}.booking-intro p{font-size:.9rem}.paw{display:grid;place-items:center;background:#fff;border:1px solid #f4dbe7;border-radius:17px;width:48px;height:48px;color:var(--pink);font-size:1.6rem;margin-bottom:33px}.mini-rule{height:1px;background:#efdce5;margin:30px 0}.booking-note{border-radius:14px;background:#fff;border:1px solid #f3e1ea;color:#806a77;padding:17px;font-size:.82rem;line-height:1.6;margin-top:28px}.booking-main{padding:41px clamp(25px,4vw,52px)}.step-label{display:flex;align-items:center;gap:13px;margin:0 0 20px}.step-label:not(:first-child){margin-top:44px}.step-label span{width:27px;height:27px;border-radius:50%;background:var(--pink-soft);display:grid;place-items:center;letter-spacing:0}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.service-card{border:1px solid var(--line);border-radius:14px;padding:18px;min-height:141px;display:flex;flex-direction:column;transition:.15s;background:#fff}.service-card:hover,.service-card.selected{border-color:#df8bac;background:#fff9fc;box-shadow:0 7px 22px rgba(174,88,126,.09)}.service-card strong{font-size:.88rem;line-height:1.3;margin:10px 0 3px}.service-card span:not(.service-icon){font-size:.8rem;color:var(--muted)}.service-card small{font-size:.72rem;color:var(--pink-strong);margin-top:auto;padding-top:10px}.service-icon{color:var(--pink);font-size:1.1rem}.calendar-grid{display:grid;grid-template-columns:minmax(190px,240px) 1fr;gap:35px}.field-label{display:block;color:var(--ink);letter-spacing:0;text-transform:none;font-size:.88rem;margin-bottom:10px}.slot-list{display:flex;flex-wrap:wrap;align-content:start;gap:9px;min-height:120px}.slot{background:#fff;border:1px solid #eadde5;color:var(--ink);border-radius:9px;padding:10px 14px;font-weight:650;transition:.15s}.slot:hover,.slot.selected{border-color:var(--pink);color:var(--pink-strong);background:var(--pink-soft)}.guest-tip{background:#fff8fb;border:1px solid #f5dfe9;padding:13px 16px;border-radius:10px;font-size:.84rem;color:#74646f;margin-bottom:22px}.guest-tip a,.auth-links a,.section-heading a{color:var(--pink-strong);font-weight:700}.form{display:grid;gap:16px}.form label{font-size:.84rem;color:#524953;font-weight:650;display:grid;gap:7px}.form input:not([type=checkbox]),.form select,.form textarea,input[type=date],input[type=time],input[type=datetime-local],input[type=number]{border:1px solid #e7dfe5;border-radius:9px;background:#fff;outline:none;color:var(--ink);padding:11px 12px;width:100%;min-height:44px}.form textarea{resize:vertical}.form input:focus,.form select:focus,.form textarea:focus,input[type=date]:focus,input[type=time]:focus{border-color:var(--pink);box-shadow:0 0 0 3px #fce6f0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.button{display:inline-flex;align-items:center;justify-content:center;gap:16px;border:1px solid var(--pink-strong);border-radius:9px;padding:11px 20px;background:var(--pink-strong);color:#fff;font-weight:700;min-height:45px;transition:.15s;text-align:center}.button:hover{background:#a33e6d;transform:translateY(-1px)}.button:disabled{opacity:.45;cursor:not-allowed;transform:none}.button.secondary{background:#fff;color:var(--pink-strong);border-color:#e9b8ce}.button.secondary:hover{background:var(--pink-soft)}.booking-form>.button{justify-self:start;margin-top:6px}.narrow{max-width:475px;margin:38px auto 0}.narrow>p{margin:13px 0 24px}.card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:25px;box-shadow:0 8px 35px rgba(51,31,44,.035)}.narrow .card{padding:29px}.narrow .button{width:100%}.auth-links{text-align:center;margin:22px 0;font-size:.9rem}.notice{margin-bottom:22px;border-radius:10px;padding:13px 17px;background:#eef8f2;color:#317258;border:1px solid #ccead7}.notice.error{background:#fff3f2;color:#9b3f42;border-color:#f5d7d6}.notice.warning{background:#fffaf0;color:#855f25;border-color:#f4e8c8}.detail h2{margin-top:20px}.space-top{margin-top:18px}.badge{display:inline-flex;align-items:center;border-radius:30px;font-size:.72rem;font-weight:800;padding:5px 10px;white-space:nowrap;background:#f3eff2;color:#726a72}.status-confirmed,.status-completed{background:#e9f5ee;color:#3c815c}.status-requested{background:#fff2d9;color:#986b20}.status-proposed{background:#eaf0ff;color:#5366ac}.status-cancelled,.status-declined,.status-expired,.status-no_show{background:#f8ecee;color:#a45d65}.page-heading,.admin-top,.section-heading,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px}.page-heading{margin:25px 0 60px}.page-heading h1,.admin-top h1{margin:8px 0 8px}.page-heading p,.page-subtitle{color:var(--muted);margin:0 0 23px}.section-heading{margin:34px 0 18px}.section-heading h2{margin:0}.section-heading span,.section-heading a{font-size:.82rem}.appointments-list{display:grid;gap:10px}.appointment-row{display:flex;align-items:center;gap:18px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px 20px;min-height:88px}.appointment-row:hover{border-color:#e9cad9}.date-tile{width:49px;min-width:49px;height:55px;display:grid;align-content:center;text-align:center;border-radius:9px;background:#fff1f7;color:var(--pink-strong);line-height:1.2}.date-tile strong{font-size:1.2rem}.date-tile span{font-size:.7rem;text-transform:uppercase}.appointment-info{flex:1;min-width:0}.appointment-info h3,.appointment-info p{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appointment-info p{font-size:.81rem;margin-top:3px}.row-actions{display:flex;gap:10px}.row-actions form{margin:0}.text-button{color:var(--pink-strong);border:0;background:none;font-weight:700;padding:5px;font-size:.8rem}.muted-action{color:var(--muted)}.empty{text-align:center;padding:35px;color:var(--muted)}.dog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.dog-card{min-height:200px}.dog-avatar{width:42px;height:42px;background:var(--pink-soft);color:var(--pink);border-radius:12px;display:grid;place-items:center;margin-bottom:16px}.dog-card h3,.dog-card p{margin-bottom:3px}.dog-card small{color:var(--muted)}.narrow-card{max-width:590px}.admin-layout{display:grid;grid-template-columns:218px minmax(0,1fr);gap:34px}.admin-sidebar{align-self:start;background:#fff;border:1px solid var(--line);border-radius:15px;padding:24px 12px;position:sticky;top:20px}.sidebar-title{padding:0 14px 15px;color:#aa9aa4;font-size:.64rem}.admin-sidebar>a{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:9px;font-size:.83rem;font-weight:650;color:#645c68}.admin-sidebar>a:hover,.admin-sidebar>a.active{color:var(--pink-strong);background:var(--pink-soft)}.side-icon{font-size:1rem;width:22px;text-align:center}.sidebar-bottom{margin:24px 12px 0;padding-top:17px;border-top:1px solid var(--line);font-size:.79rem;color:var(--pink-strong);font-weight:700}.admin-top{margin:9px 0 3px}.admin-top h1{font-size:clamp(2.2rem,3vw,3.1rem)}.admin-greeting{font-size:.8rem;color:var(--muted)}.pink-dot{color:var(--pink)}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:19px;display:grid;gap:4px}.stat-icon{width:30px;height:30px;background:var(--pink-soft);border-radius:9px;display:grid;place-items:center;color:var(--pink-strong)}.stat-card strong{font-family:Manrope,'Segoe UI',Arial,sans-serif;font-size:2rem;font-weight:500;line-height:1.2;margin-top:8px}.stat-card>span:last-child{color:var(--muted);font-size:.79rem}.dashboard-tip{display:flex;align-items:center;gap:16px;margin-top:28px;background:#fff4f8;border:1px solid #f2dce6;padding:18px 22px;border-radius:12px;color:var(--pink-strong)}.dashboard-tip>div{flex:1}.dashboard-tip p{margin:0;font-size:.8rem}.toolbar{margin:15px 0 22px}.view-switch{display:flex;gap:4px;background:#f2edf0;padding:4px;border-radius:9px}.view-switch a{padding:8px 14px;border-radius:7px;font-size:.78rem;font-weight:700}.view-switch a.active{background:#fff;color:var(--pink-strong);box-shadow:0 1px 4px #ddd0d7}.toolbar input{max-width:170px}.calendar-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(110px,1fr);overflow-x:auto;min-height:300px;background:#fff;border:1px solid var(--line);border-radius:14px}.calendar-board.month{grid-auto-flow:row;grid-template-columns:repeat(7,minmax(90px,1fr));min-height:0}.calendar-day{padding:12px 8px;min-height:230px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-board.month .calendar-day{min-height:115px}.calendar-day-head{display:flex;justify-content:space-between;align-items:center;color:#776d76;padding:4px 3px 12px;font-size:.75rem}.calendar-day-head strong{text-transform:uppercase}.calendar-event{display:block;border-left:3px solid var(--pink);background:#fff0f6;color:#7c4861;padding:7px;margin-bottom:6px;border-radius:5px;font-size:.7rem;line-height:1.3}.calendar-event.status-confirmed{border-color:#64b387;background:#eff9f2;color:#467659}.calendar-event.status-proposed{border-color:#8799d1;background:#f1f3ff;color:#596a96}.calendar-event small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.82}.empty-day{color:#c9bfc7}.appointment-editor{padding:0;margin-bottom:11px}.appointment-editor summary{display:flex;justify-content:space-between;gap:10px;cursor:pointer;list-style:none;padding:17px 20px;font-size:.83rem;font-weight:700}.appointment-editor summary::-webkit-details-marker{display:none}.appointment-editor .form{padding:0 20px 22px}.service-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.service-admin-grid .card h3{margin-bottom:0}.form .check{display:flex;align-items:center;gap:8px}.form .check input{width:auto}.hours-table{display:grid;grid-template-columns:60px repeat(4,minmax(100px,1fr));align-items:center;gap:10px}.hours-table input{min-width:0}.hours-header{font-size:.74rem;font-weight:700;color:var(--muted)}.block-row,.queue-card{display:flex;justify-content:space-between;align-items:center;gap:15px}.block-row{padding:10px 12px;border-bottom:1px solid var(--line);font-size:.82rem}.queue-card{margin-top:24px}.queue-card h3,.queue-card p{margin:0}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;font-size:.84rem}td,th{text-align:left;padding:14px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-size:.75rem}.queue-card p{font-size:.82rem}.admin-content{min-width:0}
@media(max-width:1000px){.booking-shell{grid-template-columns:1fr}.booking-intro{border-right:0;border-bottom:1px solid var(--line);padding:25px}.booking-intro .paw,.mini-rule,.booking-intro>.muted{display:none}.booking-intro h2 br{display:none}.booking-note{margin-top:10px}.service-grid{grid-template-columns:repeat(2,1fr)}.admin-layout{grid-template-columns:170px minmax(0,1fr);gap:18px}.stats-grid{grid-template-columns:repeat(2,1fr)}}
.change-request{margin:15px 0;background:#fff8fb;border:1px solid #f2deea;border-radius:10px;padding:10px 15px}.change-request summary{font-size:.83rem;color:var(--pink-strong);font-weight:700;cursor:pointer}.change-request .form{margin-top:15px}.appointment-row:has(.change-request){display:block}.appointment-row:has(.change-request)>.date-tile,.appointment-row:has(.change-request)>.appointment-info,.appointment-row:has(.change-request)>.badge,.appointment-row:has(.change-request)>.row-actions{display:inline-flex;vertical-align:middle;margin-right:15px}.appointment-row:has(.change-request)>.appointment-info{width:45%}
.website-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.month-picker{background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px;min-height:275px}.month-head{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:13px}.month-head strong{font-size:.85rem;text-transform:capitalize}.month-head button{border:0;background:#fff4f8;color:var(--pink-strong);width:29px;height:29px;border-radius:7px;font-size:1.3rem;line-height:1}.month-head button:disabled{background:#f8f7f8;color:#c5bbc2;cursor:default}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}.month-grid .weekday{color:#9d929c;font-size:.64rem;font-weight:800;padding:4px 0}.month-grid button{height:31px;width:31px;max-width:100%;border:0;background:transparent;color:var(--pink-strong);font-size:.79rem;font-weight:700;border-radius:50%;margin:auto}.month-grid button:not(:disabled):hover,.month-grid button.selected{background:var(--pink-strong);color:#fff}.month-grid button:disabled{color:#cbc4ca;cursor:default}
.size-choice-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.size-choice{border:1px solid var(--line);background:#fff;border-radius:11px;padding:13px 9px;display:grid;gap:5px;text-align:center}.size-choice strong{font-size:.84rem}.size-choice small{color:var(--muted);font-size:.73rem}.size-choice:hover,.size-choice.selected{border-color:var(--pink);background:#fff6fa}.size-choice.selected strong,.size-choice.selected small{color:var(--pink-strong)}.addon-list{display:grid;gap:8px}.addon-choice{display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid var(--line);border-radius:10px;font-size:.84rem;cursor:pointer}.addon-choice:has(input:checked){background:#fff6fa;border-color:#eeb9cf}.addon-choice>span:nth-child(2){flex:1}.addon-choice small{display:block;color:var(--muted)}.addon-choice>span:last-child{font-weight:700;color:var(--pink-strong)}.selection-summary{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff3f8;border:1px solid #f0d5e2;border-radius:10px;padding:16px;margin-top:22px;font-size:.85rem}.selection-summary>strong{color:var(--pink-strong);font-size:1.1rem}.package-contents{margin:12px 0 0}.booking-details>.button{justify-self:start}.catalog-create{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.catalog-create .card{align-self:start}.catalog-form{margin-top:18px}.catalog-editor{margin:0 0 11px}.catalog-editor summary{display:flex;justify-content:space-between;cursor:pointer;gap:15px}.catalog-editor .catalog-form{border-top:1px solid var(--line);padding-top:20px}.component-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.component-list .check{font-weight:500}.size-prices{display:grid;gap:8px}.size-price-row{display:grid;grid-template-columns:1fr 125px 125px;gap:10px;align-items:end;background:#fbf8fa;border-radius:9px;padding:9px}.size-price-row>strong{font-size:.78rem}.size-price-row label{font-size:.72rem}.size-editor{display:grid;gap:12px}.size-row{display:grid;grid-template-columns:90px 1fr 180px;align-items:end;gap:14px;background:#fbf8fa;padding:12px;border-radius:10px}.size-row .muted{font-size:.75rem}
@media(max-width:950px){.catalog-create{grid-template-columns:1fr}.size-price-row{grid-template-columns:1fr 110px 110px}}
@media(max-width:700px){.size-choice-grid{grid-template-columns:repeat(2,1fr)}.size-price-row{grid-template-columns:1fr 1fr}.size-price-row>strong{grid-column:1/-1}.size-row{grid-template-columns:1fr 1fr}.size-row>strong{grid-column:1/-1}.component-list{grid-template-columns:1fr}.selection-summary{align-items:start;flex-direction:column}}
@media(max-width:700px){.site-header{height:auto;min-height:70px;padding:15px 18px;flex-wrap:wrap}.site-header nav{gap:15px;flex-wrap:wrap;font-size:.75rem}.nav-button{font-size:.75rem}.container{padding:22px 15px 60px}.hero{padding:25px 5px 30px}.booking-main{padding:26px 20px}.calendar-grid,.form-row,.dog-grid,.service-admin-grid{grid-template-columns:1fr}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-card{padding:12px;min-height:134px}.booking-intro h2{font-size:1.6rem}.admin-layout{display:block}.admin-sidebar{position:static;display:flex;overflow:auto;gap:5px;padding:8px;margin-bottom:25px}.admin-sidebar>a{white-space:nowrap;padding:8px 10px}.sidebar-title,.sidebar-bottom,.side-icon{display:none}.admin-greeting{display:none}.stats-grid{gap:8px}.stat-card{padding:13px}.appointment-row{gap:8px;padding:10px;flex-wrap:wrap}.appointment-info{flex-basis:calc(100% - 65px)}.appointment-row>.badge{margin-left:58px}.row-actions{margin-left:auto}.hours-table{grid-template-columns:37px repeat(4,minmax(65px,1fr));gap:4px}.hours-table input{padding:4px!important;font-size:.65rem;min-height:36px}.hours-header{font-size:.58rem}.calendar-board.month{grid-template-columns:repeat(7,minmax(85px,1fr))}.page-heading{align-items:start;flex-direction:column;margin-bottom:35px}.toolbar{flex-wrap:wrap}.queue-card,.block-row{align-items:start;flex-direction:column}}

/* Compact catalog actions and focused editing dialogs. */
.catalog-toolbar{display:flex;flex-wrap:wrap;gap:11px;margin:22px 0 28px}
.catalog-entry{display:flex;align-items:flex-start;gap:10px;margin:0 0 10px}
.catalog-entry>.catalog-editor{flex:1;min-width:0;margin:0}
.catalog-entry summary{align-items:center}
.catalog-delete{margin:0}
.catalog-delete button,.dialog-close{display:grid;place-items:center;width:43px;height:43px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--muted);font-size:1.6rem;line-height:1}
.catalog-delete button:hover,.dialog-close:hover{color:#b73767;border-color:#eeb5cb;background:#fff3f8}
.catalog-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px 25px}
.catalog-main{display:grid;align-content:start;gap:13px;min-width:0}
.catalog-sizes{min-width:0}
.catalog-sizes .field-label{margin-bottom:9px}
.catalog-form .catalog-footer{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:14px}
.catalog-form .catalog-footer .button{width:auto;min-width:155px}
.catalog-dialog{width:min(900px,calc(100vw - 30px));max-width:900px;max-height:min(92vh,930px);overflow:auto;border:1px solid #efdce5;border-radius:20px;box-shadow:0 30px 95px rgba(46,22,36,.24);padding:24px 28px 0;color:var(--ink)}
.catalog-dialog::backdrop{background:rgba(35,27,35,.54);backdrop-filter:blur(3px)}
.catalog-dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}
.catalog-dialog-head h2{margin:4px 0 0;font-family:Manrope,'Segoe UI',Arial,sans-serif;font-size:1.8rem;font-weight:500}
.catalog-dialog>.muted{font-size:.83rem;margin:7px 0 4px}
.catalog-dialog .catalog-form{margin-top:14px}
.catalog-dialog .component-list{max-height:156px;overflow:auto;border:1px solid var(--line);border-radius:9px;padding:8px}
.catalog-dialog .catalog-footer{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--line);padding:15px 0;margin-top:4px;z-index:1}
@media(max-width:780px){.catalog-form{grid-template-columns:1fr}.catalog-form .catalog-footer{grid-column:1}.catalog-dialog{padding:20px 18px 0}.catalog-dialog .size-price-row{grid-template-columns:minmax(0,1fr) 90px 108px}}
@media(max-width:430px){.catalog-dialog .size-price-row{grid-template-columns:1fr 1fr}.catalog-dialog .size-price-row>strong{grid-column:1/-1}.catalog-entry summary{flex-wrap:wrap}.catalog-form .catalog-footer{flex-wrap:wrap}}

/* Sort catalog entries; the same sort_order drives the public booking cards. */
.catalog-sort-help{margin:-7px 0 15px}
.catalog-list{display:grid;gap:10px}
.catalog-list .catalog-entry{margin:0;align-items:stretch}
.catalog-drag{flex:0 0 42px;min-height:42px;border:1px solid var(--line);background:#fff;color:#aa778e;border-radius:11px;font-size:1.45rem;line-height:1;cursor:grab;touch-action:none}
.catalog-drag:hover,.catalog-drag:focus-visible{background:var(--pink-soft);border-color:#e8a6c2;color:var(--pink-strong)}
.catalog-drag:active{cursor:grabbing}
.catalog-entry.is-dragging{opacity:.48}
.catalog-entry.drop-before{box-shadow:0 -4px 0 var(--pink-strong)}
.catalog-entry.drop-after{box-shadow:0 4px 0 var(--pink-strong)}
.catalog-sort-status{min-height:1.5em;margin:10px 0 0;font-size:.8rem;color:var(--pink-strong)}
@media(max-width:700px){.catalog-drag{flex-basis:34px}.catalog-delete button{width:37px}.catalog-entry{gap:6px}}

/* Ninety-minute calendar and quick actions. */
.calendar-board.calendar-slots{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;border:0;background:none;overflow:visible}
.calendar-slots.day,.calendar-slots.list{grid-template-columns:1fr}
.calendar-slots .calendar-day{min-width:0;min-height:0;background:#fff;border:1px solid var(--line);border-radius:13px;padding:11px}
.calendar-slots .calendar-day-head{display:block;margin-bottom:9px;padding:0 3px 8px;border-bottom:1px solid var(--line)}
.calendar-slots .calendar-day-head a:hover{color:var(--pink-strong)}
.calendar-day-slots{display:grid;gap:7px}
.calendar-slot{width:100%;min-width:0;min-height:68px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 10px;text-align:left;background:#faf8fa;border:1px solid #eee7ec;border-radius:10px;color:var(--ink);font-size:.77rem;line-height:1.3}
.calendar-slot .slot-range{font-size:.7rem;font-weight:800;color:#8a7482}
.calendar-slot strong,.calendar-slot small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.calendar-slot small{color:var(--muted)}
.calendar-slot.free{background:#f4fbf6;border:1px dashed #b8dac4;color:#287c4a;cursor:pointer}
.calendar-slot.free strong{color:#287c4a}
.calendar-slot.free:hover{background:#e7f8ec;border-color:#62b27f;transform:translateY(-1px)}
.calendar-slot.occupied{background:#fff3f8;border-color:#f0c8d9;cursor:pointer}
.calendar-slot.occupied:hover{border-color:var(--pink-strong);box-shadow:0 4px 16px rgba(185,76,124,.1)}
.calendar-slot.unavailable,.calendar-slot.elapsed{background:#f3f2f4;border-color:#ece9ed;color:#aaa5ac}
.calendar-slot.unavailable small,.calendar-slot.elapsed small{color:#aaa5ac}
.calendar-slots.month .calendar-slot{min-height:54px;padding:6px;font-size:.7rem}
.calendar-slots.month .calendar-day{padding:7px}
.appointment-dialog{max-width:650px}
.appointment-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:23px 0}
.appointment-facts>div{background:#fbf8fa;border-radius:9px;padding:10px 12px;min-width:0}
.appointment-facts dt{font-size:.7rem;color:var(--muted)}
.appointment-facts dd{margin:3px 0 0;font-weight:650;overflow-wrap:anywhere}
.appointment-dialog-actions,.dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin:18px 0 24px}
.quick-dialog{max-width:700px}
.quick-dialog .form{margin:20px 0 22px}
.quick-price-box{display:flex;flex-direction:column;gap:2px;padding:14px 18px;border:1px solid #eeb5ce;border-radius:13px;background:#fff0f6;color:var(--pink-strong)}
.quick-price-box span{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.quick-price-box strong{font-size:clamp(1.65rem,4vw,2.3rem);font-weight:850;line-height:1.2;letter-spacing:-.035em}
.quick-price-box small{font-size:.81rem;font-weight:650;color:#8d5270}
.quick-slot-label{font-weight:700;color:var(--pink-strong);margin:12px 0 0}
.quick-confirm-dialog{max-width:560px}
.quick-confirm-dialog p{margin:18px 0}
.reminder-overview{display:flex;align-items:center;gap:16px;padding:20px 22px;margin:23px 0 4px;border-radius:14px;border:1px solid var(--line);font-size:.88rem}
.reminder-overview.pending{background:#fff0f1;border-color:#f5cbd1;color:#a12646}
.reminder-overview.sent{background:#eaf9ee;border-color:#b8e6c4;color:#217b45}
.reminder-overview.none{background:#f9f8fa;color:#736d76}
.reminder-overview-icon{font-size:1.6rem}
.reminder-overview span:nth-child(2){flex:1}
.reminder-overview strong,.reminder-overview small{display:block}
.reminder-overview small{font-size:.76rem;margin-top:2px}
.reminder-overview>span:last-child{font-size:.76rem;font-weight:800}
.reminder-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:20px 0}
.reminder-toolbar label{display:flex;align-items:center;gap:12px;font-size:.85rem;font-weight:700}
.reminder-count{font-size:.83rem;color:var(--muted)}
.reminder-list{display:grid;gap:10px;margin:18px 0}
.reminder-row{display:flex;align-items:center;gap:14px;border-radius:13px;border:1px solid var(--line);padding:14px;background:#fff}
.reminder-row.pending{background:#fff8f8;border-color:#f2d5d8}
.reminder-row.sent{background:#effaf2;border-color:#c7e7ce}
.reminder-time{display:grid;place-items:center;min-width:65px;font-size:1.1rem;font-weight:800;color:var(--pink-strong)}
.reminder-time small{font-size:.64rem;line-height:1}
.reminder-info{flex:1;min-width:0}
.reminder-info strong,.reminder-info span,.reminder-info small{display:block}
.reminder-info span{font-size:.82rem;color:var(--muted)}
.reminder-state{font-size:.73rem;color:#ba4563}
.reminder-row.sent .reminder-state{color:#208148}
.reminder-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.reminder-actions form{margin:0}
.reminder-actions .button{padding:9px 13px;font-size:.78rem}
.reminder-bulk{margin:8px 0 22px}
.bulk-reminder-card{display:flex;justify-content:space-between;gap:15px;background:var(--pink-soft);padding:16px;border-radius:11px}
@media(max-width:1050px){.calendar-slots.week,.calendar-slots.month{grid-template-columns:repeat(7,minmax(115px,1fr));overflow-x:auto}.calendar-slots .calendar-slot{font-size:.73rem}}
@media(max-width:700px){.appointment-facts{grid-template-columns:1fr}.reminder-row{align-items:flex-start;flex-wrap:wrap}.reminder-actions{width:100%;justify-content:flex-start}.reminder-overview>span:last-child{display:none}}
.calendar-board.calendar-slots{grid-auto-flow:row;grid-auto-columns:auto;min-height:0}
.calendar-board.calendar-slots .calendar-day{min-height:0}

/* Customer directory and complete appointment history. */
.customer-search{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin:20px 0}.customer-search label{width:100%;font-size:.81rem;font-weight:750}.customer-search input{flex:1;min-width:205px;max-width:480px;border:1px solid var(--line);border-radius:9px;padding:11px 13px;background:#fff}.customer-search button{margin:0}.customer-table td{vertical-align:middle}.customer-table .button{white-space:nowrap;padding:8px 11px;font-size:.77rem}.customer-number{color:var(--pink-strong)}.customer-file{margin-top:28px;padding:24px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.customer-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:17px 0 24px}.customer-facts>div{padding:13px;border-radius:10px;background:#fff6fa;min-width:0}.customer-facts span,.customer-facts strong{display:block;overflow-wrap:anywhere}.customer-facts span{font-size:.71rem;color:var(--muted)}.customer-facts strong{font-size:.86rem;margin-top:4px}.customer-appointment{border:1px solid var(--line);border-radius:10px;margin:8px 0;background:#fff}.customer-appointment summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 15px;cursor:pointer}.customer-appointment summary small{display:block;color:var(--muted)}.customer-appointment-body{padding:0 15px 16px;font-size:.85rem}.customer-appointment-body p{margin:5px 0}.customer-timeline{margin:9px 0 0;padding-left:22px}.customer-timeline li{margin:5px 0}.customer-timeline time{color:var(--muted)}@media(max-width:850px){.customer-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){.customer-facts{grid-template-columns:1fr}.customer-file{padding:15px}.customer-appointment summary{align-items:flex-start;flex-direction:column}.customer-table{min-width:690px}}

.customer-row-action{white-space:nowrap}.customer-row-action .button{vertical-align:middle}.customer-delete-x{width:39px;height:39px;border:1px solid #efc8d7;border-radius:9px;background:#fff;color:#ad3e69;font-size:1.3rem;line-height:1;margin-left:7px;vertical-align:middle}.customer-delete-x:hover{background:#fff0f6;border-color:#ba4b78}.customer-contact{overflow-wrap:anywhere}.customer-file-dialog{width:min(840px,calc(100vw - 28px));max-width:840px;padding:0;overflow:hidden;max-height:min(90dvh,900px)}.customer-file-dialog[open]{display:flex;flex-direction:column}.customer-file-head{flex:none;position:relative;z-index:2;padding:23px 26px 18px;border-bottom:1px solid var(--line);background:#fff}.customer-file-head h2{overflow-wrap:anywhere}.customer-file-scroll{overflow-y:auto;overscroll-behavior:contain;padding:0 26px 25px}.customer-file-scroll .section-heading{margin:20px 0 12px}.customer-file-scroll .customer-facts{margin:18px 0 24px}.customer-file-dialog .customer-appointment summary>span:first-child{min-width:0;overflow-wrap:anywhere}.customer-file-dialog .customer-appointment summary small{white-space:normal}.customer-delete-dialog{padding-bottom:10px}.customer-delete-dialog p{margin:15px 0}.customer-delete-dialog .dialog-actions{margin-bottom:16px}
@media(max-width:900px){.customer-table,.customer-table tbody,.customer-table tr,.customer-table td{display:block}.customer-table{min-width:0;width:100%}.customer-table thead{display:none}.customer-table tbody{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:10px}.customer-table tr{border:1px solid var(--line);border-radius:12px;padding:9px 13px;background:#fff;min-width:0}.customer-table td{display:grid;grid-template-columns:95px minmax(0,1fr);gap:8px;padding:6px 0;border:0;overflow-wrap:anywhere}.customer-table td::before{content:attr(data-label);font-size:.72rem;font-weight:750;color:var(--muted)}.customer-table .customer-row-action{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:5px;padding-top:10px}.customer-table .customer-row-action::before{display:none}.customer-row-action .button{flex:1}.customer-delete-x{flex:none;margin-left:8px}.customer-contact small{display:inline-block;overflow-wrap:anywhere}}
@media(max-width:670px){.customer-table tbody{grid-template-columns:1fr}.customer-search input{max-width:none}.customer-search button{flex:none}.customer-file-dialog{width:100vw;max-width:none;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}.customer-file-head{padding:16px 18px 13px}.customer-file-head h2{font-size:1.55rem}.customer-file-scroll{padding:0 16px calc(20px + env(safe-area-inset-bottom))}.customer-file-scroll .customer-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.customer-file-scroll .customer-facts>div{padding:10px}.customer-file-scroll .customer-appointment summary{flex-direction:row;align-items:center}.customer-file-dialog .customer-appointment summary .badge{white-space:normal;text-align:center}.customer-delete-dialog{width:min(100vw - 18px,480px)}}
@media(max-width:390px){.customer-file-scroll .customer-facts{grid-template-columns:1fr}.customer-file-scroll .customer-appointment summary{flex-direction:column;align-items:flex-start}}

/* Calendar navigation and a compact seven-column month grid. */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.calendar-jump{display:flex;align-items:center;gap:8px;margin-left:auto}
.calendar-jump form{margin:0}
.calendar-jump input[type=date]{min-width:148px;max-width:170px}
.week-picker{position:relative;z-index:5}
.week-picker summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:8px 12px;background:#fff;border:1px solid var(--line);border-radius:9px;font-size:.79rem;font-weight:800;white-space:nowrap;cursor:pointer}
.week-picker summary::-webkit-details-marker{display:none}
.week-picker.is-current summary{background:#d8f2df;border-color:#aeddbb;color:#216c3e}
.week-picker[open] summary{border-color:#db98b5;color:var(--pink-strong)}
.week-picker-chevron{font-size:1.1rem;line-height:1}
.week-picker-panel{position:absolute;right:0;top:calc(100% + 6px);width:min(376px,calc(100vw - 30px));padding:15px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:13px}
.week-picker-title{font-size:.81rem;font-weight:800;margin-bottom:10px}
.week-picker-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;max-height:240px;overflow-y:auto}
.week-choice{display:grid;place-items:center;min-height:32px;border-radius:6px;font-size:.65rem;font-weight:750;background:#fff1f7;color:#9f426b}
.week-choice.past,.month-choice.past{background:#f0eff0;color:#aaa5a9}
.week-choice.current,.month-choice.current{background:#d8f2df;color:#216c3e}
.week-choice.selected,.month-choice.selected{outline:2px solid currentColor;outline-offset:-2px;font-weight:850}
.week-choice:hover,.month-choice:hover{filter:brightness(.95)}
.calendar-month-nav{display:flex;align-items:center;gap:14px;margin:0 0 13px}
.month-year{display:flex;align-items:center;gap:8px;white-space:nowrap}
.month-year strong{font-size:.9rem}
.month-year a{display:grid;place-items:center;width:29px;height:29px;border:1px solid var(--line);background:#fff;border-radius:7px;color:var(--pink-strong);font-size:1.25rem;line-height:1}
.calendar-month-tabs{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:5px;flex:1}
.month-choice{display:grid;place-items:center;min-width:0;min-height:34px;border-radius:7px;background:#fff0f6;color:#a6426e;font-size:.72rem;font-weight:750}
.calendar-month-legend{display:flex;align-items:center;flex-wrap:wrap;gap:7px 13px;margin:0 0 12px;font-size:.7rem;color:var(--muted)}
.calendar-month-legend span{display:flex;align-items:center;gap:5px;white-space:nowrap}
.calendar-month-legend span::before{content:"";width:9px;height:9px;border-radius:3px;background:#e8e6e8}
.calendar-month-legend .free::before{background:#a9dfb8}
.calendar-month-legend .occupied::before{background:#eba8c4}
.calendar-month-legend small{font-size:.7rem}
.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:0 0 5px;text-align:center;font-size:.67rem;font-weight:800;color:#8b808a}
.calendar-board.calendar-slots.month{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;overflow:visible;align-items:stretch}
.calendar-slots.month .calendar-month-blank{min-width:0}
.calendar-board.calendar-slots.month .calendar-day{padding:5px;min-width:0;border-radius:9px;min-height:92px}
.calendar-slots.month .calendar-day.is-today{border-color:#91cf9f;background:#f7fcf8}
.calendar-slots.month .calendar-day-head{padding:0 2px 4px;margin-bottom:5px;font-size:.7rem}
.calendar-slots.month .calendar-day-head a{display:flex;justify-content:space-between;gap:2px;align-items:center}
.calendar-slots.month .calendar-day.is-today .calendar-day-head a{color:#237645}
.calendar-slots.month .calendar-day-slots{grid-template-columns:repeat(2,minmax(0,1fr));gap:3px}
.calendar-slots.month .calendar-slot{min-height:24px;padding:2px;display:grid;place-items:center;border-radius:5px;font-size:.63rem;line-height:1;text-align:center}
.calendar-slots.month .calendar-slot .slot-range{font-size:inherit;color:inherit;font-weight:800;white-space:nowrap}
.calendar-slots.month .calendar-slot.free{border-style:solid}
.calendar-slots.month .calendar-slot.unavailable,.calendar-slots.month .calendar-slot.elapsed{color:#a5a0a7}
.calendar-slots.month .empty-day{font-size:.68rem}
@media(max-width:1080px){.calendar-month-nav{display:block}.month-year{justify-content:center;margin-bottom:8px}.calendar-month-tabs{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:1050px){.calendar-board.calendar-slots.month{grid-template-columns:repeat(7,minmax(0,1fr));overflow:visible}}
@media(max-width:700px){.calendar-jump{margin-left:0}.toolbar{gap:8px}.calendar-jump input[type=date]{min-width:0;width:148px}.calendar-month-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.calendar-month-legend small{display:none}.calendar-board.calendar-slots.month{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.calendar-weekdays{gap:3px}.calendar-board.calendar-slots.month .calendar-day{padding:2px;border-radius:5px;min-height:76px}.calendar-slots.month .calendar-day-head{font-size:.63rem;padding:0 1px 3px;margin-bottom:3px}.calendar-slots.month .calendar-day-head strong{display:none}.calendar-slots.month .calendar-day-head a{justify-content:center}.calendar-slots.month .calendar-day-slots{grid-template-columns:1fr;gap:2px}.calendar-slots.month .calendar-slot{min-height:17px;padding:1px;font-size:.58rem;border-radius:3px}.calendar-slots.month .empty-day{font-size:0}.calendar-slots.month .empty-day::after{content:"–";font-size:.65rem}}
@media(max-width:390px){.calendar-jump input[type=date]{width:140px}.calendar-slots.month .calendar-slot{font-size:.52rem}}

/* Clear status colors in every calendar view. */
.calendar-slot.free{background:#e0f6e8;border-color:#67bd84;color:#17643a}
.calendar-slot.free strong,.calendar-slot.free .slot-range{color:#17643a}
.calendar-slot.occupied.status-requested{background:#ffdee1;border:2px solid #d84b5b;color:#87202e}
.calendar-slot.occupied.status-confirmed{background:#fbe1ec;border:2px solid var(--pink-strong);color:#722846}
.calendar-slot.occupied.status-proposed{background:#fff0c9;border:2px solid #cf9231;color:#794d10}
.calendar-slot.occupied.status-requested .slot-range,.calendar-slot.occupied.status-requested .slot-status{color:#a52836}
.calendar-slot.occupied.status-confirmed .slot-range,.calendar-slot.occupied.status-confirmed .slot-status{color:#842d54}
.calendar-slot.occupied.status-proposed .slot-range,.calendar-slot.occupied.status-proposed .slot-status{color:#865611}
.calendar-slot.occupied .slot-status{font-size:.68rem;font-weight:850;text-transform:uppercase;letter-spacing:.03em}
.calendar-month-legend .requested::before{background:#d84b5b}
.calendar-month-legend .confirmed::before{background:var(--pink-strong)}
.calendar-month-legend .proposed::before{background:#cf9231}
.appointment-decision-note{margin:6px 0 0}
.appointment-dialog-actions form{margin:0}
.button.accept-button{background:#197947;border-color:#197947}
.button.accept-button:hover{background:#106039}
.button.decline-button{background:#fff;border-color:#d84b5b;color:#ac2434}
.button.decline-button:hover{background:#ffedf0}
.stat-card{transition:background .15s,border-color .15s,transform .15s;cursor:pointer}
.stat-card:hover,.stat-card:focus-visible{background:#fff5f9;border-color:#df9fba;transform:translateY(-2px);outline:none}
.stat-card:focus-visible{box-shadow:0 0 0 3px #f5c8dc}
.calendar-whatsapp-pending{width:100%;margin:8px 0 15px;padding:11px 15px;display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #e7c176;border-radius:10px;background:#fff6da;color:#714810;font-size:.8rem;font-weight:800;text-align:left}
.calendar-whatsapp-pending:hover{background:#ffedbf}
.calendar-whatsapp-pending span{white-space:nowrap;color:#aa4a73}
.calendar-whatsapp-dialog{max-width:600px;padding-bottom:18px}
.calendar-whatsapp-dialog>.help-text{margin:13px 0 17px}
.calendar-whatsapp-select-label{display:grid;gap:5px;margin:0 0 16px;font-size:.78rem;font-weight:700;color:#6e5260}
.calendar-whatsapp-select-label select{width:100%;min-height:40px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px}
.calendar-whatsapp-recipient{display:grid;gap:3px;margin-bottom:11px}
.calendar-whatsapp-recipient strong{color:var(--pink-strong)}
.calendar-whatsapp-recipient span{font-size:.8rem;color:var(--muted)}
.calendar-whatsapp-message{max-height:35vh;overflow:auto;padding:16px;border:1px solid #f1e0e8;border-radius:11px;background:#fff9fc;font-size:.83rem;line-height:1.55}
.calendar-whatsapp-item .dialog-actions{margin-bottom:0}
.calendar-whatsapp-item .dialog-actions form{margin:0}
@media(max-width:700px){.calendar-whatsapp-item .dialog-actions{justify-content:stretch}.calendar-whatsapp-item .dialog-actions .button{width:100%}.calendar-whatsapp-item .dialog-actions form{width:100%}}

/* Compact mobile friendly administration cards and edit dialogs. */
.catalog-card,.size-overview-card,.availability-card,.availability-rules-card{font:inherit;text-align:left;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:12px;cursor:pointer}
.catalog-card{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 19px;box-shadow:var(--shadow)}
.catalog-card>span:first-child{display:grid;min-width:0;gap:3px}
.catalog-card strong{font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.catalog-card small,.size-overview-card small,.availability-card small,.availability-rules-card small{display:block;color:var(--muted);font-size:.76rem}
.catalog-edit-label,.size-overview-edit,.availability-edit{color:var(--pink-strong);font-weight:750;font-size:.78rem;white-space:nowrap}
.catalog-card:hover,.catalog-card:focus-visible,.size-overview-card:hover,.availability-card:hover,.availability-rules-card:hover{border-color:#e49fbd;background:#fff8fb}
.catalog-delete-button{display:grid;place-items:center;flex:0 0 43px;height:43px;align-self:center;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--muted);font-size:1.6rem;line-height:1;cursor:pointer}
.catalog-delete-button:hover{color:#b73767;border-color:#eeb5cb;background:#fff3f8}
.catalog-dialog.catalog-edit-dialog[open],.catalog-dialog:is(#new-service-dialog,#new-package-dialog)[open]{display:flex;flex-direction:column;overflow:hidden;max-height:min(92dvh,930px)}
.catalog-dialog.catalog-edit-dialog .catalog-form,.catalog-dialog:is(#new-service-dialog,#new-package-dialog) .catalog-form{overflow-y:auto;overscroll-behavior:contain;min-height:0;align-content:start;padding-right:4px}
.catalog-dialog.catalog-edit-dialog .catalog-footer,.catalog-dialog:is(#new-service-dialog,#new-package-dialog) .catalog-footer{box-shadow:0 -5px 12px rgba(255,255,255,.92)}
.catalog-delete-dialog,.size-edit-dialog,.availability-dialog{width:min(560px,calc(100vw - 22px));max-width:560px;padding-bottom:22px}
.catalog-delete-dialog p{margin:14px 0}
.size-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.size-overview-card{display:flex;align-items:center;gap:14px;min-height:88px;padding:16px}
.size-overview-card>span:nth-child(2){flex:1;min-width:0}
.size-overview-card strong{display:block;line-height:1.3}
.size-overview-number{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:10px;background:var(--pink-soft);color:var(--pink-strong);font-weight:800}
.size-edit-dialog .form,.availability-dialog .form{margin:20px 0 0}
.size-dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:6px}
.availability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.availability-card{display:grid;align-content:start;gap:3px;padding:16px;min-height:125px}
.availability-name{font-weight:800;color:var(--pink-strong);font-size:.8rem}
.availability-card strong{font-size:1rem}
.availability-edit{margin-top:7px}
.availability-rules-card{width:100%;display:flex;justify-content:space-between;align-items:center;gap:15px;padding:17px 19px;margin-top:17px}
.availability-rules-card>span:first-child{display:grid;gap:3px}
.availability-rules-card>span:last-child{color:var(--pink-strong);font-weight:750;white-space:nowrap;font-size:.78rem}
.availability-closed{padding:13px 15px;border-radius:9px;background:var(--pink-soft)}
.availability-time-fields{display:grid;gap:15px}
.availability-time-fields.is-closed{opacity:.4}
.availability-block-heading{align-items:center;gap:12px;margin-top:35px}
.availability-block-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 16px;margin-bottom:9px;border:1px solid var(--line);border-radius:11px;background:#fff}
.availability-block-row>span{min-width:0}
.availability-block-row strong,.availability-block-row small{display:block;overflow-wrap:anywhere}
.availability-block-row small{color:var(--muted)}
.availability-block-row>div{display:flex;align-items:center;gap:8px}
@media(max-width:850px){.availability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.size-overview,.availability-grid{grid-template-columns:1fr}.catalog-card{padding:13px}.catalog-edit-label{font-size:0}.catalog-edit-label::after{content:'↗';font-size:1rem}.catalog-delete-button{flex-basis:38px;height:38px}.size-overview-card{min-height:72px}.catalog-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:16px 16px 0;border-radius:15px}.catalog-dialog-head h2{font-size:1.5rem}.size-edit-dialog,.availability-dialog,.catalog-delete-dialog{padding-bottom:16px}.size-dialog-actions .button{flex:1}.availability-block-row{align-items:stretch;flex-direction:column}.availability-block-row>div{justify-content:flex-end}.availability-block-heading{align-items:flex-start;flex-direction:column}.availability-rules-card{align-items:flex-start;flex-direction:column}}

/* Public booking wizard. */
.booking-hero{padding-bottom:22px}
.booking-start{margin-top:25px;padding:14px 28px;min-height:52px;font-size:1rem;box-shadow:0 12px 30px rgba(189,75,125,.2)}
.booking-invitation{display:flex;align-items:center;gap:18px;max-width:760px;margin:8px auto 70px;padding:20px 24px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}
.booking-invitation .paw{width:42px;height:42px;flex:0 0 42px;margin:0}
.booking-invitation>div{flex:1}
.booking-invitation strong{font-family:Manrope,'Segoe UI',Arial,sans-serif;font-size:1.35rem;font-weight:500}
.booking-invitation p{margin:2px 0 0;font-size:.83rem}
.booking-invitation-location{white-space:nowrap;color:var(--pink-strong);font-size:.8rem;font-weight:700}
.booking-dialog{width:min(950px,calc(100vw - 28px));max-width:950px;height:min(88dvh,850px);max-height:calc(100dvh - 20px);padding:0;border:1px solid #efdce5;border-radius:22px;background:#fff;color:var(--ink);box-shadow:0 30px 100px rgba(46,22,36,.27);overflow:hidden}
.booking-dialog[open]{display:flex;flex-direction:column}
.booking-dialog::backdrop{background:rgba(39,27,38,.64);backdrop-filter:blur(4px)}
.booking-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:21px 29px 16px}
.booking-dialog-head h2{font-family:Manrope,'Segoe UI',Arial,sans-serif;font-weight:500;font-size:1.8rem;margin:4px 0 0}
.booking-progress{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:0 29px 14px;border-bottom:1px solid var(--line)}
.booking-progress span{padding:8px 3px;border-radius:7px;background:#f6f3f5;text-align:center;color:#8d838b;font-size:.73rem;font-weight:750}
.booking-progress span.current{background:var(--pink-strong);color:#fff}
.booking-progress span.done{background:var(--pink-soft);color:var(--pink-strong)}
#booking-form{display:flex;flex-direction:column;min-height:0;flex:1}
.booking-step-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:26px 30px 32px}
.booking-step[hidden],.booking-offer[hidden],.addon-choice[hidden],.booking-wizard-footer [hidden],#booking-no-offers[hidden],#booking-no-addons[hidden]{display:none!important}
.booking-step-heading{margin-bottom:23px}
.booking-step-heading>span{color:var(--pink-strong);font-size:.7rem;letter-spacing:.15em;font-weight:850}
.booking-step-heading h3{font-family:Manrope,'Segoe UI',Arial,sans-serif;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:500;letter-spacing:-.03em;margin:5px 0 6px}
.booking-step-heading p{font-size:.91rem;margin:0}
.booking-size-grid{max-width:760px}
.booking-size-grid .size-choice{cursor:pointer;min-height:100px;align-content:center}
.booking-size-grid .size-choice strong{font-size:1rem}
.booking-size-grid .size-choice.selected,.booking-offer.selected{border-color:var(--pink-strong);background:#fff4f9;box-shadow:0 0 0 2px #f8dbe9}
.booking-service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.booking-offer{width:100%;text-align:left;cursor:pointer;min-height:178px;color:var(--ink);font:inherit}
.booking-offer b.booking-offer-price{display:block;color:var(--pink-strong);font-size:1.14rem;font-weight:850;margin-top:12px}
.booking-offer .booking-package-items{margin-top:5px;padding:0;color:#806b78}
.booking-step .addon-list{max-width:760px}
.booking-step .selection-summary{max-width:760px}
.booking-wizard-footer{display:flex;align-items:center;gap:12px;padding:15px 29px;border-top:1px solid var(--line);background:#fff;box-shadow:0 -8px 20px rgba(75,38,58,.04)}
.booking-wizard-price{margin-left:auto;color:var(--pink-strong);font-size:1.06rem;font-weight:850;white-space:nowrap}
.booking-wizard-footer>.button{min-width:124px}
.booking-step .calendar-grid{grid-template-columns:minmax(205px,260px) minmax(0,1fr)}
.booking-step .month-picker{max-width:300px}
.booking-step .booking-details{max-width:760px}
@media(max-width:750px){.booking-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-step .calendar-grid{grid-template-columns:1fr;gap:20px}.booking-step .month-picker{max-width:330px}.booking-invitation{margin-bottom:35px}}
@media(max-width:540px){.booking-dialog{width:calc(100vw - 12px);height:calc(100dvh - 12px);max-height:calc(100dvh - 12px);border-radius:16px}.booking-dialog-head{padding:15px 16px 12px}.booking-dialog-head h2{font-size:1.45rem}.booking-progress{padding:0 13px 10px;gap:3px}.booking-progress span{font-size:.62rem;padding:7px 1px}.booking-step-scroll{padding:20px 16px 25px}.booking-size-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-service-grid{grid-template-columns:1fr;gap:9px}.booking-offer{min-height:0;padding:13px 16px}.booking-offer strong{margin:5px 0 2px}.booking-offer b.booking-offer-price{margin-top:7px}.booking-wizard-footer{padding:11px 14px;flex-wrap:wrap}.booking-wizard-price{order:-1;width:100%;margin:0;font-size:.9rem;text-align:right;min-height:1em}.booking-wizard-footer>.button{flex:1}.booking-invitation{padding:16px;align-items:flex-start}.booking-invitation-location{display:none}}
.attendance-overview{margin:20px 0 8px;padding:22px;border:1px solid #f0d7e2;border-radius:16px;background:#fff8fb}
.attendance-overview-head{display:flex;justify-content:space-between;gap:18px;align-items:center}
.attendance-overview h2{margin:3px 0 2px}.attendance-overview p{margin:0;font-size:.84rem}
.attendance-count{background:#fce2ea;color:#9e3159;border-radius:30px;padding:7px 13px;white-space:nowrap;font-size:.77rem}
.attendance-pending{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid #efdde5}
.attendance-pending:first-child{margin-top:16px}.attendance-pending>div{flex:1;min-width:0}
.attendance-pending strong,.attendance-pending small{display:block}.attendance-pending small{color:var(--muted);font-size:.75rem}
.attendance-pending-icon{display:grid;place-items:center;background:#fff;color:var(--pink-strong);border:1px solid #efdde5;border-radius:10px;width:34px;height:34px;flex:0 0 34px}
.attendance-empty{padding-top:14px}.attendance-overview .button{min-height:38px;padding:7px 12px;font-size:.78rem}
.attendance-dialog{width:min(480px,calc(100vw - 24px));padding-bottom:22px}.attendance-dialog-info{padding:14px 16px;background:#fff3f8;border-radius:11px;color:#783c59;font-weight:700}
.attendance-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}.attendance-choices .button{min-width:0;padding:11px 9px}
.attendance-present{background:#208052;border-color:#208052}.attendance-present:hover{background:#17623e}
.attendance-later{grid-column:1/-1;border:0;background:none;color:var(--muted);padding:10px;font-size:.85rem;font-weight:700}
.attendance-confirm{padding:12px 0 0}.attendance-confirm p{font-size:.88rem}.attendance-confirm>div{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.attendance-choices[hidden],.attendance-confirm[hidden]{display:none!important}
.attendance-inline{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;margin:14px 0;background:#f0faf3;border:1px solid #cce8d5;border-radius:11px;font-size:.84rem}
.calendar-slot.occupied.status-completed{background:#e4f5e9;border:2px solid #32875b;color:#225d3e}
.calendar-month-legend .completed::before{background:#32875b}
@media(max-width:600px){.attendance-overview{padding:16px}.attendance-overview-head{align-items:flex-start}.attendance-overview h2{font-size:1.2rem}.attendance-pending{flex-wrap:wrap}.attendance-pending>div{flex-basis:calc(100% - 50px)}.attendance-pending>.button{width:100%}.attendance-inline{flex-wrap:wrap}.attendance-inline .button{width:100%}}

/* Update 21: Ausfallgebühren, SumUp-Hinweise und isolierte Testtermine. */
.fee-warning[hidden]{display:none!important}
.fee-warning{padding:20px;margin:14px 0 24px;border:2px solid #c52b46;background:#fff0f3;border-radius:16px;color:#772136}
.fee-warning h3{font-size:22px;margin:8px 0 18px;color:#a51c3d;overflow-wrap:anywhere}
.fee-warning p{font-size:14px;line-height:1.6}
.fee-total-lines{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}
.fee-grand-total{font-size:27px;color:#bc437c}
.fee-warning .button{white-space:normal;text-align:center}
.fee-slot-badge{display:block;width:fit-content;max-width:100%;background:#b5213e;color:white!important;border:1px solid #99192f;border-radius:6px;padding:3px 7px;font-size:12px!important;font-weight:800;line-height:1.4;overflow-wrap:anywhere;margin-top:5px}
.calendar-board.month .fee-slot-badge{font-size:9px!important;padding:1px 3px}
.fee-overview{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px;margin:22px 0;background:#fff0f3;color:#a31c3b;border:2px solid #c52b46;border-radius:16px;text-decoration:none}
.fee-summary,.fee-proposal-amount{padding:20px 24px;background:#fff0f7;border:1px solid #ecc7d9;border-radius:16px;display:flex;flex-direction:column;gap:6px;margin:18px 0}
.fee-summary strong,.fee-proposal-amount strong{font-size:36px;font-weight:800;color:#bc437c;line-height:1.3}
.fee-filters{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0;align-items:center}
.fee-filters a{padding:9px 16px;border:1px solid #ebdce6;border-radius:10px;color:#655766;background:white;text-decoration:none;font-weight:700;font-size:14px}
.fee-filters a.active{background:#bc437c;color:white;border-color:#bc437c}
.fee-card{background:white;border:1px solid #ebdce6;border-radius:18px;padding:22px;margin:14px 0}
.fee-card-head{display:flex;justify-content:space-between;gap:20px}
.fee-card-head h3{margin:7px 0;font-size:19px}.fee-card-head p{line-height:1.6;margin:7px 0;color:#756776}
.fee-card-head>div:last-child{text-align:right;flex-shrink:0}.fee-card-amount{display:block;font-size:28px;color:#bc437c;margin-bottom:10px}
.fee-state{display:inline-block;border-radius:7px;padding:5px 9px;font-weight:700;font-size:12px;background:#f1edf1;color:#645267}
.fee-state-open{background:#ffe3e9;color:#ac203e}.fee-state-paid{background:#dcf6e4;color:#186b38}.fee-state-disputed{background:#fff0ca;color:#805900}
.fee-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.fee-actions form{margin:0}.fee-actions .button{white-space:normal;text-align:center}
.fee-dialog{width:min(600px,calc(100vw - 24px));padding-bottom:28px}.fee-dialog h2{font-size:25px}.fee-dialog p{line-height:1.6}
.fee-dialog .form{gap:16px}.fee-dialog::backdrop{background:rgba(32,22,32,.55)}
.fee-test-tools,.fee-missing{background:white;border:1px solid #eadce5;border-radius:14px;padding:18px;margin-top:25px}
.fee-test-tools summary,.fee-missing summary{font-weight:700;cursor:pointer;color:#735b71}.fee-test-tools p,.fee-missing p{line-height:1.7}
.customer-fees{padding:18px;background:#fff7fa;border:1px solid #ebdce6;border-radius:16px;margin:20px 0}.fee-open-total{color:#a31c3b}
.customer-fee-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid #ebdce6;margin-bottom:12px}.customer-fee-line>span:first-child{flex:1;min-width:160px}.customer-fee-line small{display:block;color:#766675;font-size:12px;margin-top:4px}
@media(max-width:600px){.fee-card{padding:17px}.fee-card-head{gap:10px}.fee-card-head h3{font-size:16px}.fee-card-amount{font-size:22px}.fee-warning{padding:16px}.fee-warning h3{font-size:20px}.fee-total-lines{gap:10px;font-size:13px}.fee-grand-total{font-size:23px}.fee-summary strong,.fee-proposal-amount strong{font-size:30px}.fee-actions>.button,.fee-actions>form,.fee-actions>form>.button{width:100%}.fee-dialog{padding:18px 18px 24px}.fee-dialog .catalog-dialog-head h2{font-size:22px}.fee-filters a{padding:8px 12px}.customer-fees .section-heading{display:block}.calendar-slot .fee-slot-badge{font-size:10px!important}}
