.app-version-footer{position:fixed;right:.5rem;bottom:.25rem;font-size:.65rem;line-height:1;color:#9ca3af;opacity:.55;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:1}:root{color-scheme:light;--sage: #3a6b5f;--sage-light: #d4ebe4;--sage-mid: #7ab5a8;--gold: #9a7a20;--gold-light: #f5e8b0;--rose: #b04870;--rose-light: #f5c8d8;--ink: #0f0f0f;--ink2: #222222;--ink3: #444444;--bg: #f5f4f0;--surface: #ffffff;--border: #c8c8c8;--border2: #999999;--radius: 14px;--radius-sm: 10px;--shadow: 0 2px 8px rgb(0 0 0 / 8%);--shadow-card: 0 1px 3px rgb(0 0 0 / 6%);font-family:Noto Sans TC,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;font-size:16px;color:var(--ink);background:var(--bg);--text: var(--ink);--muted: var(--ink3);--primary: var(--sage);--primary-pressed: #2a5040;--danger: var(--rose)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100dvh}#root{min-height:100dvh}a{color:var(--sage);text-decoration:none}a:hover{text-decoration:underline}button{font-family:Noto Sans TC,system-ui,sans-serif;font-size:inherit;cursor:pointer;border:none;border-radius:var(--radius-sm);padding:.65rem 1rem;background:var(--sage);color:#fff;font-weight:700;letter-spacing:.02em;transition:background .2s,transform .15s,border-color .2s}button:hover{background:var(--primary-pressed)}button:active{transform:scale(.98)}button:disabled{opacity:.45;cursor:not-allowed;transform:none}button.secondary{background:var(--surface);color:var(--ink2);border:2px solid var(--border2)}.booking-entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1rem;align-items:stretch}.booking-entry-grid--triple{grid-template-columns:repeat(3,1fr)}@media (max-width: 520px){.booking-entry-grid--triple{grid-template-columns:1fr}}@media (max-width: 340px){.booking-entry-grid{grid-template-columns:1fr}}button.booking-entry-choice--unassigned.is-selected{border-color:var(--sage);background:var(--sage-light)}button.booking-entry-choice,button.booking-choice-card{background:#fff;color:var(--ink2);border:2px solid var(--border);font-weight:700;padding:.95rem;line-height:1.35;transition:all .2s}button.booking-entry-choice{text-align:center;padding:.75rem .65rem}button.booking-entry-choice.is-selected{border-color:var(--sage);background:var(--sage-light)}button.booking-choice-card{width:100%;text-align:left}button.booking-choice-card.is-selected{border-color:var(--sage);background:var(--sage-light)}button.booking-choice-card--unassigned{border-style:dashed;border-color:var(--sage-mid);background:var(--sage-light)}button.booking-entry-choice:hover,button.booking-choice-card:hover{border-color:var(--sage-mid);transform:translateY(-1px)}ul.booking-category-tree{list-style:none;margin:0;padding:0}.booking-category-node{list-style:none;margin:0 0 .35rem;padding:0}button.booking-category-toggle,.booking-category-toggle--static{display:flex;align-items:center;gap:.35rem;width:100%;text-align:left;padding:.55rem .65rem;border:none;background:transparent;font:inherit;color:inherit;cursor:pointer}.booking-category-toggle--static{cursor:default}.booking-category-chevron{width:1rem;flex-shrink:0}.booking-category-name{font-weight:600}ul.booking-category-children{margin:.15rem 0 .35rem .35rem;padding:0}ul.booking-choice-card-list{list-style:none;padding:0;margin:.75rem 0 0;display:flex;flex-direction:column;gap:.5rem}.booking-favorites-block{margin:.35rem 0 1rem;padding:.65rem .75rem .85rem;border:1px solid color-mix(in srgb,var(--sage-mid) 45%,#e8e4dc);border-radius:12px;background:linear-gradient(165deg,color-mix(in srgb,var(--sage-light) 70%,#fff),#f7f5f0);box-shadow:inset 0 1px #ffffffa6}.booking-favorites-heading{margin:0 0 .5rem;font-size:.875rem;font-weight:700;letter-spacing:.02em;color:var(--sage);display:flex;align-items:center;gap:.35rem}.booking-favorites-heading:before{content:"★";font-size:.85rem;color:#c4a35a}.booking-favorites-block>.booking-choice-card-list{margin-top:0}.booking-favorites-block+.booking-choice-card-list,.booking-favorites-block+.booking-category-tree,.booking-favorites-block+div{margin-top:.25rem;padding-top:.85rem;border-top:1px dashed color-mix(in srgb,var(--sage-mid) 35%,#ddd)}.booking-list-section-heading{margin:.15rem 0 .4rem;font-size:.8125rem;font-weight:600;color:#6b6560;letter-spacing:.02em}.booking-favorites-block+.booking-list-section-heading{margin-top:.35rem;padding-top:.85rem;border-top:1px dashed color-mix(in srgb,var(--sage-mid) 35%,#ddd)}.booking-choice-with-fav{position:relative}.booking-choice-with-fav>.booking-choice-card{width:100%;padding-right:2.5rem}.booking-choice-with-fav.is-disabled>.booking-choice-card,button.booking-choice-card.is-muted{opacity:.55;cursor:not-allowed}button.booking-fav-star{position:absolute;top:.45rem;right:.45rem;z-index:1;width:2rem;height:2rem;border:none;border-radius:999px;background:transparent;font-size:1.15rem;line-height:1;color:#9a8f7f;cursor:pointer;padding:0}button.booking-fav-star.is-on{color:#c4a35a}button.booking-fav-star:disabled{opacity:.5;cursor:wait}.booking-choice-side-actions{position:absolute;top:.4rem;right:.4rem;z-index:1;display:flex;flex-direction:column;align-items:flex-end;gap:.3rem}.booking-choice-side-actions>button.booking-fav-star,.booking-choice-side-actions>button.booking-staff-profile-btn{position:static}.booking-choice-with-fav>.booking-choice-card{padding-right:3.9rem}button.booking-staff-profile-btn{border:1px solid color-mix(in srgb,var(--sage-mid) 55%,#ccc);border-radius:999px;background:#fff;font-size:.7rem;font-weight:600;line-height:1;padding:.32rem .55rem;color:var(--ink3, #55524c);cursor:pointer;white-space:nowrap}button.booking-staff-profile-btn:hover{border-color:var(--sage-mid);color:var(--sage)}button.booking-staff-profile-btn:disabled{opacity:.5;cursor:wait}.staff-profile-card{max-width:34rem}.staff-profile-head{display:flex;align-items:center;gap:1rem}.staff-profile-avatar{width:132px;height:132px;border-radius:20px;overflow:hidden;border:1px solid var(--border);background:#f3f4f6;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}button.staff-profile-avatar-btn{padding:0;margin:0;cursor:zoom-in;font:inherit;color:inherit}button.staff-profile-avatar-btn:focus-visible{outline:2px solid var(--accent, #2563eb);outline-offset:2px}.staff-profile-avatar img{width:100%;height:100%;object-fit:cover;display:block}.staff-profile-avatar .staff-avatar-fallback{font-size:2.4rem;font-weight:700;color:var(--ink3, #6b6560)}.staff-profile-portfolio-hero{display:block;width:100%;margin:.75rem 0 0;padding:0;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:#f3f4f6;aspect-ratio:1 / 1;cursor:zoom-in;font:inherit;color:inherit}.staff-profile-portfolio-hero:focus-visible{outline:2px solid var(--accent, #2563eb);outline-offset:2px}.staff-profile-portfolio-hero img{width:100%;height:100%;object-fit:cover;display:block}.staff-profile-portfolio-hero-meta{padding:.55rem .15rem .15rem}.staff-profile-portfolio-strip{list-style:none;margin:.75rem 0 0;padding:0 0 .25rem;display:flex;gap:.55rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}.staff-profile-portfolio-strip>li{flex:0 0 auto;scroll-snap-align:start}.staff-profile-portfolio-strip-btn{display:block;width:4.25rem;height:4.25rem;padding:0;border:2px solid var(--border);border-radius:10px;overflow:hidden;background:#f3f4f6;cursor:pointer}.staff-profile-portfolio-strip-btn.is-active{border-color:var(--accent, #2563eb);box-shadow:0 0 0 1px var(--accent, #2563eb)}.staff-profile-portfolio-strip-btn:focus-visible{outline:2px solid var(--accent, #2563eb);outline-offset:2px}.staff-profile-portfolio-strip-btn img{width:100%;height:100%;object-fit:cover;display:block}.staff-profile-portfolio-meta{padding:.5rem .6rem .65rem}.staff-profile-portfolio-title{font-size:.85rem;font-weight:700}.staff-profile-portfolio-caption{font-size:.78rem;color:var(--ink3, #6b6560);margin-top:.2rem;white-space:pre-wrap;word-break:break-word}.image-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#0a0c10eb;display:flex;flex-direction:column;align-items:stretch;justify-content:center;padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0)}.image-lightbox-close{position:absolute;top:max(.65rem,env(safe-area-inset-top,0px));right:max(.65rem,env(safe-area-inset-right,0px));z-index:2;box-sizing:border-box;width:2.5rem;height:2.5rem;padding:0;margin:0;border:none;border-radius:999px;background:#ffffff24;color:#fff;font-size:1.5rem;font-weight:400;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.image-lightbox-viewport{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;touch-action:none;overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none}.image-lightbox-img{max-width:100%;max-height:100%;object-fit:contain;transform-origin:center center;will-change:transform;pointer-events:none}.image-lightbox-caption{margin:0;padding:.5rem 1rem .85rem;color:#f5f5f5;text-align:center;font-size:.9rem;white-space:pre-wrap;word-break:break-word}.booking-branch-tags-scroll{position:relative;margin-top:.5rem;display:flex;align-items:stretch;min-width:0}.booking-branch-tags-scroll-inner{display:flex;flex-wrap:nowrap;gap:.35rem;overflow-x:auto;padding-bottom:.15rem;scrollbar-width:thin;-webkit-overflow-scrolling:touch;flex:1;min-width:0;-webkit-mask-image:linear-gradient(to right,#000 0%,#000 calc(100% - 2rem),transparent 100%);mask-image:linear-gradient(to right,#000 0%,#000 calc(100% - 2rem),transparent 100%)}.booking-branch-tag{flex:0 0 auto;font-size:.8125rem;padding:.2rem .55rem;border-radius:999px;background:var(--sage-light);color:var(--text);border:1px solid var(--border);white-space:nowrap}.booking-branch-tags-scroll-hint{flex:0 0 auto;align-self:center;margin-left:.15rem;padding:0 .35rem;font-size:1.25rem;line-height:1;color:var(--sage-mid);font-weight:600;pointer-events:none}.staff-catalog-slot-offering-row{margin-bottom:.55rem;padding-left:.35rem;border-left:3px solid var(--sage-light)}.staff-catalog-slot-offering-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .65rem;margin-bottom:.35rem}.staff-catalog-slot-branch-title{font-weight:700;font-size:.9rem;color:var(--ink)}.staff-catalog-slot-offering-meta{font-size:.8125rem;color:var(--muted)}.staff-catalog-slot-empty{margin:.15rem 0 0;font-size:.8125rem}.staff-catalog-slot-chips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.35rem}.booking-choice-card-row{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem}.staff-avatar{width:72px;height:72px;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:#f3f4f6;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.staff-avatar--sm{width:56px;height:56px;border-radius:14px}.staff-avatar--pick{width:72px;height:72px;border-radius:16px}.staff-avatar img{width:100%;height:100%;object-fit:cover;display:block}.staff-avatar-fallback{font-size:.85rem;font-weight:800;color:var(--ink3)}.branch-thumb{width:72px;height:72px;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:#e8eaed;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.branch-thumb img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.branch-thumb-placeholder{width:100%;height:100%;background:#e8eaed;display:block}.booking-choice-card-text{min-width:0;flex:1 1 auto;display:flex;flex-direction:column;align-items:flex-start;gap:0}.booking-choice-card-title{font-weight:600;color:inherit}.booking-choice-card-code{font-size:.8125rem;font-weight:400;color:var(--ink3)}.booking-choice-badge-nearest{font-size:.75rem;padding:.1rem .35rem;border-radius:4px;background:#c8e8d8;color:#1a5a3a;font-weight:700}.booking-entry-sub{display:block;margin-top:.2rem;font-size:.8125rem;font-weight:500;color:var(--ink3)}button.booking-chip{font-size:.85rem;padding:.45rem .6rem;border-radius:999px}button.booking-chip.is-selected{border-color:var(--sage);background:var(--sage-light);color:var(--sage)}button.danger{background:var(--rose)}input,select,textarea{font:inherit;width:100%;max-width:100%;min-width:0;padding:.6rem .75rem;border-radius:10px;border:2px solid var(--border);background:var(--surface);color:var(--ink);line-height:1.4}select{min-height:2.85rem}.birthday-select{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr) minmax(0,.9fr);gap:.5rem;min-width:0;max-width:100%}.birthday-select select{min-width:0;width:100%}label{display:block;font-size:.875rem;font-weight:600;color:var(--muted);margin-bottom:.25rem}.field{margin-bottom:1rem;min-width:0;max-width:100%}.card{background:var(--surface);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow-card);border:2px solid var(--border);max-width:100%;overflow-x:clip}.layout{max-width:680px;margin:0 auto;padding:1rem 1rem 2.5rem;min-height:100dvh;display:flex;flex-direction:column;min-width:0;width:100%;box-sizing:border-box}.layout-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:1.25rem}.layout-header-brand{display:flex;align-items:center;gap:.75rem}.header-logo{width:38px;height:38px;background:var(--sage);border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.header-logo svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:1.8}.layout-header-brand h1{margin:0 0 .25rem;font-family:Playfair Display,serif;font-size:1.25rem;font-weight:500;color:var(--ink)}.layout-header-brand p{margin:0;font-size:.8125rem;color:var(--ink3);font-weight:500}button.menu-toggle{flex-shrink:0;padding:.45rem .55rem;background:var(--surface);color:var(--ink2);border:2px solid var(--border2);border-radius:10px;line-height:1}button.menu-toggle:hover{border-color:var(--sage);color:var(--sage);background:var(--sage-light)}.menu-toggle-bars{display:flex;flex-direction:column;gap:5px;width:1.35rem}.menu-toggle-bars span{display:block;height:2px;border-radius:1px;background:currentColor}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0f172a59;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;pointer-events:none}.drawer-backdrop.open{opacity:1;visibility:visible;pointer-events:auto}.drawer-panel{position:fixed;top:0;right:0;bottom:0;z-index:201;width:min(17.5rem,88vw);max-width:100%;background:var(--surface);border-left:2px solid var(--border);box-shadow:-10px 0 24px #0000001a;padding:0;display:flex;flex-direction:column;transform:translate(100%);visibility:hidden;transition:transform .25s ease,visibility .25s ease;pointer-events:none}.drawer-panel.open{transform:translate(0);visibility:visible;pointer-events:auto}.drawer-panel-head{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem .75rem;border-bottom:2px solid var(--border)}.drawer-title{font-weight:700;font-size:1.05rem}button.drawer-close{padding:.35rem .55rem;background:transparent;color:var(--muted);font-size:1.5rem;line-height:1;font-weight:400}button.drawer-close:hover{color:var(--text);background:#f0fdfa}.drawer-nav{display:flex;flex-direction:column;padding:.5rem .75rem 1rem;gap:.15rem}.drawer-link{display:block;padding:.65rem .75rem;border-radius:10px;font-size:.95rem;font-weight:600;color:var(--ink);text-decoration:none}.drawer-link:hover{background:#f0fdf9;text-decoration:none}.drawer-link.active{background:var(--sage-light);color:var(--sage)}.drawer-link.disabled{cursor:not-allowed;opacity:.45;color:var(--muted)}.drawer-link.disabled:hover{background:transparent}.drawer-nav button.drawer-link-button{font:inherit;font-weight:600;font-size:.95rem;text-align:left;width:100%;padding:.65rem .75rem;border-radius:10px;background:transparent;color:var(--ink);border:none;box-shadow:none}.drawer-nav button.drawer-link-button:hover{background:var(--sage-light);color:var(--ink)}.member-home-stats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.85rem}.member-home-stats li{display:flex;flex-direction:column;gap:.2rem;padding-bottom:.85rem;border-bottom:1px solid var(--border)}.member-home-stats li:last-child{border-bottom:none;padding-bottom:0}.member-home-stats-label{font-size:.8rem;font-weight:600;color:var(--muted)}.member-home-stats-value{font-size:1.15rem;font-weight:700;color:var(--text)}.member-home-stats-value--row{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.member-home-inline-link{font-size:.9rem;font-weight:600;color:var(--sage);text-decoration:underline;text-underline-offset:.15em;white-space:nowrap}.member-home-inline-link:hover{color:var(--primary-pressed, #2a5040)}.points-history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.points-history-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:inherit;text-align:left;cursor:pointer}.points-history-row:hover{border-color:var(--sage-mid);background:var(--sage-light)}.points-history-date{font-size:.95rem;color:var(--ink2)}.points-history-amount{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.points-history-amount.is-plus,.points-detail-dl .is-plus{color:var(--sage)}.points-history-amount.is-minus,.points-detail-dl .is-minus{color:var(--rose)}.points-detail-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:flex-end;justify-content:center;padding:1rem;background:#00000073}@media (min-width: 520px){.points-detail-backdrop{align-items:center}}.points-detail-modal{width:min(100%,22rem);padding:1.25rem;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.points-detail-dl{margin:0 0 1rem;display:flex;flex-direction:column;gap:.75rem}.points-detail-dl>div{display:flex;flex-direction:column;gap:.15rem}.points-detail-dl dt{font-size:.8rem;font-weight:600;color:var(--muted)}.points-detail-dl dd{margin:0;font-size:1rem;color:var(--ink);white-space:pre-wrap;word-break:break-word}.error-text{color:var(--rose)}.nav{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.75rem}.nav a{padding:.35rem .65rem;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:.875rem;color:var(--text);text-decoration:none}.nav a:hover{border-color:var(--primary);color:var(--primary-pressed)}.nav a.active{background:#ccfbf1;border-color:var(--primary);color:var(--primary-pressed)}.banner{padding:.65rem .85rem;border-radius:var(--radius);font-size:.875rem;margin-bottom:1rem}.banner.error{background:var(--rose-light);color:#602040;border:2px solid #e0a0b8}.banner.warn{background:#fef8e0;color:#5a4000;border:2px solid #d4b840}.otp-walkthrough{margin-bottom:1.25rem;padding:1rem 1.1rem;border-radius:var(--radius);border:2px dashed var(--border);background:linear-gradient(145deg,#f0fdfa,#ecfeff)}.otp-walkthrough-title{font-weight:700;font-size:.95rem;margin:0 0 .5rem;color:var(--text)}.otp-walkthrough-lead{margin:0 0 .65rem;font-size:.875rem;line-height:1.5;color:var(--muted)}.otp-walkthrough-code{font-family:ui-monospace,Cascadia Code,SF Mono,Menlo,monospace;font-size:1.85rem;font-weight:800;letter-spacing:.28em;text-align:center;padding:.75rem .5rem;margin:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--primary-pressed);box-shadow:var(--shadow)}.otp-walkthrough-foot{margin:.65rem 0 0;font-size:.78rem;line-height:1.45}.banner.success{background:var(--sage-light);color:#0f3a2a;border:2px solid var(--sage-mid)}.muted{color:var(--muted);font-size:.875rem}.row-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.75rem;align-items:center}.page-title{font-family:Playfair Display,serif;font-size:1.5rem;font-weight:500;color:var(--ink);margin:0 0 .25rem}.page-sub{font-size:.875rem;color:var(--ink3);font-weight:500;margin:0 0 1.25rem}.booking-flow-progress{padding:.2rem 0 .5rem}.flow-steps{display:flex;align-items:center;gap:5px;flex-wrap:nowrap}.flow-step{display:flex;align-items:center;gap:5px;flex-shrink:0}.flow-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;border:2px solid #888;color:#555;background:#fff;transition:all .3s}.flow-dot.active{background:var(--sage);border-color:var(--sage);color:#fff}.flow-dot.done{background:var(--gold-light);border-color:var(--gold);color:var(--gold)}.flow-lbl{font-size:12px;font-weight:700;color:#555}.flow-lbl.active{color:var(--sage)}.flow-lbl.done{color:var(--gold)}.flow-line{flex:1;height:2px;background:#bbb;margin:0 5px;min-width:6px}.flow-line.done{background:var(--gold)}.btn-row{display:flex;gap:10px;margin-top:24px;background:var(--surface);padding:14px 0 calc(4px + env(safe-area-inset-bottom,0px));position:sticky;bottom:0;z-index:2;border-top:1px solid rgba(0,0,0,.06)}.btn{flex:1;padding:15px;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;border:none;transition:all .2s;font-family:Noto Sans TC,sans-serif;letter-spacing:.02em}.btn-back{background:#fff;border:2px solid #888;color:#222;flex:0 0 92px}.btn-back:hover{background:var(--sage-light);border-color:var(--sage);color:var(--sage)}.btn-next{background:var(--sage);color:#fff}.btn-next:hover{background:#2a5040}.btn-confirm{background:var(--gold);color:#fff}.btn-confirm:hover{background:#7a5a10}.row-actions button{padding:.45rem .75rem;font-size:.875rem}.row-actions .push-right{margin-left:auto}.row-actions-split{justify-content:space-between;align-items:center}.row-actions-split button[type=submit]{min-width:7rem}.booking-review-summary{margin:1rem 0;padding:1rem;background:#f0fdfa;border-radius:var(--radius);border:1px solid var(--border)}.booking-review-summary h3{margin:0 0 .75rem;font-size:1rem}.booking-review-summary dl{margin:0;display:grid;gap:.65rem}.booking-review-summary dt{font-size:.75rem;font-weight:600;color:var(--muted);margin:0}.booking-review-summary dd{margin:0;font-weight:600;color:var(--text);font-size:.95rem;word-break:break-word;overflow-wrap:anywhere}.booking-consent-label{display:flex;gap:.5rem;align-items:flex-start;margin-top:1rem;width:100%;max-width:100%;box-sizing:border-box}.booking-consent-label input[type=checkbox]{flex-shrink:0;width:1.1rem;height:1.1rem;margin-top:.15rem}.booking-consent-label .booking-consent-text{flex:1 1 0;min-width:0;font-size:.9rem;line-height:1.45;word-break:break-word;overflow-wrap:anywhere}.step-tabs{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 1rem}.step-tab{padding:.4rem .65rem;font-size:.8rem;font-weight:600;border-radius:999px;background:var(--surface);color:var(--text);border:1px solid var(--border)}.step-tab:hover{border-color:var(--primary);color:var(--primary-pressed)}.step-tab.active{background:#ccfbf1;border-color:var(--primary);color:var(--primary-pressed)}.step-panel{min-height:6rem}.pick-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.pick-item{width:100%;text-align:left;padding:.65rem .85rem;font-weight:500;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius)}.pick-item:hover{border-color:var(--primary)}.pick-item.selected{background:#ccfbf1;border-color:var(--primary);color:var(--primary-pressed)}.dim-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.dim-choice{padding:.85rem .75rem;font-size:.95rem;font-weight:600;text-align:center;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius)}.dim-choice:hover{border-color:var(--primary);color:var(--primary-pressed)}.selection-summary{margin-bottom:1rem;padding:.75rem .85rem;border-radius:var(--radius);border:1px solid var(--border);background:#f0fdf9}.selection-summary-title{margin:0 0 .5rem;font-size:.8rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.selection-summary-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem;font-size:.875rem}.selection-summary-list li{display:grid;grid-template-columns:5rem 1fr auto;gap:.35rem;align-items:baseline}.selection-summary-label{color:var(--muted);font-weight:600}.selection-summary-value{word-break:break-word}button.linkish{padding:0;font-size:.8rem;font-weight:600;background:none;border:none;color:var(--primary-pressed);text-decoration:underline;justify-self:end}button.linkish:hover{color:var(--primary)}.slot-picker-wrap{width:100%}.slot-picker-cal-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.slot-picker-cal-head .secondary{min-width:2.25rem;padding:.35rem .5rem;font-size:1rem;line-height:1}.slot-picker-cal-title{font-weight:700;font-size:.95rem;flex:1;text-align:center}.slot-picker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:.35rem;text-align:center;font-size:.72rem;font-weight:600;color:var(--muted)}.slot-picker-wd{padding:.2rem 0}.slot-picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.slot-picker-day{min-height:2.35rem;padding:0;font-size:.85rem;font-weight:600;border-radius:10px;background:var(--surface);border:1px solid var(--border);color:var(--text)}.slot-picker-day.out-month{opacity:.38}.slot-picker-day:disabled{opacity:.22;cursor:not-allowed}.slot-picker-day.has-slots:not(:disabled){border-color:#5eead4}.slot-picker-day.has-slots:not(:disabled):hover{border-color:var(--primary);color:var(--primary-pressed)}.slot-picker-day.selected{background:#ccfbf1;border-color:var(--primary);color:var(--primary-pressed)}.filter-field-controls{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.filter-field-controls select{flex:1;min-width:0}.filter-field-row label{margin-bottom:.35rem}.filter-slot-label{display:block;font-size:.875rem;font-weight:600;color:var(--muted)}.filter-slot-picker{margin-top:.35rem}.result-slot-section .filter-slot-label{font-size:.9rem;color:var(--text)}
