/* Original mobile-first presentation. No runtime UI framework. */
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/source-sans-3-600.woff2") format("woff2")}
.ba,.ba *,.ba-more-sheet,.ba-more-sheet *{box-sizing:border-box}
.ba,.ba-more-sheet{color:var(--text);font:400 1rem/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:-.015em}
.ba{background:var(--canvas);min-height:100svh;min-height:100dvh}
.ba h1,.ba h2,.ba h3,.ba p,.ba-more-sheet h2{margin:0}
.ba h1{font-size:clamp(1.9rem,5vw,2.6rem);font-weight:650;line-height:1.15;letter-spacing:-.055em}
.ba h1 span{font-weight:400}
.ba h2,.ba-more-sheet h2{font-size:1.3rem;font-weight:650;letter-spacing:-.04em}
.ba h3{font-size:1.16rem;line-height:1.35;letter-spacing:-.03em}
.ba a,.ba-more-sheet a{color:inherit;text-decoration:none}
.ba button,.ba input,.ba textarea,.ba select,.ba-more-sheet button{font:inherit}
.ba button,.ba-more-sheet button{cursor:pointer}
.ba button:disabled{cursor:not-allowed;opacity:.5}
.ba :focus-visible,.ba-more-sheet :focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}
.ba input,.ba textarea,.ba select{font-size:1rem;background:var(--surface-raised);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);min-height:3.1rem;padding:.75rem;width:100%;max-width:100%}
.ba textarea{min-height:6rem;resize:vertical}
.ba svg,.ba-more-sheet svg{flex-shrink:0;vertical-align:middle}
.ba-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.ba-skip-link{position:fixed;left:1rem;top:-5rem;background:var(--surface);padding:1rem;z-index:var(--z-critical)}
.ba-skip-link:focus{top:1rem}
.ba-main{max-width:72rem;margin:auto;padding:var(--space-6) var(--space-4) calc(var(--owner-nav-height) + env(safe-area-inset-bottom) + 2rem);min-width:0}
.ba-side-navigation{display:none}
.ba-page-header{padding:var(--space-2) 0 var(--space-6)}
.ba-business{display:flex;align-items:center;gap:.65rem;font-size:.8rem;font-weight:600;color:var(--text-muted);margin-bottom:1.7rem}
.ba-business-mark,.ba-brand-mark{display:block;width:1.8rem;height:1.8rem;border-radius:.55rem;object-fit:cover;flex-shrink:0}
.ba-business-initials{display:grid;place-items:center;width:1.8rem;height:1.8rem;border:1px solid var(--border-strong);border-radius:.55rem;background:var(--surface-raised);color:var(--text);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;flex-shrink:0}
.ba-brand-lockup{display:block;width:min(10rem,100%);height:auto;object-fit:contain;flex-shrink:0}
.ba-heading-line,.ba-section-heading,.ba-card-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.ba-eyebrow{font-size:.68rem;letter-spacing:.11em;font-weight:650;color:var(--text-muted);text-transform:uppercase;margin-bottom:.55rem!important}
.ba-section-heading{margin:var(--space-6) 0 var(--space-3)}
.ba-section-heading>span{font-size:.78rem;color:var(--text-muted)}
.ba-button,.ba-icon-button{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;border:1px solid var(--border);border-radius:var(--radius-md);min-height:var(--action-height);padding:.7rem 1rem;font-weight:600;font-size:.9rem;text-align:center;transition:background var(--motion-fast),transform var(--motion-fast)}
.ba-button.primary{color:var(--text-inverse);background:var(--action-primary);border-color:var(--action-primary)}
.ba-button.secondary{background:var(--action-secondary);color:var(--text)}
.ba-button.primary:hover{background:var(--action-primary-hover)}
.ba-button:active:not(:disabled){transform:translateY(1px)}
.ba-button>span:last-child{margin-left:auto}
.ba-icon-button{width:var(--touch-min);height:var(--touch-min);min-height:var(--touch-min);padding:.6rem;background:transparent}
.ba-today-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:1.15rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:1rem}
.ba-today-summary>div{display:flex;flex-direction:column;padding-left:1rem;border-left:1px solid var(--border)}
.ba-today-summary>div:first-child{padding-left:0;border:0}
.ba-today-summary strong{font-size:1.4rem;letter-spacing:-.06em;font-weight:600}
.ba-today-summary span{font-size:.72rem;color:var(--text-muted)}
.ba-appointment{display:grid;grid-template-columns:3.4rem minmax(0,1fr);gap:1rem;padding:1.2rem 0;border-bottom:1px solid var(--border)}
.ba-appointment-time{display:flex;flex-direction:column;font-variant-numeric:tabular-nums;padding-top:.1rem}
.ba-appointment-time strong{font-size:.94rem;font-weight:650;white-space:nowrap}
.ba-appointment-time span{font-size:.7rem;color:var(--text-muted)}
.ba-appointment-body{min-width:0}
.ba-appointment-body h3{margin:.4rem 0 .25rem;overflow-wrap:anywhere}
.ba-appointment-body p{color:var(--text-muted);font-size:.83rem}
.ba-appointment.featured{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 1rem;box-shadow:var(--shadow-1)}
.ba-appointment.featured .ba-button{display:flex;margin-top:1rem;min-height:2.9rem}
.ba-status{font-size:.63rem;letter-spacing:.055em;text-transform:uppercase;font-weight:650;display:inline-flex;align-items:center;gap:.4rem}
.ba-status:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}
.ba-status.success{color:var(--success-text)}.ba-status.warning{color:var(--warning-text)}
.ba-price{font-size:.8rem;color:var(--text-muted);white-space:nowrap}
.ba-inline-action{display:inline-flex;align-items:center;min-height:2.75rem;font-size:.8rem;font-weight:600;gap:1rem;color:var(--link)!important}
.ba-quick-actions{display:grid;grid-template-columns:1.35fr 1fr;gap:.6rem;margin:1rem 0}
.ba-request-banner{display:flex;align-items:center;gap:1rem;background:var(--warning-surface);padding:1rem;border-radius:var(--radius-md);font-size:.85rem;margin:1rem 0}
.ba-request-banner b{background:var(--surface);border-radius:.5rem;min-width:2rem;text-align:center;padding:.3rem}
.ba-tomorrow{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;margin-top:2rem;background:var(--surface)}
.ba-tomorrow small{font-size:.65rem;letter-spacing:.1em;color:var(--text-muted)}
.ba-tomorrow h2{margin:.25rem 0!important}.ba-tomorrow p{font-size:.85rem;color:var(--text-muted)}
.ba-bottom-navigation{position:fixed;bottom:max(.45rem,env(safe-area-inset-bottom));left:50%;right:auto;transform:translateX(-50%);width:min(calc(100% - 1rem),32rem);z-index:var(--z-nav);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid var(--border);border-radius:1.25rem;padding:.3rem;min-height:var(--owner-nav-height);box-shadow:var(--shadow-3);backdrop-filter:blur(18px)}
.ba-bottom-navigation>a,.ba-bottom-navigation>button{background:transparent;border:0;border-radius:.95rem;min-width:0;min-height:3.7rem;padding:.3rem;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted);gap:.2rem;font-size:.65rem;font-weight:600;transition:color var(--motion-base),background var(--motion-base),transform var(--motion-base)}
.ba-nav-icon{position:relative;min-width:2.6rem;height:1.65rem;display:grid;place-items:center;border-radius:.5rem}
.ba-bottom-navigation .active{color:var(--publication-action-text);background:var(--publication-action);font-weight:750}.ba-bottom-navigation .active .ba-nav-icon{background:transparent}.ba-bottom-navigation .active>span:last-child{border-bottom:0}
.ba-bottom-navigation .new-action .ba-nav-icon{background:var(--action-primary);color:var(--text-inverse)}
.ba-nav-badge{position:absolute;right:-.3rem;top:-.3rem;background:var(--warning-text);color:white;border-radius:1rem;font-size:.6rem;padding:0 .25rem}
.ba-more-sheet{position:fixed;inset:auto 0 0;margin:0 auto;width:100%;max-width:34rem;max-height:85dvh;overflow:auto;border:1px solid var(--border);border-radius:1.5rem 1.5rem 0 0;background:var(--surface);padding:1.25rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom));box-shadow:var(--shadow-3)}
.ba-more-sheet::backdrop{background:var(--scrim)}
.ba-more-sheet[open]{animation:ba-sheet-in var(--motion-base) ease-out}
.ba-sheet-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}
.ba-more-sheet nav a{display:flex;align-items:center;justify-content:space-between;min-height:3.3rem;border-bottom:1px solid var(--border)}
.ba-more-sheet nav a:last-child{border-bottom:0}
.ba-more-sheet__prefs{margin-top:1.25rem;padding:1.1rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.ba-more-sheet .ba-button{font:inherit;border:1px solid var(--border);background:var(--action-secondary);color:var(--text);padding:.6rem;border-radius:.6rem}
.ba-more-sheet>form{margin-top:1rem}.ba-more-sheet>form .ba-button{width:100%;min-height:3rem}
.ba-public{padding:1.5rem 1rem max(2rem,env(safe-area-inset-bottom));min-width:0;overflow-x:clip}.ba-public-inner{width:100%;max-width:38rem;min-width:0;margin:auto}
.ba-public-brand{display:flex;align-items:center;gap:.7rem;padding-bottom:1rem;border-bottom:1px solid var(--border);font-size:.85rem;font-weight:600}
.ba-public-brand small{display:block;color:var(--text-muted);font-weight:400}
.ba-step-header{margin:1.6rem 0}
.ba-step-top{display:flex;align-items:center;gap:.6rem;color:var(--text-muted);font-size:.65rem;font-weight:600;letter-spacing:.07em}
.ba-step-top .ba-icon-button{margin-left:-.7rem}
.ba-progress{display:flex;gap:.3rem;margin:1rem 0 1.8rem}
.ba-progress span{flex:1;height:3px;background:var(--border);border-radius:1rem}.ba-progress .done{background:var(--text)}
.ba-step-header p{font-size:.9rem;color:var(--text-muted);margin-top:.75rem;max-width:28rem}
.ba-step-header h1{outline:none}
.ba-service-list{display:grid;gap:.75rem}
.ba-service{display:flex;align-items:flex-start;gap:.8rem;text-align:left;padding:1.1rem .9rem;width:100%;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);min-height:6rem}
.ba-service.selected{border-color:var(--action-primary);box-shadow:inset 0 0 0 1px var(--action-primary);background:var(--selected-surface)}
.ba-selection{height:1.25rem;width:1.25rem;border:1px solid var(--border-strong);border-radius:.4rem;margin-top:.25rem;flex-shrink:0}
.ba-selection svg{width:1.1rem;height:1.1rem}.selected .ba-selection{background:var(--action-primary);color:var(--text-inverse)}
.ba-service-copy{display:flex;flex-direction:column;flex:1;min-width:0;gap:.3rem}.ba-service-copy strong{font-size:1rem;overflow-wrap:anywhere}.ba-service-copy>span{font-size:.8rem;color:var(--text-muted)}.ba-service-copy small{font-size:.72rem;color:var(--text-muted)}
.ba-service>b{font-size:.9rem;white-space:nowrap}
.ba-date-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;font-size:.9rem}
.ba-date-picker{width:100%;max-width:100%;min-width:0}.ba-date-strip{display:grid;grid-template-columns:repeat(7,minmax(3.5rem,1fr));width:100%;max-width:100%;min-width:0;gap:.5rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:.2rem .1rem .55rem}
.ba-date-strip::-webkit-scrollbar{display:none}
.ba-date-strip button{scroll-snap-align:center;border:1px solid var(--border);border-radius:1.15rem;background:var(--surface);color:var(--text);min-height:4.8rem;min-width:3.5rem;padding:.55rem .25rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.12rem;box-shadow:var(--shadow-1);transition:transform var(--motion-base),background var(--motion-base),border-color var(--motion-base)}
.ba-date-strip button:hover:not(:disabled){transform:translateY(-2px);border-color:var(--border-strong)}
.ba-date-strip button>span{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.ba-date-strip button>strong{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;font-size:1.05rem;font-weight:700}.ba-date-strip button>i{width:4px;height:4px;background:transparent;border-radius:50%}.ba-date-strip button.selected{background:var(--selected-surface);color:var(--text);border-color:var(--publication-action)}.ba-date-strip button.selected>strong{background:var(--publication-action);color:var(--publication-action-text)}.ba-date-strip button.selected>i{background:var(--publication-action)}
.ba-date-scroll-hint{display:none;align-items:center;justify-content:center;gap:.5rem;color:var(--text-muted);font-size:.68rem;margin:.2rem 0 0!important}
.ba-date-jump{margin:1rem 0}.ba-date-jump summary{font-size:.8rem;min-height:2.75rem;display:flex;align-items:center;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.ba-date-jump label{font-size:.85rem;display:block}
.ba-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}
.ba-slots button{min-height:3.25rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:.85rem}
.ba-slots button.selected{background:var(--action-primary);color:var(--text-inverse);border:2px solid var(--action-primary);font-weight:700}
.ba-field{margin-bottom:1.1rem}.ba-field label{display:flex;justify-content:space-between;font-size:.85rem;font-weight:600;margin-bottom:.5rem}.ba-field label>span{font-size:.75rem;font-weight:400;color:var(--text-muted)}.ba-field small{display:block;font-size:.75rem;color:var(--text-muted);margin-top:.4rem}
.ba-field-error,.ba .validation-message,.ba .validation-errors{color:var(--danger-text);font-size:.8rem}.ba .invalid{border-color:var(--danger)}
.ba-sticky-action{position:sticky;bottom:0;margin:0 -1rem -1.5rem;padding:.9rem 1rem calc(.9rem + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);z-index:var(--z-sticky)}
.ba-owner-shell .ba-sticky-action{bottom:calc(var(--owner-nav-height) + env(safe-area-inset-bottom));padding-bottom:.9rem}
.ba-action-inner{display:flex;gap:1rem;align-items:center;max-width:38rem;margin:auto}.ba-action-inner>.ba-button{flex:1}.ba-action-summary{display:flex;flex-direction:column;min-width:4rem}.ba-action-summary small{font-size:.65rem;color:var(--text-muted)}.ba-action-summary strong{font-size:1rem}.ba-action-spacer{height:calc(6rem + env(safe-area-inset-bottom))}
.ba-sticky-action.positive .ba-button{background:var(--publication-action);border-color:var(--publication-action);color:var(--publication-action-text)}
.ba-sticky-action.positive .ba-button:hover{background:var(--publication-action-hover);border-color:var(--publication-action-hover)}
.ba-result-guidance{display:grid;gap:.25rem;padding:.9rem 1rem;margin:1rem 0;border:1px solid var(--success-border);border-radius:var(--radius-md);background:var(--success-surface);color:var(--success-text);font-size:.82rem}
.ba-hours-control{display:grid;grid-template-columns:minmax(7rem,.9fr) minmax(8rem,1.3fr) 2.8rem;align-items:stretch;gap:2px;margin:.55rem 0;color:var(--text)}
.ba-hours-day,.ba-hours-summary,.ba-hours-fields,.ba-hours-edit{min-height:3.5rem;border:1px solid var(--border);background:var(--surface);color:var(--text)}
.ba-hours-day{position:relative;display:flex;align-items:center;gap:.65rem;padding:.6rem .75rem;border-radius:1rem 0 0 1rem;cursor:pointer;min-width:0}.ba-hours-day input{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;margin:0!important;padding:0!important;opacity:0;pointer-events:none}.ba-hours-day>span:last-child{display:grid;min-width:0}.ba-hours-day strong,.ba-hours-day small{overflow:hidden;text-overflow:ellipsis}.ba-hours-day small{color:var(--text-muted);font-size:.68rem}.ba-hours-state{width:.65rem;height:.65rem;border-radius:50%;background:var(--border-strong);box-shadow:0 0 0 4px color-mix(in srgb,var(--border) 55%,transparent);flex:0 0 auto}.ba-hours-control.is-working .ba-hours-state{background:var(--publication-action)}
.ba-hours-summary{border-radius:0;padding:.65rem .8rem;font-weight:700;font-variant-numeric:tabular-nums}.ba-hours-summary:disabled{opacity:1;color:var(--text-muted)}
.ba-hours-fields{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.35rem;padding:.3rem .45rem;border-radius:.75rem}.ba-hours-fields input{min-height:2.75rem;padding:.4rem .5rem;text-align:center;font-variant-numeric:tabular-nums}
.ba-hours-edit{display:grid;place-items:center;border-radius:0 1rem 1rem 0;padding:.55rem}.ba-hours-edit svg{width:1.05rem;height:1.05rem}.ba-hours-control.is-editing{gap:.45rem}.ba-hours-control.is-editing>*{border-radius:1rem}
.ba-scroll-progress{--scroll-progress:0;position:fixed;right:1rem;bottom:calc(var(--owner-nav-height) + 1rem);z-index:calc(var(--z-nav) - 1);display:flex;align-items:center;gap:.45rem;padding:.45rem .65rem;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--surface) 84%,transparent);color:var(--text-muted);box-shadow:var(--shadow-2);backdrop-filter:blur(14px);font-size:.68rem;transition:opacity var(--motion-base),transform var(--motion-base)}.ba-scroll-progress[hidden]{display:none}.ba-scroll-progress svg{width:.9rem;height:.9rem}.ba-scroll-progress>i{display:block;width:3.5rem;height:3px;border-radius:999px;background:var(--border);overflow:hidden}.ba-scroll-progress>i>b{display:block;width:calc(var(--scroll-progress) * 100%);height:100%;background:var(--publication-action);transition:width 80ms linear}
.ba-feedback{padding:1rem;border-radius:.65rem;font-size:.85rem;display:block;margin:.8rem 0!important}.ba-feedback p{margin-top:.3rem}.ba-feedback.danger{background:var(--danger-surface);color:var(--danger-text)}.ba-feedback.info{background:var(--info-surface);color:var(--info-text)}.ba-feedback.success{background:var(--success-surface);color:var(--success-text)}
.ba-empty{text-align:center;padding:2rem 1rem}.ba-empty-icon{display:inline-grid;place-items:center;width:3.5rem;height:3.5rem;background:var(--action-secondary);border-radius:1rem;margin-bottom:1rem}.ba-empty p{color:var(--text-muted);font-size:.9rem;margin:.5rem 0 1rem}
.ba-skeleton-card{padding:1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:1rem;margin:1rem 0}.ba-skeleton span:not(.ba-sr-only){display:block;height:1rem;width:70%;background:var(--border);border-radius:.5rem;margin:.7rem 0}.ba-skeleton span:nth-child(2){width:90%}.ba-skeleton .ba-skeleton-title{height:2rem}
.ba-spinner{display:inline-block;width:1rem;height:1rem;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ba-spin 800ms linear infinite;margin-right:.3rem}
.ba-search-input{display:flex;align-items:center;background:var(--surface);border:1px solid var(--border-strong);border-radius:.65rem;padding-left:.7rem}.ba-search-input input{border:0;background:none}
.ba-customer-option{display:flex;align-items:center;gap:1rem;width:100%;text-align:left;min-height:5rem;padding:.8rem;background:var(--surface);border:1px solid var(--border);border-radius:.7rem;margin:.6rem 0;color:var(--text)}.ba-customer-option>span:nth-child(2){display:flex;flex:1;min-width:0;flex-direction:column}.ba-customer-option strong{overflow-wrap:anywhere}.ba-customer-option small{font-size:.8rem;color:var(--text-muted)}.ba-customer-option.selected{border:2px solid var(--action-primary)}.ba-avatar{display:grid;place-items:center;flex-shrink:0;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--action-secondary)}
.ba-review{background:var(--surface);border:1px solid var(--border);border-radius:1rem;padding:1.3rem}.ba-review dl{margin:0}.ba-review dl>div{padding:1rem 0;border-bottom:1px solid var(--border)}.ba-review dl>div:last-child{border:0}.ba-review dt{color:var(--text-muted);font-size:.75rem;margin-bottom:.3rem}.ba-review dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.ba-result-mark{display:grid;place-items:center;width:4rem;height:4rem;background:var(--business-accent);color:var(--business-on-accent);border-radius:50%;margin:2rem 0}.ba-result h1{margin-bottom:1rem}.ba-result>p{color:var(--text-muted);margin-bottom:1.5rem}.ba-result .ba-button{margin-top:1rem}
.ba-block{display:flex;gap:1rem;padding:1rem;margin:.75rem 0;background:repeating-linear-gradient(135deg,var(--action-secondary),var(--action-secondary) 5px,var(--canvas) 5px,var(--canvas) 10px);border-radius:.6rem;font-size:.85rem}.ba-free-slot{display:flex;align-items:center;gap:1rem;min-height:3.5rem;border:1px dashed var(--border-strong);border-radius:.6rem;padding:.75rem;margin:1rem 0;font-size:.8rem}
.ba-fixture-notice{background:#f6eddb;color:#644418;padding:.45rem 1rem;font:600 .7rem/1.5 system-ui;text-align:center}.ba-preview-controls{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.ba-preview-controls button{min-height:2.75rem}
@keyframes ba-spin{to{transform:rotate(360deg)}}@keyframes ba-sheet-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:600px){.ba-main{padding-left:2rem;padding-right:2rem}.ba-two-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.ba-public{padding:2rem}.ba-sticky-action{margin-left:-2rem;margin-right:-2rem}.ba-appointment{grid-template-columns:4rem minmax(0,1fr)}}
@media(min-width:600px){.ba-sticky-action.compact .ba-action-inner{justify-content:flex-end;max-width:52rem}.ba-sticky-action.compact .ba-action-summary{margin-right:auto}.ba-sticky-action.compact .ba-button{flex:0 1 auto;min-width:11rem;max-width:15rem}}
@media(min-width:900px){.ba-owner-shell{padding-left:13rem}.ba-side-navigation{display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:13rem;padding:2rem 1rem;background:var(--surface);border-right:1px solid var(--border)}.ba-wordmark{font-weight:650;display:flex;align-items:center;gap:.6rem;margin-bottom:3rem}.ba-side-navigation nav{display:grid;gap:.5rem}.ba-side-navigation nav a,.ba-side-navigation nav button{display:flex;align-items:center;gap:.75rem;background:none;border:0;text-align:left;min-height:3rem;padding:.75rem;border-radius:.65rem;color:var(--text-muted);font-size:.85rem}.ba-side-navigation nav .active{background:var(--action-secondary);color:var(--text);font-weight:650}.ba-sidebar-note{margin-top:auto!important;font-size:.75rem;color:var(--text-muted);padding:.75rem}.ba-bottom-navigation{display:none}.ba-main{padding:2.5rem 3rem 3rem}.ba-owner-shell .ba-sticky-action{bottom:0}.ba-today-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:2.5rem}.ba-main .ba-flow-width{max-width:38rem;margin:auto}.ba-more-sheet{inset:50% auto auto 50%;transform:translate(-50%,-50%);border-radius:1.5rem;max-height:85dvh}.ba-quick-actions{margin-top:1.5rem}.ba-main:has(.ba-today-grid){max-width:78rem}.ba-sticky-action{margin-left:0;margin-right:0;border-radius:.8rem}}
@media(min-width:900px){.ba-scroll-progress{bottom:1rem}}
@media(min-width:1100px){.ba-side-navigation{width:15rem;padding:2.5rem 1.5rem}.ba-owner-shell{padding-left:15rem}}
@media(max-width:350px){.ba-main,.ba-public{padding-left:.75rem;padding-right:.75rem}.ba-service{gap:.5rem;padding:.8rem .65rem}.ba-appointment{gap:.65rem;grid-template-columns:3rem minmax(0,1fr)}.ba-quick-actions{grid-template-columns:1fr 1fr}.ba-button{font-size:.8rem;padding:.65rem .6rem}.ba-date-strip{gap:0}}
@media(prefers-reduced-motion:reduce){.ba *,.ba-more-sheet{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:599px){.ba-date-picker{position:relative}.ba-date-strip{grid-template-columns:repeat(7,3.65rem);margin-inline:-.25rem;padding-inline:.25rem}.ba-date-scroll-hint{display:flex}.ba-hours-control{grid-template-columns:minmax(7rem,.9fr) minmax(6.8rem,1fr) 2.8rem}.ba-hours-day{padding:.5rem;gap:.4rem}.ba-hours-day strong{font-size:.87rem}.ba-hours-control.is-editing{grid-template-columns:1fr 2.8rem}.ba-hours-control.is-editing .ba-hours-day{grid-column:1/-1}.ba-hours-control.is-editing .ba-hours-fields{grid-column:1}.ba-scroll-progress{right:.65rem;padding:.45rem}.ba-scroll-progress>span{display:none}.ba-scroll-progress>i{width:2rem}.auth-shell--wide .ba-scroll-progress{bottom:6.5rem}}
@media(forced-colors:active){.ba-service.selected,.ba-date-strip button.selected,.ba-slots button.selected{outline:2px solid Highlight}.ba-progress .done{background:Highlight}.ba-bottom-navigation .active{outline:2px solid Highlight}}

.ba-otp-panel{display:grid;gap:1.25rem;width:min(100%,34rem);margin-inline:auto;min-width:0}
.ba-otp-heading{display:grid;gap:.45rem}.ba-otp-heading h1,.ba-otp-heading p{margin:0}.ba-otp-plan{justify-self:start;padding:.35rem .65rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-muted);font-size:.75rem}
.ba-otp-field{display:grid;gap:.6rem;min-width:0}.ba-otp-cells{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(.3rem,2vw,.65rem);width:100%}
.ba-otp-input{position:absolute!important;inset:0;z-index:2;width:100%!important;height:100%;min-height:0!important;padding:0!important;border:0!important;outline:0!important;opacity:.001;background:transparent!important;color:transparent!important;caret-color:transparent}
.ba-otp-cell{display:grid;place-items:center;aspect-ratio:1/1;min-width:0;border:1px solid var(--border-strong);border-radius:.75rem;background:var(--surface-raised);color:var(--text);font-size:clamp(1.25rem,6vw,1.75rem);font-weight:700;line-height:1;box-shadow:var(--shadow-1);transition:border-color var(--motion-fast),box-shadow var(--motion-fast),background var(--motion-fast)}
.ba-otp-cells:focus-within .ba-otp-cell{border-color:var(--action-primary);box-shadow:0 0 0 2px var(--focus-ring)}.ba-otp-field.has-error .ba-otp-cell{border-color:var(--danger)}.ba-otp-field.is-success .ba-otp-cell{border-color:var(--success-text)}
.ba-otp-input:disabled~.ba-otp-cell{opacity:.55;background:var(--surface)}
.ba-otp-hint{color:var(--text-muted);font-size:.78rem}.ba-otp-status{padding:.75rem .85rem;border-radius:.65rem;font-size:.85rem}.ba-otp-status.danger{background:var(--danger-surface);color:var(--danger-text)}.ba-otp-status.success{background:var(--success-surface);color:var(--success-text)}
.ba-otp-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:.7rem}.ba-otp-actions .ba-button{width:100%}
@media(min-width:480px){.ba-otp-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:375px){.ba-otp-cells{gap:.3rem}.ba-otp-cell{border-radius:.55rem;font-size:1.2rem}}
@media(prefers-reduced-motion:reduce){.ba-otp-cell{transition:none}}
@media(forced-colors:active){.ba-otp-cells:focus-within .ba-otp-cell{outline:2px solid Highlight;outline-offset:1px}}

