.home-dashboard{background:transparent!important;border:0!important;padding:0!important;display:grid;gap:16px;margin-top:20px}.home-dashboard[hidden]{display:none!important}.home-block{padding:20px;border:1px solid #d9ceb9;border-radius:16px;background:#faf7ef;min-width:0}.home-block h2{font-size:20px;margin:0 0 16px}.home-block .quiet{font-size:13px;line-height:1.5}.home-block button{font:inherit;color:#3c321e;-webkit-text-fill-color:#3c321e;border-radius:12px;padding:12px 16px;background:#eae0c7;border:1px solid #cbb784;cursor:pointer}.home-block .home-row{display:flex;flex-direction:column;align-items:flex-start;gap:7px;text-align:left;width:100%;margin:10px 0;padding:14px;border:1px solid #ded3bf;border-radius:12px;background:#f4efe3;overflow-wrap:anywhere}.home-row span{font-size:14px}.home-row small{font-size:12px}.home-block .home-unread{border-left:3px solid #b99a58}.home-block select{font:inherit;width:100%;padding:10px;border:1px solid #cbb784;border-radius:10px;background:#faf7ef;color:#3c321e}.home-chart{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:20px 0}.home-chart-day{text-align:center;font-size:12px;min-width:0}.home-chart-track{height:120px;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid #cbb784;margin:8px 0;background:repeating-linear-gradient(to top,transparent 0,transparent 29px,#e3d9c5 30px)}.home-chart-track i{display:block;width:65%;min-height:2px;background:#bea568;border-radius:5px 5px 0 0;transition:height .3s ease}.home-chart-day small{font-size:11px}.account-top .topline h1{font-size:clamp(25px,4vw,34px)!important}#app .account-top .topline,#app .account-top .wallet{min-height:0;padding:20px!important}#app .account-top .wallet #balance{font-size:clamp(28px,6vw,40px)}#app .account-top .sub,#app .account-top #expiry{font-size:14px;margin:10px 0}.account-top .eyebrow{font-size:11px}#app:has(#client-home-panel:not([hidden])) .account-top .wallet{padding-bottom:48px!important}@media(min-width:850px){.home-dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){.home-chart-track i{transition:none}}

#mobile-bottom-nav button{position:relative}.home-payment-count{position:absolute;top:4px;right:12px;min-width:18px;padding:2px 4px;border-radius:12px;background:#a83b30;color:#fff!important;-webkit-text-fill-color:#fff!important;font:11px Arial,sans-serif}


/* A native modal covers the entire viewport, traps focus and keeps long notes scrollable. */
#club-dialog.shift-dialog{width:min(540px,calc(100vw - 28px));max-height:calc(100dvh - 32px);box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;padding:24px;border:1px solid #d9ceb9;border-radius:18px;background:#faf7ef;color:#3c321e;animation:shift-dialog-in .2s ease-out}
#club-dialog.shift-dialog::backdrop{background:rgba(25,22,17,.42);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);animation:shift-backdrop-in .2s ease-out}
#club-dialog.shift-dialog fieldset{border:0;padding:0;margin:18px 0;min-width:0}#club-dialog.shift-dialog .shift-choice{display:flex;align-items:flex-start;gap:10px;line-height:1.5;margin:12px 0}#club-dialog.shift-dialog .shift-choice input{width:auto;flex:0 0 auto;margin-top:5px}#club-dialog.shift-dialog textarea{box-sizing:border-box;width:100%;min-height:110px;resize:vertical}#club-dialog.shift-dialog [type=submit]{width:100%;white-space:normal}#club-dialog.shift-dialog :focus-visible{outline:2px solid #81672e;outline-offset:3px}
@keyframes shift-dialog-in{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@keyframes shift-backdrop-in{from{opacity:0}to{opacity:1}}
@media(max-width:600px){#club-dialog.shift-dialog{padding:18px;max-height:calc(100dvh - 24px);width:calc(100vw - 24px)}}
@media(prefers-reduced-motion:reduce){#club-dialog.shift-dialog,#club-dialog.shift-dialog::backdrop{animation:none}}

/* Sessions use the regular page layout and keep bottom navigation available. */
#my-sessions-panel .my-session-tabs button{white-space:normal}
#my-sessions-panel .row{overflow-wrap:anywhere;min-width:0}
#mobile-bottom-nav.client-navigation button span{white-space:normal;text-overflow:clip;line-height:1.15}

/* Subscription details share the clickable client balance card. */
#app:has(#client-home-panel:not([hidden])) .account-top .wallet.client-wallet{padding-bottom:20px!important}
#app .account-top .wallet.client-wallet #credit-balance-terms{color:#e0c58d;font-size:14px;line-height:1.5;padding-right:28px;margin-bottom:0}
#app .account-top .wallet .wallet-profile-arrow{display:none}
#app .account-top .wallet.client-wallet .wallet-profile-arrow{display:block;position:absolute;right:20px;bottom:20px;color:#e0c58d;-webkit-text-fill-color:#e0c58d;font:22px/1.2 Arial,sans-serif;pointer-events:none;z-index:2}

/* Duty contact links share the dashboard button palette and touch target. */
.home-block .home-row>a{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:44px;max-width:100%;padding:10px 16px;margin-top:4px;border:1px solid #cbb784;border-radius:12px;background:#eae0c7;color:#3c321e;-webkit-text-fill-color:#3c321e;font:inherit;line-height:1.4;text-align:center;text-decoration:none;white-space:normal;overflow-wrap:anywhere;touch-action:manipulation}
.home-block .home-row>a:hover{background:#e1d3b0}
.home-block .home-row>a:focus-visible{outline:2px solid #967239;outline-offset:3px}


/* Owner home: compact tappable revenue pace, booking capacity and confirmed shift. */
.home-dashboard .owner-summary-card,.home-dashboard .owner-duty{display:block;width:100%;text-align:left;box-sizing:border-box;background:#faf7ef;color:#24231e;-webkit-text-fill-color:currentColor;border:1px solid #d9ceb9;border-radius:20px;padding:22px;font:inherit;cursor:pointer;min-width:0;white-space:normal}
.owner-card-heading{display:flex;justify-content:space-between;align-items:center;font-size:23px;font-weight:800;gap:12px}.owner-chevron{font-size:30px;line-height:1;color:#898375;flex-shrink:0}.owner-hero-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 6px}.owner-hero-line>strong{font-size:52px;line-height:1.1;letter-spacing:-1.5px}.owner-state{border-radius:24px;padding:9px 12px;font-size:12px;font-weight:700;line-height:1.35;max-width:48%;text-align:center}.owner-state-red{background:#f2d9d5;color:#934b42}.owner-state-yellow{background:#f5e9b8;color:#77601f}.owner-state-green{background:#e1ebdc;color:#47694e}.owner-state-gold{background:#ede1bd;color:#735f28}.owner-state-unknown{background:#ebe7dc;color:#6f6b61}.owner-caption{display:block;color:#888274;font-size:13px}.owner-pace{position:relative;margin:34px 0 24px;padding-bottom:25px}.owner-pace-track{display:flex;height:15px;gap:2px}.owner-zone{border-radius:4px;display:block}.owner-zone-red{background:#c97d71}.owner-zone-yellow{background:#ddc566}.owner-zone-green{background:#789a7e}.owner-zone-gold{background:#b69a52}.owner-pace-marker{position:absolute;top:-9px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid #24231e;transform:translateX(-50%)}.owner-pace-ticks{position:relative;margin-top:10px;font-size:10px;color:#888274}.owner-pace-ticks span{white-space:nowrap;position:absolute;transform:translateX(-50%)}.owner-pace-ticks span:first-child{transform:none}.owner-pace-ticks span:last-child{transform:translateX(-100%)}.owner-money-line{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.owner-money-line strong{font-size:28px}.owner-money-line>span{font-size:12px;color:#888274}.owner-card-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #ded3bf;padding-top:16px;margin-top:18px;font-size:12px;color:#888274}.owner-card-footer b{color:#816a35;white-space:nowrap}.owner-occupancy-numbers{display:grid;grid-template-columns:1fr 1fr;margin:24px 0 20px}.owner-occupancy-numbers>span{display:grid;gap:8px}.owner-occupancy-numbers>span+span{border-left:1px solid #ded3bf;padding-left:24px}.owner-occupancy-numbers strong{font-size:38px;line-height:1.1}.owner-occupancy-numbers small{font-size:13px;color:#888274}.owner-occupancy-track{display:block;height:9px;border-radius:9px;background:#e8e1d1;overflow:hidden}.owner-occupancy-track i{display:block;height:100%;background:#b69a52;border-radius:9px}.home-dashboard .owner-duty{display:flex;align-items:center;gap:10px;padding:18px 22px;background:#eae4d7;border:0;font-size:16px}.owner-duty strong{flex:1;overflow-wrap:anywhere}.owner-duty-dot{width:8px;height:8px;border-radius:50%;background:#a39c8f;flex:none}.owner-duty-dot.is-active{background:#789a7e}.owner-detail-panel{max-width:820px;margin:auto}.owner-detail-totals>div{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid #ded3bf}.owner-detail-totals dd{margin:0;font-weight:bold;text-align:right}.owner-detail-rows article{padding:12px 0;border-bottom:1px solid #ded3bf}.owner-detail-panel details{padding:16px 0}.owner-detail-panel p{line-height:1.6}.owner-summary-card:focus-visible,.owner-duty:focus-visible{outline:3px solid #81672e;outline-offset:3px}@media(min-width:850px){.owner-duty{grid-column:1/-1}}@media(max-width:360px){.home-dashboard .owner-summary-card{padding:18px}.owner-card-heading{font-size:21px}.owner-hero-line>strong{font-size:44px}.owner-occupancy-numbers strong{font-size:34px}.owner-state{font-size:11px}}

.owner-refresh{display:flex;justify-content:space-between;align-items:center;color:#888274;font-size:12px;gap:12px;grid-column:1/-1}.owner-refresh button{font:inherit;padding:8px 12px;border:1px solid #d9ceb9;border-radius:9px;background:transparent;color:#725f34}

#app:has(#staff-home-panel:not([hidden]) .owner-home-heading)>.account-top{display:none!important}.owner-home-heading{grid-column:1/-1}.owner-home-heading h1{font:800 clamp(30px,5vw,44px)/1.1 Arial,sans-serif;margin:8px 0 12px;letter-spacing:-.8px}.owner-home-heading p{color:#888274;font-size:16px;margin:0 0 18px}.owner-home-heading nav{display:flex;flex-wrap:wrap;gap:8px}.owner-home-heading button{font:inherit;font-size:13px;padding:10px 12px;border:1px solid #d9ceb9;border-radius:10px;background:transparent;color:#725f34}.home-dashboard .owner-summary-card{align-self:start}.owner-pace{display:block;min-height:40px}.owner-pace-ticks{display:block;height:12px}

/* Weekly occupancy lives in the existing card, with its original chart/filter. */
.owner-occupancy-card {display:block;cursor:default}
.owner-occupancy-overview {display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;box-shadow:none}
.owner-occupancy-overview:hover {background:transparent}
.owner-week {margin-top:16px;border-top:1px solid #e9e3d8;padding-top:12px}
.owner-week > summary {display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-weight:650;list-style:none;padding:4px 0}
.owner-week > summary::-webkit-details-marker {display:none}
.owner-week[open] > summary > span {transform:rotate(180deg)}
.owner-week-body {padding-top:12px}
.owner-week-period {font-size:13px;color:#6f6a61}
.owner-week .owner-occupancy-numbers {margin-top:18px}
.owner-week .home-chart {margin-top:16px}
.owner-week select {width:100%}
.owner-week summary:focus-visible,.owner-occupancy-overview:focus-visible {outline:2px solid #9c793b;outline-offset:4px;border-radius:8px}

.home-dashboard .owner-occupancy-card {cursor:default}
.home-dashboard .owner-duty {cursor:default}
.home-dashboard .owner-duty-contacts {display:grid;gap:14px}
.owner-duty-person {display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%}
.owner-duty-person strong {min-width:120px}
.owner-telegram {display:inline-flex;padding:10px 12px;border:1px solid #c8b995;border-radius:10px;color:#725f34;background:#faf7ef;font-size:13px;text-decoration:none;justify-content:center}
.owner-telegram:focus-visible {outline:3px solid #81672e;outline-offset:3px}
.owner-duty-unavailable {font-size:12px;color:#726c60}
@media(max-width:480px){.owner-telegram,.owner-duty-unavailable{margin-left:18px}}
.owner-occupancy-overview {font:inherit;white-space:normal;-webkit-text-fill-color:currentColor;cursor:pointer}
