/* My Oasis only. Booking, Group details and the staff workspaces are unchanged. */
#appointments-panel{order:-1}
.welcome .text-button{white-space:nowrap;flex-shrink:0}
#appointments .portal-appointment{display:block;padding:22px 0}
#appointments .portal-appointment:first-child{padding-top:0}
#appointments .appointment-summary{display:block;width:100%;min-width:0;padding:0;color:var(--ink);text-align:left}
#appointments .portal-card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:14px}
#appointments .date-time b{font-size:18px}
#appointments .date-time small{display:block;margin-top:3px}
#appointments .portal-card-total{text-align:right;flex:none}
#appointments .portal-card-total strong{display:block;font-size:23px;line-height:1.25}
#appointments .portal-card-total small{display:block;color:var(--muted);font-size:12px}
#appointments .service-copy{display:grid;gap:10px;min-width:0}
#appointments .portal-service{display:block}
#appointments .portal-service strong{font-size:17px;line-height:1.4;overflow-wrap:anywhere}
#appointments .portal-service small{display:block;margin-top:3px;line-height:1.55;overflow-wrap:anywhere}
#appointments .portal-appointment-status{display:block;margin-top:10px;color:var(--muted);font-size:13px}
#appointments .portal-open-group{margin-top:18px;min-height:44px}
.portal-grid[hidden],#portal-group-view[hidden]{display:none!important}
.portal-group-view{scroll-margin-top:18px}
.portal-group-view #portal-group-back{margin:0 0 20px;padding:0;color:var(--green);font-weight:700}
.portal-group-view-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.portal-group-view-heading h2{margin:0}
.portal-group-view-heading .quiet{margin:8px 0 0}
.portal-group-view-heading .portal-card-total{text-align:right;flex:none}
.portal-group-view-heading .portal-card-total small{display:block;color:var(--muted);font-size:12px}
.portal-group-view-heading .portal-card-total strong{display:block;font-size:23px}
.portal-group-view .portal-inline-details{margin-top:20px}
.portal-group-view .portal-group-time-request textarea{width:100%;min-height:90px;padding:10px;border:1px solid var(--line);border-radius:8px;font:inherit}
#appointments .detail-arrow{display:inline-block;margin-top:10px;color:var(--green);font-size:18px;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.portal-history-row button:focus-visible{outline:2px solid var(--green);outline-offset:5px;border-radius:4px}
.portal-inline-details{grid-column:1/-1;margin-top:18px;padding:20px;border:1px solid var(--line);border-radius:12px;background:#f8faf8}
.portal-inline-details[hidden]{display:none!important}
.portal-inline-details .detail-services{margin:12px 0}
.portal-inline-details .detail-service{padding:15px 0}
.portal-inline-details .detail-service>strong{font-size:18px;line-height:1.4}
.portal-inline-details .couple-treatment h3{margin:0;font-size:21px;line-height:1.35}
.portal-inline-details .couple-treatment>.quiet{margin:5px 0 0}
.portal-inline-details .couple-shared-service{margin:12px 0 0;font-weight:700}
.portal-inline-details .couple-guests{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:17px}
.portal-inline-details .couple-guest{padding:15px;border:1px solid var(--line);border-radius:10px;background:#fff}
.portal-inline-details .couple-guest h4{margin:0 0 10px;font-size:17px}
.portal-inline-details .couple-guest-service{display:grid;gap:3px;margin-top:9px}
.portal-inline-details .couple-guest-service small{color:var(--muted)}
.portal-inline-details .couple-guest-addons{margin:13px 0 0;line-height:1.5}
.portal-inline-details .detail-service-description{margin:8px 0;color:var(--ink);white-space:pre-line;line-height:1.6}
.portal-inline-details .detail-add-ons{margin-top:12px}
.portal-inline-details .detail-add-ons>b{font-size:14px}
.portal-inline-details .detail-add-ons ul{list-style:none;margin:6px 0 0;padding:0}
.portal-inline-details .detail-add-ons li,.portal-inline-details .detail-booked-total{display:flex;justify-content:space-between;gap:16px}
.portal-inline-details .detail-add-ons li{padding:4px 0;color:var(--muted)}
.portal-inline-details .detail-booked-total{margin:16px 0 0;padding-top:15px;border-top:1px solid var(--line);font-size:18px}
.portal-inline-details .appointment-actions{margin-top:18px;gap:10px}
.portal-inline-details .appointment-actions .small-button{min-height:44px;display:inline-flex;align-items:center}
@media(max-width:600px){.portal-inline-details .couple-guests{grid-template-columns:1fr}}
.portal-inline-service-change{margin-top:20px;padding:20px;border:1px solid var(--line);border-radius:12px;background:#fff}
.portal-inline-service-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.portal-inline-service-heading .kicker{margin:0 0 6px}
.portal-inline-service-heading h3{margin:0;font-size:21px}
.portal-inline-service-change>.quiet{margin:12px 0 18px;line-height:1.5}
.portal-inline-service-choices{display:grid;gap:10px;margin-bottom:14px}
.portal-service-stage{padding:14px 0;border-top:1px solid var(--line)}
.portal-service-stage h4{margin:0 0 12px;font-size:16px}
.portal-service-step-buttons{display:flex;flex-wrap:wrap;gap:10px}
.portal-service-step-buttons[data-category-buttons]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.portal-service-step-buttons button{min-height:48px;padding:10px 14px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-weight:700;text-align:left;cursor:pointer}
.portal-service-step-buttons button.selected{border-color:var(--green);background:var(--green-soft);color:var(--green)}
.portal-service-step-buttons button:disabled{opacity:.45;cursor:not-allowed}
.portal-service-final-choices{display:grid;gap:10px}
.portal-service-option-row{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:8px}
.portal-service-option-row .portal-inline-service-choice{min-width:0}
.portal-service-info-button{width:44px;height:44px;border:1px solid var(--green);border-radius:50%;background:#fff;color:var(--green);font-family:inherit;font-size:18px;font-weight:700;line-height:1;cursor:pointer}
.portal-service-info-button:hover,.portal-service-info-button:focus-visible{background:var(--green-soft)}
.portal-service-info-dialog{max-width:min(580px,calc(100vw - 32px))}
.portal-service-info-dialog #portal-service-info-copy{white-space:pre-line;line-height:1.6;overflow-wrap:anywhere}
.portal-inline-service-choice{display:flex;align-items:center;gap:14px;min-height:66px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;cursor:pointer}
.portal-inline-service-choice:has(input:checked){border-color:var(--green);background:var(--green-soft)}
.portal-inline-service-choice input{flex:none;width:20px;height:20px;accent-color:var(--green)}
.portal-inline-service-choice span{display:grid;gap:4px;min-width:0}
.portal-inline-service-choice strong{font-size:16px;overflow-wrap:anywhere}
.portal-inline-service-choice small{color:var(--muted);font-size:13px}
.portal-inline-service-change [data-service-save]{min-height:44px;width:auto;padding:0 22px;border:1px solid var(--green);border-radius:8px;background:var(--green);color:#fff;font-weight:700;cursor:pointer}
.portal-inline-service-change [data-service-save]:disabled{opacity:.55;cursor:not-allowed}
.portal-inline-service-change [data-addon-choices] .portal-service-option-row{margin-top:8px}
.portal-inline-service-change [data-addon-total]{font-weight:700}
.portal-inline-service-change [data-addon-save]{min-height:44px;padding:0 22px;border:1px solid var(--green);border-radius:8px;background:var(--green);color:#fff;font-weight:700;cursor:pointer}
.portal-inline-service-change [data-addon-save]:disabled{opacity:.55;cursor:not-allowed}
.portal-inline-service-success{padding:14px 16px;border-radius:10px;background:var(--green-soft);color:var(--green);font-weight:700}
.portal-group-guests{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.portal-group-guests>h3{margin:0 0 8px;font-size:19px}
.portal-group-guest{padding:16px 0;border-bottom:1px solid var(--line)}
.portal-group-guest>div:first-child{display:grid;gap:3px}
.portal-group-guest strong{font-size:17px}
.portal-group-guest small{color:var(--muted);overflow-wrap:anywhere}
.portal-group-guest-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.portal-group-guest-actions .small-button{min-height:42px}
.portal-group-guest [data-group-editor]{margin-top:14px}
.portal-group-guest [data-group-editor][hidden]{display:none}
.portal-group-editor{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:10px;background:#fff}
.portal-group-editor label{display:grid;gap:5px;font-weight:650}
.portal-group-editor input,.portal-group-editor textarea{width:100%;min-height:42px;padding:9px;border:1px solid var(--line);border-radius:7px;font:inherit}
.portal-group-editor textarea{min-height:80px}
.portal-group-editor .portal-inline-service-choice{display:flex;gap:14px;align-items:center;min-height:66px;font-weight:400}
.portal-group-editor .portal-inline-service-choice input{width:20px;min-height:20px;padding:0;flex:none}
.portal-group-editor [data-save-service]{min-height:44px;width:max-content;padding:0 18px;border:1px solid var(--green);border-radius:8px;background:var(--green);color:#fff;font:inherit;font-weight:700}
.portal-group-editor [data-save-service]:disabled{opacity:.55}
.portal-group-addon{display:block;margin:8px 0;font-weight:400!important}
.portal-group-addon input{width:auto;min-height:auto}
.portal-group-addon-row{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:8px;margin:8px 0}
.portal-group-editor .portal-group-addon-row .portal-group-addon{display:flex;align-items:center;gap:8px;min-width:0;margin:0}
#appointments .appointment-actions{margin-top:14px;justify-content:flex-start}
.portal-history{margin-top:22px;border-top:1px solid var(--line);padding-top:16px}
.portal-history>summary{color:var(--muted);font-weight:650;font-size:14px;cursor:pointer;min-height:40px}
.portal-history>summary span{font-weight:400}
.portal-history-row{padding:12px 0;border-top:1px solid #e7e9e5}
.portal-history-row button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;width:100%;padding:0;border:0;background:none;text-align:left;color:var(--ink)}
.portal-history-row .history-date{color:var(--muted);font-size:12px}
.portal-history-row .history-services{font-size:14px;overflow-wrap:anywhere}
.portal-history-row .history-price{grid-column:2;grid-row:1 / span 2;align-self:center;font-weight:650;font-size:14px}
.portal-history-row>small{color:var(--muted);font-size:12px}
#rewards-panel{grid-column:1/-1;scroll-margin-top:24px;outline-offset:5px}
#rewards{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);gap:24px;align-items:start}
.portal-rewards-catalog{min-width:0}
.portal-points-balance{padding:18px 20px;background:var(--green-soft);border-radius:10px}
.portal-points-balance>small{display:block;color:var(--muted)}
.portal-points-balance strong{font-size:34px;line-height:1.25;margin-right:6px}
.portal-points-balance p{margin:10px 0 0;font-size:14px;line-height:1.5}
.portal-rewards-heading{font-size:17px;margin:0 0 8px}
#rewards .reward{align-items:flex-start}
#rewards .reward small{display:block}
#rewards .reward button{flex-shrink:0}
@media(max-width:720px){
  #appointments .portal-card-heading{gap:12px}
  #appointments .portal-card-total strong{font-size:21px}
  #appointments .portal-service strong{font-size:16px}
  #appointments .appointment-actions .small-button{min-height:42px}
  #appointments .detail-arrow{font-size:17px}
  .portal-inline-details{padding:16px}
  .portal-inline-service-change{padding:16px}
  .portal-inline-service-heading h3{font-size:19px}
  .portal-service-step-buttons[data-category-buttons]{grid-template-columns:1fr}
  .portal-inline-service-change [data-service-save]{width:100%}
  .portal-points-balance{padding:16px}
  #rewards{grid-template-columns:1fr;gap:18px}
}
html.mobile-preview #rewards{grid-template-columns:1fr;gap:18px}
