/* Live-only adapters; brand, palette, typography and components come from /assets/ui. */
#cleaning-settings-button{margin:0 0 12px 8px;border:1px solid #cbb784;border-radius:12px;background:#eee5d3;color:#3c321e;min-height:44px;padding:10px 16px}
#cleaning-dialog{max-width:520px;width:calc(100% - 32px);box-sizing:border-box;border:1px solid #cbb784;border-radius:16px;padding:22px;background:#faf8f3;color:#29251e}
#cleaning-dialog::backdrop{background:#211d1570}
#cleaning-dialog .cleaning-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
#cleaning-dialog select{width:100%;min-height:44px;border-radius:10px}
#cleaning-dialog form>button{width:100%;border-radius:12px;min-height:44px}
#cleaning-dialog #cleaning-error{color:#9b3429;overflow-wrap:anywhere}
#cleaning-dialog .modalhead h2{font-size:24px}
body.mobile-calendar-active #cleaning-settings-button{display:none!important}
/* Compact booking: duration first for every role; optional inputs expand in place. */
#booking-form #booking-options{padding:0;border-color:#cbb784;border-radius:12px;background:#faf8f3;overflow:hidden}
#booking-form #booking-options>summary{min-height:48px;padding:14px 16px;box-sizing:border-box;background:#eee5d3;color:#3c321e;font-weight:600}
#booking-form #booking-options>summary:focus-visible{outline:2px solid #967239;outline-offset:-3px}
#booking-form .booking-options-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;padding:16px;min-width:0}
#booking-form .booking-options-fields>label{margin:0}
@media(max-width:650px){#booking-form .booking-options-fields{grid-template-columns:minmax(0,1fr);padding:12px}}
#booking-form .booking-fold,#booking-duration-quick{grid-column:1/-1}
#booking-form .booking-fold{border:1px solid var(--line);border-radius:6px;padding:12px 14px;min-width:0}
#booking-form .booking-fold summary{cursor:pointer;color:#67583e;font-size:14px;touch-action:manipulation}
#booking-form .booking-time-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#booking-duration-controls{grid-column:1/-1;min-width:0;margin-top:12px;display:grid;gap:10px}
#booking-duration-controls #booking-duration-quick{margin:0}
#booking-duration-controls .duration-buttons{margin:0}
#booking-time-row{grid-column:1/-1;display:flex;align-items:center;gap:12px;min-width:0;margin:16px 0 22px}
#booking-time-row #booking-start-preview{flex:1 1 auto;min-width:0;flex-wrap:wrap;gap:4px 8px;margin:0}
#booking-time-row #booking-start-time{white-space:nowrap}
#booking-time-row .booking-duration-picker{position:relative;flex:0 0 128px;margin-left:auto;max-width:100%}
#booking-time-row .booking-duration-picker:after{content:'';position:absolute;right:15px;top:calc(50% - 5px);width:7px;height:7px;border-right:2px solid #67512b;border-bottom:2px solid #67512b;transform:rotate(45deg);pointer-events:none}
#booking-time-row #duration{appearance:none;-webkit-appearance:none;width:100%;min-height:48px;margin:0;padding:12px 32px 12px 12px;border:1px solid #cbb784;border-radius:12px;background:#eee5d3;color:#3c321e;font:600 16px/1.4 system-ui,sans-serif;cursor:pointer;touch-action:manipulation}
#booking-time-row #duration:hover{background:#e6d8b8}
#booking-time-row #duration:focus-visible{outline:2px solid #967239;outline-offset:3px}
@media(max-width:430px){#booking-time-row #booking-start-time{font-size:clamp(20px,6.7vw,32px)}}
#booking-form #quote{padding:16px;background:#eee5d3;border-radius:6px;line-height:1.65;overflow-wrap:anywhere}
#live-rooms .room{color:var(--ink)}
@media(max-width:650px){#booking-form .booking-time-fields{grid-template-columns:minmax(0,1fr)}#booking-form>button{width:100%;justify-self:stretch}}
/* Shared dark account cards for client, administrator and owner. Role copy stays in mountAccountHeader. */
#app .account-top{align-items:stretch;grid-template-columns:minmax(0,1fr) 280px}
#app .account-top .topline,#app .account-top .wallet{background:#181713;color:#f8f2e5;border:1px solid #393329;border-radius:12px;box-shadow:none;position:relative;overflow:hidden;min-width:0;width:100%;padding:28px;min-height:230px}
#app .account-top .topline h1{color:#f8f2e5;font-size:clamp(28px,3.2vw,42px);line-height:1.1;margin:12px 0}
#app .account-top .topline .eyebrow,#app .account-top .wallet .eyebrow{color:#c1a879}
#app .account-top .topline .sub,#app .account-top .wallet p{color:#bfb6a6;max-width:100%;overflow-wrap:anywhere}
#app .account-top .topline:after{display:block;content:'';position:absolute;left:28px;right:28px;bottom:0;height:2px;background:linear-gradient(90deg,#d0b575,transparent 85%)}
#app .account-top .wallet #balance{color:#e0c58d}
@media(max-width:650px){
 #app .account-top{display:flex;flex-direction:column;gap:12px}
 #app .account-top .topline,#app .account-top .wallet{padding:22px 20px;min-height:0}
 #app .account-top .topline h1{font-size:clamp(26px,7vw,36px)}
 #app .account-top .topline .sub{font-size:15px}
 #app .account-top .wallet #balance{font-size:40px}
 #app .account-top .wallet .eyebrow{letter-spacing:1px}
}
/* Owner header: reset dark-card inheritance and stretch both mobile blocks. */
.account-top.owner-account.owner-account{align-items:stretch}
.account-top.owner-account .topline{border:0;border-radius:0;box-shadow:none;min-width:0;width:100%}
.account-top.owner-account .topline:after{display:none}
.account-top.owner-account .topline h1{color:var(--ink)}
.account-top.owner-account .topline .sub{max-width:370px}
.account-top.owner-account .wallet{border:0;border-left:1px solid #d8c9af;border-radius:0;box-shadow:none;min-width:0}
@media(max-width:650px){
 .account-top.owner-account.owner-account{align-items:stretch}
 .account-top.owner-account .topline{padding:12px 0;min-height:0}
 .account-top.owner-account .topline h1{font-size:clamp(28px,7vw,36px)}
 .account-top.owner-account .wallet{width:100%;padding:14px 0;border-left:0;border-top:1px solid #d8c9af}
 .account-top.owner-account .wallet #balance{font-size:44px}
}
/* Keep pinch zoom, native scrolling and text resizing; no touch-event traps. */
button,a,input,select,textarea,summary,[role=button]{touch-action:manipulation}
@media(max-width:850px),(pointer:coarse){
 body input,body select,body textarea{font-size:16px}
 .calnav{flex-wrap:wrap}
 .calnav input[type=date]{min-width:150px;max-width:100%}
}
@media(max-width:650px){
 body .account-top.owner-account .topline .sub{font-size:15px;overflow-wrap:anywhere}
 body .account-top.owner-account .wallet p{max-width:100%;overflow-wrap:anywhere}
 body .account-top.owner-account .wallet .eyebrow{letter-spacing:1px}
 #profile-menu-button{white-space:normal}
}
#welcome{white-space:pre-line}.account-top.owner-account{grid-template-columns:minmax(0,1fr) 210px;align-items:center}.owner-account .topline{background:transparent;color:var(--ink);padding:20px 0;min-height:0}.owner-account .topline h1{font-family:inherit;font-size:clamp(32px,5vw,58px);line-height:1.05;margin:12px 0}.owner-account .topline .eyebrow,.owner-account .topline .sub{color:var(--muted)}.owner-account .heroart{display:none}.owner-account .wallet{background:transparent;color:var(--ink);border-left:1px solid #d8c9af;padding:0 0 0 28px;min-height:0}.owner-account .wallet:after,.owner-account .wallet button{display:none}.owner-account .wallet #balance{font:64px Arial,sans-serif;color:#967239}.owner-account .wallet .eyebrow,.owner-account .wallet p{color:var(--muted)}
[hidden]{display:none!important}.brand{text-decoration:none;color:inherit}button{min-height:40px}form{max-width:560px}form label{margin:14px 0}form>button{margin:10px 8px 6px 0;padding:12px 18px;background:#c6aa74;color:#211d15;border-radius:3px}input,select,textarea{min-width:0;max-width:100%}input[type=date]{appearance:none;-webkit-appearance:none;width:100%;min-width:0}input[type=date]::-webkit-date-and-time-value{text-align:left;min-width:0}.calnav input[type=date]{width:148px}.check{display:flex;align-items:center;gap:10px}.check input{width:18px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.card{border:1px solid var(--line);padding:18px}.card button,.secondary{border:1px solid #d7c9af;background:#f7f3ea;color:#635235;padding:10px 14px;border-radius:3px}.row{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:16px 0;flex-wrap:wrap}.row p{margin:6px 0}.row button{margin:5px;padding:10px 14px;background:#e9e0cf;color:#67583e}.scroll{overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);padding:12px;font-size:12px}.muted,small{color:var(--muted)}.ui-view>h2{margin-bottom:18px}.ui-view>details{margin:16px 0;border:1px solid var(--line);padding:16px}.ui-view>details>summary{cursor:pointer;font-size:13px}.session-note{white-space:pre-wrap;overflow-wrap:anywhere}textarea{font:inherit;width:100%;padding:12px;border:1px solid #dbcfb9;background:#f4f0e7;border-radius:3px;color:#393123}#message:empty{display:none}#message{background:#eee5d3;color:#75623f;border:1px solid #d7c9af;padding:12px 16px;font-size:13px;white-space:pre-line}#profile-menu-wrap{position:relative}#profile-menu-button{display:flex;align-items:center;gap:10px;background:#e9e0cf;border:1px solid #d7c9af;border-radius:5px;padding:7px 12px;font-size:12px;color:#67583e}.profile-avatar{display:grid;place-items:center;width:30px;height:30px;background:#262117;color:#dec38d;border-radius:3px;font-size:11px}#profile-menu{position:absolute;right:0;top:calc(100% + 8px);width:270px;max-width:calc(100vw - 32px);padding:8px;border:1px solid #d7c9af;background:#faf8f3;box-shadow:0 10px 30px #211d1520;z-index:20}#profile-menu button{display:block;width:100%;text-align:left;background:transparent;color:#393123;padding:10px;font-size:13px}#profile-menu button:hover{background:#e9e0cf}.owner-tabs button[aria-pressed=true]{background:#262117;color:#dec38d}.client-list{margin:18px 0}.client-item{border:0;margin:0;padding:0}.client-item>summary{display:none}.client-detail{padding:0}.client-detail .client-subscriptions>button{margin:12px 8px 0 0}.client-contact{font-size:14px}.client-subscriptions small{display:block}.subscription-state.owner{background:#e9ddc3;color:#806329}.subscription-state.empty{background:#e6e1d9;color:#756459}.close{min-width:40px;min-height:40px}.calscroll .calcell{min-height:49px}.account-top .balance{font-size:38px;letter-spacing:-1px}.account-top .wallet{min-width:0}.owner-team-row{overflow-wrap:anywhere}#team-form{padding:8px 12px}#sync-state{font-size:11px;color:var(--muted)}#logout{margin:12px 0}#live-rooms{margin-top:18px}#booking-form{max-width:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}#booking-form>label{margin:0}#booking-form .duration-shortcuts,#quote,#booking-form>p,#note-label{grid-column:1/-1}#booking-form>button{justify-self:start}#calendar{--cols:3}#client-dialog{max-width:620px}#client-dialog .subscription-controls>p{font-size:13px}#login{max-width:540px;margin:50px auto}footer{padding:20px 16px;max-width:1250px;margin:20px auto}
@media(max-width:650px){#profile-menu-button{font-size:11px;gap:6px;padding:6px 8px}header{flex-wrap:nowrap!important}.calnav{flex-wrap:wrap}.calnav input[type=date]{width:133px}.owner-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.owner-tabs button{min-width:0}.cards{grid-template-columns:minmax(0,1fr)}#booking-form{grid-template-columns:minmax(0,1fr)}.owner-client{font-size:12px}.account-top .wallet .balance{font-size:36px}.row{font-size:13px}.row button{font-size:12px}.calcell strong{font-size:10px}}
