:root{color-scheme:light;--bg: #eef3f0;--bg-accent: #d7e6dc;--ink: #14241b;--muted: #4d6356;--surface: #f7fbf8;--line: #c5d5cb;--brand: #1f6b45;--brand-strong: #155234;--danger: #8f2d2d;--success: #1f5d3a;--focus: #2f8f5b;font-family:Segoe UI,Trebuchet MS,sans-serif;line-height:1.5;font-weight:400;color:var(--ink);background:radial-gradient(circle at top left,#cfe3d6 0%,transparent 42%),linear-gradient(160deg,var(--bg),var(--bg-accent));min-height:100%}*{box-sizing:border-box}body{margin:0;min-height:100vh}#root{min-height:100vh}button,input{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto}.app-header{display:flex;flex-direction:column;gap:.25rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 88%,white)}.header-brand{display:flex;flex-direction:column;gap:.15rem;min-width:0}.header-trainer{margin:0;font-size:.95rem;font-weight:600;color:var(--brand);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand{margin:0;font-size:clamp(1.5rem,4vw,2rem);font-weight:700;letter-spacing:.02em;color:var(--brand)}.brand-btn{border:0;background:transparent;padding:0;text-align:left;cursor:pointer}.brand-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.tagline{margin:0;color:var(--muted);font-size:.95rem}.app-footer{padding:.75rem 1.5rem 1.25rem;color:var(--muted);font-size:.8rem}.app-main{padding:1.25rem 1rem 2rem;width:min(1100px,100%);margin:0 auto}.booking-page{display:flex;flex-direction:column;gap:1.25rem}.schedule-head{display:flex;flex-direction:column;gap:.85rem}.schedule-title{margin:0;font-size:clamp(1.3rem,2.6vw,1.7rem)}.schedule-scroll{display:grid;gap:1.25rem}.week-nav{display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:1rem;padding:.75rem}.week-label{margin:0;text-align:center;font-weight:600;text-transform:capitalize}.nav-btn,.btn,.slot-btn{border-radius:.75rem;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}.nav-btn{width:2.5rem;height:2.5rem}.nav-btn:hover,.btn:hover,.slot-btn:hover{border-color:var(--brand)}.slot-grid{display:grid;gap:.75rem}.day-column{background:var(--surface);border:1px solid var(--line);border-radius:1rem;padding:.9rem}.day-title{margin:0 0 .65rem;font-size:.95rem;text-transform:capitalize}.day-empty{margin:0;color:var(--muted);font-size:.9rem}.slot-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.slot-btn{width:100%;padding:.7rem .8rem;text-align:left}.slot-btn.is-selected{background:var(--brand);border-color:var(--brand);color:#fff}.slot-card-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.slot-card{width:100%;display:grid;gap:.25rem;padding:.8rem .9rem;border-radius:.75rem;border:1px solid var(--line);background:#fff;color:var(--ink);text-align:left;cursor:pointer}.slot-card:hover{border-color:var(--brand)}.slot-card:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.slot-card.is-selected{background:var(--brand);border-color:var(--brand);color:#fff}.slot-card-datetime{font-weight:600}.slot-card-title{font-size:.9rem;color:var(--muted)}.slot-card.is-selected .slot-card-title{color:color-mix(in srgb,white 85%,transparent)}.booking-form{background:var(--surface);border:1px solid var(--line);border-radius:1rem;padding:1.25rem;display:grid;gap:.9rem}.booking-form h2{margin:0;font-size:1.2rem}.form-slot-label{margin:0;color:var(--muted);text-transform:capitalize}.field{display:grid;gap:.35rem}.field span{font-size:.92rem;color:var(--muted)}.field input{border:1px solid var(--line);border-radius:.75rem;padding:.75rem .85rem;background:#fff}.field input:focus,.nav-btn:focus-visible,.btn:focus-visible,.slot-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.consent-field{margin-top:.15rem}.consent-line{display:flex;align-items:flex-start;gap:.5rem;font-size:.92rem;color:var(--muted);cursor:pointer}.consent-line input[type=checkbox]{flex:0 0 auto;width:1.05rem;height:1.05rem;margin:.15rem 0 0;accent-color:var(--brand);cursor:pointer}.consent-line input[type=checkbox]:disabled{cursor:default}.link-button{margin:0;padding:0;border:0;background:none;color:var(--brand-strong);font:inherit;text-decoration:underline;text-underline-offset:.15em;cursor:pointer}.link-button:hover:not(:disabled){color:var(--brand)}.link-button:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:.25rem}.link-button:disabled{cursor:default;opacity:.6}.form-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end}.btn{padding:.7rem 1rem;min-width:7.5rem}.btn:disabled,.slot-btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-strong);border-color:var(--brand-strong)}.btn-ghost{background:transparent}.status-message{margin:0;padding:.85rem 1rem;border-radius:.85rem;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 80%,white)}.status-error{border-color:color-mix(in srgb,var(--danger) 35%,var(--line));color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,white)}.status-error-emphasis{border-width:2px;font-weight:600;background:color-mix(in srgb,var(--danger) 14%,white)}.status-success{border-color:color-mix(in srgb,var(--success) 35%,var(--line));color:var(--success);background:color-mix(in srgb,var(--success) 8%,white)}@media(min-width:768px){.mobile-only,.bottom-nav{display:none!important}.app-header{flex-direction:row;align-items:center;justify-content:space-between;padding:1.5rem 2rem}.app-main{padding:2rem}.slot-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.65rem}.day-column{min-height:12rem}.booking-form{padding:1.5rem;max-width:32rem}}.view-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;padding:.35rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface)}.view-tab{border:1px solid transparent;border-radius:.75rem;padding:.55rem .65rem;background:transparent;color:var(--muted);cursor:pointer;font-weight:600;font-size:.92rem}.view-tab.is-active{background:#fff;border-color:var(--line);color:var(--brand)}.view-tab:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.day-mode-header{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem}.day-mode-title{margin:0;font-weight:600;text-transform:capitalize}.btn-back{padding:.35rem .65rem}.day-title-btn{margin:0 0 .65rem;padding:0;border:0;background:transparent;color:var(--brand);font:inherit;font-size:.95rem;font-weight:600;text-transform:capitalize;text-align:left;cursor:pointer;text-decoration:underline;text-underline-offset:.15rem}.day-title-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.day-slot-list{background:var(--surface);border:1px solid var(--line);border-radius:1rem;padding:.9rem}.slot-calendar{display:grid;gap:.55rem;padding:.75rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface)}.slot-calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.slot-calendar-nav-btn{min-width:2.25rem;padding:.35rem .55rem}.slot-calendar-title{margin:0;font-weight:600;text-transform:capitalize;text-align:center}.slot-calendar-weekdays,.slot-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.2rem}.slot-calendar-weekdays span{text-align:center;font-size:.75rem;color:var(--muted);text-transform:lowercase}.slot-calendar-cell{display:grid;justify-items:center;gap:.15rem;min-height:2.6rem;padding:.25rem .1rem .35rem;border:1px solid transparent;border-radius:.55rem;background:transparent;color:var(--ink)}.slot-calendar-cell-static{cursor:default}.slot-calendar-cell.is-empty{pointer-events:none}.slot-calendar-day{font-size:.92rem;line-height:1.2}.slot-calendar-dots{display:flex;flex-wrap:wrap;gap:.15rem;min-height:.45rem;align-items:center;justify-content:center;max-width:100%}.slot-dot{width:.45rem;height:.45rem;border-radius:50%;display:inline-block}.slot-dot-open{background:#8a97a5}.slot-dot-more{font-size:.65rem;color:var(--muted);line-height:1}.slot-calendar-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.85rem;color:var(--muted);font-size:.82rem}.slot-calendar-legend li{display:inline-flex;align-items:center;gap:.35rem}.icon-btn{width:2rem;height:2rem;border-radius:.55rem;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:1.05rem;line-height:1}.icon-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.modal-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:1rem}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#0f172073;cursor:pointer}.modal-panel{position:relative;z-index:1;display:flex;flex-direction:column;width:min(100%,26rem);max-height:90vh;overflow:hidden;border-radius:1rem;background:#fff;border:1px solid var(--line);box-shadow:0 16px 40px #0f17202e;padding:1rem 1.1rem 1.15rem}.modal-body{min-width:0;min-height:0;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.modal-title{margin:0;font-size:1.05rem}.modal-body .booking-form{border:0;padding:0;background:transparent}.modal-wide{width:min(100%,44rem)}.legal-doc{display:grid;gap:.6rem;font-size:.9rem;line-height:1.5;color:var(--ink)}.legal-doc-title{margin:0;font-size:1rem}.legal-doc-meta{margin:0;font-size:.85rem;color:var(--muted)}.legal-doc section{display:grid;gap:.35rem}.legal-doc-heading{margin:.35rem 0 0;font-size:.95rem}.legal-doc-paragraph{margin:0;color:var(--muted)}@media(max-width:767px){.desktop-only{display:none!important}.app-header{flex-direction:row;align-items:center;justify-content:space-between;gap:.35rem;padding:.45rem .75rem}.brand{font-size:1.05rem;line-height:1.2}.tagline{display:none}.header-trainer{font-size:.82rem;max-width:45%;font-weight:600}.app-main{padding:.65rem .75rem calc(5.25rem + env(safe-area-inset-bottom,0px))}.app-footer{display:none}.booking-page{gap:.7rem;max-height:calc(100dvh - 9rem - env(safe-area-inset-bottom,0px))}.schedule-head{flex:0 0 auto;gap:.6rem}.schedule-title{font-size:1.05rem;line-height:1.3}.schedule-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.slot-grid{grid-template-columns:1fr}.day-column{display:grid;grid-template-columns:7.5rem 1fr;gap:.75rem;align-items:start}.day-title,.day-title-btn{margin:0}.bottom-nav{position:fixed;z-index:30;left:0;right:0;bottom:0;display:flex;align-items:stretch;justify-content:space-around;gap:.15rem;padding:.3rem .4rem calc(.3rem + env(safe-area-inset-bottom,0px));border-top:1px solid color-mix(in srgb,var(--line) 80%,white);background:color-mix(in srgb,var(--surface) 88%,white);box-shadow:0 -8px 24px #0f172014;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.bottom-nav-btn{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.12rem;border:0;background:transparent;color:var(--muted);font:inherit;font-size:.68rem;font-weight:550;line-height:1.15;padding:.35rem .15rem .3rem;border-radius:.85rem;cursor:pointer}.bottom-nav-btn.is-active{color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,transparent);font-weight:700}.bottom-nav-icon{width:1.45rem;height:1.45rem;display:block}.modal-root{display:flex;flex-direction:column;align-items:stretch;justify-content:center;padding:.75rem}.modal-root.is-keyboard{justify-content:flex-start;padding:0;padding-top:env(safe-area-inset-top,0px)}.modal-panel{width:100%;max-width:none;border-radius:1rem;max-height:85dvh;margin:0}.modal-root.is-keyboard .modal-panel{border-radius:0 0 1rem 1rem}}.slot-calendar-cell-btn{font:inherit;cursor:pointer}.slot-calendar-cell-btn:hover{background:color-mix(in srgb,var(--brand) 8%,white)}.slot-calendar-cell-btn.is-selected{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 12%,white)}.slot-calendar-cell-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.landing-page{display:grid;gap:1.5rem}.landing-hero{display:grid;gap:.85rem;padding:1.5rem;border:1px solid var(--line);border-radius:1.25rem;background:color-mix(in srgb,var(--surface) 90%,white);box-shadow:0 18px 40px #14241b14}.landing-kicker{margin:0;font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand)}.landing-title{margin:0;font-size:clamp(1.6rem,4vw,2.4rem);line-height:1.15}.landing-lead{margin:0;color:var(--muted);max-width:34rem}.landing-form{display:grid;gap:.75rem;max-width:26rem}.landing-submit{justify-self:start}.landing-steps{display:grid;gap:.85rem}.landing-step{display:grid;gap:.3rem;padding:1rem 1.15rem;border:1px solid var(--line);border-radius:1rem;background:color-mix(in srgb,var(--surface) 82%,white)}.landing-step-number{margin:0;width:1.8rem;height:1.8rem;display:grid;place-items:center;border-radius:999px;background:var(--brand);color:#fff;font-weight:700;font-size:.9rem}.landing-step-title{margin:0;font-size:1rem}.landing-step-text{margin:0;color:var(--muted);font-size:.92rem}.booking-success{display:grid;justify-items:center;gap:.6rem;text-align:center;padding:1.5rem 1.25rem;border:1px solid var(--line);border-radius:1.25rem;background:color-mix(in srgb,var(--surface) 90%,white);box-shadow:0 18px 40px #14241b14}.success-mark{margin:0;width:3rem;height:3rem;display:grid;place-items:center;border-radius:999px;background:color-mix(in srgb,var(--success) 14%,white);color:var(--success);font-size:1.6rem}.success-title{margin:0;font-size:clamp(1.35rem,3vw,1.8rem)}.success-title:focus{outline:none}.success-slot{margin:0;font-size:1.05rem;font-weight:600}.success-slot:first-letter{text-transform:uppercase}.success-note{margin:0;color:var(--muted);font-size:.88rem}.success-action{margin-top:.4rem}.route-message{display:grid;justify-items:start;gap:.85rem;padding:1.5rem;border:1px solid var(--line);border-radius:1.25rem;background:color-mix(in srgb,var(--surface) 90%,white)}.route-message-title{margin:0;font-size:clamp(1.3rem,3vw,1.8rem)}.route-message-text{margin:0;color:var(--muted)}@media(min-width:768px){.landing-hero{padding:2.5rem}.landing-steps{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:767px){.landing-hero{padding:1.15rem;gap:.7rem}.booking-success{padding:1.25rem 1rem}.route-message{padding:1.15rem}}
