:root{--purple:#4b176d;--purple-2:#69258c;--purple-soft:#f4edf8;--orange:#f58220;--ink:#211429;--muted:#776f7d;--line:#e7dfea;--surface:#fff;--bg:#faf8fb;--success:#1f7a52;--danger:#bd3d3d;--shadow:0 24px 70px rgba(50,21,64,.13);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--bg)}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}a{color:inherit}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:100;background:#fff;padding:.7rem 1rem;border-radius:.6rem}.skip-link:focus{top:1rem}.preview-ribbon{background:#23162a;color:#fff;text-align:center;font-size:.68rem;font-weight:800;letter-spacing:.18em;padding:.42rem;position:relative;z-index:20}.site-header{height:78px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(1rem,4vw,4.5rem);position:sticky;top:0;z-index:15;backdrop-filter:blur(18px)}.brand,.sidebar-brand,.auth-logo{display:flex;align-items:center;gap:.72rem;text-decoration:none}.brand-mark{width:38px;height:38px;background:var(--purple-soft);border-radius:50%;display:grid;place-items:center}.brand img,.sidebar-brand img,.auth-logo img{width:31px;height:31px;object-fit:contain}.brand strong,.sidebar-brand strong,.auth-logo strong{font-size:1.28rem;line-height:1;color:var(--purple);letter-spacing:.03em}.brand small,.sidebar-brand small,.auth-logo small{display:block;font-size:.58rem;font-weight:800;letter-spacing:.12em;color:var(--orange);margin-top:.25rem}.desktop-nav{display:flex;gap:2rem}.desktop-nav a{text-decoration:none;font-size:.9rem;font-weight:700;color:#5c5361;padding:.6rem .2rem;position:relative}.desktop-nav a.active{color:var(--purple)}.desktop-nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:.08rem;height:2px;background:var(--orange)}.header-actions{display:flex;align-items:center;gap:.6rem}.button{border:0;border-radius:12px;min-height:44px;padding:.72rem 1.15rem;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;transition:transform .18s,box-shadow .18s,background .18s}.button:hover{transform:translateY(-1px)}.button:focus-visible,.icon-button:focus-visible,.avatar-button:focus-visible,.view-switch button:focus-visible,.side-link:focus-visible{outline:3px solid rgba(245,130,32,.35);outline-offset:2px}.button-primary{background:linear-gradient(135deg,var(--purple),var(--purple-2));color:#fff;box-shadow:0 10px 25px rgba(75,23,109,.23)}.button-secondary{background:var(--orange);color:#fff;box-shadow:0 10px 25px rgba(245,130,32,.2)}.button-ghost{background:#fff;color:var(--purple);border:1px solid var(--line)}.button-full{width:100%}.avatar-button{width:42px;height:42px;border:0;border-radius:50%;background:var(--purple);color:#fff;font-size:.72rem;font-weight:900;cursor:pointer}.page-shell{max-width:1240px;margin:auto;padding:clamp(2.5rem,7vw,6.5rem) clamp(1rem,4vw,2rem) 7rem}.hero-grid{display:grid;grid-template-columns:1.06fr .94fr;gap:5rem;align-items:center;min-height:540px}.eyebrow{display:block;color:var(--orange);font-size:.7rem;font-weight:900;letter-spacing:.18em;margin-bottom:.8rem}.eyebrow.light{color:#ffb46d}.hero-copy h1,.assessment-intro h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,5.5vw,5.4rem);line-height:.98;letter-spacing:-.045em;margin:.3rem 0 1.5rem}.hero-copy h1 em,.assessment-intro h1 em{color:var(--purple);font-weight:400}.hero-copy>p{font-size:1.08rem;line-height:1.72;color:var(--muted);max-width:580px}.hero-actions{display:flex;gap:.8rem;margin:2.1rem 0}.trust-row{display:flex;gap:1.3rem;color:#625869;font-size:.78rem;font-weight:700}.hero-visual{position:relative;height:500px;display:grid;place-items:center}.orb{position:absolute;border-radius:50%;filter:blur(2px)}.orb-one{width:390px;height:390px;background:linear-gradient(145deg,#5a1c7d,#8b45aa);right:3%;top:9%}.orb-two{width:210px;height:210px;background:#ffa54f;left:2%;bottom:4%}.phone-card{position:relative;z-index:2;width:min(390px,88%);background:#fff;border-radius:28px;padding:1.35rem;box-shadow:0 35px 90px rgba(31,13,39,.28);transform:rotate(-2deg)}.phone-top{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid var(--line);padding:.5rem .2rem 1.2rem;margin-bottom:.7rem}.phone-top span{font-weight:900}.phone-top strong{font-size:.7rem;color:var(--success);background:#eaf7f0;padding:.42rem .6rem;border-radius:1rem}.mini-slot{display:grid;grid-template-columns:55px 1fr auto;gap:.85rem;align-items:center;padding:1rem .45rem;border-bottom:1px solid #f0ebf2}.mini-slot>span{font-weight:900;color:var(--purple)}.mini-slot div strong{font-size:.84rem}.mini-slot div small{display:block;color:var(--muted);font-size:.67rem;margin-top:.22rem}.mini-slot>b{font-size:.65rem;color:var(--success)}.mini-slot.active{background:var(--purple-soft);border-radius:14px;border:0}.mini-slot.active>b{background:var(--purple);color:#fff;padding:.42rem .58rem;border-radius:.7rem}.section-heading{max-width:720px;margin:5rem auto 2.4rem;text-align:center}.section-heading h2{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.1rem);line-height:1.08;margin:.2rem 0}.journey-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.journey-card{min-height:315px;border-radius:28px;padding:2.2rem;position:relative;overflow:hidden}.journey-purple{background:var(--purple);color:#fff}.journey-orange{background:#fff1e6;color:var(--ink)}.journey-index{position:absolute;right:1.4rem;top:.8rem;font-family:Georgia,serif;font-size:5rem;opacity:.1}.journey-icon{width:52px;height:52px;border-radius:16px;background:rgba(255,255,255,.14);display:grid;place-items:center;font-size:1.5rem}.journey-orange .journey-icon{background:rgba(245,130,32,.15);color:var(--orange)}.journey-card h3{font-family:Georgia,serif;font-size:1.85rem;margin:1.6rem 0 .8rem}.journey-card p{line-height:1.65;opacity:.78;max-width:480px}.journey-card a{font-weight:900;text-decoration:none;display:inline-flex;gap:.6rem;align-items:center;margin-top:1rem}.how-it-works{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:4.5rem;padding-top:2.2rem}.how-it-works>div{display:grid;grid-template-columns:36px 1fr;padding-right:2rem}.how-it-works span{grid-row:1/3;width:26px;height:26px;border-radius:50%;background:var(--purple-soft);color:var(--purple);display:grid;place-items:center;font-size:.72rem;font-weight:900}.how-it-works strong{font-size:.92rem}.how-it-works small{color:var(--muted);line-height:1.5;margin-top:.25rem}.app-shell{min-height:calc(100vh - 25px);display:grid;grid-template-columns:245px 1fr;background:#f7f5f8}.app-sidebar{background:#fff;border-right:1px solid var(--line);padding:1.6rem 1rem;display:flex;flex-direction:column;position:fixed;left:0;top:25px;bottom:0;width:245px;z-index:10}.sidebar-brand{padding:0 .7rem 2rem}.app-sidebar nav{display:grid;gap:.35rem}.side-link{border:0;background:transparent;display:flex;align-items:center;gap:.8rem;color:#716877;border-radius:11px;padding:.78rem .9rem;text-align:left;font-weight:750;cursor:pointer}.side-link span{font-size:1.1rem;width:22px;text-align:center}.side-link.active{background:var(--purple-soft);color:var(--purple)}.sidebar-note{margin-top:auto;background:#fff7f0;border-radius:14px;padding:1rem;color:#75543a}.sidebar-note strong,.sidebar-note span{display:block}.sidebar-note strong{font-size:.8rem}.sidebar-note span{font-size:.7rem;line-height:1.5;margin-top:.3rem}.signout{margin-top:1rem}.app-main{grid-column:2;padding:clamp(1.2rem,3vw,3rem);min-width:0}.auth-wrap{min-height:calc(100vh - 90px);display:grid;place-items:center}.auth-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:clamp(1.5rem,5vw,2.7rem);box-shadow:var(--shadow)}.auth-logo{margin-bottom:2rem}.auth-card h1{font-family:Georgia,serif;font-size:2.3rem;margin:.25rem 0 .75rem}.auth-card>p{color:var(--muted);line-height:1.6;font-size:.9rem}.auth-card form{display:grid;gap:1rem;margin-top:1.5rem}.auth-card label,.form-grid label{display:grid;gap:.42rem;font-size:.76rem;font-weight:850;color:#554b5b}.auth-card input,.form-grid input,.form-grid select,.form-grid textarea,.select-field select{width:100%;border:1px solid #dcd3e0;background:#fbfafc;border-radius:11px;padding:.82rem .9rem;color:var(--ink);outline:0}.auth-card input:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.select-field select:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(75,23,109,.09)}.password-field{position:relative}.password-field input{padding-right:4rem}.password-toggle{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--purple);font-size:.72rem;font-weight:900;cursor:pointer}.text-button{border:0;background:transparent;color:var(--purple);font-weight:850;cursor:pointer}.form-message{min-height:1.3rem;margin:.1rem 0 0;font-size:.78rem;line-height:1.45;color:var(--danger)}.form-message.success{color:var(--success)}.auth-help{background:#f8f4fa;border-radius:12px;padding:1rem;margin-top:1.2rem;font-size:.74rem}.auth-help span,.auth-help strong{display:block}.auth-help strong{color:var(--purple);margin-top:.25rem}.portal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.6rem}.portal-header h1{font-family:Georgia,serif;font-size:2.25rem;margin:.15rem 0}.portal-header p{margin:0;color:var(--muted)}.portal-header-actions{display:flex;gap:.6rem}.icon-button{border:1px solid var(--line);background:#fff;width:42px;height:42px;border-radius:11px;font-size:1.35rem;cursor:pointer}.notice{padding:1rem 1.1rem;border-radius:13px;margin-bottom:1.2rem;background:#fff5e9;border:1px solid #ffd8ad;color:#77502e;font-size:.84rem;line-height:1.5}.notice.error{background:#fff0f0;border-color:#f1c1c1;color:#8d3333}.notice.success{background:#edf8f2;border-color:#bfe5d0;color:#286447}.summary-grid{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:.9rem;margin-bottom:1rem}.summary-card{border-radius:18px;padding:1.2rem 1.35rem;min-height:125px;display:flex;flex-direction:column;justify-content:center}.summary-card small{font-size:.7rem;font-weight:800;opacity:.72}.summary-card strong{font-family:Georgia,serif;font-size:1.55rem;margin:.45rem 0 .25rem}.summary-card span{font-size:.72rem;opacity:.78}.summary-card.purple{background:var(--purple);color:#fff}.summary-card.orange{background:#fff0e2;color:#7d3d0c}.summary-card.neutral{background:#fff;border:1px solid var(--line)}.calendar-panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:clamp(1rem,2.5vw,1.6rem)}.calendar-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem}.calendar-toolbar h2{font-family:Georgia,serif;margin:.1rem 0;font-size:1.7rem}.toolbar-actions{display:flex;align-items:flex-end;gap:.7rem}.select-field{display:grid;gap:.25rem;font-size:.68rem;font-weight:850;color:var(--muted)}.select-field select{padding:.58rem .8rem;min-width:210px}.view-switch{display:flex;background:#f2edf4;border-radius:10px;padding:.22rem}.view-switch button{border:0;background:transparent;padding:.55rem .75rem;border-radius:8px;font-size:.7rem;font-weight:850;color:var(--muted);cursor:pointer}.view-switch button.active{background:#fff;color:var(--purple);box-shadow:0 2px 8px rgba(35,15,44,.09)}.date-nav{display:flex;align-items:center;gap:.55rem;margin:1.4rem 0 1rem}.date-nav strong{margin-left:auto;font-size:.82rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:14px;overflow:hidden}.calendar-weekday{background:#faf8fb;padding:.65rem;text-align:center;font-size:.65rem;font-weight:900;color:var(--muted);text-transform:uppercase}.calendar-day{min-height:100px;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:.55rem;text-align:left;background:#fff;cursor:pointer}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{background:#fbfafc;color:#aaa}.calendar-day.selected{background:var(--purple-soft);box-shadow:inset 0 0 0 2px var(--purple)}.calendar-day.today .day-number{background:var(--purple);color:#fff}.day-number{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;font-size:.7rem;font-weight:900}.day-capacity{display:block;font-size:.62rem;color:var(--success);font-weight:850;margin-top:.65rem}.day-full{color:#a19aa5}.slot-list{display:grid;gap:.65rem;margin-top:1rem}.slot-group-title{font-size:.78rem;font-weight:900;color:var(--purple);margin-top:.5rem}.slot-card{border:1px solid var(--line);border-radius:13px;padding:.8rem 1rem;display:grid;grid-template-columns:78px 1fr auto;align-items:center;gap:1rem}.slot-time{font-weight:900;color:var(--purple)}.slot-meta strong,.slot-meta small{display:block}.slot-meta strong{font-size:.82rem}.slot-meta small{font-size:.7rem;color:var(--muted);margin-top:.18rem}.slot-card.full{opacity:.5}.loading-state,.empty-state{text-align:center;padding:3.5rem 1rem;color:var(--muted)}.loading-state span{display:inline-block;width:30px;height:30px;border:3px solid var(--purple-soft);border-top-color:var(--purple);border-radius:50%;animation:spin .8s linear infinite}.empty-state div{font-size:2.4rem;color:#bdaac6}.empty-state h3{font-family:Georgia,serif;color:var(--ink);margin:.7rem 0 .35rem}.empty-state p{font-size:.8rem}.section-heading.compact{text-align:left;margin:0 0 1.5rem}.section-heading.compact h2{font-size:2.3rem}.section-heading.compact p{color:var(--muted)}.booking-list,.package-grid{display:grid;gap:.8rem}.booking-item,.package-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.1rem 1.2rem}.booking-item{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:1rem}.booking-date{color:var(--purple);font-weight:900}.booking-date small{display:block;color:var(--muted);font-size:.68rem;margin-top:.2rem}.status-pill{font-size:.66rem;font-weight:900;border-radius:1rem;padding:.42rem .65rem;background:#fff0dd;color:#98550e}.status-pill.confirmed{background:#e8f6ef;color:#286447}.status-pill.cancelled{background:#f4f1f5;color:#746b79}.package-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.package-card h3{font-family:Georgia,serif;margin:.2rem 0 .6rem}.progress-track{height:7px;background:#eee9f0;border-radius:1rem;overflow:hidden;margin:1rem 0 .45rem}.progress-track span{display:block;height:100%;background:linear-gradient(90deg,var(--purple),var(--orange))}.package-details{display:flex;justify-content:space-between;font-size:.7rem;color:var(--muted)}.assessment-shell{min-height:calc(100vh - 25px);display:grid;grid-template-columns:.88fr 1.12fr;background:var(--purple)}.assessment-intro{color:#fff;padding:clamp(2rem,6vw,6.5rem);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.assessment-intro:after{content:"";position:absolute;width:430px;height:430px;border:1px solid rgba(255,255,255,.11);border-radius:50%;right:-180px;bottom:-170px;box-shadow:0 0 0 70px rgba(255,255,255,.03),0 0 0 140px rgba(255,255,255,.025)}.back-link{position:absolute;top:2rem;left:clamp(2rem,6vw,6.5rem);text-decoration:none;font-size:.75rem;font-weight:800;opacity:.78}.assessment-intro h1{font-size:clamp(3rem,5vw,5rem);position:relative;z-index:1}.assessment-intro h1 em{color:#ff9a43}.assessment-intro>p{line-height:1.7;color:#ded0e5;max-width:560px;position:relative;z-index:1}.assessment-benefits{display:grid;gap:.8rem;margin-top:2rem;position:relative;z-index:1}.assessment-benefits span{display:flex;align-items:center;gap:.8rem;font-size:.78rem;font-weight:800}.assessment-benefits b{color:#ffae67;font-size:.65rem;border:1px solid rgba(255,255,255,.2);border-radius:50%;width:28px;height:28px;display:grid;place-items:center}.assessment-form-wrap{background:#f7f4f8;padding:clamp(1.2rem,5vw,5rem);display:grid;place-items:center}.form-card{background:#fff;border-radius:24px;padding:clamp(1.5rem,4vw,2.8rem);width:min(680px,100%);box-shadow:var(--shadow)}.form-card h2{font-family:Georgia,serif;font-size:2.25rem;margin:.2rem 0 .6rem}.form-card>p{color:var(--muted);font-size:.85rem;line-height:1.55}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem 0}.form-grid .span-2{grid-column:1/-1}.form-grid textarea{resize:vertical}.consent{display:flex;align-items:flex-start;gap:.7rem;font-size:.75rem;line-height:1.5;color:var(--muted);margin:1rem 0}.consent input{margin-top:.18rem}.consent a{color:var(--purple);font-weight:800}.privacy-note{border-top:1px solid var(--line);padding-top:1rem;margin-top:1rem!important;font-size:.7rem!important}.booking-dialog{width:min(500px,calc(100% - 2rem));border:0;border-radius:22px;padding:2rem;box-shadow:0 35px 100px rgba(20,8,26,.35)}.booking-dialog::backdrop{background:rgba(29,14,37,.6);backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:1rem;top:1rem;border:0;background:#f4f0f5;border-radius:50%;width:34px;height:34px;font-size:1.3rem;cursor:pointer}.booking-dialog h2{font-family:Georgia,serif;font-size:2rem;margin:.2rem 0 1rem}.dialog-slot{background:var(--purple-soft);border-radius:14px;padding:1rem;line-height:1.55}.dialog-note{display:flex;gap:.75rem;background:#fff6ec;border-radius:13px;padding:1rem;margin:1rem 0}.dialog-note>span{flex:0 0 23px;width:23px;height:23px;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;font-weight:900;font-family:Georgia}.dialog-note p{margin:0;font-size:.76rem;line-height:1.55}.dialog-actions{display:flex;justify-content:flex-end;gap:.6rem}.mobile-nav{display:none}.offline-banner{position:fixed;left:50%;bottom:1rem;transform:translateX(-50%);z-index:50;background:#291833;color:#fff;padding:.7rem 1rem;border-radius:2rem;font-size:.72rem;font-weight:800;box-shadow:var(--shadow)}[hidden]{display:none!important}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:900px){.desktop-nav{display:none}.hero-grid{grid-template-columns:1fr;gap:1rem}.hero-visual{height:400px}.journey-grid{grid-template-columns:1fr}.how-it-works{grid-template-columns:1fr;gap:1.4rem}.app-shell{display:block}.app-sidebar{display:none}.app-main{padding:1rem 1rem 6rem}.summary-grid{grid-template-columns:1fr 1fr}.summary-card:first-child{grid-column:1/-1}.calendar-toolbar{align-items:stretch;flex-direction:column}.toolbar-actions{align-items:stretch;justify-content:space-between}.select-field{flex:1}.assessment-shell{grid-template-columns:1fr}.assessment-intro{min-height:560px}.mobile-nav{position:fixed;left:.7rem;right:.7rem;bottom:max(.6rem,env(safe-area-inset-bottom));z-index:25;background:rgba(255,255,255,.96);border:1px solid var(--line);box-shadow:0 10px 40px rgba(34,16,43,.16);border-radius:18px;display:grid;grid-template-columns:repeat(3,1fr);padding:.35rem;backdrop-filter:blur(18px)}.mobile-nav a{text-decoration:none;text-align:center;font-size:.61rem;font-weight:850;color:var(--muted);padding:.45rem .2rem;border-radius:12px}.mobile-nav span{display:block;font-size:1rem;margin-bottom:.18rem}.mobile-nav a.active{background:var(--purple-soft);color:var(--purple)}}
@media(max-width:620px){.site-header{height:68px;padding:0 1rem}.brand small{display:none}.header-actions .button{display:none}.page-shell{padding-top:2rem}.hero-grid{min-height:auto}.hero-copy h1{font-size:2.75rem}.hero-actions{display:grid}.trust-row{display:grid;gap:.5rem}.hero-visual{height:340px}.orb-one{width:280px;height:280px}.phone-card{width:94%;padding:1rem}.section-heading{margin-top:3.5rem}.journey-card{min-height:auto;padding:1.6rem}.portal-header h1{font-size:1.8rem}.summary-grid{grid-template-columns:1fr}.summary-card:first-child{grid-column:auto}.toolbar-actions{flex-direction:column}.view-switch{display:grid;grid-template-columns:repeat(3,1fr)}.date-nav strong{font-size:.68rem}.calendar-grid{border-radius:10px}.calendar-weekday{padding:.45rem .2rem}.calendar-day{min-height:66px;padding:.32rem}.day-capacity{font-size:.5rem;margin-top:.35rem}.slot-card{grid-template-columns:58px 1fr;gap:.55rem}.slot-card .button{grid-column:1/-1}.booking-item{grid-template-columns:1fr auto}.booking-item>div:nth-child(2){grid-row:2;grid-column:1/-1}.assessment-intro{min-height:520px;padding:4.7rem 1.4rem 2.5rem}.back-link{left:1.4rem;top:1.5rem}.assessment-intro h1{font-size:2.8rem}.assessment-form-wrap{padding:1rem 1rem 6rem}.form-card{padding:1.4rem}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.dialog-actions{display:grid}.dialog-actions .button{width:100%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Customer account, training plan, results and journey (Phase B1). */
.auth-form-heading{display:grid;gap:.35rem;padding:.9rem 1rem;background:var(--purple-soft);border-radius:12px}.auth-form-heading strong{color:var(--purple)}.auth-form-heading span{font-size:.72rem;line-height:1.5;color:var(--muted)}
.training-list,.results-list{display:grid;gap:.8rem}.training-card,.result-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.1rem 1.2rem}.training-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.training-card-head h3,.result-card h3{font-family:Georgia,serif;font-size:1.35rem;margin:.1rem 0 .45rem}.training-card-head p,.result-card p,.timeline-item p{color:var(--muted);font-size:.78rem;line-height:1.6;margin:.35rem 0}.exercise-list{display:grid;gap:.55rem;margin-top:1rem}.exercise-item{display:grid;grid-template-columns:32px 1fr auto;gap:.75rem;align-items:flex-start;border-top:1px solid var(--line);padding-top:.75rem}.exercise-item.completed strong{text-decoration:line-through;color:var(--muted)}.exercise-check{width:28px;height:28px;border-radius:50%;background:var(--purple-soft);color:var(--purple);display:grid;place-items:center;font-size:.72rem;font-weight:900}.exercise-item.completed .exercise-check{background:#e8f6ef;color:var(--success)}.exercise-item small{display:block;color:var(--muted);font-size:.68rem;margin-top:.2rem}.exercise-item p{font-size:.72rem;color:var(--muted);margin:.35rem 0 0}.text-link{font-size:.7rem;font-weight:850;color:var(--purple);text-decoration:none}.muted-copy{color:var(--muted);font-size:.78rem}.results-list{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.result-recommendation{display:block;color:var(--purple);font-weight:750;line-height:1.5;margin-top:.8rem}.metric-list{display:grid;margin-top:.8rem;border-top:1px solid var(--line)}.metric-row{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.72rem}.metric-row span{color:var(--muted)}
.timeline{display:grid;position:relative;gap:.15rem}.timeline:before{content:"";position:absolute;left:18px;top:18px;bottom:18px;width:2px;background:var(--line)}.timeline-item{display:grid;grid-template-columns:38px 1fr;gap:.85rem;position:relative;padding:.8rem 0}.timeline-dot{width:36px;height:36px;border-radius:50%;background:var(--purple);color:#fff;display:grid;place-items:center;font-size:.72rem;font-weight:900;z-index:1}.timeline-item.test .timeline-dot{background:var(--orange)}.timeline-item.session .timeline-dot{background:var(--success)}.timeline-item small{color:var(--muted);font-size:.68rem}.timeline-item h3{font-family:Georgia,serif;margin:.18rem 0 0;font-size:1.08rem}
@media(max-width:620px){.training-card-head{display:grid}.exercise-item{grid-template-columns:32px 1fr}.exercise-item .text-link{grid-column:2}.results-list{grid-template-columns:1fr}}

/* Weekly/day availability timeline: never renders another customer's identity. */
.availability-time-grid-shell{overflow:auto;max-height:min(70vh,920px);border:1px solid var(--line);border-radius:14px;background:#fff}
.availability-time-grid{display:grid;grid-template-columns:58px 1fr;grid-template-rows:62px var(--availability-height);background:#fff}
.availability-grid-corner,.availability-grid-headings{position:sticky;top:0;z-index:7;background:#faf8fb;border-bottom:1px solid var(--line)}
.availability-grid-corner{left:0;z-index:9;display:grid;place-items:center;color:var(--muted);font-size:.62rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.availability-grid-headings,.availability-grid-columns{display:grid;grid-template-columns:repeat(var(--availability-columns),minmax(126px,1fr))}
.availability-day-heading{display:grid;align-content:center;gap:.2rem;min-width:0;padding:.55rem;border:0;border-left:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}
.availability-day-heading b{font-size:.72rem}.availability-day-heading span{color:var(--success);font-size:.6rem;font-weight:800}
.availability-grid-axis{position:sticky;left:0;z-index:6;background:#faf8fb;border-right:1px solid var(--line)}
.availability-hour{position:absolute;right:.45rem;transform:translateY(-50%);color:#777180;font-size:.6rem;font-variant-numeric:tabular-nums}
.availability-grid-column{position:relative;min-width:0;border-left:1px solid var(--line);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 63px,#ece7ef 63px,#ece7ef 64px)}
.availability-grid-column:nth-child(even){background-color:#fdfcfe}
.availability-slot{position:absolute;left:4px;right:4px;display:grid;align-content:center;gap:.1rem;min-height:34px;padding:.3rem .42rem;overflow:hidden;border:1px solid;border-radius:9px;text-align:left;cursor:pointer;box-shadow:0 4px 12px rgba(75,33,106,.1)}
.availability-slot strong{font-size:.7rem;line-height:1}.availability-slot span{font-size:.58rem;font-weight:800}
.availability-slot.available{border-color:rgba(44,131,92,.28);background:#e9f8f0;color:#225f43}
.availability-slot.available:hover,.availability-slot.available:focus-visible{z-index:4;outline:3px solid rgba(44,131,92,.2);background:#dff4e9}
.availability-slot.full{border-color:#e6dfe9;background:#f3eff4;color:#8e8792;box-shadow:none;cursor:not-allowed}
@media(max-width:620px){.availability-time-grid-shell{max-height:66vh;border-radius:10px}.availability-time-grid{grid-template-columns:50px 1fr}.availability-grid-headings,.availability-grid-columns{grid-template-columns:repeat(var(--availability-columns),minmax(112px,1fr))}.availability-hour{right:.32rem;font-size:.55rem}.availability-day-heading{padding:.4rem .25rem}}

/* Private customer feedback: customer-owned mobile flow, never staff-operated. */
.portal-feedback-shortcut{margin:0 0 1rem}.booking-actions{display:grid;justify-items:end;gap:.45rem}.booking-actions .button{min-height:34px;padding:.45rem .65rem;font-size:.68rem}.feedback-privacy-banner{display:grid;grid-template-columns:42px 1fr;gap:.9rem;align-items:start;background:#edf8f2;border:1px solid #bfe5d0;border-radius:16px;padding:1rem 1.1rem;margin-bottom:1rem}.feedback-privacy-banner>span{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#d7f0e2}.feedback-privacy-banner strong{color:#225f43}.feedback-privacy-banner p{margin:.35rem 0 0;color:#49715d;font-size:.76rem;line-height:1.55}.feedback-layout{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.feedback-panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.2rem}.feedback-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.feedback-panel-head h3{font-family:Georgia,serif;font-size:1.45rem;margin:.15rem 0}.feedback-panel-head small{color:var(--muted);font-size:.68rem}.feedback-session-list{display:grid;gap:.7rem}.feedback-session-card{display:grid;grid-template-columns:1fr auto;gap:.8rem;align-items:center;border:1px solid var(--line);border-radius:13px;padding:.85rem}.feedback-session-card.submitted{background:#faf8fb}.feedback-session-card strong,.feedback-session-card small{display:block}.feedback-session-card small{color:var(--muted);font-size:.68rem;line-height:1.5;margin-top:.22rem}.suggestion-form,.private-feedback-form{display:grid;gap:.9rem}.suggestion-form label,.private-feedback-form label{display:grid;gap:.4rem;color:#554b5b;font-size:.74rem;font-weight:850}.suggestion-form select,.suggestion-form textarea,.private-feedback-form select,.private-feedback-form textarea{width:100%;border:1px solid #dcd3e0;background:#fbfafc;border-radius:11px;padding:.8rem;color:var(--ink);outline:0}.suggestion-form textarea,.private-feedback-form textarea{resize:vertical}.suggestion-history{border-top:1px solid var(--line);margin-top:1rem;padding-top:1rem}.suggestion-history h4{margin:.1rem 0 .65rem}.suggestion-history-row{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.7rem}.suggestion-history-row span{color:var(--muted)}.feedback-dialog{width:min(650px,calc(100% - 2rem));max-height:90vh;overflow:auto}.feedback-dialog .dialog-note.privacy{background:#edf8f2}.feedback-dialog .dialog-note.privacy>span{background:#1f7a52;font-size:.7rem}.private-feedback-form .consent{display:flex}.private-feedback-form .form-message{margin-bottom:.5rem}
@media(max-width:900px){.feedback-layout{grid-template-columns:1fr}.portal-feedback-shortcut{width:100%}}
@media(max-width:620px){.feedback-session-card{grid-template-columns:1fr}.feedback-session-card .button{width:100%}.feedback-panel{padding:1rem}.feedback-dialog{padding:1.35rem}.feedback-dialog h2{font-size:1.65rem}}
