@font-face{font-family:Manrope;src:url(assets/manrope.ttf)}@font-face{font-family:Cormorant;src:url(assets/cormorant.ttf)}@font-face{font-family:Cormorant;src:url(assets/cormorant-italic.ttf);font-style:italic}
:root{color-scheme:dark;--bg:#171411;--panel:#201a15;--gold:#e4c191;--ink:#f5ebdb;--mute:#c0b09d;--line:#49392b;--serif:Cormorant,Georgia,serif;--sans:Manrope,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 75% 3%,#2c2118 0%,transparent 42%),var(--bg);color:var(--ink);font:14px/1.6 var(--sans)}button,select,input{font:inherit}button{color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button,select,input{border-radius:4px}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #ffe0ab;outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:.99}h1{font-size:clamp(57px,8vw,112px);letter-spacing:-.052em}h1 em{color:var(--gold)}h2{font-size:clamp(29px,3vw,40px)}h3{font-size:27px}p{color:var(--mute)}.frame{width:min(1240px,calc(100% - 64px));margin-inline:auto}.bar{border-bottom:1px solid #392b20;background:#191511}.bar-inner{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:12px}.logo{width:145px;height:46px;object-fit:contain}.bar nav{display:flex;gap:4px}.bar button,.text-button{border:1px solid transparent;background:transparent;padding:8px 12px}.bar button{color:var(--mute)}.bar button[aria-current]{border-bottom-color:var(--gold);border-radius:0;color:var(--ink);font-weight:750}.demo,.eyebrow{color:var(--gold);font-size:10px;letter-spacing:.19em;text-transform:uppercase;font-weight:800}.demo{white-space:nowrap;border:1px solid var(--line);padding:5px 9px}.demo i,.dot{display:inline-block;background:var(--gold);width:6px;height:6px;border-radius:50%;vertical-align:2px;margin-right:5px}
.hero{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;min-height:325px;padding:37px 40px 40px;margin:24px 0;border:1px solid var(--line);background:#201811}.hero::before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#211a14 3%,#211a14f5 30%,#211a1433 73%,#211a1424),url(assets/couple.webp) right 44%/65% auto no-repeat}.hero h1{margin:14px 0 12px}.hero p:not(.eyebrow){max-width:50ch;color:#dfd1be}.hero .signature{position:absolute;right:25px;bottom:18px;color:#f1d8b8;font:italic 22px var(--serif);text-shadow:0 1px 12px #15100d}.workspace{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(270px,1fr);gap:20px;align-items:start}.panel{background:linear-gradient(140deg,#221c16,#1c1713);border:1px solid var(--line);padding:26px}.stack{display:grid;gap:18px}.step{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}.step span{color:var(--gold);font-size:11px;letter-spacing:.1em;font-weight:800}.segments{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}.segments button,.outline,.date,.slot{border:1px solid #594532;background:#1c1712;padding:9px 13px}.segments button[aria-pressed=true],.date[aria-pressed=true],.slot[aria-pressed=true]{border-color:var(--gold);background:#493323;color:#fff0d9;box-shadow:inset 0 -2px var(--gold)}.fields{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:10px}.fields label,.compact label{display:grid;gap:5px;color:var(--mute);min-width:0}.fields .wide{grid-column:1/-1}select,input{width:100%;min-width:0;color:var(--ink);background:#181410;border:1px solid #65503c;padding:10px}.helper{font-size:12px;margin-top:9px}.portraits{display:flex;flex-wrap:wrap;gap:9px;margin-top:13px}.person{display:flex;align-items:center;gap:7px;color:var(--gold);font-size:12px}.person img{width:28px;height:28px;object-fit:cover;object-position:center 25%;border-radius:50%;border:1px solid #8e6a45}.calendar-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}.calendar-head .step{margin:0}.calendar-head + p{margin:8px 0 12px}.week-control{display:flex;align-items:center;gap:8px}.week-control button{padding:4px 9px}.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-bottom:12px}.date{padding:6px 1px;text-align:center}.date span,.date small{display:block;font-size:10px;color:var(--mute)}.date strong{font-size:18px}.date small{font-size:9px}.slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.slot{text-align:left;min-width:0}.slot strong{display:block;font-size:17px}.slot small{color:#e4cdae;display:block}.empty{padding:13px;background:#191510;border:1px solid var(--line)}.primary{padding:11px 15px;color:#20150e;background:#dfbd88;border:1px solid #f0d2a4;font-weight:800}.primary:hover:not(:disabled){background:#f2d4a2}.outline:hover:not(:disabled),.date:hover:not(:disabled),.slot:hover:not(:disabled){border-color:var(--gold)}.summary{position:sticky;top:14px}.summary h2{margin:10px 0 12px;font-size:43px}.summary dl{margin:0 0 18px}.summary dl div{padding:8px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:85px 1fr;gap:7px}.summary dt{color:var(--mute)}.summary dd{margin:0;text-align:right}.summary .primary{width:100%;margin-top:7px}.summary .note{margin-top:20px;padding-top:13px;border-top:1px solid var(--line)}.footer{margin-block:28px;display:flex;justify-content:space-between;gap:12px;color:var(--mute);font-size:11px;border-top:1px solid var(--line);padding-top:12px}.subhero{margin:32px 0 20px}.subhero h1{font-size:clamp(45px,7vw,79px);margin:8px 0}.compact{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:15px}.compact label{flex:1;min-width:125px}.agenda{display:grid;gap:7px;margin:12px 0}.event{display:grid;grid-template-columns:110px 1fr auto;gap:10px;padding:10px 12px;border:1px solid var(--line);border-left:3px solid #b88b5b;background:#261d16}.event time{font-weight:800;color:var(--gold)}.event small{display:block;color:var(--mute)}.event.break{border-left-color:#8c7760;background:#1c1713;border-left-style:dashed}.event .badge{font-size:10px;align-self:start;color:var(--gold);text-align:right}.studio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.studio-grid h3{margin-bottom:6px}.room-box{margin-top:14px}.return{margin-top:13px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}dialog{max-width:min(460px,calc(100% - 30px));background:#241c15;border:1px solid #aa855f;color:var(--ink);padding:25px}dialog::backdrop{background:#100d0ad9}dialog h2{margin:10px 0}dialog p{margin-bottom:14px}.dialog-actions{display:flex;flex-wrap:wrap;gap:7px}details{margin-top:10px}summary{color:var(--gold);cursor:pointer}details .slots{margin-top:8px}
@media(max-width:850px){.workspace{grid-template-columns:minmax(0,1fr)}.summary{position:static}.frame{width:calc(100% - 36px)}.hero{min-height:280px;padding:24px}.bar button{padding-inline:8px}.hero::before{background:linear-gradient(90deg,#211a14 3%,#211a14c7 50%,#211a1452),url(assets/couple.webp) right center/cover no-repeat}}
@media(max-width:550px){.frame{width:calc(100% - 24px)}.bar-inner{display:grid;grid-template-columns:1fr auto;padding:7px 0;gap:4px}.bar nav{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:.78fr 1.45fr 1fr}.bar nav button{font-size:11px;padding:8px 3px}.logo{width:122px;height:35px}.hero{margin:12px 0;min-height:235px;padding:19px 16px}.hero .signature{display:none}.hero p:not(.eyebrow){max-width:30ch}.panel{padding:15px}.slots{grid-template-columns:repeat(2,minmax(0,1fr))}.fields,.studio-grid{grid-template-columns:minmax(0,1fr)}.event{grid-template-columns:90px minmax(0,1fr);gap:6px}.event .badge{grid-column:2;text-align:left}.days{gap:3px}.date small{font-size:8px}.date strong{font-size:15px}.footer{flex-direction:column;gap:2px}}
.staff-directory{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.staff-tile{display:flex;flex-direction:column;align-items:flex-start;gap:20px;color:var(--gold);text-decoration:none}.staff-tile:hover,.staff-tile:focus-visible{border-color:var(--gold)}.staff-tile .person{gap:12px;font:34px var(--serif)}.staff-tile .person img,.staff-head .person img{width:60px;height:60px}.staff-tile>span:last-child{font-size:13px}.staff-disclaimer{margin-top:16px}.staff-head{display:flex;align-items:center;gap:18px}.staff-head>.person{font-size:0;flex:none}.staff-head>.person img{width:86px;height:86px}.staff-inline{color:var(--gold);text-underline-offset:4px}.action-link{display:inline-flex;text-decoration:none;border-radius:4px}.staff-filters{margin:14px 0 4px}.event-pending{background:linear-gradient(100deg,#382919,#272019);border-color:#77593d;border-left-color:#e0b883}.event-action{margin-top:8px;font-size:12px}.event-action.primary{padding:8px 12px}.studio-grid{margin-top:16px}.studio-grid .staff-inline{font-size:12px}
@media(max-width:850px){.staff-directory{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:550px){.staff-tile{gap:10px}.staff-tile .person{font-size:26px;gap:8px}.staff-tile .person img{width:36px;height:36px}.staff-head{gap:10px}.staff-head>.person img{width:52px;height:52px}.bar-personal .staff-inline{grid-row:2;grid-column:1/-1;font-size:12px;padding-bottom:5px}}
.owner-head{display:flex;justify-content:space-between;align-items:end;gap:16px}.owner-head .action-link{flex:none}.owner-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.owner-stats .panel{padding:12px 18px}.owner-stats strong{display:block;font:42px/1 var(--serif);color:var(--gold);margin-top:4px}.owner-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(235px,1fr);align-items:start;gap:16px}.owner-list .segments button{padding:6px 10px}.owner-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;border-top:1px solid var(--line);padding:15px 0}.owner-row:last-child{padding-bottom:0}.owner-row h3{margin:5px 0 6px}.row-actions{display:grid;justify-items:end;gap:5px}.row-actions small{color:var(--mute);text-align:right}.row-actions .outline{padding:5px 9px;font-size:12px}.status-chip{display:inline-block;border:1px solid #736247;color:#f2d19b;background:#3b2a1b;border-radius:20px;padding:3px 9px;font-size:11px;white-space:nowrap}.status-chip.confirmed,.status-chip.completed{color:#d8e6c3;background:#27301f;border-color:#526041}.status-chip.cancelled{color:#e4c4b6;background:#382420;border-color:#74514a}.owner-blocks h2{margin:6px 0}.owner-blocks .detail-form{margin-top:14px}.blocked-entry{padding:8px 0;border-top:1px solid var(--line);margin-top:10px;overflow-wrap:anywhere}.blocked-entry button{padding:3px 0;color:var(--gold)}.detail-form{display:grid;gap:9px}.detail-form label:not(.radio){display:grid;gap:3px;color:var(--ink)}.detail-form label span{font-size:12px;color:var(--mute)}.detail-form p{margin-bottom:0}.detail-form fieldset{border:1px solid var(--line);padding:7px 10px}.radio{display:flex;align-items:center;gap:8px;padding:4px 0}.radio input{width:16px;height:16px;accent-color:var(--gold)}.detail-form .text-button{padding:0;justify-self:start;color:var(--gold)}.form-error{color:#ffd2b8;font-size:13px}.form-error:empty{display:none}.test-note{border-left:2px solid #a68355;padding:6px 9px;background:#30241a;color:#eddbc3;font-size:12px;margin-top:8px}.detail-meta,.message-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.detail-meta>span:not(.status-chip){font-size:12px;color:var(--mute)}.message-actions{margin-top:13px;border-top:1px solid var(--line);padding-top:12px}.message-preview{padding:12px;border:1px solid var(--line);margin:12px 0;background:#191410}.message-preview h3{margin:6px 0}.message-preview p{margin:3px 0}.message-preview blockquote{margin:8px 0;padding:6px 10px;border-left:1px solid var(--gold);color:var(--ink)}#work{max-width:min(580px,calc(100% - 26px));width:100%;max-height:calc(100dvh - 30px)}.payment-box{display:grid;grid-template-columns:1fr auto;gap:5px;align-items:baseline;background:#191410;padding:10px 14px;border:1px solid var(--line);margin-bottom:12px}.payment-box strong{color:var(--gold);font:34px/1 var(--serif)}.payment-box small{grid-column:1/-1;color:var(--mute)}.client-visit{max-width:640px;margin-block:20px}.client-visit h2{margin:9px 0}.client-visit h1{font-size:clamp(36px,6vw,68px)}.client-visit p{margin-top:6px}
@media(max-width:820px){.owner-layout{grid-template-columns:minmax(0,1fr)}.owner-head{align-items:start;flex-direction:column}}
@media(max-width:550px){.owner-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.owner-stats .panel{padding:8px 11px}.owner-row{grid-template-columns:1fr}.row-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.row-actions small{text-align:left}.bar nav button{white-space:normal}}
.modal-close{position:absolute;right:11px;top:9px}.modal-close button{background:transparent;border:1px solid var(--line);font-size:22px;line-height:1;color:var(--gold);padding:4px 8px}.modal-close button:hover{border-color:var(--gold)}#work>.eyebrow{padding-right:30px}
.people-picker,.kind-picker{display:flex;flex-wrap:wrap;gap:8px}.people-picker button,.kind-picker button{min-height:44px}.people-picker .person{pointer-events:none}.people-picker button[aria-pressed=true],.kind-picker button[aria-pressed=true]{border-color:var(--gold);background:#493323;color:#fff0d9;box-shadow:inset 0 -2px var(--gold)}.kind-picker+.fields,.second-person{margin-top:14px}.second-person{grid-template-columns:minmax(0,1fr);max-width:390px}.notice-list{display:grid;gap:7px;margin-top:12px}.notice-list .outline{display:grid;grid-template-columns:1fr auto;column-gap:7px;text-align:left}.notice-list .outline small{grid-column:1;color:var(--mute)}.notice-list .outline span{grid-column:2;grid-row:1 / span 2;align-self:center;font-size:11px;color:var(--gold)}.outline.action-link{color:var(--ink)}
.timeline-key{display:flex;gap:6px 18px;flex-wrap:wrap;color:var(--mute);font-size:11px;margin:14px 0}.timeline{height:684px;position:relative;margin:18px 0 28px;--timeline-gutter:59px}.timeline-tick{position:absolute;top:var(--top);width:100%;border-bottom:1px solid #3e3328;height:1px}.timeline-tick time{position:absolute;left:0;top:-9px;font-size:11px;color:var(--mute);font-variant-numeric:tabular-nums;background:#211b16;padding-right:4px}.timeline-interval{position:absolute;left:var(--timeline-gutter);right:0;top:var(--top);height:var(--length);border:1px solid #7e6041;border-left:3px solid #bf986a;background:#392c20;padding:3px 8px;display:flex;align-items:center;gap:7px;line-height:1.2;min-width:0}.timeline-interval time{flex:none;color:#e2c295;font-size:11px;font-variant-numeric:tabular-nums}.timeline-interval strong{font-size:12px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-interval button{margin-left:auto;padding:2px 5px;font-size:11px;flex:none}.timeline-interval.awaiting{background:#524027;border-color:#a38458}.timeline-interval.buffer{border-style:dashed;background:#262019;color:#dac6ad}.timeline-interval.outside{background:repeating-linear-gradient(140deg,#241e18 0 5px,#1d1914 5px 10px);border-color:#4d4134;color:#c0ad99}
@media(max-width:550px){.timeline{--timeline-gutter:35px}.timeline-interval{padding-inline:4px;gap:4px}.timeline-interval time,.timeline-interval strong{font-size:10px}.timeline-interval button{font-size:10px}}
.phone-suffix{flex:none;color:var(--muted,#d6c5b1);white-space:nowrap;font-size:11px;font-variant-numeric:tabular-nums}
#booking-time-form{margin-top:10px}#booking-time-form .form-error{flex-basis:100%;margin:0}
.timeline-interval.session,.timeline-interval.awaiting{z-index:2}.studio-board-scroll{overflow-x:auto;padding:6px 0;margin-top:12px}.studio-board{display:grid;grid-template-columns:55px repeat(4,minmax(176px,1fr));gap:6px;min-width:790px}.board-title{display:flex;flex-wrap:wrap;align-items:center;align-content:center;column-gap:6px;height:88px;padding:6px 8px;background:#241c15;border:1px solid var(--line);line-height:1.2}.board-title small{width:100%;color:var(--mute);font-size:11px}.board-title button{padding:3px 8px;margin-top:4px;font-size:11px}.studio-board .timeline{--timeline-gutter:0px;margin-top:9px}.board-person .timeline{background:#1a1612}.board-person .timeline-tick time{visibility:hidden}.studio-board .timeline-interval{padding-inline:4px;gap:3px;flex-wrap:wrap;align-content:center;justify-content:space-between}.studio-board .timeline-interval strong{font-size:11px;max-width:100%}.studio-board .timeline-interval time{font-size:10px}.studio-board .timeline-interval button{font-size:10px;padding:2px 4px}.studio-board .timeline-interval.buffer{flex-wrap:nowrap}.window-slot{color:#d9e6cf;background:#263021;border:1px dashed #687a54;align-content:center;justify-content:center!important;flex-direction:column}.window-slot:hover,.window-slot:focus-visible{background:#35432d;border-color:#bdcba8}.window-slot time{color:#cad8bf}.board-clock .board-title{border-color:transparent;background:transparent;font-size:11px;color:var(--mute)}
.visit-payment{margin:14px 0;padding:4px 12px;background:#201912;border:1px solid var(--line);border-radius:7px}
.visit-payment div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:6px 0}
.visit-payment dt{color:var(--muted,#d6c5b1)}.visit-payment dd{margin:0;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.visit-payment .visit-balance{border-top:1px solid var(--line);font-weight:600}.visit-payment .visit-balance dt,.visit-payment .visit-balance dd{color:var(--gold)}

.bar nav[hidden]{display:none}
.status-chip.confirmed{color:#c4f3d8}
.status-chip.confirmed{background:#18392f;border-color:#58977c}
.visit-client{display:flex;align-items:baseline;gap:6px;min-width:0}
.visit-client b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f5ebdb}
.ledger-panel{margin:16px 0}
.booking-test-mode{display:flex;align-items:center;justify-content:space-between;gap:10px 20px;flex-wrap:wrap;margin:12px 0;padding:12px 16px}
.booking-test-mode p{margin:3px 0 0;color:var(--mute)}
.envelope-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}
.envelope-closing{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:6px;background:var(--bg)}
.envelope-closing .envelope-stats{margin-bottom:0}
.envelope-stats>.envelope-net{background:#2d2319;border-color:var(--gold);border-radius:4px;padding:8px 10px}
.envelope-week{margin-top:18px}
.envelope-week>summary{width:fit-content;max-width:100%;line-height:1.45;padding:10px 14px}
.envelope-week>summary small{margin-inline-start:6px;color:var(--mute);font-size:.8em}
.envelope-week .envelope-stats small{display:block;margin-top:5px;color:var(--mute)}
.envelope-week .ledger-scroll td:last-child{color:var(--gold);font-weight:650}
.envelope-week table{min-width:30rem}
.envelope-week tbody th{min-width:0}
.envelope-week th button{font-size:.85rem;padding:5px 9px}
.envelope-week-current{background:#2d2319}
.envelope-week-short{display:none}
@media(max-width:620px){
 .envelope-week-wide{display:none}
 .envelope-week-short{display:inline}
 .envelope-week table{min-width:0;table-layout:fixed}
 .envelope-week :is(th,td){padding:8px 4px;white-space:normal;overflow-wrap:anywhere}
 .envelope-week thead th{font-size:.69rem}
 .envelope-week .ledger-scroll tbody td{font-size:.8rem;white-space:normal}
 .envelope-week .ledger-scroll td:last-child{overflow-wrap:normal;font-size:.73rem}
 .envelope-week tbody small{font-size:.67rem}
 .envelope-week th button{min-height:44px;padding:4px;font-size:.75rem;white-space:normal}
}
.envelope-visits{list-style:none;margin:8px 0 0;padding:0}
.envelope-visits li{padding:10px 0;border-top:1px solid var(--line)}
.envelope-visits li>small{display:block;color:var(--mute);margin-top:3px}
.envelope-visits dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:8px;margin:8px 0 0}
.envelope-visits dt{font-size:12px;color:var(--mute)}
.envelope-visits dd{margin:0;color:var(--gold);font-variant-numeric:tabular-nums}
.envelope-visits .outline{margin-top:10px}
.envelope-stats>div{border-top:1px solid var(--line);padding:8px 4px}
.envelope-stats dt{font-size:12px;color:var(--mute)}
.envelope-stats dd{margin:3px 0 0;font:clamp(25px,3vw,40px)/1 var(--serif);color:var(--gold)}
.ledger-scroll{overflow-x:auto;margin-top:12px}
.ledger-scroll table{border-collapse:collapse;width:100%;text-align:left}
.ledger-scroll :is(th,td){padding:10px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.ledger-scroll thead th{color:var(--mute);font-size:12px;font-weight:700}
.ledger-scroll tbody th{min-width:160px;font-weight:600}
.ledger-scroll tbody td{white-space:nowrap}
.ledger-scroll small{display:block;color:var(--mute)}
.ledger-scroll button{white-space:nowrap}
#settlement-form fieldset{display:grid;gap:7px;min-width:0}
#settlement-form select{max-width:100%}
#settlement-form legend{color:var(--gold)}
#settlement-form .visit-payment{margin:4px 0}
#settlement-form [hidden]{display:none}
#receipt-save,#advance-save{justify-self:start;min-height:44px}
#receipt-save-error:empty,#advance-save-error:empty,#settlement-save-error:empty{display:none}
#receipt-save-status{margin:0}
#advance-fields summary small{color:var(--mute);margin-inline-start:.35em}
#advance-fields{margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:5px}
#advance-fields .detail-form{margin-top:10px}
#finance-collection{max-width:340px}
@media(max-width:650px){
 .envelope-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .timeline-interval.session:has(.visit-client),.timeline-interval.awaiting:has(.visit-client){display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:1fr 1fr;gap:1px 5px}
 .timeline-interval .visit-client{grid-column:1/3;grid-row:2}
 .timeline-interval .visit-client~button{grid-column:3;grid-row:1/3}
}
.ledger-team{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:7px 14px}
.ledger-team li{padding:4px 9px;background:#292018;border:1px solid var(--line);border-radius:4px;color:var(--mute)}
.ledger-team strong{color:var(--gold);margin-left:5px}

.envelope-table table{min-width:790px}
.envelope-table :is(td,th):not(:first-child){text-align:end}
.envelope-table tbody th{min-width:0}
.envelope-table td:nth-last-child(-n+2){background:#2b2219;color:var(--gold)}
.envelope-scroll-tip{display:none}
.envelope-actions{display:grid;gap:8px;margin-block-start:16px}
.envelope-actions .room-box{margin:0}
#finance-payout{max-width:340px}
@media(max-width:880px){.envelope-scroll-tip{display:block;margin-block-start:12px}}
.ledger-cash-note{margin-block-start:12px}
.visit-studio-cash{color:var(--gold);font-weight:750}

/* Each swatch shares its surface, edge and label color with the timeline and list. */
:root{
 --schedule-prep-bg:#433613;--schedule-prep-edge:#f7d454;--schedule-prep-text:#fff3be;
 --schedule-session-bg:#1c3553;--schedule-session-edge:#8dbdff;--schedule-session-text:#ebf4ff;
 --schedule-pending-bg:#39254e;--schedule-pending-edge:#d8a8fa;--schedule-pending-text:#f8edff;
 --schedule-confirmed-bg:#143b31;--schedule-confirmed-edge:#78e3b3;--schedule-confirmed-text:#e7fff3;
 --schedule-recovery-bg:#2f2b35;--schedule-recovery-edge:#a99fb8;--schedule-recovery-text:#f1eaf7;
 --schedule-outside-bg:#241e18;--schedule-outside-edge:#8c7d70;
}
:is(.timeline-interval.prep,.event.event-prep,.key-prep){
 --schedule-bg:var(--schedule-prep-bg);--schedule-edge:var(--schedule-prep-edge);--schedule-text:var(--schedule-prep-text);
}
:is(.timeline-interval.session,.event.event-session,.key-session){
 --schedule-bg:var(--schedule-session-bg);--schedule-edge:var(--schedule-session-edge);--schedule-text:var(--schedule-session-text);
}
:is(.timeline-interval.awaiting,.event.event-pending,.key-pending){
 --schedule-bg:var(--schedule-pending-bg);--schedule-edge:var(--schedule-pending-edge);--schedule-text:var(--schedule-pending-text);
}
:is(.timeline-interval.session.confirmed,.event.event-confirmed,.key-confirmed){
 --schedule-bg:var(--schedule-confirmed-bg);--schedule-edge:var(--schedule-confirmed-edge);--schedule-text:var(--schedule-confirmed-text);
}
:is(.timeline-interval.recovery,.event.event-recovery,.key-recovery){
 --schedule-bg:var(--schedule-recovery-bg);--schedule-edge:var(--schedule-recovery-edge);--schedule-text:var(--schedule-recovery-text);
}
.key-outside{--schedule-bg:var(--schedule-outside-bg);--schedule-edge:var(--schedule-outside-edge)}
.timeline-key span::before{background:var(--schedule-bg);border:2px solid var(--schedule-edge);border-radius:3px;vertical-align:-2px}
.timeline-key .key-recovery::before,.timeline-key .key-outside::before{border-style:dashed}
:is(.timeline-interval.session,.timeline-interval.awaiting,.timeline-interval.buffer,.event:is(.event-prep,.event-session,.event-pending,.event-confirmed,.event-recovery)){
 background:var(--schedule-bg);border-color:var(--schedule-edge);border-inline-start:4px solid var(--schedule-edge);color:var(--schedule-text);
}
:is(.timeline-interval.session,.timeline-interval.awaiting,.timeline-interval.buffer,.event:is(.event-prep,.event-session,.event-pending,.event-confirmed,.event-recovery)) :is(time,.badge,small,.visit-client b){color:var(--schedule-text)}
.timeline-status{font-size:10px;font-weight:750;white-space:nowrap}
.timeline-interval .outline{color:inherit;border-color:currentColor}
.window-slot{color:var(--ink);background:#272019;border-color:#92806c}
.window-slot time{color:var(--ink)}
.window-slot:hover,.window-slot:focus-visible{background:#3a2e23;border-color:var(--gold)}
@media(max-width:650px){
 .timeline-interval .timeline-status{grid-column:3;grid-row:2;justify-self:end}
 .timeline-interval .visit-client~button{grid-row:1}
}
.studio-board .timeline-status{font-size:9px}
#receipt-envelope[hidden],#finance-envelope[hidden],label[data-correction-envelope][hidden]{display:none}
#work:has(.booking-time-confirm){max-width:min(370px,calc(100% - 28px));padding:22px;border-radius:8px;text-align:center}
.booking-time-confirm h2{font-size:clamp(34px,9vw,46px);margin:5px 0;color:var(--gold)}
.booking-time-confirm p{margin:4px 0}
.booking-time-confirm .helper{margin:12px 0}
.booking-time-confirm select,.booking-time-confirm .primary{width:100%;min-height:44px}
.booking-time-confirm .text-button{min-height:44px;color:var(--gold)}
#variant,#date-panel{scroll-margin-top:190px}
.visit-ledger table{min-width:780px}
.visit-ledger :is(th,td):not(:first-child):not(:last-child){text-align:end}
.ledger-panel > .envelope-stats:has(> :nth-child(5)){grid-template-columns:repeat(auto-fit,minmax(min(100%,145px),1fr))}

.confirmation-queue,.staff-inbox{margin-block-end:16px}
.confirmation-queue{border-inline-start:4px solid var(--schedule-pending-edge);background:var(--schedule-pending-bg);color:var(--schedule-pending-text)}
.confirmation-queue .eyebrow{color:var(--schedule-pending-text)}
.confirmation-queue h2 .confirmation-count{margin-inline-start:8px;font:700 14px var(--sans);border:1px solid var(--schedule-pending-edge);border-radius:50%;padding:3px 8px;vertical-align:middle}
.confirmation-queue ul{list-style:none;display:grid;gap:8px;padding:0;margin:12px 0 0}
.confirmation-queue li{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;border-top:1px solid #8d70a2;padding-block-start:8px}
.confirmation-queue small{display:block}
.confirmation-queue .outline{color:inherit;border-color:var(--schedule-pending-edge)}
.confirmation-note,.confirmation-details{border-inline-start:3px solid var(--schedule-pending-edge);background:var(--schedule-pending-bg);color:var(--schedule-pending-text);padding:10px 12px;margin-block:10px}
.confirmation-details p,.confirmation-details .eyebrow{color:inherit}
.staff-inbox summary{cursor:pointer;font-weight:700}
.confirmation-queue,.confirmation-note,.confirmation-details-pending{border-inline-start:4px solid #ef827a}
.booking-alert-mark{display:inline-grid;place-items:center;width:1.45em;height:1.45em;flex:none;border-radius:50%;background:#fa9f95;color:#341b19;font:800 1em/1 var(--sans);vertical-align:middle}
.booking-alert-label{display:inline-flex;align-items:center;gap:.5em;color:#ffc2b9!important;font-weight:700}
.staff-inbox-title{margin-inline-end:12px}
.staff-inbox-counts,.staff-mail-meta{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;vertical-align:middle}
.staff-inbox .status-chip{font-size:12px}
.staff-inbox .status-chip.pending{border-color:#ae5d55;background:#3d2524;color:#ffc2b9}
.staff-inbox .status-chip.neutral{border-color:var(--line);background:transparent;color:var(--mute)}
.staff-inbox .status-chip .booking-alert-mark{margin-inline-end:5px}
.staff-mail-group{margin-block-start:16px}
.staff-mail-group h3{font:700 14px/1.4 var(--sans);margin:0 0 6px;color:var(--mute)}
.staff-mail-row{padding:9px 11px;margin-block-start:6px;border:1px solid var(--line);background:#191410}
.staff-mail-pending{border-inline-start:3px solid #ef827a}
.staff-mail-row>summary{font-size:14px}
.staff-mail-visit{display:inline-block;vertical-align:middle;max-width:100%;margin-inline-end:12px}
.staff-mail-visit small{display:block}
.staff-mail-meta>small,.staff-mail-visit small{font-weight:400;color:var(--mute)}
.staff-mail-payment{font-size:13px;color:var(--ink);font-weight:500;overflow-wrap:anywhere}
.staff-mail-payment small{color:var(--mute);margin-inline-end:4px}
.detail-form textarea[data-note]{width:100%;min-height:78px;resize:vertical;border:1px solid var(--line);border-radius:4px;background:#191410;color:var(--ink);font:inherit;padding:8px 10px}
.detail-form textarea[data-note]:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.staff-note-form{border-block-start:1px solid var(--line);margin-block-start:14px;padding-block-start:12px}
.staff-note-form + .dialog-actions{margin-block-start:24px}
.staff-note-result{font-size:13px;color:var(--ink)}
.booking-client-note p{white-space:pre-wrap;overflow-wrap:anywhere}
[data-note-count]{font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:600px){.staff-inbox-counts,.staff-mail-meta{display:flex;margin-block-start:6px}.staff-mail-payment{flex-basis:100%}}
.shift-selectors{display:flex;gap:10px;flex-wrap:wrap}.shift-selectors label{flex:1 1 130px}
.shift-fields{display:grid;gap:8px}
.shift-editor .shift-row{display:grid;grid-template-columns:6rem 1fr;gap:6px 10px;align-items:end}
.shift-row legend{font-size:14px;font-weight:700;color:var(--gold);padding:0 4px}
.shift-editor .shift-day-off{display:flex;align-items:center;align-self:center;gap:7px;font-size:13px}
.shift-day-off input{width:17px;height:17px;accent-color:var(--gold)}
.shift-times:not([hidden]){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.shift-times input{width:100%;min-width:0}
.studio-board .board-title{height:106px}
.studio-board .board-title button{margin-inline-end:3px}
.booking-demo-code{font-variant-numeric:tabular-nums;letter-spacing:.14em;color:var(--gold)}
#work-schedule-feedback:empty{display:none}
@media(max-width:430px){.shift-editor .shift-row{grid-template-columns:1fr}.shift-times:not([hidden]){width:100%}}
.staff-work-week{margin-block-end:16px}
.staff-work-week ul{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;padding:0;margin:8px 0 0;list-style:none}
.staff-work-week li{display:grid;gap:7px;padding:8px;background:#191410;border:1px solid var(--line);font-size:13px}
.staff-work-week li small{display:block;color:var(--mute);margin-block-start:2px}
.staff-work-week li strong{color:var(--gold);font-variant-numeric:tabular-nums}
.staff-work-week li .off{color:var(--mute)}
@media(max-width:720px){.staff-work-week ul{grid-template-columns:repeat(auto-fit,minmax(112px,1fr))}}
.client-work-week{margin-block-start:18px;padding-block-start:14px;border-block-start:1px solid var(--line)}
.client-work-week h3{margin:0;font:26px/1.1 var(--serif)}
.client-work-week .eyebrow{margin-block-end:4px}
.client-work-week ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(104px,100%),1fr));gap:6px;list-style:none;margin:10px 0 0;padding:0}
.client-work-day{display:grid;width:100%;gap:4px;text-align:left;padding:8px 6px;border:1px solid var(--line);background:#191410;color:var(--ink);font-size:12px;min-height:74px}
.client-work-day strong{color:var(--gold);font-variant-numeric:tabular-nums;align-self:end}
.client-work-day small{color:var(--mute)}
.client-work-day:disabled{cursor:default;opacity:.72}.client-work-day:disabled strong{color:var(--mute)}
.client-work-day[aria-pressed=true]:not(:disabled){border-color:var(--gold);background:#342819}
#time-panel,#booking-offer{scroll-margin-block-start:20px}
.cancel-visit{border-color:#ae5d55;color:#ffc2b9}.cancel-visit:hover{background:#3d2524}
.cancelled-visit-list{margin:10px 0 0;padding:0;list-style:none}
.cancelled-visit-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:7px 0;border-top:1px solid var(--line)}
.cancelled-visit-list small{display:block;color:var(--mute)}
.staff-cancelled-history{margin-block-end:16px}.staff-cancelled-history summary{cursor:pointer;font-weight:700}
#sample-change-feedback:empty{display:none}
.bulk-cancel-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.bulk-cancel-list li label{display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:start;padding:8px 0;border-bottom:1px solid var(--line)}
.bulk-cancel-list li small{display:block;color:var(--mute);overflow-wrap:anywhere}
.bulk-cancel-list li .bulk-missing-email{color:#ffc2b9}
.bulk-cancel-list input{width:16px;height:16px;accent-color:var(--gold)}
.bulk-mail-preview{border-top:1px solid var(--line);padding-top:7px;margin-top:7px}
.shift-save-status{color:var(--schedule-confirmed-edge);font-size:14px;font-weight:700}
.shift-save-status:empty,.shift-save-note:empty{display:none}
.timeline-tick.quarter-hour{border-bottom-style:dashed;border-color:#3b3027}
.timeline-tick.quarter-hour time{font-size:10px;color:#baab98}
.shift-times select{width:100%;min-width:0}
.team-hours{min-width:0}
.team-hours-bar,.team-hours-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.team-hours-bar h2{margin-block:6px 10px}
.team-hours-nav{display:flex;align-items:end;gap:10px}
.team-hours-nav label{display:grid;gap:4px}
.team-hours-nav .week-control button{min-width:44px;min-height:44px;padding:4px 10px;font-size:20px}
.team-hours-scroll{position:relative;overflow:auto;margin-block:14px;border:1px solid var(--line);border-radius:4px}
.team-hours-scroll:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.team-hours-scroll table{width:100%;min-width:940px;table-layout:fixed;border-collapse:separate;border-spacing:0}
.team-hours-scroll th,.team-hours-scroll td{border-inline-end:1px solid var(--line);border-block-end:1px solid var(--line);padding:9px;vertical-align:top}
.team-hours-scroll tr>:last-child{border-inline-end:0}
.team-hours-scroll tbody tr:last-child>*{border-block-end:0}
.team-hours-scroll th{text-align:left;background:#2b221a;color:var(--ink)}
.team-hours-scroll thead th{font-size:12px}
.team-hours-scroll th:first-child{width:104px;position:sticky;left:0;z-index:1}
.team-hours-scroll tbody th{vertical-align:middle}
.team-hours-scroll th .person{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.team-hours-scroll time,.team-shift small{display:block;color:var(--mute);font-size:11px}
.team-hours-scroll td.today,.team-hours-scroll th.today{background:#30271b}
.team-hours-scroll td.is-edited{box-shadow:inset 0 3px var(--gold)}
.team-hours-scroll td.is-off:not(.today){background:#1b1713}
.team-shift{position:relative;margin:0;border:0;padding:0;min-width:0}
.team-hours-scroll .sr{inset:0 auto auto 0}
.team-shift-off{display:flex;align-items:center;gap:7px;min-height:36px;color:var(--ink);font-size:12px}
.team-shift-off input{width:17px;height:17px;margin:0;accent-color:var(--gold)}
.team-shift-times:not([hidden]){display:grid;gap:4px}
.team-shift-times label{display:grid;grid-template-columns:1.25rem minmax(0,1fr);align-items:center;gap:4px;font-size:11px;color:var(--mute)}
.team-shift-times select{width:100%;min-height:34px;padding:3px 4px;font-variant-numeric:tabular-nums;color:var(--ink)}
.team-hours-scroll-hint{display:none}
.team-hours-footer{padding-top:5px}
.booking-payment-choices{display:grid;gap:6px}
.booking-hold-notice{padding:.6rem .8rem;border:1px solid currentColor;border-radius:.35rem;font-size:.9rem}
.timeline .timeline-interval.calendar-hold{background:repeating-linear-gradient(135deg,#e4e6e9 0 8px,#f2f3f4 8px 16px);border:1px solid #9aa0a6;color:#28313c;cursor:default}
.timeline .timeline-interval.calendar-hold :is(strong,time,small){color:#28313c}
.booking-account-contact{margin:0;padding:0 12px;border:1px solid var(--line);border-radius:6px}
.booking-account-contact summary{padding:11px 0;min-height:44px}
.booking-account-contact[open]{padding-bottom:12px}
.booking-account-fields{display:grid;gap:8px}
.detail-form .payment-choice{padding:8px;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:4px;cursor:pointer}
.detail-form .payment-choice:has(:checked){border-color:var(--gold);background:#32271c}
.detail-form .payment-choice input{flex:none;margin-top:3px}
.detail-form .payment-choice strong{display:block;font-size:14px;color:var(--ink)}
.detail-form .payment-choice small{display:block;color:var(--mute);font-size:12px}
.timeline{height:1152px}
.studio-board-scroll{max-height:70dvh;overflow:auto}
.studio-board{--studio-clock-width:55px;--studio-heading-height:106px;--studio-day-height:1152px;position:relative}
.studio-board .board-title{position:sticky;top:0;z-index:4;height:var(--studio-heading-height)}
.studio-board .board-clock .board-title{background:#211b16}
.studio-board.studio-board-single{min-width:0;grid-template-columns:55px minmax(0,1fr)}
.studio-board .timeline{height:var(--studio-day-height)}
.studio-now-line{position:absolute;z-index:3;inset-inline:var(--studio-clock-width) 0;top:calc(var(--studio-heading-height) + 9px + var(--studio-day-height)*var(--now-progress,0));border-block-start:2px solid #e74250;pointer-events:none}
.studio-now-clock{position:absolute;z-index:2;inset-inline:0 2px;top:calc(100%*var(--now-progress,0));translate:0 -50%;padding:2px 1px;border-radius:3px;background:#b52135;color:#fff;text-align:center;font-size:11px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.3;pointer-events:none}
.studio-calendar-heading{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:12px 24px;margin-block:24px 14px}
.studio-calendar-heading h1{font-size:clamp(32px,4vw,54px);margin-block:4px}
.studio-calendar-heading h2{font:600 clamp(16px,2vw,21px)/1.35 var(--sans,sans-serif);color:var(--gold);margin:0}
.studio-calendar-heading time{display:block}
.studio-calendar-heading time::first-letter{text-transform:uppercase}
.studio-date-tools,.studio-booking-tools{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:8px 12px}
.studio-date-tools label,.studio-booking-tools label{display:grid;min-width:0;gap:4px;color:var(--mute);font-size:13px}
.studio-date-tools input,.studio-date-tools button,.studio-booking-tools select{min-height:44px;max-width:100%}
.studio-week .week-control{justify-content:space-between;margin-block-end:8px}
.studio-week .week-control button{min-width:44px;min-height:36px}
.studio-week .date{min-height:56px}
.studio-week .date span{text-transform:capitalize}
.studio-week .date span:first-child{display:none}
.studio-week .date strong{font-size:clamp(13px,2vw,20px)}
.studio-booking-tools .helper{margin:0}
.studio-calendar .studio-board-scroll{position:relative;max-height:68dvh;min-height:min(310px,75dvh);scroll-padding-block-start:106px}
.studio-calendar .board-clock{position:sticky;inset-inline-start:0;z-index:5;background:#211b16}
.studio-calendar .board-clock .timeline-tick time{z-index:1}
.studio-calendar .timeline .window-slot span{visibility:visible;color:#e0c6a4;font-variant-numeric:tabular-nums}
.studio-calendar .timeline .window-slot:focus-visible{outline-offset:-2px}
.studio-calendar .timeline-key{margin-block:8px 12px}
.event .calendar-visit-note{display:block;margin-block-start:4px;overflow-wrap:anywhere}
.calendar-visit-note b{font-weight:650}
.timeline .timeline-interval.visit-with-note{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto;gap:1px 5px;align-content:center;overflow:hidden}
.visit-with-note time{grid-area:1/1}
.visit-with-note strong{grid-area:1/2}
.timeline .visit-with-note button{grid-area:1/3}
.visit-with-note .calendar-visit-note{grid-area:2/1/2/-1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.visit-with-note .visit-client{grid-area:3/1/3/3;min-width:0;overflow:hidden}
.visit-with-note .timeline-status{grid-area:3/3;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:9px}
.timeline .timeline-interval.visit-short{grid-template-columns:auto minmax(0,1fr) auto auto}
.timeline .visit-short button{grid-area:1/4}
.visit-short .visit-client,.visit-short .timeline-status{display:none}
.visit-short .calendar-visit-note{grid-area:1/3}
.visit-short .calendar-visit-note b{font-size:0}
.visit-short .calendar-visit-note b::after{content:"▤";font-size:13px}
.visit-short .calendar-visit-note span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.studio-mobile-nav,.board-client,.studio-swipe-hint{display:none}
.studio-visit-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-block:12px}
.studio-visit-people button{min-height:48px;text-align:start}
:root{
 --calendar-page:#f6f3ee;--calendar-surface:#fffdfa;--calendar-subtle:#eee8df;
 --calendar-ink:#292422;--calendar-muted:#584d45;--calendar-line:#d9cec2;
 --calendar-hour-line:#b5a595;--calendar-accent:#654632;--calendar-selected:#f0e1ce;
 --calendar-on-accent:#fffdfa;
}
@media(max-width:620px){
 body:has(.studio-calendar){background:var(--calendar-page)}
 body:has(.studio-calendar) .bar{background:var(--calendar-surface);border-color:var(--calendar-line)}
 body:has(.studio-calendar) .bar .logo{width:138px;height:38px;filter:brightness(.54) saturate(1.18)}
 body:has(.studio-calendar) .bar button{color:var(--calendar-muted)}
 body:has(.studio-calendar) .bar button[aria-current]{color:var(--calendar-accent);border-bottom-color:var(--calendar-accent)}
 body:has(.studio-calendar) .bar .demo{color:var(--calendar-muted);border-color:var(--calendar-line)}
 body:has(.studio-calendar) .footer{color:var(--calendar-muted);border-color:var(--calendar-line)}
 .studio-calendar-heading,.studio-calendar{
  color-scheme:light;--ink:var(--calendar-ink);--mute:var(--calendar-muted);
  --gold:var(--calendar-accent);--line:var(--calendar-line);color:var(--ink);
 }
 .studio-calendar-heading{display:grid;gap:8px;margin-block:12px 8px}
 .studio-calendar-heading h1{font-size:30px;margin-block:0 2px}
 .studio-calendar-heading .eyebrow{font-size:9px}
 .studio-date-tools{display:grid;grid-template-columns:42px minmax(0,1fr) 42px auto;gap:5px}
 .studio-date-tools input{width:100%;min-width:0;padding-inline:7px;font-size:14px}
 .studio-date-tools button{padding-inline:8px}
 .studio-date-tools :is(input,.outline),.studio-calendar :is(.outline,.date,select){background:var(--calendar-surface);color:var(--ink);border-color:var(--line)}
 .studio-date-tools [data-act="cal-prev-day"],.studio-date-tools [data-act="cal-next-day"]{color:var(--gold);font-size:24px;line-height:1}
 .studio-date-tools label span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .studio-mobile-nav{display:inline-flex;align-items:center;justify-content:center}
 .studio-calendar{
  --schedule-prep-bg:#f8e6af;--schedule-prep-edge:#896013;--schedule-prep-text:#4e340d;
  --schedule-session-bg:#dceaf5;--schedule-session-edge:#456b8a;--schedule-session-text:#213c53;
  --schedule-pending-bg:#f4d0df;--schedule-pending-edge:#9e476b;--schedule-pending-text:#56263c;
  --schedule-confirmed-bg:#c4e7d6;--schedule-confirmed-edge:#397b62;--schedule-confirmed-text:#173e32;
  --schedule-recovery-bg:#e8def3;--schedule-recovery-edge:#766095;--schedule-recovery-text:#49345e;
  --schedule-outside-bg:#e8e3dd;--schedule-outside-edge:#8b8075;
  padding:7px;background:var(--calendar-surface);
 }
 .studio-week .week-control{display:none}
 .studio-week .days{margin-block-end:7px}
 .studio-week .date{min-height:44px;padding:3px 1px}
 .studio-week .date span:first-child{display:block}
 .studio-week .date .calendar-day-full{display:none}
 .studio-week .date[aria-pressed="true"]{background:var(--calendar-selected);color:var(--gold);border-color:var(--gold)}
 .studio-calendar .test-note{background:var(--schedule-prep-bg);color:var(--schedule-prep-text);border-inline-start-color:var(--schedule-prep-edge)}
 .studio-booking-tools{align-items:center;gap:5px 8px}
 .studio-booking-tools .helper{display:none}
 .studio-booking-tools label{display:flex;align-items:center;gap:5px;flex:1}
 .studio-booking-tools select{min-height:44px;min-width:0;padding-inline:6px}
 .studio-booking-tools button{min-height:44px;padding-inline:10px;background:var(--gold);color:var(--calendar-on-accent);border-color:var(--gold)}
 .studio-swipe-hint{display:flex;justify-content:space-between;gap:8px;margin:6px 1px 0;font-size:11px}
 .studio-calendar .studio-board-scroll{margin-block-start:5px;max-height:68dvh;scroll-padding-block-start:52px;scroll-padding-inline-start:45px;padding:0;border:1px solid var(--line);border-radius:7px}
 .studio-calendar .studio-board{--studio-clock-width:45px;--studio-heading-height:52px;--studio-day-height:1392px;grid-template-columns:45px repeat(4,clamp(150px,46vw,216px));gap:0;width:max-content;min-width:100%}
 .studio-calendar .studio-board.studio-board-single{width:100%;grid-template-columns:45px minmax(0,1fr)}
 .studio-calendar .studio-board .board-title{column-gap:5px;padding:5px 8px;background:var(--calendar-subtle);border:0;border-block-end:1px solid var(--calendar-hour-line);border-inline-end:1px solid var(--line)}
 .studio-calendar .board-title button{display:none}
 .studio-calendar .board-title .person{gap:5px;font-size:14px;font-weight:750;color:var(--ink)}
 .studio-calendar .board-title .person img{width:22px;height:22px}
 .studio-calendar .board-title small,.studio-calendar .board-clock .board-title{font-size:10px}
 .studio-calendar .board-clock,.studio-calendar .board-clock .timeline-tick time{background:var(--calendar-subtle)}
 .studio-calendar .board-clock .board-title{padding-inline:4px}
 .studio-calendar .board-clock .timeline-tick time{font-size:11px;padding-inline:3px;color:var(--mute)}
 .studio-calendar .board-clock .timeline-tick:not(.quarter-hour) time{color:var(--ink);font-weight:800}
 .studio-calendar .studio-board .timeline{margin:9px 0 15px}
 .studio-calendar .board-person .timeline{background:var(--calendar-surface);border-inline-end:1px solid var(--line)}
 .studio-calendar .timeline-tick{border-color:var(--calendar-hour-line)}
 .studio-calendar .timeline-tick.quarter-hour{border-block-end:1px dashed var(--line)}
 .studio-calendar .timeline .window-slot{border:0;background:transparent}
 .studio-calendar .timeline .window-slot:is(:hover,:focus-visible){background:var(--calendar-selected)}
 .studio-calendar .timeline .window-slot span{color:var(--mute);font-size:11px}
 .studio-calendar .board-person .timeline-interval.outside{background:var(--schedule-outside-bg);border-color:var(--line);color:var(--mute)}
 .studio-calendar .board-person .timeline-interval.outside time{color:var(--mute)}
 .studio-calendar .board-person .timeline-interval{padding:4px 6px}
 .studio-calendar .board-person .timeline-interval.buffer{gap:4px;flex-wrap:wrap}
 .studio-calendar .board-person .timeline-interval.buffer strong{font-size:10px}
 .studio-calendar .board-person .timeline-interval.board-visit{display:block;align-content:start;overflow:hidden;line-height:1.23;inset-inline:3px;border-inline-start-width:3px;border-radius:7px}
 .studio-calendar .board-visit>time{display:block;font-size:11px;font-weight:650}
 .studio-calendar .board-client{display:block;font-size:13px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .studio-calendar .board-visit>strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;overflow-wrap:anywhere;font-size:12px}
 .studio-calendar .board-visit>.timeline-status{display:block;font-size:10px;margin-block-start:2px}
 .studio-calendar .board-visit-compact>.timeline-status{display:none}
 .studio-calendar .board-visit>.calendar-visit-note{display:block;margin-block-start:2px;font-size:11px}
 .studio-calendar .board-visit.visit-short .calendar-visit-note{position:absolute;inset-block-start:0;inset-inline-end:2px;margin:0}
 .studio-calendar .board-visit>button{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0}
 .studio-calendar .board-visit:has(>button:focus-visible){outline:2px solid var(--gold);outline-offset:-2px}
 .bar nav:has([data-view="studio"]){grid-template-columns:repeat(3,minmax(0,1fr))}
}
.calendar-actions{display:flex;flex-wrap:wrap;align-items:end;gap:8px 16px;margin:12px 0}
.calendar-actions .dialog-actions{margin:0}
.calendar-actions label{display:grid;gap:4px}
.timeline .window-slot{display:grid;place-items:center;overflow:hidden;padding:0;border:0;border-bottom:1px dashed #655341;border-radius:0;background:#31271e;color:var(--ink)}
.timeline .window-slot:hover,.timeline .window-slot:focus-visible{z-index:3;background:#59422d}
.window-slot span{visibility:hidden;font-size:11px;font-weight:700}
.window-slot:is(:hover,:focus-visible) span{visibility:visible}
#work:has(#quick-booking-form){max-width:min(405px,calc(100% - 26px))}
#quick-booking-form textarea{min-height:60px}
.timeline .calendar-confirm-mark{position:absolute;inset-block-start:4px;inset-inline-end:4px;display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#b52135;color:white;font:800 13px/1 var(--sans);pointer-events:none}
.timeline .calendar-confirmed-mark{background:#19643d}
.timeline .has-calendar-mark:not(.board-visit){padding-inline-end:27px}
.studio-calendar .board-person .timeline-interval.board-visit.has-calendar-mark{padding-inline-end:26px}
.timeline .window-slot span{visibility:visible}
.timeline .window-slot b{font-size:12px;font-weight:850}
.timeline .window-slot small{font-weight:650;font-size:10px}
.quick-duration-options [hidden]{display:none}
.studio-calendar .board-client{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.booking-patient-name{font-weight:700}
.timeline .timeline-interval.session{--schedule-bg:#dceaf5;--schedule-text:#141210}
.timeline .timeline-interval.awaiting{--schedule-bg:#f4d0df;--schedule-text:#141210}
.timeline .timeline-interval.session.confirmed{--schedule-bg:#c4e7d6;--schedule-text:#141210}
.timeline .timeline-interval:is(.session,.awaiting) > :is(strong,time),
.timeline .timeline-interval:is(.session,.awaiting) :is(.board-client b,.visit-client b){
 color:#141210;font:800 12px/1.25 system-ui,sans-serif;
}
.timeline .timeline-interval:is(.session,.awaiting)>strong{font-weight:650}
.timeline .timeline-interval:is(.session,.awaiting)>time{font-size:11px;font-weight:400}
.timeline .timeline-interval:is(.session,.awaiting) :is(.board-client b,.visit-client b){font-size:15px}
.staff-calendar .timeline-interval.outside time{color:inherit}
.staff-calendar .phone-suffix{color:#29211c;font:650 12px/1.25 system-ui,sans-serif}
.staff-client-contact{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 14px}
.staff-client-phone{color:#fff0db;white-space:nowrap;font-variant-numeric:tabular-nums}
.staff-client-phone b{font:750 1.05rem system-ui,sans-serif;letter-spacing:.06em}
.visit-detail-facts{display:grid;gap:3px}
.visit-detail-massage{color:#fff;font:650 .9em/1.35 system-ui,sans-serif}
.visit-detail-date{color:#bcdcff;font-weight:400}
.visit-detail-staff{color:#bce4c8}
#work .visit-detail-client{color:#ffda94;font-weight:800}
.client-history{margin-block:16px}
.client-history summary{font-weight:700}
.client-history summary span{display:block;color:var(--mute);font-size:.86em;font-weight:500}
.client-history ul{list-style:none;padding:0;margin:8px 0 0}
.client-history li{display:grid;gap:3px;padding-block:8px;border-top:1px solid var(--line);overflow-wrap:anywhere}
.customer-note form{margin-block-start:10px}
.client-block-footer{margin-block-start:24px;padding-block-start:16px;border-top:1px solid var(--line)}
.client-block-footer .cancel-visit{border-color:#c56e65;color:#ffc2b9}
.studio-calendar .board-person .timeline-interval.board-visit{display:block;align-content:start;overflow:hidden}
.studio-calendar .board-visit>time{display:block}
.studio-calendar .board-visit>strong{
 display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
 white-space:normal;overflow-wrap:anywhere;
}
.studio-calendar .board-visit>button{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0}
.studio-calendar .board-visit:has(>button:focus-visible){outline:2px solid var(--gold);outline-offset:-2px}
.timeline .calendar-cancelled{display:flex;align-content:start;flex-wrap:wrap;border:1px dashed #737678;border-inline-start:3px solid #737678;background:#d2d3d4;color:#303234;inset-inline-end:36%;overflow:hidden;z-index:1}
.timeline .calendar-cancelled time{color:#303234}
.timeline .calendar-cancelled>strong{flex-basis:100%;font-size:12px;font-weight:800}
.timeline .calendar-cancelled>.timeline-status{color:#303234}
.timeline .cancelled-visit-open{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0}
.timeline .calendar-cancelled:has(>button:is(:hover,:focus-visible)){outline:2px solid #55595e;outline-offset:-2px}
.timeline .window-slot.beside-cancelled{inset-inline-start:calc(var(--timeline-gutter) + (100% - var(--timeline-gutter)) * .64);padding-inline:1px}
.timeline .window-slot.beside-cancelled b{white-space:nowrap}
.calendar-cancelled-list{margin:-12px 0 14px;color:var(--mute);font-size:12px}
.calendar-cancelled-list ul{margin:4px 0;padding-inline-start:16px}
.calendar-cancelled-list .text-button{text-align:start;color:inherit}
.quick-booking-time{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.quick-booking-time select{min-width:0;width:100%;min-height:44px}
.detail-form .booking-start-fields{min-inline-size:0;margin:0}
.booking-start-fields legend{font-weight:750}
.detail-form .quick-durations{padding:8px 10px 10px}
.quick-duration-options{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}
.quick-duration-options button{flex:1 0 auto;min-height:40px;padding:5px 8px;white-space:nowrap}
.quick-duration-options button[aria-pressed="true"]{background:#e4c191;border-color:#e4c191;color:#211a15;font-weight:700}
.quick-durations input{width:8ch}
.booking-gateway{display:grid;gap:4px;margin-bottom:12px}
.booking-gateway label{display:grid;gap:4px}
.bar-inner:has(>form[action="/logout"])>.demo{display:none}
@media(max-width:1050px){.team-hours-scroll-hint{display:block;margin-top:5px}}
@media(max-width:550px){
 .team-hours-scroll th:first-child{width:78px}
 .team-hours-nav{flex-wrap:wrap}
 .team-hours-footer .primary{width:100%;min-height:44px}
 .team-shift-times select,.team-shift-off{min-height:44px}
}

.envelope-calculator{margin-block:24px 8px;padding:clamp(12px,2.4vw,24px);border:1px solid var(--line);border-radius:6px;background:var(--bg);scroll-margin-top:90px}
.envelope-calculator h3,.envelope-calculator h4{margin:0}
.envelope-calculator>p{max-width:66ch}
.calc-layout{display:grid;grid-template-columns:minmax(0,21rem) minmax(0,1fr);align-items:start;gap:clamp(16px,3vw,36px);margin-top:14px}
.calc-layout>*{min-width:0}
.calc-layout .detail-form{gap:10px}
.calc-layout .detail-form input[type=number]{max-width:14rem}
.calc-layout .detail-form p:empty,.calc-layout [data-calc-status]:empty,.calc-layout [data-calc-open][hidden]{display:none}
.calc-result{min-width:0;padding:clamp(10px,2vw,18px);background:#211a14;border:1px solid var(--line);border-radius:6px}
.calc-result h4{font:600 1rem var(--sans);color:var(--gold)}
.calc-result .calc-stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,132px),1fr))}
.calc-items{list-style:none;margin:12px 0 18px;padding:0}
.calc-items li{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;padding-block:10px;border-top:1px solid var(--line)}
.calc-items li div{min-width:0;overflow-wrap:anywhere}
.calc-items li small{display:block;color:var(--mute);margin-top:3px}
#koperty{scroll-margin-top:90px}
@media(max-width:720px){.calc-layout{grid-template-columns:minmax(0,1fr)}}
.calc-date{display:grid;gap:5px;width:min(100%,15rem);margin-block:12px}
.calc-layout [data-calc-save-wage][hidden]{display:none}
.calc-week{margin-block-start:16px}
.calc-week-head .helper{margin-block:4px 12px}
.calc-week-days{list-style:none;padding:0;margin:0}
.calc-week-days li{display:grid;grid-template-columns:minmax(7.5rem,auto) minmax(0,1fr);align-items:center;gap:8px 12px;padding-block:6px;border-top:1px solid var(--line)}
.calc-week-days button{justify-self:start}
.calc-week-days button[aria-current=date]{border-color:var(--gold);color:var(--gold);background:#2d2319}
.calc-filters{display:flex;align-items:end;flex-wrap:wrap;gap:0 16px}
.calc-layout [data-calc-performer][hidden],.calc-layout [data-calc-names][hidden]{display:none}
.calc-week-head .dialog-actions{margin-bottom:12px}
.massage-picker{min-width:0}
.massage-picker>p{margin:0 0 6px}
.massage-picker details{margin:0;border:1px solid var(--line);border-radius:5px;background:#191410}
.massage-picker summary{min-height:44px;padding:10px 12px;color:var(--ink);overflow-wrap:anywhere}
.massage-picker summary::marker{color:var(--gold)}
.massage-picker-options{max-height:min(340px,50dvh);overflow:auto;border-top:1px solid var(--line)}
.massage-picker-group h3{margin:0;padding:9px 12px;color:var(--gold);font:600 13px var(--sans);background:#2b2219}
.massage-picker-group ul{margin:0;padding:0;list-style:none}
.massage-option{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:2px 10px;border-bottom:1px solid var(--line)}
.massage-option button{min-height:44px}
.massage-option-name{padding:8px 2px;text-align:left;white-space:normal;overflow-wrap:anywhere;background:none;border:0}
.massage-option-name:hover,.massage-option-name[aria-pressed="true"]{color:var(--gold)}
.massage-option-providers{display:flex;flex-wrap:wrap;gap:5px 12px;margin-top:6px}
.massage-option-providers .person{color:var(--booking-gold-ink,var(--gold));font-size:13px;font-weight:750}
.dewi-booking-light .massage-option-name[aria-pressed=true] .person{color:inherit}
.booking-description{max-width:58ch;line-height:1.6;margin-block:12px 20px}
.massage-description-content>.booking-description{margin-block-end:4px}
.massage-description-more>summary{color:var(--gold);width:fit-content;padding-block:11px;line-height:22px}
.massage-description-actions{margin-block-start:16px;padding-block-start:16px;border-block-start:1px solid var(--line)}
.massage-description-more:not([open]) summary span+span,
.massage-description-more[open] summary span:first-child,
.massage-description-content:has(.massage-description-more[open])>.booking-description{display:none}
.massage-description-more .booking-description h3{margin-block:18px 6px}
#work:has(.massage-description-content){overflow:auto}

.staff-calendar .date{min-height:44px}
.staff-calendar .date strong{display:block;font-size:clamp(.72rem,1.7vw,.95rem);font-variant-numeric:tabular-nums;white-space:nowrap}
.envelope-owner-week{margin-block:24px}
.envelope-owner-week .helper,.envelope-calculator>.helper{font-size:.875rem;line-height:1.5}
.envelope-week{border:1px solid var(--line);border-radius:6px}
.envelope-week>.ledger-scroll,.envelope-week>.envelope-closing{margin:8px}
.envelope-week .ledger-scroll td,.envelope-calculator dd{font-variant-numeric:tabular-nums}
.calc-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.calc-layout h4,.calc-week>summary{font:600 1rem/1.3 var(--sans);color:var(--gold)}
.calc-amounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.calc-layout .detail-form input[type=number]{max-width:none}
.calc-other-payments{padding:8px 10px;border:1px solid var(--line);border-radius:5px;margin-top:0}
.calc-other-payments summary{padding-block:5px;line-height:1.45}
.calc-other-payments .calc-amounts{margin-block-start:8px}
.calc-item-actions{display:flex;flex-wrap:wrap;gap:6px}
.calc-item-actions button,.calc-layout .dialog-actions button{min-height:44px}
[data-calc-edit-cancel][hidden]{display:none}
.calc-week>summary{padding-block:6px}
.calc-week [data-calc-week]{margin-block-start:12px}
@media(max-width:720px){
 .calc-layout{grid-template-columns:minmax(0,1fr)}
 .envelope-calculator :is(input,select){font-size:1rem}
}
@media(max-width:430px){.calc-amounts{grid-template-columns:minmax(0,1fr)}}

.staff-account-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.staff-account-tools a,.staff-account-tools button{display:inline-flex;align-items:center;min-height:44px;padding:6px 9px;font-size:.875rem;line-height:1.25}
.staff-account-tools a{color:var(--gold);text-underline-offset:.2em}
@media(max-width:550px){html[data-staff-preview] .bar-inner{grid-template-columns:minmax(100px,1fr) auto}html[data-staff-preview] .bar .demo{display:none}.staff-account-tools{gap:2px}.staff-account-tools a,.staff-account-tools button{font-size:.75rem;padding-inline:6px}}

/* The staff calendar uses the owner's light palette without the owner's controls. */
body:has(.staff-calendar){
 color-scheme:light;
 --bg:var(--calendar-page);--panel:var(--calendar-surface);--ink:var(--calendar-ink);
 --mute:var(--calendar-muted);--gold:var(--calendar-accent);--line:var(--calendar-line);
 --schedule-prep-bg:#f8e6af;--schedule-prep-edge:#896013;--schedule-prep-text:#4e340d;
 --schedule-session-bg:#dceaf5;--schedule-session-edge:#456b8a;--schedule-session-text:#213c53;
 --schedule-pending-bg:#f4d0df;--schedule-pending-edge:#9e476b;--schedule-pending-text:#56263c;
 --schedule-confirmed-bg:#c4e7d6;--schedule-confirmed-edge:#397b62;--schedule-confirmed-text:#173e32;
 --schedule-recovery-bg:#e8def3;--schedule-recovery-edge:#766095;--schedule-recovery-text:#49345e;
 background:var(--bg);
}
body:has(.staff-calendar) :is(.bar,.panel,dialog){
 background:var(--panel);border-color:var(--line);
}
body:has(.staff-calendar) .bar .logo{filter:brightness(.54) saturate(1.18)}
body:has(.staff-calendar) :is(.outline,.date,.segments button,input,select,.detail-form textarea[data-note]){
 background:var(--panel);color:var(--ink);border-color:var(--calendar-hour-line);
}
body:has(.staff-calendar) :is(.outline,.date,.segments button):hover:not(:disabled),
body:has(.staff-calendar) :is(.date,.segments button)[aria-pressed="true"]{
 background:var(--calendar-selected);color:var(--gold);border-color:var(--gold);
}
body:has(.staff-calendar) :is(button,input,select):focus-visible{outline-color:var(--gold)}
body:has(.staff-calendar) :is(.staff-work-week li,.empty,.message-preview,.payment-box,.visit-payment){
 background:var(--calendar-subtle);
}
body:has(.staff-calendar) .test-note{
 background:var(--schedule-prep-bg);color:var(--schedule-prep-text);border-inline-start-color:var(--schedule-prep-edge);
}
body:has(.staff-calendar) .form-error{color:#9c243b}
.staff-calendar .timeline-tick{border-color:var(--calendar-hour-line)}
.staff-calendar .timeline-tick.quarter-hour{border-color:var(--line)}
.staff-calendar .timeline-tick time{background:var(--panel)}
.staff-calendar .timeline-interval.outside{
 background:repeating-linear-gradient(140deg,var(--calendar-subtle) 0 5px,var(--bg) 5px 10px);
 border-color:var(--line);color:var(--mute);
}
.staff-calendar .timeline .window-slot{background:var(--panel);border-color:var(--line)}
.staff-calendar .timeline .window-slot:is(:hover,:focus-visible){background:var(--calendar-selected)}
.staff-calendar .timeline .timeline-interval:is(.session,.awaiting){z-index:4}
.staff-calendar .staff-quick-hint{margin-block:10px 0}
@media(max-width:620px){
 .staff-calendar .timeline{height:1200px}
}
.staff-calendar .timeline-interval [data-act="staff-details"].outline{
 padding:4px 7px;background:var(--panel);color:var(--ink);
 border-color:var(--calendar-hour-line);font-weight:750;white-space:nowrap;
}
body:has(.staff-calendar) #work .confirmation-details:not(.confirmation-details-pending){
 background:var(--calendar-subtle);border-inline-start-color:var(--schedule-confirmed-edge);color:var(--ink);
}
body:has(.staff-calendar) #work :is(.visit-detail-client,.staff-client-phone,.visit-payment dt){color:var(--gold)}
body:has(.staff-calendar) #work .visit-detail-massage{color:var(--ink)}
body:has(.staff-calendar) #work .visit-detail-date{color:var(--schedule-session-text)}
body:has(.staff-calendar) #work .visit-detail-staff{color:var(--schedule-confirmed-text)}
.detail-form .booking-key-field,.quick-visit-date strong{font-weight:800}
.quick-visit-date{color:var(--ink);font-size:1rem}
.booking-key-field :is(input,select,textarea){font-weight:450}

#work:has([data-visit-details]){
 color-scheme:light;--ink:var(--calendar-ink);--mute:var(--calendar-muted);
 --gold:var(--calendar-accent);--line:var(--calendar-line);
 background:var(--calendar-surface);border-color:var(--line);
}
#work:has([data-visit-details]) :is(.outline,input,select,.detail-form textarea[data-note]){
 background:var(--calendar-surface);color:var(--ink);border-color:var(--calendar-hour-line);
}
#work:has([data-visit-details]) :is(.visit-payment,.message-preview,.test-note){
 background:var(--calendar-subtle);color:var(--ink);
}
#work:has([data-visit-details]) :is(.visit-detail-client,.visit-detail-massage,.visit-payment dt){color:var(--ink)}
#work:has([data-visit-details]) .visit-detail-date{color:#213c53}
#work:has([data-visit-details]) .visit-detail-staff{color:#173e32}
#work:has([data-visit-details]) .form-error{color:#9c243b}
#work:has([data-visit-details]) :is(button,input,select):focus-visible{outline-color:var(--gold)}
#work:has([data-visit-details]) .outline.cancel-visit{color:#9c243b;border-color:#ae5d55}
#work:has([data-visit-details]) .outline.cancel-visit:hover{background:#fae4e1}
#app :is([data-act="details"],[data-act="staff-details"]).outline{
 background:var(--calendar-surface);color:var(--calendar-ink);border-color:var(--calendar-hour-line);
}
#app :is([data-act="details"],[data-act="staff-details"]).outline:is(:hover,:focus-visible){
 background:var(--calendar-selected);color:var(--calendar-ink);border-color:var(--calendar-accent);
}
.customer-note-mark{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;margin-inline-start:6px;vertical-align:middle;color:#254b57;background:#f9fcfd;border:1px solid #6f8991;border-radius:4px}
.timeline .customer-note-mark{width:16px;height:16px}
.owner-client-details{margin-block:14px;padding:12px 14px;border:1px solid var(--line);border-radius:8px}
.owner-client-details h3{margin:0 0 8px;color:var(--gold);font:700 .95rem/1.3 system-ui,sans-serif}
.owner-client-details dl{display:grid;gap:6px;margin:0}
.owner-client-details dl div{display:grid;grid-template-columns:minmax(0,8rem) minmax(0,1fr);gap:4px 10px}
.owner-client-details dt{color:var(--mute)}
.owner-client-details dd{margin:0;overflow-wrap:anywhere}
.owner-client-details a{color:inherit;text-underline-offset:3px}
@media(max-width:380px){.owner-client-details dl div{grid-template-columns:1fr}}
.studio-calendar .board-person .timeline-interval.shift-off,
.staff-calendar .timeline .timeline-interval.shift-off{
 background:repeating-linear-gradient(135deg,#d5d7d9 0 7px,#bfc3c7 7px 9px);
 border-color:#989ea4;color:#30363c;
}
.studio-calendar .board-person .timeline-interval.shift-off time,
.staff-calendar .timeline .timeline-interval.shift-off time{color:inherit}
.staff-calendar .staff-visit-clickable [data-act="staff-details"]{cursor:pointer}
.staff-calendar .staff-visit-clickable [data-act="staff-details"]::before{content:"";position:absolute;inset:0;z-index:1}
.staff-calendar .staff-visit-clickable:has([data-act="staff-details"]:is(:hover,:focus-visible)){outline:2px solid var(--calendar-accent);outline-offset:-2px}
#work .modal-close{z-index:2}
#work .modal-close button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #775f3f;border-radius:9px;background:#f6e3c2;color:#2e2116;font:700 27px/1 system-ui,sans-serif;cursor:pointer}
#work .modal-close button:hover{background:#ffefd6;border-color:#4d3924}
#work .modal-close button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
#work > .modal-close + :is(.eyebrow,h2,.confirmation-details){padding-inline-end:46px;min-block-size:24px}
.staff-remove-manual{margin-block-start:18px;padding-block-start:12px;border-top:1px solid var(--line)}
.staff-remove-manual summary{color:#9c243b;font-weight:700}
.staff-remove-manual[open] summary{margin-block-end:8px}
.staff-release-feedback{margin:10px 0;padding:9px 12px;border-inline-start:3px solid #28724b;background:#e0f1e7;color:#143c27}
.visit-voucher-code{margin-block:12px;padding:11px 13px;border:1px solid var(--line);border-radius:8px}
.visit-voucher-code div{margin-block-start:4px}
.visit-voucher-code b{display:inline-block;margin-inline-start:4px;color:inherit;font-family:ui-monospace,monospace;letter-spacing:.04em;overflow-wrap:anywhere}
.manual-massage-picker{margin:0;border:1px solid var(--line);border-radius:7px}
.manual-massage-picker summary{padding:10px 12px}
.manual-massage-picker summary strong{overflow-wrap:anywhere}
.manual-massage-picker summary span{display:inline-block;margin-inline-start:8px;text-decoration:underline;text-underline-offset:3px;font-size:.88em;font-weight:500}
.manual-massage-fields{display:grid;gap:10px;padding:0 12px 12px}
.quick-booking-end{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-inline-start:2px solid var(--gold)}
.quick-booking-end output{font-weight:800;font-variant-numeric:tabular-nums;color:var(--ink)}
.studio-period-filter{margin-block:0 9px}
.studio-month-days .date{min-height:42px}
.studio-month-days .studio-month-weekday{text-align:center;font-size:12px;color:var(--mute)}
:is(.studio-week,.staff-week) .date.has-pending{position:relative;padding-inline-end:19px}
:is(.studio-week,.staff-week) .date .studio-day-alert{display:grid;place-items:center;position:absolute;inset-block-start:3px;inset-inline-end:3px;min-width:16px;height:16px;padding:0 3px;border-radius:20px;background:#a5283c;color:#fff;font-size:10px;font-weight:800}
.studio-day-queue .confirmation-queue{padding:12px 14px;margin:4px 0 10px;background:transparent}

.staff-week .calendar-day-full{display:none}
@media(max-width:460px){:is(.studio-week,.staff-week) .date.has-pending{padding-inline-end:12px} :is(.studio-week,.staff-week) .date .studio-day-alert{inset-inline-end:1px;min-width:13px;height:13px;font-size:9px}}
.booking-calendar{min-width:0}
.booking-calendar-days{margin:12px 0 6px}
.booking-calendar-days .date,.booking-calendar .week-control button{min-height:44px}
.booking-calendar .week-control button{min-width:44px}
.booking-calendar-scroll{position:relative;max-height:min(480px,65svh);overflow:auto;border:1px solid #62503c;border-radius:7px;background:#211a14}
.booking-calendar-scroll table{width:100%;min-width:652px;table-layout:fixed;border-collapse:separate;border-spacing:0;text-align:center}
.booking-calendar-scroll th,.booking-calendar-scroll td{border-right:1px solid #473728;border-bottom:1px solid #473728}
.booking-calendar-scroll tr>:last-child{border-right:0}
.booking-calendar-scroll thead th{position:sticky;top:0;z-index:2;background:#3b2b1f;padding:9px 3px;color:#f6dfb9;font-size:12px}
.booking-calendar-scroll thead th.calendar-selected-day{background:#59402a}
.booking-calendar-scroll thead small{display:block;margin-top:2px;color:#dfc8a8;font-weight:400}
.booking-calendar-scroll tr>:first-child{width:52px;position:sticky;left:0}
.booking-calendar-scroll thead tr>:first-child{z-index:3}
.booking-calendar-scroll tbody th{z-index:1;background:#30241a;color:#e0c199;font-size:11px;font-variant-numeric:tabular-nums}
.booking-calendar-scroll td{padding:3px}
.booking-calendar-scroll .booking-calendar-hour>*{border-top:1px solid #786043}
.booking-calendar-unavailable{color:#a38768;background:#241e18}
.booking-calendar-scroll .slot{display:grid;justify-items:center;align-content:center;gap:2px;width:100%;min-height:44px;border-radius:4px;padding:4px 2px;text-align:center;background:#3c3022;border-color:#7b6447;color:#fff1d4}
.booking-calendar-scroll .slot:hover,.booking-calendar-scroll .slot[aria-pressed=true]{background:#62492f;border-color:#dfbd88}
.booking-calendar-scroll .slot:focus-visible{outline-offset:-3px}
.booking-calendar-scroll .slot strong{font-size:13px;line-height:1.15}
.booking-calendar-scroll .slot small{font-size:10px;line-height:1.18;overflow-wrap:anywhere}
.booking-calendar-actions{display:flex;flex-wrap:wrap;align-items:start;gap:8px 14px;margin-top:12px}
.booking-calendar-actions details{flex:1 1 260px;min-width:0}
.booking-calendar-actions form{margin-top:8px}
.booking-calendar-swipe{display:none}
@media(max-width:1200px){.booking-calendar-swipe{display:block}}

/* Jasny widok klienta; grafik zespołu zachowuje własną oprawę. */
.dewi-booking-light{color-scheme:light;--bg:#f7f3ed;--panel:#fffdf9;--ink:#30231b;--mute:#605148;--gold:#785135;--line:#ddcdbb;background:var(--bg)}
.dewi-booking-light .bar{background:#2a2018;color:#f8ebd7;border-color:#2a2018}
.dewi-booking-light .bar :is(.outline,.demo){background:transparent;color:#f9ebd6;border-color:#947652}
.dewi-booking-light .hero{min-height:0;padding:clamp(20px,4vw,48px);border-radius:16px;background:#f2e6d6}
.dewi-booking-light .hero::before,.dewi-booking-light .hero .signature{display:none}
.dewi-booking-light .hero h1{font-size:clamp(43px,7vw,84px);margin:6px 0 10px}
.dewi-booking-light .hero p:not(.eyebrow){color:var(--mute);max-width:55ch}
.dewi-booking-light .panel{background:var(--panel);border-radius:12px;box-shadow:0 3px 12px #573a2010}
.dewi-booking-light :is(.segments button,.outline,.date,.slot,.massage-picker details,.empty,select,input,textarea){background:#fffdf9;color:var(--ink);border-color:#bda68e}
.dewi-booking-light :is(.segments button,.date,.slot,.outline)[aria-pressed=true]{background:#f0e1ce;color:#432a1b;box-shadow:none;border-color:#886043}
.dewi-booking-light :is(.segments button,.date,.outline):hover:not(:disabled){background:#f6eadb;color:#432a1b}
.dewi-booking-light .primary,.dewi-booking-light .primary:hover:not(:disabled){background:#62412b;color:#fffaf2;border-color:#62412b}
.dewi-booking-light .primary:hover:not(:disabled){background:#50341f}
.dewi-booking-light :is(button,a,summary,input,select,textarea):focus-visible{outline:2px solid #95613d;outline-offset:3px}
.dewi-booking-light .booking-calendar-scroll{background:#fffdfa;border-color:#ccbaa3}
.dewi-booking-light .booking-calendar-scroll :is(th,td){border-color:#e6d9c9}
.dewi-booking-light .booking-calendar-scroll thead th,.dewi-booking-light .booking-calendar-scroll tbody th{background:#eee1d1;color:#4f3727}
.dewi-booking-light .booking-calendar-scroll thead small{color:#61483a}
.dewi-booking-light .booking-calendar-scroll thead th.calendar-selected-day{background:#e5ceb5}
.dewi-booking-light .booking-calendar-scroll .slot{background:#fbf2e5;color:#422c1e;border-color:#c6a788}
.dewi-booking-light .booking-calendar-scroll .slot:hover,.dewi-booking-light .booking-calendar-scroll .slot[aria-pressed=true]{background:#efddc6;color:#352216;border-color:#886043}
.dewi-booking-light .booking-calendar-scroll .slot small{color:#674e3c}
.dewi-booking-light .booking-calendar-unavailable{background:#f6f1ea;color:#66564c}
.dewi-booking-light .massage-picker-group h3,.dewi-booking-light .massage-option:hover{background:#f1e5d6;color:#4d3424}
.dewi-booking-light :is(#work,#done){background:#fffdf9;color:var(--ink);border:1px solid #b99a7e;border-radius:13px;box-shadow:0 22px 70px #33211333}
.dewi-booking-light :is(#work,#done)::backdrop{background:#3e2c2266}
.dewi-booking-light :is(.test-note,.message-preview,.payment-box,.booking-payment,.confirmation-details,.visit-facts){background:#f6ede0;color:var(--ink);border-color:#ddc7af}
.dewi-booking-light .detail-form .payment-choice:has(:checked){background:#f3e6d6;border-color:#896044}
.dewi-booking-light .form-error{color:#952835}
.dewi-booking-light .booking-time-confirm p,.dewi-booking-light .payment-box small{color:var(--mute)}
.booking-provider summary{font-weight:750;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:6px}
.booking-provider summary span{font-size:12px;text-decoration:underline}
.booking-provider .people-picker{margin-top:10px}
.booking-first-slot{min-height:44px;font-weight:750}
.booking-mobile-times{display:none}
.booking-identity-actions{display:grid;gap:8px}
.booking-identity-actions p{margin:0 0 4px;font-size:13px}
.booking-identity-actions :is(button,a){min-height:44px;justify-content:center;text-align:center}
.booking-wait-clock{display:block;width:39px;height:39px;margin-top:12px;border:2px solid #9a6a46;border-radius:50%;position:relative;color:#795032}
.booking-wait-clock::before,.booking-wait-clock::after{content:"";width:2px;height:11px;border-radius:2px;background:currentColor;position:absolute;left:calc(50% - 1px);bottom:50%;transform-origin:50% 100%}
.booking-wait-clock::after{transform:rotate(105deg);height:13px;animation:booking-clock 8s steps(12,end) infinite}
@keyframes booking-clock{to{transform:rotate(465deg)}}
@media(prefers-reduced-motion:reduce){.booking-wait-clock::after{animation:none}}
@media(max-width:740px){
 .dewi-booking-light .hero{padding:17px 18px}
 .booking-calendar .booking-calendar-scroll,.booking-calendar .booking-calendar-swipe{display:none}
 .booking-mobile-times{display:grid;gap:12px}
 .booking-mobile-date{font-size:14px;font-weight:750;margin-top:8px;color:var(--ink)}
 .booking-time-group[open]>div:first-of-type{grid-template-columns:repeat(3,minmax(0,1fr))}
 .booking-time-group button{min-width:0;min-height:46px;padding:4px 2px}
 .booking-time-group strong,.booking-time-group small{display:block;line-height:1.2}
 .booking-time-group small{font-size:10px;overflow-wrap:anywhere}
 .dewi-booking-light .summary{position:static}
}

.booking-day-provider{padding:5px 11px;border:1px solid #d8bfa4;border-radius:20px;background:#f3e7d8;color:#573b28;font-weight:750}
.booking-date-tools{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 10px}
.booking-day-switch{display:grid;grid-template-columns:44px minmax(78px,auto) 44px;gap:5px}
.booking-day-switch button{font-size:24px;line-height:1;min-height:48px;padding:0}
.booking-day-switch time{display:grid;justify-items:center;align-content:center;line-height:1.25;border:1px solid var(--line);border-radius:7px;background:var(--panel);padding:4px 11px;color:var(--ink)}
.booking-day-switch time strong::first-letter{text-transform:uppercase}
.booking-day-switch time span{color:var(--mute);font-size:12px}
.booking-date-picker{margin:0}
.booking-date-picker summary{display:flex;align-items:center;gap:7px;min-height:48px;padding:6px 10px 6px 12px;border:1px solid var(--booking-control-edge);border-radius:7px;background:var(--panel);font-weight:700}
.booking-date-picker summary::-webkit-details-marker{display:none}
.booking-date-picker[open] summary{border-color:var(--gold)}
.booking-picker-panel{
  position:absolute;z-index:5;inset-block-start:calc(100% + 7px);inset-inline-start:0;
  width:min(100%,24rem);display:grid;grid-template-columns:repeat(auto-fit,minmax(40px,1fr));gap:4px;
  padding:8px;border:1px solid var(--booking-control-edge);border-radius:14px;background:var(--panel);box-shadow:0 12px 24px #0004
}
.booking-picker-day{
  display:grid;justify-items:center;align-content:center;gap:1px;min-height:62px;
  padding:3px;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--ink);line-height:1.15
}
.booking-picker-day :is(span,small){font-size:11px}
.booking-picker-day strong{font-size:18px;font-variant-numeric:tabular-nums}
.booking-picker-day[aria-pressed=true]{background:var(--booking-primary-gradient);border-color:var(--gold);color:#fff}
.dewi-booking-dark .booking-date-picker summary,.dewi-booking-dark .booking-picker-panel{background:#101010;color:#faf7ef}
@media (hover:hover){
  .booking-picker-day:hover:not([aria-pressed=true]),.booking-date-picker summary:hover{background:var(--booking-control-hover);border-color:var(--gold)}
}
.booking-day-times{display:grid;gap:14px;margin-top:13px}
.booking-time-group summary{font:750 13px var(--sans);padding-block:8px;color:var(--mute);cursor:pointer}
.booking-time-group[open]>div:first-of-type{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,110px),1fr));gap:6px}
.booking-time-group button{min-width:0;min-height:46px;padding:5px 4px}
.booking-time-group strong,.booking-time-group small{display:block;line-height:1.2}
.booking-time-group small{font-size:11px;overflow-wrap:anywhere}
.booking-day-selection{margin-top:12px;border-radius:7px;border:1px solid #bc9a73;background:#f2e3ce;padding:9px 12px;color:#51341e}
.booking-exact-time form{margin-top:8px}

.dewi-booking-light{--bg:#f2f1ed;--panel:#fff;--ink:#241d18;--mute:#534841;--line:#c9bcb1}
.dewi-booking-light .hero{background:#fffaf2;border-left:4px solid #875b39}
.dewi-booking-light .booking-day-provider{background:#30251e;color:#fff7eb;border-color:#30251e}
.dewi-booking-light .booking-first-slot{background:#62412b;color:#fff9f1;border-color:#62412b}
.dewi-booking-light .booking-first-slot:hover:not(:disabled){background:#4e3322;color:#fff9f1}
.dewi-booking-light .booking-time-group button{background:#fff;border-color:#ae9b87}
.dewi-booking-light .booking-time-group button[aria-pressed=true],.dewi-booking-light .booking-day-selection{background:#e7efe8;color:#203d2c;border-color:#658872}
.dewi-booking-light .booking-time-group button:hover{border-color:#62412b}
.dewi-booking-light .booking-time-group strong{font-size:16px}
.dewi-booking-light .booking-payment-choices legend{color:#33221a;font-size:17px;font-weight:800;padding-inline:4px}
.dewi-booking-light .detail-form .payment-choice{background:#fff;border-color:#a9917c;padding:12px 10px}
.dewi-booking-light .detail-form .payment-choice:has(:checked){background:#e7efe8;border-color:#658872}
.dewi-booking-light .detail-form .payment-choice input{accent-color:#345840}

.dewi-booking-light button.booking-first-slot{background:#62412b;color:#fff9f1;border-color:#62412b}
.dewi-booking-light .visit-detail-massage{color:#2f231b}
.dewi-booking-light .visit-detail-date{color:#4b453f}
.dewi-booking-light .visit-detail-staff{color:#30553e;font-weight:750}
.dewi-booking-light .booking-calendar a{color:#62412b;text-underline-offset:3px}
.dewi-booking-light .booking-identity-actions .text-button{color:#62412b;text-decoration:underline;text-underline-offset:3px}
.dewi-booking-light .booking-identity-actions .text-button:hover{background:#f7ede0}

.dewi-booking-light .booking-schedule-note{margin-top:12px;padding:10px 12px;border-inline-start:3px solid #875b39;background:#f7f0e6;color:#493b31;font-size:13px}
.dewi-booking-light .booking-checkout-visit{margin:12px 0 18px;padding:10px 12px;border:1px solid #d5c7b8;border-radius:8px;background:#f8f3ec;display:grid;gap:8px}
.booking-checkout-visit div{display:grid;grid-template-columns:minmax(5.5rem,1fr) minmax(0,2.4fr);gap:10px;align-items:baseline}
.booking-checkout-visit dt{color:var(--mute);font-size:12px}
.booking-checkout-visit dd{margin:0;color:var(--ink);font-weight:700;line-height:1.35;overflow-wrap:anywhere}

/* Jednoznaczny wybór: głęboka zieleń oznacza aktywną opcję. */
.dewi-booking-light{
 --bg:#f7f1ea;--panel:#fff;--ink:#2a1b14;--mute:#534238;--line:#d9c5b4;
 --booking-selected:#14543d;--booking-on-selected:#fff;
 --booking-control-edge:#7a897f;--booking-control-hover:#e8f3eb;
 --booking-warm-surface:#faecde;--booking-warm-edge:#b97750;
}
.dewi-booking-light .hero{background:linear-gradient(105deg,var(--panel),var(--booking-warm-surface));border-left-color:var(--booking-warm-edge)}
.dewi-booking-light .panel{box-shadow:0 4px 12px #44251614}
.dewi-booking-light .step > span{color:var(--booking-next)}
.dewi-booking-light .booking-audience .step{margin-bottom:16px}
.dewi-booking-light .booking-audience .segments{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:0}
.dewi-booking-light .booking-audience .segments button{
 display:flex;align-items:center;justify-content:space-between;gap:5px;
 min-width:0;min-height:58px;padding:11px clamp(6px,1.3vw,16px);border:1px solid var(--booking-control-edge);border-radius:8px;
 background:var(--panel);color:var(--ink);font-weight:800;font-size:clamp(13px,2vw,16px);line-height:1.15;text-align:left
}
.booking-audience-mark{display:grid;place-items:center;flex:0 0 16px;width:16px;height:16px;border:1px solid var(--booking-control-edge);border-radius:50%;font:800 11px/1 system-ui}
.dewi-booking-light .booking-audience .segments button:hover:not([aria-pressed=true]){background:var(--booking-control-hover);border-color:var(--booking-selected)}
.dewi-booking-light .booking-audience .segments button[aria-pressed=true],
.dewi-booking-light .booking-day-times button[aria-pressed=true],
.dewi-booking-light .booking-provider .people-picker button[aria-pressed=true],
.dewi-booking-light .kind-picker button[aria-pressed=true]{
 background:var(--booking-selected);border-color:var(--booking-selected);color:var(--booking-on-selected)
}
.dewi-booking-light .booking-audience button[aria-pressed=true] .booking-audience-mark{background:var(--booking-on-selected);border-color:var(--booking-on-selected);color:var(--booking-selected)}
.dewi-booking-light .booking-provider .people-picker button[aria-pressed=true] .person{color:var(--booking-on-selected)}
.dewi-booking-light .booking-day-times button:not([aria-pressed=true]){border-color:var(--booking-control-edge)}
.dewi-booking-light .booking-day-times button:not([aria-pressed=true]):hover{background:var(--booking-control-hover);border-color:var(--booking-selected)}
.dewi-booking-light .booking-day-selection{background:var(--booking-control-hover);border-color:var(--booking-selected);border-inline-start-width:4px;color:var(--booking-selected)}
.dewi-booking-light :is(#work,#done){background:var(--panel);border-color:var(--booking-control-edge)}
.dewi-booking-light .detail-form .payment-choice{border-color:var(--booking-control-edge)}
.dewi-booking-light .detail-form .payment-choice:has(:checked){background:var(--booking-control-hover);border-color:var(--booking-selected);box-shadow:inset 3px 0 var(--booking-selected)}
.dewi-booking-light .detail-form .payment-choice input{accent-color:var(--booking-selected)}
@media(max-width:370px){
 .dewi-booking-light .booking-audience .segments{gap:5px}
 .dewi-booking-light .booking-audience .segments button{gap:3px;padding-inline:5px}
 .booking-audience-mark{flex-basis:13px;width:13px;height:13px;font-size:9px}
}

.dewi-booking-light .bar{background:var(--panel);color:var(--ink);border-color:var(--line)}
.dewi-booking-light .bar .logo{filter:brightness(.48) saturate(1.15)}
.dewi-booking-light .bar :is(.outline,.demo){background:var(--panel);color:var(--ink);border-color:var(--booking-control-edge)}
.dewi-booking-light :is(#work,#done)::backdrop{background:#23352a45}
.dewi-booking-light .booking-time-group strong{font-size:19px;font-weight:850;font-variant-numeric:tabular-nums}
.booking-day-selection{display:grid;grid-template-columns:1fr auto;align-items:center;gap:0 10px}
.booking-day-selection strong{font-size:19px;font-weight:850;font-variant-numeric:tabular-nums}
.booking-day-selection small{grid-column:1/-1;font-weight:700}
.dewi-booking-light .booking-checkout-visit{padding:0;overflow:hidden;border-color:var(--booking-control-edge);background:var(--panel);gap:0}
.booking-checkout-visit .booking-time-highlight{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:3px 9px;padding:9px 12px;background:var(--booking-selected);color:var(--booking-on-selected)}
.booking-time-highlight span{font-size:13px;font-weight:750}
.booking-time-highlight strong{font-size:clamp(21px,5vw,28px);font-weight:850;line-height:1.1;font-variant-numeric:tabular-nums}
.booking-checkout-visit dl{margin:0;padding:10px 12px;display:grid;gap:7px}
.dewi-booking-light .booking-confirmation-notice{border-inline-start:3px solid var(--booking-selected);background:var(--booking-control-hover);color:var(--ink);padding:10px 12px}
.dewi-booking-light .booking-fixed-provider{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;padding:7px 12px;border-radius:7px;border:1px solid var(--booking-selected);background:var(--booking-control-hover);color:var(--booking-selected);font-size:12px}
.dewi-booking-light .booking-fixed-provider .person{color:var(--booking-selected);font-size:15px;font-weight:800}

.dewi-booking-light{--booking-next:#9b421e;--booking-next-hover:#753118}
.dewi-booking-light :is(.primary,button.booking-first-slot){
 background:var(--booking-next);border-color:var(--booking-next);color:#fff
}
.dewi-booking-light :is(.primary,button.booking-first-slot):hover:not(:disabled){
 background:var(--booking-next-hover);border-color:var(--booking-next-hover);color:#fff
}
.dewi-booking-light .booking-continue{display:block;width:100%;min-height:48px;margin-top:9px;font-size:14px}
.dewi-booking-light .workspace,.dewi-booking-dark .workspace{grid-template-columns:minmax(0,1fr)}
.dewi-booking-light .hero h1{font-weight:700;line-height:.98}
.dewi-booking-light .hero h1 em{color:var(--booking-next)}
.dewi-booking-light .booking-audience h2{font-size:clamp(25px,4vw,36px);font-weight:750;line-height:1.12}
.dewi-booking-light .booking-audience .segments button{font-weight:900;border-width:2px}
.dewi-booking-light .booking-audience .segments button:not([aria-pressed=true]){color:var(--ink)}
.dewi-booking-light .booking-audience .segments button[aria-pressed=true]{box-shadow:none}
.dewi-booking-light .massage-picker > p{font-weight:800;color:var(--booking-selected)}
.dewi-booking-light .massage-picker details{border-color:var(--booking-selected);overflow:hidden}
.dewi-booking-light .massage-picker details.has-selection > summary{background:var(--booking-selected);color:var(--booking-on-selected);font-weight:800}
.dewi-booking-light .massage-picker details.has-selection > summary::marker{color:var(--booking-on-selected)}
.dewi-booking-light .massage-picker summary:focus-visible{outline-offset:-4px}
.dewi-booking-light .massage-picker details.has-selection > summary:focus-visible{outline-color:var(--booking-on-selected)}
.dewi-booking-light .massage-picker-group h3{background:var(--booking-selected);color:var(--booking-on-selected)}
.dewi-booking-light .massage-option{background:#f1f8f4}
.dewi-booking-light .massage-option:hover{background:#dcefe3}
.dewi-booking-light .massage-option-name:hover{color:var(--booking-selected);font-weight:750}
.dewi-booking-light .massage-option:has(.massage-option-name[aria-pressed=true]),
.dewi-booking-light .massage-option-name[aria-pressed=true]{background:var(--booking-selected);color:var(--booking-on-selected);font-weight:800}
.dewi-booking-light #work .payment-box{background:var(--booking-warm-surface);border-color:var(--booking-warm-edge)}
.dewi-booking-light #work .payment-box > strong{color:var(--booking-next)}
.booking-variant-picker{min-width:0;scroll-margin-block-start:24px}
.booking-variant-picker > p{margin:4px 0 6px;font-weight:750;color:var(--ink)}
.booking-variant-picker details{margin:0;border:1px solid var(--booking-warm-edge);border-radius:8px;background:var(--panel)}
.booking-variant-line,.booking-variant-options button{display:flex;align-items:center;gap:8px 12px;min-height:48px;padding:9px 12px;text-align:start}
.booking-variant-line{color:var(--ink);background:var(--booking-warm-surface);border-radius:7px}
.booking-variant-line:not(summary){border:1px solid var(--line)}
summary.booking-variant-line{list-style:none}
summary.booking-variant-line::-webkit-details-marker{display:none}
.booking-variant-line > span:first-of-type,.booking-variant-options button > span{margin-inline-start:auto;font-variant-numeric:tabular-nums;font-weight:750;white-space:nowrap}
.booking-variant-chevron{flex:0 0 9px;height:9px;border:solid var(--booking-next);border-width:0 2px 2px 0;transform:translateY(-2px) rotate(45deg);margin-inline:3px}
.booking-variant-picker details[open] .booking-variant-chevron{transform:translateY(2px) rotate(225deg)}
.booking-variant-options{display:grid;gap:5px;padding:6px}
.booking-variant-options button{width:100%;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:var(--panel)}
.booking-variant-options button:hover{background:var(--booking-control-hover)}
.booking-variant-options button[aria-pressed=true]{background:var(--booking-selected);border-color:var(--booking-selected);color:var(--booking-on-selected)}
.booking-rooms{scroll-margin-block-start:20px}
.booking-rooms .segments{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr));margin:10px 0 0}
.booking-rooms .segments button{min-height:48px;border-radius:7px;font-weight:750}
.dewi-booking-light .booking-rooms .segments button[aria-pressed=true]{background:var(--booking-selected);border-color:var(--booking-selected);color:var(--booking-on-selected)}

@font-face{font-family:Manrope;src:url(assets/manrope-bold.ttf) format('truetype');font-weight:700;font-display:swap}
.dewi-booking-light {
  --booking-primary-gradient: linear-gradient(112deg, #693822 0%, #944923 62%, #79381e 100%);
  --booking-elevation: 0 1px 2px #4b2b1510, 0 8px 24px #4b2b150c;
  font-size: 15px;
}
.dewi-booking-light .hero { padding-block: clamp(22px, 5vw, 44px); border-radius: 18px; }
.dewi-booking-light .hero h1 { font-weight: 600; line-height: 1; }
.dewi-booking-light .hero p:not(.eyebrow) { font-size: clamp(14px, 2.5vw, 16px); }
.dewi-booking-light .panel { box-shadow: var(--booking-elevation); border-radius: 15px; }
.dewi-booking-light .step { align-items: center; }
.dewi-booking-light .step > span {
  flex: none;
  padding: 4px 8px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--booking-warm-surface);
}
.dewi-booking-light .step h2 { font-size: clamp(28px, 4vw, 38px); font-weight: 700; line-height: 1.08; }
.dewi-booking-light .booking-audience .segments button { font-size: clamp(13px, 2vw, 16px); }
.dewi-booking-light :is(.massage-picker-options,#work,#done) { overscroll-behavior: contain; }
.dewi-booking-light :is(#work,#done) h2 { line-height: 1.05; }
.dewi-booking-light .booking-checkout-visit .booking-time-highlight {
  justify-content: center;
  min-height: 58px;
  padding: 10px 16px;
}
.dewi-booking-light .booking-time-highlight strong { font-size: clamp(25px, 6vw, 34px); letter-spacing: .02em; }
.dewi-booking-light .detail-form .payment-choice { padding: 10px 12px; }
.dewi-booking-light #work .booking-checkout-next,
.dewi-booking-light #work .booking-review-action .primary {
  min-height: 50px;
  border-radius: 8px;
  border-color: #693822;
  background: var(--booking-primary-gradient);
  color: #fff;
  box-shadow: 0 4px 10px #69382229;
}
.dewi-booking-light .booking-checkout-next { display: flex; align-items: center; justify-content: center; gap: 8px; }
@media (hover: hover) {
  .dewi-booking-light #work :is(.booking-checkout-next,.booking-review-action .primary):hover:not(:disabled) { filter: brightness(.94); }
}
@media (prefers-reduced-motion: no-preference) {
  .dewi-booking-light .booking-checkout-next { transition: scale 150ms ease-out; }
  .dewi-booking-light .booking-checkout-next:not(:disabled):active { scale: .96; }
}
@media (max-width: 600px) {
  .dewi-booking-light #client-form :is(input:not([type=radio]),textarea) { font-size: 16px; }
}
.booking-review-action{
 position:sticky;bottom:0;z-index:1;margin-top:12px;padding-block:9px 4px;
 background:var(--panel);border-top:1px solid var(--line)
}
.booking-review-action .primary{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;text-align:center}
.dewi-booking-light #work .visit-payment{background:var(--panel);border-color:var(--booking-control-edge);color:var(--ink)}
.dewi-booking-light #work .visit-payment :is(dt,dd){color:inherit}
.dewi-booking-light #work .visit-payment .visit-balance{border-color:var(--booking-control-edge);color:var(--booking-selected)}

.dewi-booking-dark {
  --bg:#0e0e0e;--panel:#171717;--line:#3d3630;
  --booking-selected:#264d3a;--booking-on-selected:#fff8eb;
  --booking-control-edge:#82664d;--booking-control-hover:#292522;
  --booking-warm-edge:#947456;--booking-warm-surface:#211e1b;
  --booking-next:#efc992;--booking-primary-gradient:linear-gradient(110deg,#e4b87d,#f8dbaa 52%,#d9a467);
  background:var(--bg);
}
.dewi-booking-dark .bar{background:#121212;border-color:var(--line)}
.dewi-booking-dark .hero{min-height:clamp(210px,25vw,305px);border-radius:12px;background:#111}
.dewi-booking-dark .hero::before{
  background:linear-gradient(90deg,#111 12%,#111f 32%,#111b 58%,#1115),url(assets/couple.webp) right 44%/cover no-repeat
}
.dewi-booking-dark .hero h1{font-size:clamp(43px,7vw,89px)}
.dewi-booking-dark .hero .booking-guest-note{margin-top:10px;color:#f1d4ad;font-size:13px;font-weight:700}
.dewi-booking-dark .panel{border-radius:10px;background:var(--panel)}
.dewi-booking-dark .workspace :is(.outline:not(.booking-first-slot),.segments button):not([aria-pressed=true]),
.dewi-booking-dark .workspace :is(input,select,.empty){background:#121212}
.dewi-booking-dark .workspace .massage-picker-group h3{background:#211e1b}
.dewi-booking-dark .booking-audience .segments button{
  display:flex;align-items:center;gap:10px;justify-content:space-between;
  flex:1 1 auto;min-height:48px;border-color:var(--booking-control-edge);font-weight:750
}
.dewi-booking-dark .booking-day-provider{
  background:var(--booking-warm-surface);border-color:var(--booking-control-edge);color:var(--ink)
}
.dewi-booking-dark :is(.booking-picker-day,.booking-time-group button,.booking-variant-options button)[aria-pressed=true]{
  background:var(--booking-primary-gradient);border-color:#d9a467;color:#26170f
}
.dewi-booking-dark .booking-fixed-provider{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:9px 12px;border:1px solid var(--booking-control-edge);border-radius:6px
}
.dewi-booking-dark .booking-continue{width:100%;min-height:48px;margin-top:9px}
.dewi-booking-dark :is(.booking-continue,.booking-checkout-next,.booking-review-action .primary){
  background:var(--booking-primary-gradient);border-color:#d9a467;color:#26170f
}
.dewi-booking-dark .booking-checkout-next{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px}
.dewi-booking-dark .booking-checkout-visit{
  overflow:hidden;margin:12px 0 18px;border:1px solid var(--booking-control-edge);border-radius:8px
}
.dewi-booking-dark .booking-confirmation-notice{
  padding:10px 12px;border-inline-start:3px solid var(--booking-next);background:var(--booking-warm-surface)
}
.dewi-booking-dark .booking-wait-clock{color:var(--booking-next)}
@media(max-width:440px){
  .dewi-booking-dark .booking-audience .segments button{gap:4px;padding-inline:7px;font-size:13px}
}
:is(.dewi-booking-light,.dewi-booking-dark) :is(.booking-day-selection,.booking-checkout-visit .booking-time-highlight){
  background:#211710 linear-gradient(112deg,#11100f 0%,#2d2017 47%,#674822 100%);
  color:#fff0cd;
}

.dewi-booking-dark {
  --booking-gold-ink:#f5d59b;
  --booking-gold-gradient:linear-gradient(105deg,#d8a85e 0%,#ffedbd 43%,#e4b96f 72%,#f6d9a3 100%);
  --booking-primary-gradient:var(--booking-gold-gradient);
}
.dewi-booking-dark :is(#work,#done){
  --panel:#151413;
  --line:#504437;
  background:var(--panel);border-color:#92764f;border-radius:12px
}
.dewi-booking-dark :is(#work,#done) :is(.payment-box,.visit-payment,.test-note,.message-preview,.booking-confirmation-notice){
  background:#211e1a;border-color:#6e573b
}
.dewi-booking-dark #work .detail-form :is(input:not([type=radio]),textarea,select){background:#0f0e0d}
.dewi-booking-light {
  --booking-gold-ink:#805019;
  --booking-gold-gradient:linear-gradient(105deg,#694016 0%,#895a20 48%,#704717 100%);
}
.booking-calendar .booking-phone{
  display:inline-flex;align-items:center;min-height:44px;padding-inline:6px;
  color:var(--booking-gold-ink);font-weight:700;text-underline-offset:3px
}
.booking-phone strong{white-space:nowrap;font-weight:850;font-variant-numeric:tabular-nums}
.booking-day-provider{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px}
.booking-day-provider .person{color:inherit;font-size:14px;font-weight:800}
.booking-day-provider .person img,.second-person .person img{width:34px;height:34px}
.second-person .people-picker button{min-height:52px}
.booking-field-label b{color:var(--booking-gold-ink);font-weight:850}
#client-form .booking-field-label{color:var(--ink);font:750 1rem/1.3 var(--sans)}
#client-form .booking-field-label small{font-size:.85em;font-weight:500;color:var(--mute)}
.dewi-booking-dark #client-form :is(input:not([type=radio]),textarea):focus{
  outline:2px solid #d9a467;outline-offset:2px;caret-color:#f5d59b
}
.dewi-booking-dark #client-form input:autofill{
  box-shadow:0 0 0 100px #0f0e0d inset;-webkit-text-fill-color:var(--ink)
}
:is(.dewi-booking-light,.dewi-booking-dark) .booking-checkout-visit .booking-time-highlight{
  min-height:40px;padding:7px 12px;justify-content:center
}
:is(.dewi-booking-light,.dewi-booking-dark) .booking-time-highlight strong{font-size:clamp(20px,4vw,25px)}
.booking-checkout-visit .booking-change-time{min-height:44px;margin:0 12px 10px}
.booking-arrival-note{margin-block:12px;font-weight:650}
.dewi-booking-dark .booking-signup-link{color:#efae99;text-decoration:underline;text-underline-offset:3px}
@media(hover:hover){
  .dewi-booking-dark .booking-signup-link:hover{color:#ffd2be}
}
.dewi-booking-dark .booking-hero-phone{
  display:grid;grid-template-columns:minmax(0,1fr) min(44%,460px);
  min-height:0;padding:0;background:#0d0b0b;
  border-color:#423529;
  background-image:radial-gradient(ellipse at 80% 52%,#241910 0%,#14100d 28%,transparent 61%)
}
.dewi-booking-dark .booking-hero-phone::before{display:none}
.booking-hero-phone .booking-hero-copy{
  min-width:0;padding-block:clamp(24px,3.5vw,44px);
  padding-inline:clamp(20px,4.2vw,54px) 0
}
.dewi-booking-dark .booking-hero-phone h1{font-size:clamp(40px,5.8vw,76px)}
.booking-hero-art{
  position:relative;align-self:center;justify-self:center;width:100%;min-width:0
}
.booking-hero-art img{
  display:block;width:100%;height:auto;
  mask-image:radial-gradient(ellipse 70% 69% at 53% 47%,#000 43%,transparent 83%)
}
.booking-hero-art::before,.booking-hero-art::after{
  content:"";position:absolute;pointer-events:none;mix-blend-mode:screen
}
.booking-hero-art::before{
  inset:0 61% 22% 5%;
  background:radial-gradient(ellipse 48% 57% at 55% 48%,#e5af6a50 0%,#b8793831 37%,transparent 100%);
  transform:rotate(-34deg)
}
.booking-hero-art::after{
  inset:83% 17% 2% 15%;
  background:radial-gradient(ellipse 56% 44% at 48% 37%,#dd9d5752 0%,#c2853922 37%,transparent 88%)
}
.dewi-booking-app{
  padding-inline:env(safe-area-inset-left,0px) env(safe-area-inset-right,0px);
  padding-block-end:env(safe-area-inset-bottom,0px)
}
.dewi-booking-app .bar{padding-block-start:env(safe-area-inset-top,0px)}
.dewi-booking-app :is(button,.action-link){touch-action:manipulation}
.booking-app-account{margin-inline-start:auto;min-height:44px}
.dewi-language-switcher{display:flex;align-items:center;gap:3px}
.dewi-language-switcher a{display:grid;place-items:center;min-width:32px;min-height:36px;color:inherit;text-decoration:none;font-size:12px;font-weight:750}
.dewi-language-switcher a[aria-current]{color:#edc38a;text-decoration:underline;text-underline-offset:5px}
.booking-voucher-intro{margin-block:24px 16px}
.booking-voucher-intro h1{font-size:clamp(34px,5vw,62px);margin:6px 0}
.booking-voucher-intro a{color:var(--booking-gold-ink)}
@media(max-width:640px){
  .dewi-booking-dark .booking-hero-phone{
    grid-template-columns:minmax(0,1fr);
    background-image:radial-gradient(ellipse 80% 55% at 50% 100%,#2a1b10,transparent 90%)
  }
  .booking-hero-phone .booking-hero-copy{padding:23px 16px 0;text-align:center}
  .booking-hero-phone .booking-hero-copy p{margin-inline:auto}
  .dewi-booking-dark .booking-hero-phone .booking-guest-note{max-width:42ch}
  .booking-hero-art{
    width:min(100%,clamp(215px,61vw,270px));margin-block:3px 4px
  }
  .dewi-booking-app .booking-hero-art{margin-block-end:12px}
  .dewi-booking-app #client-form :is(input:not([type=radio]),textarea){font-size:16px}
}
@media(max-width:550px){
  .dewi-booking-app .bar-inner{grid-template-columns:minmax(0,1fr) auto auto;gap:8px}
  .bar-inner>.dewi-language-switcher{grid-column:1/-1;justify-self:end}
}
.dewi-booking-dark :is(.primary,.booking-first-slot){
  background:var(--booking-primary-gradient);border-color:#d9a467;color:#26170f
}
.dewi-booking-dark :is(.primary,.booking-first-slot):hover:not(:disabled){filter:brightness(1.08)}
.dewi-booking-dark .booking-identity-actions :is(.booking-signin,.booking-as-guest){
  display:flex;align-items:center;justify-content:center;min-height:46px;text-align:center
}
.dewi-booking-dark .booking-identity-actions .booking-as-guest{
  color:#f8e6d5;background:#3a281f;border-color:#947052
}
@media(hover:hover){
  .dewi-booking-dark .booking-identity-actions .booking-as-guest:hover{background:#4c3528}
}
:is(.dewi-booking-dark,.dewi-booking-light) #work :is(.payment-box>span,.payment-box>strong,.visit-payment .visit-balance dt,.visit-payment .visit-balance dd){
  color:var(--booking-gold-ink)
}
@media (forced-colors:none){
  @supports (background-clip:text){
    .booking-phone span,
    .dewi-booking-dark :is(.hero h1 em,.eyebrow,.step>span),
    :is(.dewi-booking-dark,.dewi-booking-light) #work :is(.payment-box>span,.payment-box>strong,.visit-payment .visit-balance dt,.visit-payment .visit-balance dd){
      background:var(--booking-gold-gradient);background-clip:text;color:transparent
    }
  }
}
.studio-calendar .studio-range-controls{display:flex;flex-wrap:wrap;align-items:center;gap:7px;background:transparent;border:0;padding:0}
.studio-range-controls>span{font-size:.8rem;font-weight:650;color:var(--ink);margin-inline-end:4px}
.studio-range-controls>button{min-height:38px;background:#f2ece3;color:#362b20;border:1px solid #a8957e}
.studio-range-controls>button[aria-pressed=true]{background:#e5c78f;color:#251b10}
.studio-calendar .board-person .timeline-interval:is(.board-visit,.shared-visit)>strong{display:block;white-space:normal;overflow-wrap:anywhere;text-overflow:clip;-webkit-line-clamp:unset}
.studio-calendar .board-person .board-visit .board-client{white-space:normal;overflow-wrap:anywhere;text-overflow:clip}
.studio-calendar .board-person .timeline-interval:is(.board-visit,.shared-visit)>time{white-space:normal;line-height:1.16}
.finance-example>summary{cursor:pointer;color:var(--gold);font-weight:750}
.finance-example table{min-width:670px}.finance-example tfoot{background:#34271a}.finance-example th small{display:block}
.timeline .timeline-interval.shared-visit>button{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0}
.timeline .timeline-interval.shared-visit:has(>button:focus-visible){outline:2px solid var(--gold);outline-offset:-2px}
.timeline .window-slot{cursor:pointer}.studio-calendar .window-slot:hover,.studio-calendar .window-slot:focus-visible{outline:1px solid #a97c49;outline-offset:-1px}

.calendar-person-picker { position: relative; z-index: 3; min-width: 12rem; }
.calendar-person-picker summary { cursor: pointer; padding: .6rem .8rem; border: 1px solid currentColor; border-radius: .5rem; }
.calendar-person-picker > div { position: absolute; top: calc(100% + 4px); z-index: 1; inset-inline: 0; display: grid; gap: 4px; background: #fff; padding: 6px; border: 1px solid #c8bba8; border-radius: .5rem; }
.calendar-person-picker button { color: #271f19; text-align: left; }
.calendar-person-picker button[aria-pressed="true"] { background: #f1e6d5; }

.studio-range-mobile,.studio-mobile-shift-link,.studio-board-date { display: none; }
@media (max-width:620px) {
 .studio-calendar .studio-range-desktop { display: none; }
 .studio-range-mobile { display: block; margin-block-end: 6px; }
 .studio-range-mobile > summary { padding-block: 9px; font-weight: 700; cursor: pointer; }
 .studio-range-mobile[open] .studio-range-controls { margin-block-end: 8px; }
 .studio-calendar .calendar-person-picker { min-width: 0; flex: 1; }
 .studio-calendar .calendar-person-picker > div { position: static; margin-block-start: 4px; }
 .studio-calendar .studio-booking-tools:has(.calendar-person-picker[open]) { align-items: start; }
 .studio-mobile-shift-link { display: inline-block; margin-block: 8px 3px; color: var(--calendar-accent); font-size: .8rem; }
 .studio-calendar .studio-board .board-title { align-content: center; }
 .studio-calendar .board-title > .action-link { display: none; }
 .studio-calendar .board-title .person { min-width: 0; font-size: 15px; line-height: 1.15; }
 .studio-calendar .board-clock .board-title { flex-direction: column; align-items: center; justify-content: center; gap: 3px; }
 .studio-board-date { display: block; font-weight: 800; font-variant-numeric: tabular-nums; }
}

.agenda-studio .agenda-studio-visit > time { font-size: .94rem; font-weight: 800; font-variant-numeric: tabular-nums; color: inherit; white-space: nowrap; }
.agenda-studio .agenda-therapists { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin: .25rem 0; font-size: .92rem; line-height: 1.3; }
.agenda-studio .agenda-therapists b { font-weight: 800; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em; }
@media (max-width:460px) {
 .agenda-studio .agenda-studio-visit { grid-template-columns: auto minmax(0,1fr); }
 .agenda-studio .agenda-studio-visit > .badge { grid-column: 2; justify-self: start; }
}

.studio-calendar .studio-board { --studio-heading-height: 76px; }
.studio-calendar .studio-board-scroll { scroll-padding-block-start: 76px; }
.studio-calendar .board-person > .board-title { display: flex; flex-wrap: nowrap; justify-content: space-between; align-items: center; }
.studio-calendar .board-person-heading { min-width: 0; display: grid; justify-items: start; gap: 4px; }
.studio-calendar .board-person-heading .person { font-weight: 780; }
.studio-calendar .board-person-heading > small { font-size: .8rem; line-height: 1.2; }
.studio-calendar .board-person-heading strong { font-size: .9rem; font-weight: 750; color: var(--ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.studio-calendar .board-title > .board-edit-shift {
 display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; min-height: 44px;
 padding: 0; margin: 0; background: transparent; color: var(--mute); border: 0; border-radius: 6px;
}
.studio-calendar .board-title > .board-edit-shift:is(:hover,:focus-visible) { background: var(--calendar-selected,#3b3024); color: var(--ink); }
.studio-calendar .board-title > .board-edit-shift:focus-visible { outline: 2px solid currentColor; outline-offset: -3px; }
@media (max-width:620px) {
 .studio-calendar .studio-board { --studio-heading-height: 60px; }
 .studio-calendar .studio-board-scroll { scroll-padding-block-start: 60px; }
 .studio-calendar .board-person-heading { gap: 3px; }
}

.bar .business-preview-back {
 display: inline-flex; align-items: center; justify-content: center; min-height: 44px;
 padding: .45rem .85rem; border: 1px solid #c19a62; border-radius: 7px;
 background: #e6c68e; color: #302116; font-size: .95rem; font-weight: 780;
 line-height: 1.15; text-decoration: none; text-align: center;
}
.bar .business-preview-back:is(:hover,:focus-visible) { background: #f1d8ad; }
.bar .business-preview-back:focus-visible { outline: 2px solid #fff3df; outline-offset: 2px; }
@media(max-width:550px) {
 html[data-business-calendar] .bar-inner:has(.business-preview-back) { grid-template-columns: minmax(0,1fr) auto; gap: 6px; }
 .bar-inner:has(.business-preview-back) .logo { max-width: 100%; object-fit: contain; }
 .bar-inner:has(.business-preview-back) .demo { display: none; }
 .bar .business-preview-back { padding-inline: .65rem; }
}

.staff-envelope-view { margin-block: 14px; }
.staff-envelope-view > summary { cursor: pointer; font-weight: 750; padding-block: .3rem; }
.staff-envelope-view[open] > summary { margin-block-end: 12px; }
.calc-commission { display: grid; gap: .65rem; margin: .35rem 0; min-width: 0; }
.calc-commission output { font-weight: 750; line-height: 1.5; }
.calc-commission .calc-amounts { grid-template-columns: repeat(2,minmax(0,1fr)); }

:is(.studio-week,.staff-week) .date.is-holiday { outline: 2px solid #bd3549; outline-offset: -2px; }
.calendar-holiday-label { margin-block: .25rem 0; color: #be3649; font-size: .8rem; font-weight: 750; }
.visit-duration-strong { display: block; font-size: 1rem; font-weight: 700; line-height: 1.4; }
.visit-duration-strong strong { font-weight: 850; }
.calc-commission [hidden] { display: none; }

.staff-envelope-view {
 color-scheme: light; --ink: #251e19; --mute: #574b42; --line: #c8baac; --gold: #68462d;
 color: var(--ink); background: #fffdfa; border-color: var(--line);
}
.staff-envelope-view :is(.envelope-calculator,.calc-result,.calc-commission,.calc-other-payments,.envelope-stats>div,.calc-items li,.calc-week-days li) {
 color: var(--ink); background: #f8f3eb; border-color: var(--line);
}
.staff-envelope-view :is(input,select,.outline) { color: var(--ink); background: #fff; border-color: #a69281; }
.staff-envelope-view :is(label,.helper,small,dt,summary) { color: var(--mute); }
.staff-envelope-view :is(h3,h4,strong,dd,legend) { color: var(--ink); }
.staff-envelope-view .primary { background: #6a4931; color: #fff; border-color: #6a4931; }
.staff-envelope-view .form-error { color: #a22639; }
.staff-envelope-view .calc-commission output { color: #352920; }

.studio-board .timeline-interval.calendar-delay-preview {
 z-index: 3; pointer-events: none; inset-inline: 5px; border: 2px dashed #ac263b;
 background: #bc2f4540; color: #6a1223; align-content: start; font-weight: 750;
}

.staff-envelope-view .calc-items { max-block-size: 22rem; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.calc-item-count { margin: .35rem 0 .65rem; font-size: .9rem; }
.calc-item-duration { font-weight: 740; }
.staff-envelope-view .calc-items li > div:first-child { min-inline-size: 0; overflow-wrap: anywhere; }
@media(max-width:550px) {
 .staff-envelope-view .calc-items li { display: grid; grid-template-columns: minmax(0,1fr); gap: 6px; }
}

.envelope-calculator {
 color-scheme: light; --ink: #251e19; --mute: #574b42; --line: #c8baac; --gold: #68462d;
 color: var(--ink); background: #fffdfa; border: 1px solid var(--line); border-radius: 10px;
 padding: clamp(12px, 3vw, 22px);
}
.envelope-calculator :is(.calc-result,.calc-commission,.calc-other-payments,.envelope-stats>div,.calc-items li,.calc-week-days li) {
 background: #f8f3eb; color: var(--ink); border-color: var(--line);
}
.envelope-calculator :is(input,select,.outline) { color: var(--ink); background: #fff; border-color: #a69281; }
.envelope-calculator :is(label,.helper,small,dt,summary) { color: var(--mute); }
.envelope-calculator :is(h3,h4,strong,dd,legend) { color: var(--ink); }
.envelope-calculator .primary { background: #6a4931; color: #fff; border-color: #6a4931; }
.envelope-calculator .form-error { color: #a22639; }
.envelope-calculator .calc-items { max-block-size: 22rem; overflow: auto; overscroll-behavior: contain; }
.envelope-calculator .calc-item-actions [data-calc-edit] { background: #e7eef5; color: #233d57; border-color: #91a8c0; }
.envelope-calculator .calc-item-actions [data-calc-remove] { background: #fcebef; color: #83273a; border-color: #cc8997; }
.envelope-calculator .calc-week-totals { margin-block: .8rem; }
.envelope-calculator .envelope-stats > .envelope-net { background: #eee2d2; border-color: #bda087; }

:is(.studio-week,.staff-week) .date.is-christmas-eve { outline-color: #328258; }
.calendar-eve-label { color: #348358; }
:is(.studio-week,.staff-week) .date.is-christmas-day { outline-color: #9e2037; background: #9e2037; color: #fff; }

/* Shared light schedule palette and matching status legend. */
body:has(:is(.studio-calendar,.staff-calendar)) {
 color-scheme:light;--bg:var(--calendar-page);--panel:var(--calendar-surface);
 --ink:var(--calendar-ink);--mute:var(--calendar-muted);--gold:var(--calendar-accent);--line:var(--calendar-line);
 --schedule-prep-bg:#fce19b;--schedule-prep-edge:#87601d;--schedule-prep-text:#4f3615;
 --schedule-session-bg:#a3d6fb;--schedule-session-edge:#446b8d;--schedule-session-text:#253e53;
 --schedule-pending-bg:#ffafbe;--schedule-pending-edge:#a73148;--schedule-pending-text:#711b30;
 --schedule-confirmed-bg:#a0e0b5;--schedule-confirmed-edge:#397554;--schedule-confirmed-text:#214c35;
 --schedule-recovery-bg:#d9c9f2;--schedule-recovery-edge:#745787;--schedule-recovery-text:#4b365d;
 --schedule-off-pattern:repeating-linear-gradient(135deg,#e9ebed 0 7px,#cbd0d5 7px 9px);
 background:var(--bg);
}
:is(.studio-calendar,.staff-calendar) {
 --schedule-prep-bg:#fce19b;--schedule-prep-edge:#87601d;--schedule-prep-text:#4f3615;
 --schedule-session-bg:#a3d6fb;--schedule-session-edge:#446b8d;--schedule-session-text:#253e53;
 --schedule-pending-bg:#ffafbe;--schedule-pending-edge:#a73148;--schedule-pending-text:#711b30;
 --schedule-confirmed-bg:#a0e0b5;--schedule-confirmed-edge:#397554;--schedule-confirmed-text:#214c35;
 --schedule-recovery-bg:#d9c9f2;--schedule-recovery-edge:#745787;--schedule-recovery-text:#4b365d;
 background:var(--panel);
}
body:has(.studio-calendar) :is(.bar,.panel,dialog){background:var(--panel);color:var(--ink);border-color:var(--line)}
body:has(.studio-calendar) .bar .logo{filter:brightness(.54) saturate(1.18)}
body:has(.studio-calendar) :is(.outline,.date,select,input,textarea){background:var(--panel);color:var(--ink);border-color:var(--calendar-hour-line)}
body:has(.studio-calendar) .date[aria-pressed="true"]{background:var(--calendar-selected);color:var(--gold)}
.studio-calendar .studio-board :is(.board-title,.board-clock .timeline-tick time){background:var(--calendar-subtle);color:var(--ink)}
.studio-calendar .board-person .timeline{background:var(--panel)}
.studio-calendar .timeline-tick{border-color:var(--calendar-hour-line)}
.studio-calendar .window-slot{background:transparent;color:var(--ink);border-color:var(--line)}
.studio-calendar .window-slot:hover{background:var(--calendar-selected)}
:is(.studio-calendar,.staff-calendar) .timeline-key{gap:.6rem 1rem;font-size:.83rem;color:var(--ink)}
:is(.studio-calendar,.staff-calendar) .timeline-key span{display:inline-flex;align-items:center;gap:.45rem}
:is(.studio-calendar,.staff-calendar) .timeline-key span::before{content:"";display:block;inline-size:1.15rem;block-size:.92rem;flex:none}
:is(.studio-calendar,.staff-calendar) .timeline-key .key-outside::before{background:var(--schedule-off-pattern);border:2px solid #707984}
:is(.studio-calendar,.staff-calendar) .timeline-key .key-outside,
:is(.studio-calendar,.staff-calendar) .timeline-interval.shift-off strong{font-weight:800;color:#252e38}
.studio-calendar .board-person .timeline-interval.shift-off,
.staff-calendar .timeline .timeline-interval.shift-off{background:var(--schedule-off-pattern);border-color:#707984;color:#252e38}
body:has(.studio-calendar) :is(.studio-week,.staff-week) .date.is-christmas-day,
body:has(.staff-calendar) :is(.studio-week,.staff-week) .date.is-christmas-day{background:#9e2037;color:#fff;border-color:#9e2037}
.calc-commission[hidden]{display:none}

.envelope-calculator .calc-week-days [data-calc-day]{background:#fff;color:#49321f;border-color:#9d8066;font-weight:700;text-align:start}
.envelope-calculator .calc-week-days [data-calc-day][aria-current=date]{background:#f1dfc7;color:#352211;border-color:#805c38}
.envelope-calculator .calc-week-days [data-calc-day]:is(:hover,:focus-visible){background:#f6ead9;color:#352211}
.calc-week-head label{display:block;max-width:22rem;margin-block:.6rem}
.calc-team-totals,.calc-studio-revenue{margin-block:1rem;padding-block-start:.85rem;border-block-start:1px solid var(--line)}

/* Keep the clock and available time controls legible on the light calendar. */
body:has(.staff-calendar){--bg:#f2f4f7;--panel:#fff;--line:#d4dbe2;--ink:#222c37;--mute:#455465;--calendar-subtle:#edf1f5;--calendar-hour-line:#aab6c2;--calendar-selected:#e8eff7}
:is(.studio-calendar,.staff-calendar) .timeline .timeline-tick time,
.studio-calendar .studio-board .board-clock .timeline-tick time{background:#f5f7f9;color:#263342;font-weight:700;text-shadow:none}
:is(.studio-calendar,.staff-calendar) .timeline .window-slot{background:#fff;color:#263342;border-color:#b5c4d2}
:is(.studio-calendar,.staff-calendar) .timeline .window-slot:is(:hover,:focus-visible){background:#e8eff7;border-color:#647d96;color:#263342}
:is(.studio-calendar,.staff-calendar) .timeline .window-slot :is(time,span,strong){color:#263342;text-shadow:none}
html[data-business-calendar] .bar a[href="/business"],
html[data-business-calendar] .bar a[href="/business"]:visited{display:inline-flex;align-items:center;min-height:40px;padding:.4rem .7rem;border:1px solid #987b55;border-radius:7px;background:#f5e8d5;color:#3e2c1c;font-weight:750;text-decoration:none}
html[data-business-calendar] .bar a[href="/business"]:hover{background:#e9d6bb;color:#2d2014}
:is(.studio-calendar,.staff-calendar) .timeline-key .key-hold::before{background:#ffc47d;border-color:#92502d}
.timeline-key b{color:#24374c}
.timeline .timeline-interval.calendar-hold.has-calendar-mark{background:#ffc47d;border-color:#92502d;color:#24374c}
.timeline .timeline-interval.calendar-hold .calendar-payment-mark{background:#874120;color:#fff}
.calc-payment-fields,.calc-pay-rule{border-color:#c5b099}
.calc-pay-rule label[hidden]{display:none}
.envelope-calculator input[name=wage][readonly]{background:#e7f1eb;color:#173c2b}

.studio-status-filter{display:flex;flex-wrap:wrap;gap:.45rem;margin:.75rem 0}
.studio-calendar .studio-status-filter button{min-height:42px;padding:.45rem .7rem;border-radius:6px;font-weight:650}
.studio-calendar .studio-status-filter button[aria-pressed=true]{background:#e2ebf4;color:#223c54;border-color:#50708c}
.studio-calendar[data-focus="pending"] .studio-event:not(.focus-pending),
.studio-calendar[data-focus="hold"] .studio-event:not(.focus-hold),
.studio-calendar[data-focus="confirmed"] .studio-event:not(.focus-confirmed),
.studio-calendar[data-focus="manual"] .studio-event:not(.focus-manual){visibility:hidden}
@media(max-width:550px){.studio-status-filter{flex-wrap:nowrap;overflow:auto;padding:.2rem .15rem .35rem}.studio-status-filter button{flex:none}}

/* The sticky clock column needs its own light surface, including gaps between labels. */
.studio-calendar .studio-board .board-clock,
.studio-calendar .studio-board .board-clock .timeline,
.studio-calendar .studio-board .board-clock .board-title{background:#f1f5fa;color:#152a44}
.studio-calendar .studio-board .board-person > .board-title{background:#e9f2fc;border-color:#b5cbe1;color:#152a44}
.studio-calendar .board-person-heading :is(.person,strong,small){color:#152a44;font-family:system-ui,sans-serif}
.studio-calendar .board-person-heading .person{font-weight:800;font-size:clamp(14px,1.2vw,17px)}
.studio-calendar .studio-board .board-clock .timeline-tick time{background:#f1f5fa;color:#152a44;font-size:13px;font-weight:750}
.studio-calendar .studio-board .board-clock .quarter-hour time{font-size:11px;font-weight:650;color:#324964}
:is(.studio-calendar,.staff-calendar) .timeline .window-slot{background:#edf6ff;border-bottom:1px dashed #95b3d3}
:is(.studio-calendar,.staff-calendar) .timeline .window-slot :is(b,small){color:#143a63}
:is(.studio-calendar,.staff-calendar) .timeline .window-slot b{font-size:13px;font-weight:850}
:is(.studio-calendar,.staff-calendar) .timeline .window-slot:hover{background:#cde7ff}
:is(.studio-calendar,.staff-calendar) {
 --schedule-session-bg:#68bdf9;--schedule-pending-bg:#f981a1;--schedule-confirmed-bg:#68d792;
}
.timeline .timeline-interval.calendar-hold.has-calendar-mark,
:is(.studio-calendar,.staff-calendar) .timeline-key .key-hold::before{background:#ffab4d}
body:has(:is(.studio-calendar,.staff-calendar)) #work .quick-duration-options button,
body:has(:is(.studio-calendar,.staff-calendar)) #work .quick-booking-time select{background:#fff;color:#142b46;border-color:#9bb4cc}
body:has(:is(.studio-calendar,.staff-calendar)) #work .quick-duration-options button[aria-pressed=true]{background:#1c538a;color:#fff;border-color:#1c538a}

.studio-calendar .studio-board .board-clock,
.studio-calendar .studio-board .board-clock :is(.timeline,.board-title,.timeline-tick time){
 background:#f1f5fa;
 color:#152a44;
}
.studio-calendar .studio-board .board-clock .timeline-tick time{
 font-size:13px;
 font-weight:750;
}
body:has(:is(.studio-calendar,.staff-calendar)) #work:has(.quick-booking-time){
 background:#fff;
 color:#152a44;
 color-scheme:light;
}
body:has(:is(.studio-calendar,.staff-calendar)) #work :is(.quick-booking-time,.quick-durations),
body:has(:is(.studio-calendar,.staff-calendar)) #work .quick-booking-time :is(input,select){
 background:#f1f5fa;
 color:#152a44;
 border-color:#91acc7;
}
.timeline .timeline-interval.calendar-manual{padding-block-end:19px}
.calendar-manual-label{
 position:absolute;
 inset-inline-start:6px;
 inset-block-end:3px;
 color:#153856;
 font-size:10px;
 font-weight:750;
 line-height:1.2;
}

:is(.studio-calendar,.staff-calendar) .timeline .window-slot{
 background:#e9faee;
 border-bottom-color:#8ab99a;
}
:is(.studio-calendar,.staff-calendar) .timeline .window-slot :is(b,small){
 color:#214c32;
}
:is(.studio-calendar,.staff-calendar) .timeline .window-slot:is(:hover,:focus-visible){
 background:#d4f3de;
 border-color:#568367;
}

:is(.studio-calendar,.staff-calendar){
 --schedule-prep-gradient:linear-gradient(135deg,#f8e9ad,#edcf70);
 --schedule-recovery-gradient:linear-gradient(135deg,#e4d3f5,#c5abe7);
 --schedule-recovery-text:#322044;
}
:is(.studio-calendar,.staff-calendar) :is(.timeline-interval.prep,.event.event-prep),
:is(.studio-calendar,.staff-calendar) .timeline-key .key-prep::before{
 background:var(--schedule-prep-gradient);
}
:is(.studio-calendar,.staff-calendar) :is(.timeline-interval.session:not(.confirmed),.event.event-session),
:is(.studio-calendar,.staff-calendar) .timeline-key .key-session::before{
 background:var(--schedule-session-gradient);
}
:is(.studio-calendar,.staff-calendar) :is(.timeline-interval.recovery,.event.event-recovery),
:is(.studio-calendar,.staff-calendar) .timeline-key .key-recovery::before{
 background:var(--schedule-recovery-gradient);
}

:is(.studio-calendar,.staff-calendar) {
 --schedule-session-gradient:linear-gradient(90deg,#a4c1e7,#e5eef9);
 --schedule-confirmed-gradient:linear-gradient(90deg,#9bcfbe,#e1f3ed);
 --schedule-pending-gradient:linear-gradient(90deg,#ebbc61,#fff0d3);
}
:is(.studio-calendar,.staff-calendar) :is(.timeline-interval.awaiting,.event.event-pending),
:is(.studio-calendar,.staff-calendar) .timeline-key .key-pending::before {
 background:var(--schedule-pending-gradient);
}
:is(.studio-calendar,.staff-calendar) .timeline .calendar-cancelled {
 background:linear-gradient(90deg,#cdd4df,#eef1f5);
}
:is(.studio-calendar,.staff-calendar) :is(.timeline-interval.session.confirmed,.event.event-confirmed),
:is(.studio-calendar,.staff-calendar) .timeline-key .key-confirmed::before {
 background:var(--schedule-confirmed-gradient);
}

:is(.studio-calendar,.staff-calendar) .timeline .timeline-interval.session.confirmed > time,
:is(.studio-calendar,.staff-calendar) .event.event-confirmed > time {
 font-size:clamp(12px, 2.5vw, 14px);
 font-weight:750;
 line-height:1.2;
}

.studio-calendar .board-person .timeline-interval.studio-event:is(.session,.awaiting) > time {
 font-size:clamp(12px, 1.2vw, 14px);
 font-weight:800;
}

.studio-calendar {
 --schedule-prep-gradient:linear-gradient(135deg,#fff0b8,#eabd47);
 --schedule-recovery-gradient:linear-gradient(135deg,#ebd9ff,#ba95e5);
}

.agenda .event.event-confirmed > time {
 color:#141210;
 font-size:clamp(.9375rem, 2vw, 1.0625rem);
 font-weight:800;
 font-variant-numeric:tabular-nums;
}
.agenda .event.event-confirmed :is(strong,small,.agenda-therapists) {
 color:#141210;
}
.agenda .event.event-confirmed > .badge {
 color:#fff;
 background:#35634e;
 border-radius:.35rem;
 padding:.2rem .5rem;
}

.staff-calendar .timeline .timeline-interval:is(.session,.awaiting) > time {
 font-size:clamp(12px, 2vw, 14px);
 font-weight:800;
}
:is(.studio-calendar,.staff-calendar) .timeline .timeline-interval > .calendar-visit-details {
 position:relative;
 inset:auto;
 width:auto;
 height:auto;
 margin-inline-start:auto;
 opacity:1;
 justify-self:end;
 white-space:nowrap;
 background:var(--panel);
 color:var(--ink);
}

.staff-calendar:has(.staff-filters [data-value="sessions"][aria-pressed="true"]) .agenda .event:not(.break) > time {
 font-size:clamp(.875rem, 1.9vw, 1rem);
}
.staff-calendar:has(.staff-filters [data-value="sessions"][aria-pressed="true"]) .agenda .event:not(.break) > div > small:first-of-type {
 display:table;
 color:#fff;
 background:#305249;
 border-radius:.25rem;
 padding:.1rem .35rem;
}

:is(.studio-calendar,.staff-calendar) .timeline .timeline-interval:is(.session,.awaiting) > :is(time,strong,.calendar-visit-note),
:is(.studio-calendar,.staff-calendar) .agenda .event:is(.event-session,.event-pending,.event-confirmed) > time,
:is(.studio-calendar,.staff-calendar) .agenda .event:is(.event-session,.event-pending,.event-confirmed) > div > :is(strong,.calendar-visit-note) {
 color:#141210;
}

:is(.studio-calendar,.staff-calendar) .timeline .timeline-interval:is(.session,.awaiting) > strong {
 font-size:.8125rem;
}
:is(.studio-calendar,.staff-calendar) .agenda .event:is(.event-session,.event-pending,.event-confirmed) > div > strong {
 font-size:1em;
}

.staff-calendar .studio-day-queue .confirmation-queue {
 padding:clamp(.875rem, 2.5vw, 1.25rem);
 border:1px solid #d29c43;
 border-inline-start:5px solid #a96513;
 border-radius:.5rem;
 background:linear-gradient(105deg,#f4cc83,#fff3dc);
 color:#392309;
}
.staff-calendar .studio-day-queue .confirmation-queue :is(h2,.eyebrow,small) {
 color:inherit;
}
.staff-calendar .studio-day-queue .confirmation-queue h2 .confirmation-count {
 color:#fff;
 background:#75460e;
 border-color:#75460e;
}
.staff-calendar .studio-day-queue .confirmation-queue li {
 border-top-color:#c89950;
 padding-block-start:.75rem;
}
.staff-calendar .studio-day-queue .confirmation-queue button.outline {
 min-height:44px;
 background:#75460e;
 color:#fff;
 border-color:#75460e;
 font-weight:750;
}
.staff-calendar .studio-day-queue .confirmation-queue button.outline:is(:hover,:focus-visible) {
 background:#563209;
 border-color:#563209;
 color:#fff;
}

.confirmation-queue h2 .booking-alert-mark,
.agenda .event-pending .booking-alert-mark {
 background:#b52135;
 color:#fff;
}
.timeline .timeline-interval.awaiting > .calendar-confirm-mark {
 z-index:2;
 width:22px;
 height:22px;
 font-size:15px;
}

/* Warm accents for the staff schedule controls. */
body:has(.staff-calendar) {
 --staff-schedule-surface:#fff7ed;
 --staff-schedule-selected:linear-gradient(135deg,#fae8cd,#efd0a0);
 --staff-schedule-border:#94633a;
 --staff-schedule-ink:#4b2d17;
}
body:has(.staff-calendar) :is(.staff-work-week.panel,.staff-calendar #cal-date) {
 background:var(--staff-schedule-surface);
 color:var(--staff-schedule-ink);
 border-color:var(--staff-schedule-border);
}
body:has(.staff-calendar) :is(.staff-work-week .calendar-head,.staff-calendar .compact .week-control) {
 color:var(--staff-schedule-ink);
}
body:has(.staff-calendar) .staff-calendar :is(.studio-period-filter button,.staff-filters button,.staff-week .date:not(.is-christmas-day))[aria-pressed="true"] {
 background:var(--staff-schedule-selected);
 color:var(--staff-schedule-ink);
 border-color:var(--staff-schedule-border);
}

body:has(.staff-calendar) .staff-work-week li {
 background:var(--staff-schedule-selected);
 color:var(--staff-schedule-ink);
 border:1px solid var(--staff-schedule-border);
 border-inline-start-width:4px;
 border-radius:7px;
 padding:10px;
}
.staff-work-week li > span { font-weight:750; }
.staff-work-week li small { color:inherit; font-weight:500; }
.staff-work-week li strong { color:inherit; font-size:15px; }
body:has(.staff-calendar) .staff-work-week li:has(.off) {
 background:var(--calendar-subtle);
 color:var(--mute);
 border-color:var(--calendar-hour-line);
}

body:has(.staff-calendar) .staff-head {
 background:var(--staff-schedule-selected);
 color:var(--staff-schedule-ink);
 border:1px solid var(--staff-schedule-border);
 border-radius:12px;
 padding:clamp(16px,3vw,32px);
}
body:has(.staff-calendar) .staff-head :is(h1,p) {
 color:inherit;
}
body:has(.staff-calendar) .staff-head > div {
 min-width:0;
}
@media(max-width:550px) {
 .staff-head h1 {font-size:clamp(32px,9vw,45px)}
}

body:has(.staff-calendar) .staff-calendar .staff-shift-summary {
 display:flex;
 flex-wrap:wrap;
 align-items:baseline;
 gap:4px 12px;
 margin:0;
 padding:8px 14px;
 border:1px solid var(--staff-schedule-border);
 border-inline-start-width:4px;
 border-radius:7px;
 background:var(--staff-schedule-selected);
 color:var(--staff-schedule-ink);
 font-weight:650;
}
.staff-shift-summary strong {
 font-size:clamp(18px,3vw,23px);
 font-variant-numeric:tabular-nums;
}
body:has(.staff-calendar) .staff-calendar .staff-shift-summary--off {
 background:var(--calendar-subtle);
 color:var(--mute);
 border-color:var(--calendar-hour-line);
}

.booking-hero-copy .booking-qr {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-block-start: 1.2rem;
  text-align: start;
}
.booking-qr img {
  display: block;
  width: 104px;
  height: 104px;
}
.booking-hero-copy .booking-qr p {
  margin: .2rem 0;
}
.booking-qr a {
  color: inherit;
}
@media (max-width: 680px) {
  .booking-hero-copy .booking-qr {
    justify-content: center;
  }
}

.footer .booking-back-to-studio,
.footer .booking-back-to-studio:visited {
  color: #f5d59b;
  font-size: 1.2rem;
  font-family: inherit;
  font-weight: 700;
  text-underline-offset: .2em;
}
.footer .booking-back-to-studio:hover {
  color: #fff0ce;
}

.booking-install { margin-top:.55rem; font-size:.9rem; }
.booking-install summary { color:#f5d59b; cursor:pointer; font-weight:700; }
.booking-install p { padding-block:.25rem; }
.booking-qr:has(.booking-install[open]) { align-items:flex-start; }
@media (display-mode: standalone) { .booking-hero-copy .booking-qr { display:none; } }

.booking-home-logo { display:inline-flex; min-width:0; }
.booking-home-logo .logo { max-width:100%; object-fit:contain; }
.booking-home-top {
 color:#f5d59b; font-size:.9rem; font-weight:750; text-decoration:none;
 line-height:1.25; padding:.65rem .8rem; border:1px solid #9f7950; border-radius:6px;
}
.booking-home-top:visited { color:#f5d59b; }
.booking-home-top:is(:hover,:focus-visible) { background:#efd4a1; color:#24160d; }
.booking-home-top:focus-visible,.booking-home-logo:focus-visible { outline:2px solid #f5d59b; outline-offset:3px; }
@media(max-width:550px) {
 .booking-home-top { font-size:.8rem; max-width:12rem; }
}

.booking-provider summary .person { color:inherit; font-size:inherit; text-decoration:none; }

.booking-install-mobile { display:none; }
@media (max-width:680px), (hover:none) and (pointer:coarse) {
  .booking-hero-copy .booking-qr > a,.booking-scan-copy,.booking-install-desktop { display:none; }
  .booking-install-mobile { display:inline; }
  .booking-install summary { list-style:none; width:fit-content; padding:.7rem 1rem; border:1px solid #f5d59b; border-radius:6px; background:linear-gradient(125deg,#ffe8ba,#c99c60); color:#28190f; }
  .booking-install summary::-webkit-details-marker { display:none; }
}

.booking-nearest{margin:16px 0;padding:14px;border:1px solid #786042;border-radius:10px}
.booking-nearest h3{margin-bottom:10px}
.booking-nearest .segments{display:flex;flex-wrap:wrap;gap:6px}
.booking-nearest-times{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.booking-nearest-times button,.booking-nearest .segments button{min-height:44px}
.booking-nearest .segments button[aria-pressed="true"]{background:#e4c191;color:#251b13}

dialog.campaign {
  box-sizing: border-box;
  width: min(54rem, calc(100% - 1.5rem));
  max-height: calc(100dvh - 1.5rem);
  margin: auto;
  padding: 0;
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid #8f7248;
  border-radius: 1.2rem;
  background: #17120e;
  color: #fff2dd;
  box-shadow: 0 24px 100px #000b;
}
dialog.campaign::backdrop { background: #090706d9; }
.campaign[open] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .92fr); }
.campaign .campaign-art {
  grid-area: 1 / 1;
  display: block;
  align-self: center;
  width: 100%;
  height: auto;
  object-fit: contain;
  background: #100b08;
}
.campaign .campaign-copy { grid-area: 1 / 2; align-self: center; padding: clamp(1.3rem, 4vw, 2.5rem); }
.campaign .campaign-copy h2 {
  margin: 0;
  color: #f8e5c5;
  font: 400 clamp(1.9rem, 4vw, 3.1rem)/1.05 Georgia, serif;
}
.campaign .campaign-copy > p { margin: .8rem 0 1rem; line-height: 1.5; color: #efdeca; }
.campaign .campaign-copy strong { color: #ffe3ac; }
.campaign .campaign-close {
  position: sticky;
  inset-block-start: .6rem;
  grid-area: 1 / 1 / 2 / -1;
  align-self: start;
  justify-self: end;
  transform: translateX(-.65rem);
  z-index: 1;
  display: grid;
  place-items: center;
  min-width: 44px;
  min-height: 44px;
  margin: .6rem 0 -50px;
  padding: 0;
  border: 1px solid #9c8059;
  border-radius: 50%;
  background: #16100df2;
  color: #fff2dd;
  font: 400 1.6rem/1 system-ui, sans-serif;
  cursor: pointer;
}
.campaign .campaign-selector summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  min-height: 44px;
  padding: .7rem .9rem;
  border-radius: .5rem;
  background: linear-gradient(120deg, #f8dfab, #d6a35b);
  color: #21160b;
  font-weight: 750;
  cursor: pointer;
  list-style: none;
}
.campaign .campaign-selector summary::-webkit-details-marker { display: none; }
.campaign .campaign-selector summary::after { content: '+'; font-size: 1.2em; }
.campaign .campaign-selector[open] summary::after { content: '−'; }
.campaign .campaign-selector summary:hover { background: #ffe9bc; }
.campaign .campaign-offers { display: grid; gap: .4rem; list-style: none; margin: .65rem 0 0; padding: 0; }
.campaign .campaign-offers a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: .45rem .65rem;
  border: 1px solid #745c3d;
  border-radius: .45rem;
  background: #241a13;
  color: #ffe3ac;
  text-decoration: none;
}
.campaign .campaign-offers a:hover { background: #47321e; }
.campaign :focus-visible { outline: 2px solid #ffe3ac; outline-offset: 3px; }
.campaign .campaign-copy .campaign-terms { margin: .85rem 0 0; font-size: .85rem; color: #d8c2a7; }
@media (max-width: 650px) {
  .campaign[open] { grid-template-columns: minmax(0, 1fr); }
  .campaign .campaign-art { max-height: 38dvh; }
  .campaign .campaign-copy { grid-area: 2 / 1; padding: 1.2rem; }
}
.campaign [hidden] { display: none !important; }
.campaign .campaign-selection p { margin-block: 1rem; }
.campaign .campaign-selection strong { display: block; font-size: 1.8rem; }
.campaign .campaign-next {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: .7rem .9rem;
  border-radius: .5rem;
  background: linear-gradient(120deg, #f8dfab, #d6a35b);
  color: #21160b;
  font-weight: 750;
  text-decoration: none;
}
.campaign .campaign-headline-discount {
  display: block;
  margin-block-start: .2em;
  color: #ffe1a4;
  font-size: 1.22em;
  font-weight: 700;
}
.campaign .dewi-language-switcher { display: flex; gap: .4rem; margin: 0 0 .8rem; }
.campaign .dewi-language-switcher a {
  display: grid;
  place-items: center;
  min-height: 44px;
  min-width: 44px;
  border: 1px solid #745c3d;
  border-radius: .4rem;
  color: #ffe3ac;
  text-decoration: none;
}
.campaign .dewi-language-switcher a[aria-current] { background: #ffe3ac; color: #21160b; }
