.book-shell{min-height:100dvh;display:flex;flex-direction:column}.book-main{width:100%;max-width:640px;margin:0 auto;padding:16px 16px 40px;display:grid;gap:16px;align-content:start;flex:1;outline:none}.book-foot{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:center;padding:16px;color:var(--muted);font-size:14px;border-top:1px solid var(--border)}.book-foot a{color:inherit}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.row.center{justify-content:center}.stack{display:grid;gap:14px}.msg{margin:0;padding:10px 12px;border-radius:var(--radius-sm);font-size:14px}.msg-error{background:var(--danger-soft);color:var(--danger)}.msg-info{background:var(--primary-soft);color:var(--text)}.link{background:none;border:0;padding:4px 2px;color:var(--primary);font:600 14px var(--font);cursor:pointer;text-decoration:underline;text-underline-offset:3px}.skeleton{border-radius:var(--radius);background:linear-gradient(90deg,var(--surface) 0%,var(--surface-2) 50%,var(--surface) 100%);background-size:200% 100%;animation:shimmer 1.2s infinite}@keyframes shimmer{to{background-position:-200% 0}}.btn-lg{min-height:52px;font-size:17px}.textarea.short{min-height:70px}.notice-lg{padding:28px 20px;text-align:center;display:grid;gap:10px;justify-items:center}.notice-lg h1{margin:0;font-size:22px}.notice-lg p{margin:0;color:var(--muted)}.biz-head{display:grid;gap:4px;padding-top:8px}.biz-head h1{margin:0;font-size:clamp(24px,6vw,32px);line-height:1.15}.biz-head .hint{margin:0}.biz-links{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:14px}.biz-links a{color:var(--primary);font-weight:600}.hours-box{margin-top:6px;font-size:14px}.hours-box summary{cursor:pointer;color:var(--muted);font-weight:600;min-height:32px}.hours-box dl{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;margin:8px 0 0}.hours-box dt{font-weight:600}.hours-box dd{margin:0;color:var(--muted);font-variant-numeric:tabular-nums}.steps-bar{list-style:none;display:flex;gap:6px;margin:0;padding:0}.steps-bar li{flex:1;text-align:center;font-size:12.5px;font-weight:600;color:var(--muted);padding-top:8px;border-top:4px solid var(--border)}.steps-bar li.past{border-color:color-mix(in srgb,var(--primary) 45%,var(--border))}.steps-bar li.on{border-color:var(--primary);color:var(--text)}section>h2{margin:4px 0 8px;font-size:21px;outline:none}.back{display:inline-flex;align-items:center;gap:4px;text-decoration:none}.back svg{width:18px;height:18px}.cat-title{margin:14px 0 6px;font-size:14px;color:var(--muted)}.svc-pick,.staff-pick,.my-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.svc-option,.staff-option{width:100%;display:grid;gap:4px;padding:14px 16px;text-align:start;cursor:pointer;font:inherit;color:var(--text);border-inline-start:5px solid var(--sc, var(--primary));transition:box-shadow .15s,transform .05s}.svc-option:hover,.staff-option:hover{box-shadow:var(--shadow-md)}.svc-option:active,.staff-option:active{transform:translateY(1px)}.svc-option-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.svc-option-top strong{font-size:17px}.svc-price{font-weight:700;white-space:nowrap}.svc-meta{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:14px}.svc-meta svg{width:16px;height:16px}.svc-desc{color:var(--muted);font-size:14px}.staff-option{grid-template-columns:auto 1fr;align-items:center;column-gap:12px}.staff-option small{grid-column:1 / -1;color:var(--muted)}.avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:800;background:color-mix(in srgb,var(--sc, var(--primary)) 18%,var(--surface));color:var(--sc, var(--primary))}.date-strip{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 10px;scroll-snap-type:x proximity}.date-chip{flex:none;scroll-snap-align:start;width:64px;min-height:76px;display:grid;justify-items:center;align-content:center;gap:1px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;cursor:pointer}.date-chip strong{font-size:20px}.date-chip span,.date-chip small{font-size:12px;color:var(--muted)}.date-chip.on{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.date-chip.on span,.date-chip.on small{color:var(--primary-ink)}.date-chip:disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through}.date-title{margin:6px 0 0;font-size:15px}.slot-group{margin:12px 0 6px;font-size:13px;color:var(--muted)}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px}.slot-chip{min-height:46px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:700 16px var(--font);font-variant-numeric:tabular-nums;cursor:pointer}.slot-chip:hover{border-color:var(--primary);background:var(--primary-soft)}.slot-skel{height:150px}.empty-slots{padding:18px;display:grid;gap:10px;justify-items:start}.empty-slots p{margin:0;color:var(--muted)}.summary-card{padding:14px 16px;display:grid;gap:3px;border-inline-start:5px solid var(--sc)}.summary-card strong{font-size:18px}.auth-panel{display:grid;gap:12px}.auth-why{margin:0}.google-btn{width:100%}.google-btn svg{width:20px;height:20px}.email-auth summary{cursor:pointer;color:var(--muted);font-weight:600;min-height:32px}.email-auth form{margin-top:10px}.auth-links{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.done{display:grid;gap:8px;justify-items:center;text-align:center;padding:24px 0}.done h2{margin:0;font-size:26px}.done p{margin:0}.done-icon{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:var(--success-soft);color:var(--success)}.done-icon.wait{background:var(--warning-soft);color:var(--warning)}.done-icon svg{width:40px;height:40px}.my-title{margin:14px 0 8px;font-size:16px;color:var(--muted)}.my-card{padding:14px 16px;display:grid;gap:4px}.my-card.dim{opacity:.7}.my-card p{margin:0}.my-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.my-top a{color:var(--text);text-decoration:none}.my-when{font-weight:700;font-variant-numeric:tabular-nums}.status-chip{padding:2px 10px;border-radius:999px;font-size:13px;font-weight:700;background:var(--surface-2);white-space:nowrap}.status-chip.st-confirmed{color:var(--success)}.status-chip.st-pending{color:var(--warning)}.status-chip.st-cancelled,.status-chip.st-no_show{color:var(--danger)}.warn-text{color:var(--warning);font-weight:600}