.ba-calendar-toolbar{display:flex;gap:.75rem;align-items:center;margin:1rem 0}.ba-calendar-toolbar>.ba-button{flex:1}.ba-flow-intro,.ba-help{color:var(--text-muted);font-size:.85rem;line-height:1.6;margin:1rem 0!important}.ba-chosen-date{font-weight:600;margin:1rem 0!important}

/* ===== Hierarchical calendar navigator (Day / Month / Year) ===== */
.ba-date-picker{position:relative}
.ba-cal-trigger{display:inline-flex;align-items:center;gap:.45rem;background:none;border:0;padding:.35rem .6rem;border-radius:.6rem;color:var(--text);font-weight:650;font-size:1rem;cursor:pointer}
.ba-cal-trigger:hover{background:var(--action-secondary)}
.ba-cal-caret{width:.5rem;height:.5rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-.22rem;opacity:.7}
.ba-cal-scrim{position:fixed;inset:0;z-index:var(--z-scrim);background:transparent}
.ba-cal-pop{position:fixed;inset:auto 0 0;z-index:var(--z-sheet);margin:0 auto;width:100%;max-width:34rem;background:var(--surface);border:1px solid var(--border);border-radius:1.25rem 1.25rem 0 0;box-shadow:var(--shadow-3);padding:1.1rem 1.1rem calc(1.1rem + env(safe-area-inset-bottom));max-height:82dvh;overflow:auto;animation:ba-sheet-in var(--motion-base) ease-out}
.ba-cal-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.85rem}
.ba-cal-title{flex:1;min-width:0;background:none;border:0;color:var(--text);font-weight:650;font-size:1.05rem;cursor:pointer;padding:.55rem;border-radius:.6rem;text-align:center}
.ba-cal-title:hover{background:var(--action-secondary)}
.ba-cal-title--static{cursor:default}
.ba-cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;margin-bottom:.35rem}
.ba-cal-weekdays span{text-align:center;font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase}
.ba-cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem}
.ba-cal-months,.ba-cal-years{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
.ba-cal-cell{position:relative;display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:.7rem;background:transparent;color:var(--text);font:inherit;font-weight:600;cursor:pointer;transition:background var(--motion-fast),border-color var(--motion-fast)}
.ba-cal-cell:hover:not(:disabled){background:var(--action-secondary)}
.ba-cal-cell:disabled{opacity:.32;cursor:not-allowed}
.ba-cal-day{aspect-ratio:1;min-height:2.5rem;font-size:.9rem}
.ba-cal-month,.ba-cal-year{min-height:3rem;font-size:.9rem}
.ba-cal-day.is-outside{color:var(--text-muted);opacity:.5;font-weight:500}
.ba-cal-cell.is-today:not(.is-selected){border-color:var(--action-primary)}
.ba-cal-cell.is-today::after{content:"";position:absolute;bottom:.3rem;left:50%;transform:translateX(-50%);width:.32rem;height:.32rem;border-radius:50%;background:var(--action-primary)}
.ba-cal-month.is-today::after,.ba-cal-year.is-today::after{bottom:.45rem}
.ba-cal-cell.is-selected{background:var(--action-primary);border-color:var(--action-primary);color:var(--text-inverse);font-weight:750}
.ba-cal-cell.is-selected.is-today::after{background:var(--text-inverse)}
.ba-cal-foot{display:flex;gap:.6rem;margin-top:.9rem;padding-top:.8rem;border-top:1px solid var(--border)}
.ba-cal-today{flex:1;min-height:2.75rem;border:1px solid var(--border);border-radius:.7rem;background:var(--action-secondary);color:var(--text);font-weight:650;cursor:pointer}
.ba-cal-done{min-height:2.75rem;padding:0 1.1rem;border:1px solid var(--border);border-radius:.7rem;background:transparent;color:var(--text-muted);font-weight:600;cursor:pointer}
.ba-cal-body{animation:ba-cal-fade var(--motion-base) ease}
@keyframes ba-cal-fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@keyframes ba-cal-pop-in{from{opacity:0;transform:translateX(-50%) translateY(-6px) scale(.985)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}
@media(min-width:600px){
  .ba-cal-scrim{background:transparent}
  .ba-cal-pop{position:absolute;inset:3.4rem auto auto 50%;transform:translateX(-50%);width:min(30rem,92vw);max-width:30rem;border-radius:1rem;max-height:none;padding:1.1rem;animation:ba-cal-pop-in var(--motion-fast) ease-out}
}
