.customer-access{display:grid;gap:12px;margin-bottom:20px}
.customer-access label{font-weight:600}
.customer-access input{width:100%;box-sizing:border-box;border:1px solid #ddd;border-radius:12px;padding:12px;font:inherit;background:#fff;color:#222}
.customer-access input[readonly],.person-fields input[readonly]{background:#f7f5f3;color:#555}
.customer-link{border:0;background:transparent;color:#666;text-decoration:underline;text-underline-offset:3px;font:inherit;padding:8px 0;text-align:left;cursor:pointer}
.customer-link:disabled{opacity:.6;cursor:wait}
.customer-access>.customer-sms-option{justify-self:center;width:auto;max-width:100%;text-align:center}
[hidden]{display:none!important}

.customer-page{margin:0;display:flex;flex-direction:column;min-height:100vh;min-height:100svh;background:#fcf9f4;color:#584f4c;font:18px/1.5 "Afacad",system-ui,-apple-system,Segoe UI,sans-serif;color-scheme:light}
.customer-page *{box-sizing:border-box}
.customer-page a{color:inherit}
.customer-page button,.customer-page input,.customer-page a{touch-action:manipulation}
.customer-page :focus-visible{outline:2px solid #a77969;outline-offset:3px}
.customer-main{flex:1;width:min(760px,calc(100% - 40px));margin-inline:auto;padding:44px 0 24px}
.customer-main[data-view=login]{display:flex;flex-direction:column;justify-content:center;width:min(480px,calc(100% - 40px));padding-block:56px}
.customer-main h1{margin:0 0 28px;font-size:36px;font-weight:600;line-height:1.15;text-align:center;letter-spacing:-.02em;color:#423a37}
.customer-main h2{margin:30px 0 16px;font-size:25px;font-weight:600;line-height:1.2;color:#423a37}
.customer-main .btn,.customer-dialog .btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:44px;border:1px solid #e3c6bc;border-radius:999px;padding:11px 20px;background:#f3d4ca;color:#483d38;font:inherit;font-weight:500;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}
.customer-main .btn:hover:not(:disabled),.customer-dialog .btn:hover:not(:disabled){background:#edc5b8;border-color:#d8b1a1}
.customer-main .btn--secondary{background:#fff;border-color:#e4dcd6;color:#6c5c55}
.customer-main .btn--secondary:hover:not(:disabled){background:#faf4ef;border-color:#d9c5ba}
.customer-page .btn:disabled{opacity:.55;cursor:default}
.customer-profile,.customer-group{border:1px solid #e8dfd9;border-radius:22px;background:#fff;box-shadow:0 4px 20px #584f4c05}
.customer-profile{padding:28px}
.customer-page .customer-access{gap:10px;margin:0;min-width:0}
.customer-access>label:not(:first-child){margin-top:10px}
.customer-page .customer-access input{min-height:48px;border-color:#e4dcd6;color:#483d38;line-height:1.3}
.customer-page .customer-access input::placeholder{color:#a59993;opacity:1}
.customer-access>.btn{margin-top:8px}
.customer-access-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px}
.customer-page .customer-link{color:#79665c;min-height:40px;line-height:1.3}
.customer-page .customer-link:hover:not(:disabled){color:#423a37}
.customer-access--signed-in{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:20px}
.customer-identity{min-width:0}
.customer-identity strong{display:block;font-size:23px;font-weight:600;line-height:1.25;overflow-wrap:anywhere}
.customer-identity p{margin:5px 0 0;color:#8b786d;font-variant-numeric:tabular-nums}
.customer-access--signed-in>.customer-link{border:1px solid #e4dcd6;border-radius:999px;padding:10px 18px;text-decoration:none;text-align:center;background:#fff}
.customer-access--signed-in>.customer-link:hover:not(:disabled){background:#faf4ef}
.customer-access--signed-in>.customer-message{grid-column:1/-1}
#customer-code{text-align:center;font-size:24px;letter-spacing:.25em;font-variant-numeric:tabular-nums}
.customer-group{overflow:hidden;margin-bottom:18px}
.customer-group>.customer-actions{padding:16px 24px;background:#fdf8f5;border-bottom:1px solid #eee3dc}
.customer-booking{padding:24px}
.customer-booking+.customer-booking{border-top:1px solid #eee3dc}
.customer-booking-heading{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 20px}
.customer-main .customer-booking-heading :is(h2,h3){margin:0;font-size:22px;font-weight:600;line-height:1.25;color:#423a37}
.customer-booking-date{margin:0;color:#8b786d;font-size:17px;white-space:nowrap}
.customer-booking-services{margin:12px 0 6px;line-height:1.4;overflow-wrap:anywhere}
.customer-booking-meta{margin:0;color:#8b786d;font-size:16px;line-height:1.4}
.customer-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.customer-booking>.customer-actions{margin-top:18px}
.customer-empty{margin:0;padding:28px;text-align:center;border:1px dashed #ddcfc6;border-radius:18px;color:#8b786d}
.customer-message{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:10px;margin:14px 0;padding:13px 15px;border:1px solid #e7ddd4;border-radius:12px;background:#faf5ef;color:#756257;font-size:16px;line-height:1.4;overflow-wrap:anywhere}
.customer-message:empty{display:none}
.customer-message::before{content:"i" / "";display:grid;place-items:center;width:19px;height:19px;margin-top:2px;border:1px solid currentColor;border-radius:50%;font:600 13px/1 system-ui}
.customer-message[data-kind=error]{color:#a13d34;border-color:#efcec8;background:#fff4f1}
.customer-message[data-kind=error]::before{content:"!" / ""}
.customer-message[data-kind=success]{color:#44674c;border-color:#d4e2d3;background:#f2f8f0}
.customer-message[data-kind=success]::before{content:"✓" / ""}
.customer-message[data-kind=loading]::before{content:"";border:2px solid #e4d5c9;border-top-color:#9b8070;animation:customer-loading .8s linear infinite}
.customer-access>.customer-message{margin:6px 0 0}
.customer-notice{margin:16px 0 0;padding:13px 15px;border:1px solid #e7ddd4;border-radius:12px;background:#faf5ef;color:#756257;font-size:16px;line-height:1.5}
.customer-dialog{border:1px solid #e8dfd9;border-radius:22px;padding:28px;width:min(680px,calc(100vw - 32px));max-height:85dvh;overflow:auto;color:#584f4c;background:#fff;box-sizing:border-box;box-shadow:0 20px 80px #342b2833;font:inherit}
.customer-dialog::backdrop{background:#30252070;backdrop-filter:blur(3px)}
.customer-dialog h2{margin:0;font-size:28px;line-height:1.2;color:#423a37}
.customer-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.customer-dialog-close{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;margin-top:-5px;border:1px solid #e4dcd6;border-radius:50%;background:#fff;color:#79665c;cursor:pointer}
.customer-dialog-close:hover{background:#faf4ef;border-color:#d9c5ba;color:#423a37}
.customer-dialog label{display:flex;gap:10px;align-items:flex-start;margin:10px 0;line-height:1.35}
.customer-dialog .customer-slots{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.customer-slots .btn{background:#fff;border-color:#e4dcd6;min-width:76px}
.customer-slots button[aria-pressed=true]{background:#f3d4ca;border-color:#b78777}
.customer-dialog .customer-actions{margin-top:24px;justify-content:flex-end}
.customer-dialog .customer-danger{color:#a13d34;background:#fff4f1;border-color:#efcec8}
.customer-dialog .customer-danger:hover:not(:disabled){background:#fbe5df;border-color:#ddb4ac}
@keyframes customer-loading{to{transform:rotate(360deg)}}
@keyframes customer-slots-wait{from{opacity:1}to{opacity:.65}}
@keyframes customer-loading-reveal{from{opacity:0}to{opacity:1}}
@media(max-width:560px){
  .customer-main{width:calc(100% - 32px);padding-top:30px}
  .customer-main[data-view=login]{width:calc(100% - 32px);padding-block:36px}
  .customer-main h1{font-size:32px;margin-bottom:22px}
  .customer-main h2{margin-top:26px;font-size:23px}
  .customer-profile{padding:22px 20px;border-radius:18px}
  .customer-access--signed-in{grid-template-columns:1fr;gap:14px}
  .customer-access--signed-in>.customer-link{justify-self:start}
  .customer-group{border-radius:18px}
  .customer-group>.customer-actions{padding:16px 18px}
  .customer-booking{padding:20px 18px}
  .customer-booking-heading{flex-direction:column;gap:5px}
  .customer-main .btn,.customer-dialog .btn{padding:11px 17px}
  .customer-actions{gap:8px}
  .customer-dialog{padding:22px 18px}
  .customer-dialog .customer-actions>.btn{flex:1}
}

.phone-control{position:relative;display:grid;grid-template-columns:minmax(180px,.9fr) minmax(0,1.1fr);gap:10px;min-width:0}
.phone-control input,.phone-country-button{box-sizing:border-box;width:100%;min-width:0;border:1px solid #ddd;border-radius:12px;padding:12px;font:inherit;color:inherit;background:#fff}
.phone-country-button{display:flex;align-items:center;gap:8px;text-align:left;padding:12px 14px;border-color:#e6d8d1;background:#fcf9f4;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}
.phone-country-button::after{content:"";flex:0 0 7px;width:7px;height:7px;margin-left:auto;border-right:1.5px solid #8a7167;border-bottom:1.5px solid #8a7167;transform:translateY(-2px) rotate(45deg)}
.phone-country-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.phone-country-prefix{flex-shrink:0;font-variant-numeric:tabular-nums;font-weight:600}
.phone-country-button:hover:not(:disabled),.phone-country-button[aria-expanded=true]{border-color:#c99f92;background:#fff8f4}
.phone-country-button:disabled{cursor:default;opacity:.65}
.phone-control--locked{grid-template-columns:1fr}
.phone-country-button:focus-visible,.phone-control input:focus-visible{outline:2px solid #b78777;outline-offset:2px}
.phone-country-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:30;box-sizing:border-box;display:flex;flex-direction:column;gap:8px;width:min(420px,100%);max-height:340px;padding:10px;border:1px solid #e6d8d1;border-radius:16px;background:#fff;box-shadow:0 12px 36px #584f4c24}
.phone-country-menu--above{top:auto;bottom:calc(100% + 8px)}
.phone-control .phone-country-search{flex-shrink:0;margin:0;border-radius:10px;background:#fcf9f4;font-size:16px}
.phone-country-list{position:relative;overflow-y:auto;overscroll-behavior:contain;min-height:0;scrollbar-width:thin}
.phone-country-option{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:44px;padding:10px 12px;border:0;border-radius:9px;background:#fff;color:inherit;font:inherit;text-align:left;cursor:pointer}
.phone-country-option+.phone-country-option{margin-top:6px}
.phone-country-option .phone-country-prefix{color:#8a7167;font-size:.95em}
.phone-country-option:hover,.phone-country-option.is-active{background:#fcf1ea}
.phone-country-option[aria-selected=true]{font-weight:700}
.phone-country-empty{padding:12px;margin:0;color:#7b6f6b;font-size:15px;line-height:1.4}
@media(max-width:359px){.phone-control:not(.phone-control--locked){grid-template-columns:1fr}}

#customer-edit{width:min(800px,calc(100vw - 32px))}
.customer-scheduler{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;margin-top:24px;align-items:start}
.customer-scheduler section{min-width:0}
.customer-scheduler h3{margin:0 0 12px;font-size:20px;font-weight:600;line-height:1.35}
.customer-slot-heading{position:relative;padding-right:28px}
.customer-slots-loading{position:absolute;top:4px;right:0;width:18px;height:18px;animation:customer-loading-reveal .15s step-end}
.customer-slots-loading::before{content:"";display:block;box-sizing:border-box;width:100%;height:100%;border:2px solid #e4d5c9;border-top-color:#9b8070;border-radius:50%;animation:customer-loading .8s linear infinite}
.customer-slots-loading>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.customer-scheduler .customer-slots{margin:0;align-content:flex-start;align-items:flex-start}
.customer-slots[aria-busy=true] .btn{opacity:.65;cursor:wait;animation:customer-slots-wait .15s ease .15s both}
@media(max-width:640px){.customer-scheduler{grid-template-columns:1fr;gap:24px}.customer-scheduler .booking-calendar{max-width:380px;margin-inline:auto}}
@media(prefers-reduced-motion:reduce){.customer-message[data-kind=loading]::before,.customer-slots-loading::before,.customer-slots-loading,.customer-slots[aria-busy=true] .btn{animation:none}.customer-page .btn{transition:none}}

.customer-parking{display:flex;align-items:center;gap:10px;width:fit-content;margin:18px 0 0;padding:10px 14px;border:1px solid #e8dfd9;border-radius:12px;background:#fcf9f4;cursor:pointer}
.customer-parking input{appearance:none;flex:0 0 20px;width:20px;height:20px;margin:0;border:1px solid #bda99c;border-radius:6px;background:#fff;display:grid;place-items:center;cursor:pointer}
.customer-parking input:checked{background:#b78777;border-color:#b78777}
.customer-parking input:checked::after{content:"";width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg)}
.customer-parking input:disabled{opacity:.55;cursor:wait}
.customer-parking span{line-height:1.3}
