/* Aethrovia Appointments: a quiet, readable appointment book. Keep calendar density usable. */
:root{
  --font:Manrope,system-ui,sans-serif;--display:Manrope,system-ui,sans-serif;--mono:'JetBrains Mono',ui-monospace,monospace;
  --black:#244638;--black-2:#1c382d;--ink:#24332b;--text:#35433a;--muted:#5c6b60;--faint:#748077;
  --bg:#f3f0e9;--paper:#fff;--surface:#fff;--surface-2:#f8f7f2;
  --border:#d7dcd2;--border-strong:#aab8aa;--accent:#315d49;--accent-hover:#244b39;--accent-tint:#e8efe7;
  --success:#276545;--success-tint:#e8f2e9;--danger:#a33734;--danger-tint:#faeae8;
  --focus-ring:0 0 0 3px rgba(49,93,73,.23)
}
html{font-size:16px}
body{font-weight:400;line-height:1.45;background:var(--bg);color:var(--text)}
h1,h2,h3{font-family:var(--display);font-weight:700;letter-spacing:-.025em;line-height:1.15;color:var(--ink)}
h1{font-size:clamp(2.25rem,3.7vw,3.3rem)}h2{font-size:1.7rem}h3{font-size:1.25rem}
p{margin-bottom:.75em}a{text-decoration-color:#9cb5a1}a:hover{text-decoration-color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
::selection{background:#d5e8d7;color:var(--ink)}
.mono,time{font-family:var(--mono);font-variant-numeric:tabular-nums}
.eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.08em;color:var(--muted);text-transform:none}
.panel{border-radius:7px;box-shadow:none}
.screen{width:min(100% - 56px,1420px);padding:35px 0 68px}
.screen-head{margin-bottom:24px}.screen-head h1{margin:4px 0 6px}.screen-lede{font-size:.98rem}
.screen-head>div,.calendar-heading>div{min-width:0}
.screen-head h1,.screen-lede,.calendar-heading .eyebrow,.modal-head h2{overflow-wrap:anywhere}
.flash{border-radius:5px;background:var(--accent-tint);border-color:#bfd4c2}
.btn{font-weight:700;border-radius:5px;font-size:.94rem;min-height:43px;transition:background .12s,border-color .12s}
.btn-primary{color:#fff;background:var(--accent);border-color:var(--accent)}
.btn-primary:hover{color:#fff;background:var(--accent-hover);border-color:var(--accent-hover)}
.btn-secondary{background:#fff;border-color:var(--border-strong);color:var(--ink)}
.btn-secondary:hover{background:var(--accent-tint);border-color:var(--accent)}
.btn-danger{background:#fff;color:var(--danger);border-color:#d4a7a4}.btn-danger:hover{background:var(--danger-tint)}
.btn-sm{min-height:40px;font-size:.91rem;padding:8px 12px}
.status-badge{border-radius:3px;font-size:.8rem;font-weight:700}
.back-link{font-weight:650}

/* Persistent desktop rail; the calendar keeps the remaining width. */
@media(min-width:901px){
  .authenticated .topbar{position:fixed;inset:0 auto 0 0;width:226px;height:100dvh;background:#e9eee6;border-right:1px solid #d4ded2;color:var(--ink)}
  .authenticated .topbar-inner{max-width:none;padding:28px 17px 18px;display:flex;flex-direction:column;align-items:stretch;gap:0;height:100%}
  .authenticated .brand{margin:0 9px 48px}
  .authenticated .top-nav{display:flex;flex-direction:column;align-self:auto;gap:5px}
  .authenticated .top-nav a{border:0;border-radius:5px;min-height:45px;padding:0 11px;gap:12px;color:var(--text);font-size:1rem;font-weight:600}
  .authenticated .top-nav a:hover{color:var(--ink);background:#dce8dc}
  .authenticated .top-nav a[aria-current=page]{background:#d3e2d5;color:#1e4c34;font-weight:750}
  .authenticated .top-actions{margin:0;display:flex;flex-direction:column;align-items:stretch;gap:12px;flex:1}
  .authenticated .top-new{order:0;margin-top:27px;width:100%;justify-content:flex-start;padding-left:15px}
  .authenticated .profile-link{order:1;margin-top:auto;min-height:58px;padding:8px;border-top:1px solid #cad7ca;color:var(--ink)}
  .authenticated .profile-link:hover,.authenticated .profile-link[aria-current=page]{background:#dce8dc;color:var(--ink)}
  .authenticated .main{margin-left:226px;width:calc(100% - 226px);min-height:100dvh}
}
.brand{color:var(--ink);font-size:1.18rem;font-weight:750;letter-spacing:-.035em;gap:10px}
.brand:hover{color:var(--ink)}
.brand-mark{width:33px;height:33px}
.brand-accent{color:var(--accent)}
.nav-caption{display:block;margin:0 11px 8px;color:var(--muted);font-size:.75rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.nav-icon{width:19px;height:19px;flex:none}
.top-new-icon{font-size:1.3rem;line-height:1}
.profile-avatar{background:#d9e5d8;color:var(--accent);border:1px solid #abc5af;border-radius:4px;font-size:.88rem}
.profile-label{display:block;line-height:1.15}.profile-label small{display:block;margin-top:4px;color:var(--muted);font-size:.77rem;font-weight:400}
.guest .topbar{background:var(--bg);color:var(--ink);border-bottom:1px solid var(--border)}
.brand .brand-name,.brand .brand-name .brand-accent{display:inline}

/* Forms and dialogs. */
.field{margin-bottom:16px}.field label{font-size:.91rem;font-weight:700;margin-bottom:6px}
.field input:not([type=checkbox]),.field select,.field textarea,.customer-search input,.calendar-jump input{
  border:1px solid var(--border-strong);border-radius:4px;min-height:43px;font-size:1rem;font-weight:400;padding:9px 11px
}
.field textarea{min-height:84px}.field input::placeholder{color:#748278}
.field input:focus,.field select:focus,.field textarea:focus,.customer-search input:focus,.calendar-jump input:focus{border-color:var(--accent)}
.hint,.helptext{font-size:.85rem;line-height:1.35}.errorlist{font-size:.89rem}
.form-error{border-radius:4px}.field-grid{gap:15px}.phone-grid{gap:15px;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.error-summary{border:1px solid #d8aaa4;border-left:4px solid var(--danger);background:#fff8f7;padding:13px 16px;margin:0 0 18px;border-radius:3px}
.error-summary h3{font-family:var(--font);font-size:1rem;font-weight:750;margin:0 0 5px;color:var(--danger)}
.error-summary ul{padding-left:19px;margin:0}.error-summary li{margin:3px 0}.error-summary a{color:var(--danger);font-weight:650}
.search-results{border-radius:4px}.search-result{padding:10px 12px}.search-result:hover,.search-result:focus{background:var(--accent-tint)}
.search-result small,.search-result-note{font-size:.83rem}.search-result-note{background:var(--surface-2)}
.app-dialog,.confirm-dialog{width:min(660px,calc(100vw - 24px));max-height:min(94dvh,900px);border-radius:7px;border-color:var(--border);box-shadow:0 20px 70px #102a1d40}
.app-dialog::backdrop,.confirm-dialog::backdrop{background:rgba(24,37,29,.55);backdrop-filter:none}
.app-dialog #dialog-body{padding:31px 32px 30px}.dialog-pad{padding:29px 32px}
.dialog-close{border-radius:4px;background:var(--surface-2);color:var(--ink);width:37px;height:37px;margin:10px 11px -47px auto}
.dialog-close:hover{background:var(--accent-tint)}
.modal-head{padding-right:38px;margin-bottom:20px}.modal-head h2{font-size:2rem;margin:4px 0 7px}
.modal-head p:last-child{font-size:.98rem}
.booking-section{padding:22px 0 10px}
.booking-section-title{gap:13px;margin-bottom:18px}
.booking-section-title h3{font-size:1.33rem;font-weight:550}
.booking-section-title p{font-size:.88rem;margin-top:4px;line-height:1.35}
.booking-step{width:27px;height:27px;flex-basis:27px;border-radius:3px;background:#e0eae0;color:var(--accent);font-size:.89rem;font-weight:800}
.slot-status{font-size:.87rem;margin-bottom:9px}.form-footnote{font-size:.84rem;margin:-5px 0 8px}
.booking-credit-warning{padding:10px 12px;margin:0 0 14px;background:#fff8f0;border:1px solid #e4c7a9;font-size:.88rem;line-height:1.4}.booking-credit-warning a{font-weight:700}
.slot-status[data-invalid=true]{color:var(--danger);font-weight:700}
.booking-form .field input[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 2px #a3373422}
.time-periods{gap:6px;margin-bottom:10px}.time-periods button{border-radius:4px;font-size:.87rem;font-weight:700;min-height:43px}
.time-periods button small{font-size:.75rem;font-weight:400}
.time-periods button[aria-pressed=true]{background:var(--accent);border-color:var(--accent)}
.time-choice{border-radius:4px;min-height:40px;font-size:.88rem;font-weight:650}
.time-choice[aria-pressed=true],.time-choice-busy[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}
.time-choice:disabled{color:#69776b;background:#f1f3ee}
.time-choice-busy:not(:disabled){border-color:#b68d6a;background:#faf0e5}
.available-times{max-height:170px;gap:6px}
.custom-time{max-width:185px}.setting-choice{background:var(--surface-2);border-radius:5px}
.setting-choice strong{font-size:1rem}.setting-choice small{font-size:.86rem}
.app-dialog .booking-form .form-actions{bottom:0;padding:13px 0 5px;background:#fff;box-shadow:0 -9px 14px #ffffffed}
.detail-list dt{font-size:.91rem;font-weight:600}.detail-list dd{font-weight:600}.message-line{font-size:.91rem}.message-line time{font-size:.83rem}
.sms-failure{margin:13px 0;padding:11px 13px;border-left:3px solid var(--danger);background:#fff8f7;font-size:.9rem;line-height:1.4}.sms-failure p{margin:3px 0}.sms-failure a{font-weight:700}
.visit-list{border-radius:5px}.visit-row small{font-size:.85rem}.visit-row:hover{background:var(--accent-tint)}
.toast{background:var(--accent);border-radius:4px;font-weight:650}

/* Customer directory, account, and entry screens. */
.customer-initial{background:#e5eee4;color:var(--accent);border-radius:4px;font-family:var(--display);font-size:1.25rem;font-weight:600}
.customer-row{min-height:63px}.customer-row:hover{background:var(--accent-tint)}
.customer-ident strong{font-size:1rem;font-weight:700}.customer-ident small{font-family:var(--font);font-size:.87rem}
.customer-page-summary,.pagination span{font-size:.85rem}
.settings-grid{grid-template-columns:minmax(0,1.4fr) minmax(275px,.86fr);gap:20px}.settings-side{gap:20px}
.settings-panel{padding:27px}.settings-panel h2{font-size:1.68rem;margin-bottom:21px}
.settings-panel .eyebrow+h2{font-family:var(--font);font-size:2.2rem;font-weight:700;letter-spacing:-.03em}
.settings-panel p:not(.eyebrow){font-size:.95rem}.settings-link{font-weight:650}.settings-link:hover{color:var(--accent)}
.billing-panel{padding:29px}.billing-panel h2{font-family:var(--font);font-weight:700}
.sms-credit-panel{margin-top:16px}.sms-credit-panel h2{font-family:var(--display);font-weight:550;margin:0 0 8px}.sms-credit-balance{margin:0 0 10px;font-size:1.08rem}.sms-credit-balance strong{font-size:1.5rem;color:var(--accent)}
.attention-list{border:0;border-radius:0}
.calendar-closure-link{margin:0 0 15px;font-size:.9rem}.calendar-closure-link a{font-weight:700}
.closure-panel{margin-top:16px}.closure-panel h2{font-family:var(--display);font-weight:550;margin:0 0 13px}
.closure-range .field-grid{margin-bottom:5px}
.closure-selection-actions{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0 10px}
.closure-appointments{border:1px solid var(--border);border-radius:5px;max-height:360px;overflow:auto;margin-bottom:17px}
.closure-appointment{display:flex;align-items:flex-start;gap:12px;padding:11px 13px;border-bottom:1px solid var(--border);cursor:pointer}
.closure-appointment:last-child{border-bottom:0}.closure-appointment:hover{background:var(--accent-tint)}
.closure-appointment input{width:18px;height:18px;margin-top:3px;flex:none;accent-color:var(--accent)}
.closure-appointment span{min-width:0}.closure-appointment strong,.closure-appointment small{display:block;overflow-wrap:anywhere}
.closure-appointment small{color:var(--muted);font-size:.84rem}
.closure-message{margin:0 0 18px;padding:14px 16px;border-left:3px solid var(--accent);background:var(--surface-2);white-space:pre-wrap;overflow-wrap:anywhere;font-size:1rem}
.closure-result{align-items:flex-start}.closure-result>span:first-child{min-width:0;flex:1}
.closure-result .status-badge{flex:none}
.auth-layout{max-width:1150px;gap:7vw}.auth-intro h1{font-size:clamp(3.15rem,5vw,5rem);font-weight:450;letter-spacing:-.04em;line-height:1.03}
.auth-intro>p:not(.eyebrow){font-size:1.2rem}.auth-line{height:2px;background:var(--accent)}
.auth-intro>span{font-weight:650}.auth-price{font-family:var(--font);font-weight:700}
.auth-panel{padding:34px}.auth-panel h1,.auth-panel h2{font-size:2.15rem}.auth-links{font-size:.91rem}

@media(max-width:900px){
  .authenticated .topbar{position:sticky;background:#e9eee6;color:var(--ink);border-bottom:1px solid #d4ded2}
  .authenticated .topbar-inner{gap:12px}.authenticated .top-nav{display:none}.authenticated .nav-caption{display:none}
  .authenticated .profile-link{color:var(--ink)}.authenticated .profile-label{display:none}
  .authenticated .main{margin-left:0;width:100%}
  .authenticated .mobile-nav{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;bottom:0;left:0;right:0;z-index:19;min-height:66px;padding-bottom:env(safe-area-inset-bottom);background:#e9eee6;border-top:1px solid #cddacb}
  .authenticated .mobile-nav a{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;color:#4a5b4e;text-decoration:none;font-size:.77rem;font-weight:600}
  .authenticated .mobile-nav a[aria-current=page]{color:var(--accent);font-weight:750}
  .screen{width:min(100% - 36px,1420px);padding-bottom:90px}.settings-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .brand{font-size:1.05rem}.brand-name{display:inline!important}.topbar-inner{padding:0 15px}
  .top-new{width:40px;min-height:40px}.top-new-icon{color:#fff}
  .mobile-nav{background:#e9eee6;border-top:1px solid #cddacb;min-height:66px}
  .mobile-nav a{color:#4a5b4e;font-size:.77rem;font-weight:600;gap:3px}
  .mobile-nav a[aria-current=page]{color:var(--accent);font-weight:750}
  .mobile-nav .nav-icon{width:19px;height:19px}
  .screen{width:min(100% - 26px,1420px);padding:24px 0 calc(95px + env(safe-area-inset-bottom))}
  .screen-head h1{font-size:2.35rem}.screen-lede{font-size:.94rem}
  .app-dialog,.confirm-dialog{width:calc(100vw - 12px);max-height:calc(100dvh - 12px)}
  .app-dialog #dialog-body{padding:24px 18px 26px}.dialog-pad{padding:24px 18px}
  .modal-head h2{font-size:1.8rem}.booking-section-title h3{font-size:1.23rem}
  .time-periods{grid-template-columns:repeat(4,minmax(0,1fr))}.time-periods button{font-size:.79rem;padding:4px 2px}.time-choice{font-size:.86rem}
  .available-times{max-height:176px}.phone-grid{grid-template-columns:1fr 1fr}
  .customer-search{padding:12px}.customer-search .btn{padding:8px 10px}
  .settings-panel{padding:20px}.auth-layout{padding:30px 17px 90px}.auth-intro h1{font-size:2.8rem}
  .closure-result{flex-direction:column;gap:6px}.closure-panel{padding:20px}
  .auth-layout{gap:16px;padding-top:21px}.auth-intro h1{font-size:2.25rem;line-height:1.05}
  .auth-intro>p:not(.eyebrow){font-size:1rem;margin-bottom:0}.auth-panel{padding:24px}.auth-panel h2{font-size:1.85rem}.auth-single{margin:35px auto 90px}
}
@media(max-width:350px){.field-grid.two{grid-template-columns:1fr}.phone-grid{grid-template-columns:1fr}.time-periods{grid-template-columns:repeat(2,minmax(0,1fr))}.available-times{grid-template-columns:repeat(3,minmax(0,1fr))}}

.app-legal-footer{display:flex;flex-wrap:wrap;gap:9px;align-items:center;padding:28px 24px 90px;color:var(--muted);font-size:.88rem}
.settings-screen{max-width:1000px}
.settings-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--border-strong);margin-bottom:26px}
.settings-tabs a{display:flex;align-items:center;justify-content:center;min-height:46px;padding:10px 16px;text-decoration:none;border-bottom:3px solid transparent;color:var(--muted);font-weight:650}
.settings-tabs a[aria-current=page]{color:var(--accent);border-bottom-color:var(--accent);background:var(--accent-tint)}
.settings-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}
.settings-section-head>div{min-width:0}.settings-section-head .btn{flex-shrink:0}
.settings-screen>.settings-panel{margin-bottom:20px}
.settings-values{margin:0}.settings-values>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:18px;padding:13px 0;border-bottom:1px solid var(--border)}
.settings-values>div:last-child{border:0}.settings-values dt{color:var(--muted)}.settings-values dd{margin:0;color:var(--ink);font-weight:600;overflow-wrap:anywhere}
@media(max-width:640px){.settings-tabs{border:0}.settings-tabs a{flex:1 1 30%;border:1px solid var(--border);padding:10px 6px;font-size:.875rem}.settings-tabs a[aria-current=page]{border-color:var(--accent)}.settings-section-head{flex-wrap:wrap}.settings-values>div{grid-template-columns:1fr;gap:5px}.settings-panel h2{font-size:1.5rem}.settings-values dt,.settings-values dd{font-size:.94rem}}
.app-legal-footer a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.appointment-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border-strong);margin:0 0 20px}
.appointment-tabs a{display:flex;align-items:center;justify-content:center;flex:1;min-height:44px;padding:8px 5px;border-bottom:3px solid transparent;text-decoration:none;font-size:.9rem;color:var(--text)}
.appointment-tabs a[aria-current=page]{border-color:var(--accent);background:var(--accent-tint);font-weight:750;color:var(--accent)}
.schedule-original{padding:12px 0;border-bottom:1px solid var(--border);overflow-wrap:anywhere}
.slot-filters{margin:10px 0;font-size:.9rem}.slot-filters label{display:flex;align-items:flex-start;gap:8px;font-weight:400}
.slot-filters input{width:18px;height:18px;flex:none;accent-color:var(--accent);margin:1px 0}
.time-choice{padding:7px 2px;min-height:52px}.time-choice span,.time-choice small{display:block}
.time-choice small{font-family:var(--font);font-size:.7rem;font-weight:400;line-height:1.25;margin-top:3px}
.time-choice:disabled{text-decoration:none}.time-choice:disabled span{text-decoration:line-through}
.available-times{max-height:220px}
.custom-time{max-width:100%}.custom-time input{max-width:185px}
[data-period-empty][hidden]{display:none}
[data-new-customer][hidden]{display:none}
[data-first-free]{margin-bottom:10px;white-space:normal;text-align:left}
.text-button{display:inline;padding:0;border:0;background:none;color:var(--accent);text-decoration:underline;font:inherit;text-align:left}
.nav-caption{font-size:.9rem;letter-spacing:0;text-transform:none}
/* Review the customer, old/new times and overlap before committing a booking. */
#confirm-review[hidden],#confirm-current-schedule[hidden],[data-review-end-date][hidden]{display:none}
.confirm-customer{border-top:1px solid var(--border);padding:16px 0}.confirm-customer p{margin:0 0 4px;color:var(--muted)}
.confirm-customer h3{margin:0;font-size:1.25rem;overflow-wrap:anywhere}
.confirm-schedules{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.confirm-schedules section{min-width:0;border-top:1px solid var(--border);padding-top:14px}
.confirm-schedules h3{font-size:1rem;margin-bottom:10px}.confirm-schedules p{overflow-wrap:anywhere}
.confirm-schedules [data-review-date]{font-weight:650;min-height:2.9em}
.confirm-times{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:12px 0}
.confirm-times dt{color:var(--muted);font-size:.9rem}.confirm-times dd{font:700 1.6rem/1.3 var(--mono);margin:4px 0 0}
.confirm-schedules [data-review-duration],.confirm-schedules [data-review-end-date]{font-size:.9rem;color:var(--muted);margin:6px 0}
.confirm-schedules [data-review-end-date]{color:var(--ink);font-weight:650}
.confirm-availability{margin:18px 0;padding:14px 16px;border:1px solid var(--border);border-left:4px solid var(--accent);background:var(--surface-2)}
.confirm-availability[data-state=overlap],.confirm-availability[data-state=unavailable]{border-color:#d8aaa4;border-left-color:var(--danger);background:#fff8f7}
.confirm-availability h3{font-size:1rem;margin-bottom:5px}.confirm-availability p{font-size:.94rem;margin-bottom:0}
#confirm-conflicts:empty{display:none}#confirm-conflicts{padding:0;margin:13px 0 0;list-style:none}
#confirm-conflicts li{border-top:1px solid var(--border);padding-top:10px;margin-top:10px;overflow-wrap:anywhere}
#confirm-conflicts strong,#confirm-conflicts span{display:block}#confirm-conflicts span{margin-top:4px;font-size:.9rem}
.confirm-message{margin:18px 0}.confirm-message>div{display:grid;grid-template-columns:140px minmax(0,1fr);gap:12px;margin-top:8px}
.confirm-message dt{color:var(--muted)}.confirm-message dd{margin:0;overflow-wrap:anywhere;font-weight:650}
#confirm-sms-consequence{font-size:.94rem;overflow-wrap:anywhere}
.confirm-dialog .dialog-actions{position:sticky;bottom:0;margin:18px -1px -1px;padding:12px 0 0;background:var(--surface);border-top:1px solid var(--border)}
.confirm-dialog .dialog-actions .btn{white-space:normal}
.confirm-dialog .btn:disabled{background:var(--surface-2);border-color:var(--border);color:var(--muted);cursor:not-allowed}
.weekly-hours-day{padding:16px 0!important;border-top:1px solid var(--border)!important}
.hours-modes{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 14px}
.hours-modes label,.closed-time-warning label{display:flex;align-items:flex-start;gap:8px;font-size:.95rem;cursor:pointer}
.hours-modes input,.closed-time-warning input{width:18px;height:18px;flex:none;margin-top:2px;accent-color:var(--accent)}
[data-hours-times][hidden],.closed-time-warning[hidden],[data-form-closed-warning] label[hidden]{display:none}
[data-copy-hours][hidden]{display:none}.hours-copy-actions{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}
.closed-time-warning{margin:14px 0;padding:14px 16px;border:1px solid var(--border-strong);border-left:4px solid #7a7463;background:#f4f1e8;font-size:.94rem}
.closed-time-warning h3{font-size:1.05rem}.closed-time-warning ul{padding-left:20px;overflow-wrap:anywhere}.closed-time-warning label{font-weight:650}
.closure-setting-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-top:1px solid var(--border)}
.closure-setting-row>div{min-width:0}.closure-setting-row p{margin:5px 0 0;overflow-wrap:anywhere}.closure-setting-row .form-actions{margin:0}
.billing-error,.billing-notice{padding:12px;border-left:3px solid var(--danger);background:var(--surface-2)}
.billing-references{margin-top:20px}.billing-references summary{cursor:pointer;font-weight:650}
.settings-screen>.billing-panel{margin-bottom:20px}
.billing-invoice{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:18px;padding:16px 0;border-top:1px solid var(--border);align-items:center}
.billing-invoice p{margin:5px 0 0}.billing-invoice strong{overflow-wrap:anywhere}.billing-invoice a{display:block;margin:4px 0}
@media(max-width:640px){.billing-invoice{grid-template-columns:minmax(0,1fr) auto;gap:10px}.billing-invoice>div:last-child{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:14px}}
@media(max-width:640px){.confirm-schedules{grid-template-columns:1fr}.confirm-schedules [data-review-date]{min-height:0}.confirm-message>div{grid-template-columns:1fr;gap:3px}.confirm-dialog .dialog-actions{flex-wrap:wrap}.confirm-dialog .dialog-actions .btn{flex:1 1 120px}}
.standalone-form .booking-form .form-actions{position:sticky;bottom:66px;z-index:2;padding:12px 0;background:var(--surface);border-top:1px solid var(--border)}
@media(min-width:901px){.standalone-form .booking-form .form-actions{bottom:0}}
@media(max-width:380px){.appointment-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:0;gap:5px}.appointment-tabs a{border:1px solid var(--border);font-size:.9rem}.appointment-tabs a[aria-current=page]{border-color:var(--accent)}}
.auth-privacy{margin:15px 0 0;font-size:.91rem;line-height:1.45}
.salon-privacy{width:min(100% - 36px,760px);margin:0 auto;padding:48px 0 20px;font-size:1.02rem;line-height:1.6}
.salon-privacy h1{font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.08;margin:8px 0 20px}
.salon-privacy .privacy-lede{font-size:1.16rem}
.salon-privacy .privacy-language{margin:8px 0 18px;font-size:.91rem;color:var(--muted)}
.salon-privacy .privacy-updated{margin:15px 0 0;color:var(--muted);font-size:.87rem}
.salon-privacy section{margin-top:36px;padding-top:28px;border-top:1px solid var(--border)}
.salon-privacy h2{font-size:1.55rem;line-height:1.2;margin:0 0 12px}
.salon-privacy p{margin:0 0 13px}
.salon-privacy a{overflow-wrap:anywhere}
@media(max-width:900px){.authenticated .app-legal-footer{padding-bottom:100px}}
