/* ── PROFILE PAGE (R3-profile — v2 system, ported from the approved
   profile-v3 mockup). Core surface (app column, silhouette hero, identity
   card, about/teaches) is restyled here where the old profile rules lived;
   the new booking components (lesson cards, day rail, slot grid, docked bar,
   scorecard sheet) live in the R3-PROFILE block at the END of this file.
   The .review/.rev-* rules below are legacy but left untouched — .hub-row's
   "Review" chip currently inherits from them. ── */
.pf-app{max-width:480px;margin:0 auto;background:var(--paper);min-height:100%;padding-bottom:10px;}
.pf-hero{position:relative;height:170px;overflow:hidden;background:var(--ink);}
.pf-hero-fallback{position:absolute;inset:0;background:linear-gradient(180deg,#1b4332 0%,#2d6a4f 60%,#40916c 100%);}
.pf-hero-fallback svg{position:absolute;bottom:0;left:0;width:100%;height:70%;opacity:.9;}
.pf-identity{margin:-46px 18px 0;position:relative;z-index:2;background:var(--paper);
  border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:16px 18px 18px;}
.pf-identity:empty{display:none;}
.pf-id-head{display:flex;gap:14px;align-items:flex-end;}
.pf-avatar{width:76px;height:76px;border-radius:14px;flex:0 0 auto;overflow:hidden;position:relative;
  background:linear-gradient(150deg,#2d6a4f,#14211b);color:#fff;display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-size:1.7rem;font-weight:600;border:3px solid var(--paper);box-shadow:var(--shadow);margin-top:-40px;}
.pf-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.pf-id-name{flex:1;min-width:0;}
.pf-id-name h1{font-family:var(--serif);font-size:1.45rem;font-weight:600;line-height:1.1;letter-spacing:-.01em;color:var(--ink);}
.pf-role{font-size:.82rem;font-weight:700;color:var(--slate);margin-top:3px;}
.pf-loc{display:inline-flex;align-items:center;gap:5px;font-size:.82rem;font-weight:700;color:var(--fairway);margin-top:6px;}
.pf-loc svg{width:14px;height:14px;flex:0 0 auto;}
.pf-share{align-self:flex-start;flex:0 0 auto;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:30px;background:var(--paper);color:var(--fairway);cursor:pointer;transition:border-color .15s;}
.pf-share:hover{border-color:var(--slate);}
.pf-share svg{width:15px;height:15px;}
.pf-trust{display:flex;align-items:center;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line);flex-wrap:wrap;}
.pf-titem{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:800;color:var(--ink);}
.pf-titem svg{width:15px;height:15px;color:var(--fairway);flex:0 0 auto;}
.pf-titem.v{color:var(--fairway);}
.pf-titem.warn{color:var(--amber);background:var(--amber-bg);border-radius:30px;padding:3px 10px;}
.pf-titem.warn svg{color:var(--amber);}
.pf-dot{width:3px;height:3px;border-radius:50%;background:var(--line);}
.pf-block{padding:22px 20px;border-top:1px solid var(--line);}
.pf-block[hidden]{display:none;}
.pf-identity + .pf-block{border-top:none;padding-top:24px;}
.pf-eyebrow{font-size:.7rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--slate);margin-bottom:10px;}
.pf-eyebrow-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px;}
.pf-eyebrow-row .pf-eyebrow{margin-bottom:0;}
.pf-count{font-size:.72rem;font-weight:700;color:var(--slate);white-space:nowrap;}
.pf-count .mono{font-size:.74rem;color:var(--ink);}
.pf-bio{font-size:.92rem;line-height:1.7;color:var(--ink);}
.pf-chips{display:flex;flex-wrap:wrap;gap:8px;}
.pf-chip{font-size:.8rem;font-weight:700;border:1px solid var(--line);border-radius:30px;padding:7px 14px;color:var(--ink);background:var(--paper);}
/* legacy .review base — nothing on the profile emits it any more, but the
   coach hub's "Review" chip (.hub-row.pend .review) still inherits from it,
   so the base pair stays exactly as it was. The dead .rev-* card rules
   (including the --gold star colour) are gone with the old reviews UI. */
.review{padding:13px 0;border-bottom:2px solid var(--mint);}
.review:last-child{border-bottom:none;}

/* ── MESSAGES (v2, R3-messages) — class names unchanged (the <700px legacy
   rules still collapse the sidebar); dead demo classes (.booking-ctx/.ctx-*/
   .attach-btn/.online-dot/.unread/.chat-shell) deleted with the demo UI. ── */
.thread-sidebar{width:300px;flex-shrink:0;background:var(--paper);border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden;}
.sidebar-head{padding:16px 16px 12px;border-bottom:1px solid var(--line);}
.sidebar-head h2{font-family:var(--serif);font-size:1.1rem;font-weight:700;color:var(--ink);margin-bottom:10px;}
.search-msg{display:flex;align-items:center;gap:7px;background:var(--fog);border:1px solid var(--line);border-radius:30px;padding:7px 12px;color:var(--slate);}
.search-msg svg{width:13px;height:13px;flex-shrink:0;}
.search-msg input{border:none;outline:none;background:transparent;font-family:var(--sans);font-size:.82rem;font-weight:600;color:var(--ink);flex:1;min-width:0;}
.search-msg input::placeholder{color:var(--slate);}
.thread-list{flex:1;overflow-y:auto;}
.msg-quiet{padding:22px 16px;text-align:center;color:var(--slate);font-size:.8rem;font-weight:600;line-height:1.6;}
.thread{display:flex;align-items:center;gap:11px;padding:13px 16px;cursor:pointer;border-bottom:1px solid var(--line);transition:background .15s;position:relative;}
.thread:hover{background:var(--fog);}
.thread.active{background:var(--mint);}
.th-avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(150deg,#2d6a4f,#14211b);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:600;font-size:.84rem;color:#fff;flex-shrink:0;}
.th-info{flex:1;min-width:0;}
.th-name{font-weight:800;font-size:.84rem;color:var(--ink);margin-bottom:2px;}
.th-preview{font-size:.72rem;color:var(--slate);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.th-meta{text-align:right;flex-shrink:0;}
.th-time{font-size:.64rem;color:var(--slate);margin-bottom:3px;}
.chat-area{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--fog);}
.chat-none{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--slate);}
.chat-none p{font-weight:700;font-size:.9rem;}
.chat-header{padding:13px 20px;background:var(--paper);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;flex-shrink:0;}
.ch-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(150deg,#2d6a4f,#14211b);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:600;color:#fff;font-size:.84rem;flex-shrink:0;}
.ch-name{font-weight:800;font-size:.9rem;color:var(--ink);}
.ch-status{font-size:.7rem;color:var(--slate);font-weight:700;}
.messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;}
.sys-msg{text-align:center;font-size:.7rem;color:var(--slate);font-weight:800;letter-spacing:.05em;text-transform:uppercase;}
.sys-pill{background:var(--mint);color:var(--fairway);padding:4px 12px;border-radius:30px;display:inline-block;}
.msg-row{display:flex;align-items:flex-end;gap:8px;}
.msg-row.me{flex-direction:row-reverse;}
.msg-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(150deg,#2d6a4f,#14211b);color:#fff;font-family:var(--serif);font-size:.62rem;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.bubble{max-width:66%;padding:9px 13px;border-radius:16px;font-size:.86rem;font-weight:600;line-height:1.55;}
.bubble.them{background:var(--paper);border:1px solid var(--line);border-bottom-left-radius:4px;color:var(--ink);}
.bubble.me{background:var(--fairway);color:#fff;border-bottom-right-radius:4px;}
.msg-time{font-size:.62rem;color:var(--slate);padding:0 3px;}
.msg-time.me{text-align:right;}
.quick-replies{padding:6px 16px 0;display:flex;gap:7px;flex-wrap:wrap;flex-shrink:0;}
.qr{padding:7px 13px;border:1px solid var(--line);border-radius:30px;font-size:.74rem;font-weight:800;cursor:pointer;background:var(--paper);color:var(--ink);transition:border-color .15s,background .15s;white-space:nowrap;}
.qr:hover{border-color:var(--fairway-2);background:var(--mint);}
.input-row{padding:12px 16px;background:var(--paper);border-top:1px solid var(--line);display:flex;align-items:center;gap:9px;flex-shrink:0;}
.msg-input{flex:1;min-width:0;border:1px solid var(--line);border-radius:30px;padding:10px 16px;font-family:var(--sans);font-size:.86rem;font-weight:600;color:var(--ink);outline:none;transition:border-color .15s;background:var(--fog);}
.msg-input::placeholder{color:var(--slate);}
.msg-input:focus{border-color:var(--fairway);background:var(--paper);}
.send-btn{width:40px;height:40px;border-radius:50%;background:var(--fairway);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .18s;}
.send-btn svg{width:16px;height:16px;}
.send-btn:hover{background:var(--fairway-2);}
.locked-msg{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--slate);padding:40px;}
.lock-chip{width:48px;height:48px;border-radius:var(--r-sm);background:var(--mint);color:var(--fairway);display:inline-flex;align-items:center;justify-content:center;}
.lock-chip svg{width:22px;height:22px;}
.locked-msg p{font-weight:700;font-size:.95rem;text-align:center;}
.locked-msg button{background:var(--fairway);color:#fff;border:none;padding:11px 26px;border-radius:30px;font-family:var(--sans);font-size:.88rem;font-weight:800;cursor:pointer;transition:background .18s;}
.locked-msg button:hover{background:var(--fairway-2);}

/* ── CALENDAR (v2, rebrand R3-calendar) — class names unchanged; the JS
   renderers emit them. New additions are cal-* prefixed. ── */
.cal-page-wrap{max-width:1180px;margin:0 auto;padding:22px 18px;}
.cal-page-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px;gap:16px;flex-wrap:wrap;}
.cal-page-head h1{font-family:var(--serif);font-size:1.5rem;font-weight:700;color:var(--ink);letter-spacing:-.01em;}
.cal-page-head p{color:var(--slate);font-size:.86rem;font-weight:600;margin-top:4px;}
.head-btns{display:flex;gap:9px;flex-shrink:0;}
.btn-save{background:var(--fairway);color:#fff;border:none;padding:10px 22px;border-radius:30px;font-family:var(--sans);font-size:.84rem;font-weight:800;cursor:pointer;transition:background .18s;}
.btn-save:hover{background:var(--fairway-2);}
.btn-outline2{background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:10px 18px;border-radius:30px;font-family:var(--sans);font-size:.84rem;font-weight:800;cursor:pointer;transition:border-color .15s;}
.btn-outline2:hover{border-color:var(--slate);}
.cal-layout{display:grid;grid-template-columns:1fr;gap:16px;align-items:start;}

/* ── controls sidebar ── */
.side-col-cal{display:flex;flex-direction:column;gap:14px;}
.side-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:16px;box-shadow:var(--shadow);}
.side-card h3{font-family:var(--sans);font-size:.9rem;font-weight:800;color:var(--ink);margin-bottom:12px;display:flex;align-items:center;gap:9px;}
.cal-chip{width:30px;height:30px;border-radius:var(--r-sm);background:var(--mint);color:var(--fairway);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;}
.cal-chip svg{width:15px;height:15px;}
.side-hint{font-size:.74rem;color:var(--slate);font-weight:600;margin-bottom:12px;line-height:1.55;}
.day-chips{display:flex;flex-wrap:wrap;gap:7px;}
.day-chip{font-family:var(--sans);font-size:.78rem;font-weight:800;padding:9px 0;width:calc(25% - 6px);text-align:center;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:var(--r-sm);cursor:pointer;transition:border-color .15s,background .15s,color .15s;}
.day-chip:hover{border-color:var(--fairway-2);}
.day-chip.on{background:var(--fairway);border-color:var(--fairway);color:#fff;}
.wh-row{display:flex;align-items:center;gap:10px;margin-top:8px;}
.wh-row:first-of-type{margin-top:0;}
.wh-row label{font-weight:800;color:var(--slate);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;width:44px;}
.wh-row select{flex:1;border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 10px;font-family:var(--sans);font-size:.84rem;font-weight:700;color:var(--ink);background:var(--paper);outline:none;transition:border-color .15s;}
.wh-row select:focus{border-color:var(--fairway);}
.btn-block-off{width:100%;padding:10px;font-size:.82rem;}
.cal-legend{display:flex;flex-direction:column;gap:9px;}
.leg{display:flex;align-items:center;gap:9px;font-size:.78rem;font-weight:700;color:var(--ink);}
.leg-box{width:20px;height:20px;border-radius:5px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.leg-box svg{width:12px;height:12px;}
.leg-avail{background:var(--paper);color:var(--fairway);border:1px solid var(--line);}
.leg-unavail{background:var(--fog);border:1px solid var(--line);}
.leg-booked{background:var(--fairway);}
.leg-offday{background:repeating-linear-gradient(45deg,var(--fog),var(--fog) 5px,#eceeed 5px,#eceeed 10px);border:1px solid var(--line);}
.cal-block-dot{width:9px;height:9px;border-radius:50%;background:var(--amber);flex-shrink:0;}

/* ── week grid card ── */
.cal-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;}
.cal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line);gap:14px;flex-wrap:wrap;}
.cal-week-meta{display:flex;flex-direction:column;gap:2px;}
.cal-week-summary{font-weight:800;font-size:.88rem;color:var(--ink);}
.cal-week-sub{font-size:.72rem;font-weight:700;color:var(--slate);}
.cal-nav{display:flex;align-items:center;gap:10px;}
.cal-btn{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--paper);cursor:pointer;font-size:.95rem;display:flex;align-items:center;justify-content:center;color:var(--ink);transition:border-color .15s;}
.cal-btn:hover{border-color:var(--fairway);}
.cal-month{font-family:var(--mono);font-feature-settings:"tnum";font-size:.88rem;font-weight:500;min-width:158px;text-align:center;color:var(--ink);}
.week-grid{padding:0 16px 16px;overflow-x:auto;}
.week-grid .day-labels,.week-grid .time-grid{min-width:620px;}
.day-labels{display:grid;grid-template-columns:54px repeat(7,1fr);padding:12px 0 8px;}
.day-col-head{text-align:center;padding:4px 2px;border-radius:8px;transition:opacity .15s;}
.day-col-head.offday{opacity:.4;}
.day-lbl-cell{text-align:center;font-size:.64rem;font-weight:800;color:var(--slate);text-transform:uppercase;letter-spacing:.04em;}
.day-col-head.today .day-lbl-cell,.day-col-head.today .day-num{color:var(--fairway);}
.day-num{font-family:var(--mono);font-size:.74rem;font-weight:500;text-align:center;margin-top:2px;color:var(--ink);}
.time-grid{display:grid;grid-template-columns:54px repeat(7,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;}
.cal-bucket-head{grid-column:1 / -1;font-size:.64rem;font-weight:800;color:var(--slate);text-transform:uppercase;letter-spacing:.08em;padding:8px 14px;background:var(--fog);display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);}
.cbh-range{font-family:var(--mono);font-size:.62rem;font-weight:500;color:var(--slate);text-transform:none;letter-spacing:0;}
.time-lbl{font-family:var(--mono);font-size:.64rem;color:var(--slate);font-weight:500;text-align:right;padding-right:8px;height:44px;display:flex;align-items:center;justify-content:flex-end;border-bottom:1px solid var(--line);border-right:1px solid var(--line);background:var(--paper);}
.slot-cell{height:44px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);cursor:pointer;transition:background .12s;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--paper);}
.slot-cell.unavail{background:var(--fog);}
.slot-cell.unavail:hover{background:var(--mint);}
.slot-cell.avail{background:var(--paper);}
.slot-cell.avail:hover{background:var(--mint);}
.slot-check{color:var(--fairway);line-height:1;}
.slot-check svg{width:14px;height:14px;}
.slot-cell.booked{background:var(--fairway);}
.slot-cell.booked:hover{background:var(--fairway-2);}
.slot-tag{color:#fff;font-size:.58rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;line-height:1.15;}
.slot-sub{color:rgba(255,255,255,.85);font-size:.58rem;font-weight:700;line-height:1.15;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 3px;}
.slot-cell.offday{background:repeating-linear-gradient(45deg,var(--fog),var(--fog) 6px,#eceeed 6px,#eceeed 12px);cursor:default;}
.stats-row-cal{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.mini-stat{background:var(--mint);border-radius:var(--r-sm);padding:10px;text-align:center;}
.ms-val{font-family:var(--mono);font-feature-settings:"tnum";font-size:1.2rem;font-weight:500;color:var(--fairway);}
.ms-lbl{font-size:.62rem;color:var(--slate);font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-top:1px;}
.mini-booking{display:flex;gap:10px;padding:9px 0;border-bottom:1px dashed var(--line);}
.mini-booking:last-child{border-bottom:none;}
.mb-dot{width:8px;height:8px;border-radius:50%;background:var(--fairway);flex-shrink:0;margin-top:4px;}
.mb-name{font-weight:800;font-size:.8rem;color:var(--ink);}
.mb-detail{font-size:.7rem;color:var(--slate);font-weight:600;}
.mb-time{font-family:var(--mono);font-size:.7rem;font-weight:500;color:var(--fairway);text-align:right;flex-shrink:0;}
@media(min-width:768px){
  .cal-page-wrap{padding:28px 28px;}
  .cal-layout{grid-template-columns:250px 1fr;gap:22px;}
  .day-chip{width:calc(33.333% - 5px);}
}
@media(min-width:980px){
  .cal-page-wrap{padding:28px 36px;}
}

/* ── CHECKOUT — the booking-request flow (R3) ── */
.checkout-page-wrap{max-width:620px;margin:0 auto;padding:22px 18px 56px;}
.checkout-steps{display:flex;justify-content:center;gap:0;margin-bottom:24px;}
.cs-step{display:flex;align-items:center;flex:1;max-width:170px;}
.cs-dot{width:29px;height:29px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-feature-settings:"tnum";font-size:.8rem;font-weight:500;transition:background .2s,border-color .2s,color .2s;flex-shrink:0;border:1.5px solid var(--line);color:var(--slate);background:var(--paper);}
.cs-dot.done{background:var(--mint);border-color:var(--fairway);color:var(--fairway);}
.cs-dot.active{background:var(--fairway);border-color:var(--fairway);color:#fff;}
.cs-lbl{font-size:.62rem;font-weight:800;color:var(--slate);margin-left:8px;white-space:nowrap;text-transform:uppercase;letter-spacing:.07em;}
.cs-lbl.active{color:var(--ink);}
.cs-line{flex:1;height:0;border-top:2px dotted var(--line);margin:0 8px;transition:border-color .3s;}
.cs-line.done{border-top-color:var(--fairway);}
.checkout-layout{display:block;}
.form-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--shadow);margin-bottom:14px;}
.form-card h3{font-family:var(--serif);font-size:1.3rem;font-weight:700;letter-spacing:-.01em;line-height:1.2;margin-bottom:4px;}
.frow{margin-bottom:14px;}
.frow label{display:block;font-size:.7rem;font-weight:800;color:var(--slate);text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px;}
.frow input,.frow select,.frow textarea{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:var(--r-sm);font-family:var(--sans);font-size:.9rem;font-weight:700;color:var(--ink);background:var(--paper);outline:none;transition:border-color .2s;}
.frow input::placeholder,.frow textarea::placeholder{color:var(--slate);font-weight:600;}
.frow input:focus,.frow select:focus,.frow textarea:focus{border-color:var(--fairway);}
.frow-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.session-opts{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:6px;}
.sess-opt{display:flex;gap:12px;align-items:flex-start;text-align:left;border:1.5px solid var(--line);border-radius:var(--r);padding:13px 14px;background:var(--paper);cursor:pointer;transition:border-color .15s,background .15s;}
.sess-opt:hover{border-color:var(--fairway-2);}
.sess-opt.sel{border-color:var(--fairway);background:var(--mint);}
.mini-cal-wrap{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:8px;}
.mc-lbl{text-align:center;font-size:.6rem;font-weight:800;color:var(--slate);text-transform:uppercase;letter-spacing:.05em;padding:3px 0;}
.mc-day{text-align:center;padding:9px 3px;border-radius:var(--r-sm);font-family:var(--mono);font-feature-settings:"tnum";font-size:.82rem;font-weight:500;color:var(--ink);cursor:pointer;border:1px solid transparent;transition:border-color .12s,background .12s,color .12s;}
.mc-day:hover{border-color:var(--fairway);color:var(--fairway);}
.mc-day.sel{background:var(--fairway);border-color:var(--fairway);color:#fff;}
.mc-day.today-cal{font-weight:700;color:var(--fairway);}
.mc-day.sel.today-cal{color:#fff;}
.mc-day.empty,.mc-day.past{color:var(--line);cursor:default;border-color:transparent;background:none;}
.mc-day.empty:hover,.mc-day.past:hover{border-color:transparent;color:var(--line);}
.time-slots-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.ts{padding:9px 13px;border:1px solid var(--line);border-radius:var(--r-sm);font-family:var(--mono);font-feature-settings:"tnum";font-size:.8rem;font-weight:500;cursor:pointer;transition:border-color .12s,background .12s,color .12s;color:var(--ink);background:var(--paper);}
.ts:hover,.ts.sel{background:var(--fairway);color:#fff;border-color:var(--fairway);}
.ts.taken{background:var(--fog);color:var(--slate);cursor:not-allowed;text-decoration:line-through;border-color:var(--line);opacity:.6;}
.ts.taken:hover{background:var(--fog);color:var(--slate);border-color:var(--line);}
.ts-bucket{flex-basis:100%;width:100%;}
.ts-bucket + .ts-bucket{margin-top:12px;}
.ts-bucket-head{font-size:.66rem;font-weight:800;color:var(--slate);text-transform:uppercase;letter-spacing:.08em;margin-bottom:7px;}
.ts-bucket-row{display:flex;flex-wrap:wrap;gap:8px;}
.ts-bucket-row.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.confirm-btn{width:100%;background:var(--fairway);color:#fff;border:none;padding:14px;border-radius:30px;font-family:var(--sans);font-size:.95rem;font-weight:800;cursor:pointer;transition:background .2s,transform .08s;display:flex;align-items:center;justify-content:center;gap:7px;}
.confirm-btn:hover{background:var(--fairway-2);}
.confirm-btn:active{transform:translateY(1px);}
.confirm-btn:disabled{background:var(--line);color:var(--slate);cursor:not-allowed;transform:none;}
.back-link-pay{text-align:center;margin-top:10px;font-size:.78rem;color:var(--slate);cursor:pointer;font-weight:700;}
.back-link-pay:hover{color:var(--fairway);}
/* legacy — the request flow no longer renders these; grep before removing
   (.li/.summary-card/.trust-list may be shared by other page regions) */
.summary-card{background:var(--white);border:2px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);position:sticky;top:16px;}
.summary-card h3{font-family:'Lora',serif;font-size:1.05rem;margin-bottom:14px;}
.li{display:flex;justify-content:space-between;font-size:.82rem;padding:6px 0;border-bottom:1px solid var(--mint);}
.li:last-child{border-bottom:none;}
.li-lbl{color:var(--muted);}
.li.total{font-weight:900;font-size:.95rem;padding-top:10px;border-top:2px solid var(--border);border-bottom:none;}
.trust-list{list-style:none;display:flex;flex-direction:column;gap:5px;margin-top:12px;}
.trust-list li{font-size:.72rem;color:var(--muted);display:flex;align-items:center;gap:6px;font-weight:700;}
/* coach context strip (top of the request page) */
.coach-summary{display:flex;align-items:center;gap:12px;padding:13px 16px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:16px;}
.coach-summary:empty{display:none;}
.cs-av{width:44px;height:44px;border-radius:12px;background:var(--fairway);color:#fff;font-family:var(--serif);font-weight:600;font-size:1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;overflow:hidden;}
.cs-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.cs-info{flex:1;min-width:0;}
.cs-name{font-family:var(--serif);font-weight:700;font-size:1rem;letter-spacing:-.01em;}
.cs-role{font-size:.74rem;font-weight:600;color:var(--slate);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cs-step-screen{display:none;}
.cs-step-screen.active{display:block;}
.success-screen-pay{display:none;text-align:center;padding:34px 0 8px;}
.success-screen-pay.show{display:block;}
.success-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:22px;}
.sa-btn{padding:12px 22px;border-radius:30px;font-family:var(--sans);font-size:.85rem;font-weight:800;cursor:pointer;transition:background .2s,border-color .2s,color .2s;}
.sa-primary{background:var(--fairway);color:#fff;border:none;}
.sa-primary:hover{background:var(--fairway-2);}
.sa-secondary{background:var(--paper);color:var(--ink);border:1px solid var(--line);}
.sa-secondary:hover{border-color:var(--fairway);color:var(--fairway);}

/* ── SIGNUP ── */
.signup-page-wrap{max-width:500px;margin:0 auto;padding:32px 20px;}
.prog-steps{display:flex;align-items:center;gap:0;}
.prog-dot{width:30px;height:30px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800;color:var(--muted);background:var(--white);flex-shrink:0;transition:all .3s;z-index:1;}
.prog-dot.done{background:var(--green);border-color:var(--green);color:#fff;}
.prog-dot.active{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 0 0 4px rgba(45,106,79,.18);}
.prog-line{flex:1;height:2px;background:var(--border);transition:background .3s;}
.prog-line.done{background:var(--green);}
.prog-labels{display:flex;justify-content:space-between;font-size:.66rem;color:var(--muted);font-weight:700;margin-bottom:22px;}
.signup-card{background:var(--white);border:2px solid var(--border);border-radius:18px;padding:30px;box-shadow:0 4px 24px rgba(45,106,79,.08);}
.step-emoji{font-size:2.2rem;margin-bottom:12px;display:block;}
.step-title{font-family:'Lora',serif;font-size:1.55rem;margin-bottom:6px;}
.step-sub{color:var(--muted);font-size:.88rem;line-height:1.65;margin-bottom:22px;}
.type-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:22px;}
.type-btn{border:2px solid var(--border);border-radius:var(--radius);padding:18px 14px;cursor:pointer;text-align:center;transition:all .2s;background:var(--white);}
.type-btn:hover,.type-btn.sel{border-color:var(--green);background:var(--mint);}
.type-icon{font-size:1.8rem;margin-bottom:6px;}
.type-label{font-weight:800;font-size:.88rem;}
.type-desc{font-size:.7rem;color:var(--muted);margin-top:3px;}
.goals{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px;}
.goal{padding:8px 15px;border-radius:30px;border:2px solid var(--border);background:var(--white);font-size:.79rem;cursor:pointer;transition:all .2s;font-weight:700;color:var(--muted);}
.goal:hover,.goal.sel{background:var(--green);color:#fff;border-color:var(--green);}
.county-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:20px;max-height:200px;overflow-y:auto;}
.county-opt{padding:7px 8px;border:2px solid var(--border);border-radius:8px;font-size:.72rem;font-weight:800;cursor:pointer;text-align:center;transition:all .2s;color:var(--muted);}
.county-opt:hover,.county-opt.sel{background:var(--green);color:#fff;border-color:var(--green);}
.btn-next{width:100%;background:var(--green);color:#fff;border:none;padding:13px;border-radius:30px;font-family:'Nunito',sans-serif;font-size:.92rem;font-weight:800;cursor:pointer;transition:background .2s;margin-top:4px;}
.btn-next:hover{background:var(--green2);}
.btn-back2{display:block;text-align:center;margin-top:10px;font-size:.8rem;color:var(--muted);cursor:pointer;font-weight:700;}
.btn-back2:hover{color:var(--green);}
.success-signup{text-align:center;padding:8px 0;}
.or-row{display:flex;align-items:center;gap:10px;margin:14px 0;}
.or-line{flex:1;height:1px;background:var(--border);}
.or-txt{font-size:.72rem;color:var(--muted);font-weight:700;}
.social-btn{width:100%;border:2px solid var(--border);background:var(--white);border-radius:30px;padding:10px;font-family:'Nunito',sans-serif;font-size:.83rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;margin-bottom:8px;transition:border-color .2s;}
.social-btn:hover{border-color:var(--green);}

/* ── ACCOUNT PAGE ── */
.account-wrap{max-width:900px;margin:0 auto;padding:28px 36px;}
/* R3-ACCOUNT-GOLFER: .account-hero / .acct-avatar / .acct-name removed —
   their only consumer was the old golfer dark-gradient hero, replaced by
   the .gacct-id paper card (see the R3-ACCOUNT-GOLFER block at the end of
   this file). .acct-email is golfer-only (spec 01 asserts on it) and is
   restyled in place for the paper card. */
.acct-email{color:var(--slate);font-size:.75rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;}
.acct-type{display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.15);color:#d8f3dc;font-size:.72rem;font-weight:700;padding:4px 11px;border-radius:30px;margin-top:6px;}
.acct-tabs{display:flex;gap:0;border-bottom:1px solid var(--line);margin-bottom:22px;overflow-x:auto;scrollbar-width:none;}
.acct-tabs::-webkit-scrollbar{display:none;}
.acct-tab{padding:11px 18px;font-size:.84rem;font-weight:800;color:var(--slate);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s;white-space:nowrap;}
.acct-tab:hover{color:var(--green);}
.acct-tab.active{color:var(--green);border-bottom-color:var(--green);}
.acct-panel{display:none;}
.acct-panel.active{display:block;animation:fadeIn .25s ease both;}
/* ── coach Dashboard tab + Payments tab (v2, R3-settings) ── */
.acct-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:14px;box-shadow:var(--shadow);}
.acct-card h3{font-family:var(--sans);font-size:.92rem;font-weight:800;color:var(--ink);margin-bottom:12px;}
.cdash-sub{font-size:.76rem;color:var(--slate);font-weight:600;margin-bottom:14px;}
.cdash-none{font-size:.8rem;color:var(--slate);font-weight:600;text-align:center;padding:22px 0;line-height:1.6;}
.cdash-bars{display:flex;align-items:flex-end;gap:4px;height:80px;}
.cdash-bars .bar{flex:1;background:var(--mint);border-radius:3px 3px 0 0;min-height:4px;transition:height .3s;}
.cdash-bars .bar.has{background:var(--fairway);}
.cdash-axis{display:flex;justify-content:space-between;font-size:.62rem;color:var(--slate);margin-top:5px;}
.cdash-kpis{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:14px;}
.cdash-kpis .kpi{background:var(--fog);border-radius:var(--r-sm);padding:10px;text-align:center;}
.cdash-kpis .kpi .v{display:block;font-size:1.15rem;color:var(--ink);}
.cdash-kpis .kpi .k{display:block;font-size:.62rem;color:var(--slate);font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-top:2px;}
.cdash-kpis .kpi.owed{background:var(--amber-bg);}
.cdash-kpis .kpi.owed .v{color:var(--amber);}
.cdash-qa{display:flex;flex-direction:column;gap:8px;}
.qa-row{display:flex;align-items:center;gap:11px;padding:11px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);cursor:pointer;font-family:var(--sans);text-align:left;transition:border-color .15s,background .15s;width:100%;}
.qa-row:hover{border-color:var(--fairway-2);background:var(--mint);}
.qa-row .ic{width:32px;height:32px;border-radius:var(--r-sm);background:var(--mint);color:var(--fairway);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}
.qa-row .ic svg{width:15px;height:15px;}
.qa-row .tx{flex:1;min-width:0;}
.qa-row .t1{display:block;font-weight:800;font-size:.82rem;color:var(--ink);}
.qa-row .t2{display:block;font-size:.7rem;color:var(--slate);font-weight:600;margin-top:1px;}
.qa-row .chev{width:14px;height:14px;color:var(--slate);flex-shrink:0;}
.pay-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px dashed var(--line);}
.pay-row:last-of-type{border-bottom:none;}
.pay-row.dim .tx{opacity:.6;}
.pay-row .t1{font-weight:800;font-size:.86rem;color:var(--ink);}
.pay-row .t2{font-size:.72rem;color:var(--slate);font-weight:600;margin-top:2px;line-height:1.5;}
.pay-row .tg:disabled{cursor:not-allowed;opacity:.55;}
.pay-radios{display:flex;gap:18px;margin-top:4px;}
.pay-radios label{display:flex;align-items:center;gap:6px;cursor:pointer;font-weight:700;font-size:.84rem;color:var(--ink);}
.pay-radios input{accent-color:var(--fairway);}
.pay-err{color:var(--red);font-size:.76rem;font-weight:700;margin:-4px 0 10px;}
.pay-note{background:var(--mint);border-radius:var(--r-sm);padding:10px 12px;font-size:.74rem;color:var(--fairway);font-weight:700;line-height:1.55;margin-top:6px;}
.acct-quiet{border:1.5px dashed var(--line);border-radius:var(--r);padding:26px 20px;text-align:center;}
.acct-quiet p{font-size:.82rem;color:var(--slate);font-weight:600;line-height:1.65;max-width:400px;margin:0 auto;}
/* ── Clients CRM (v2, R3-clients) ── */
.cl-loading{font-size:.78rem;color:var(--slate);font-weight:600;padding:8px 0;line-height:1.6;}
.cl-loading.err{color:var(--red);}
.cl-inline-link{background:none;border:none;color:var(--fairway);font-family:var(--sans);font-weight:800;cursor:pointer;text-decoration:none;padding:0;font-size:inherit;}
.cl-inline-link:hover{text-decoration:underline;}
.cl-upsell{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:34px 24px;text-align:center;box-shadow:var(--shadow);}
.cl-upsell h3{font-family:var(--serif);font-size:1.2rem;font-weight:700;color:var(--ink);margin-bottom:8px;}
.cl-upsell p{font-size:.86rem;color:var(--slate);font-weight:600;max-width:420px;margin:0 auto 18px;line-height:1.65;}
.cl-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:12px;flex-wrap:wrap;}
.cl-head h3{font-family:var(--serif);font-size:1.15rem;font-weight:700;color:var(--ink);margin:0;}
.cl-head p{font-size:.72rem;color:var(--slate);margin-top:2px;}
.cl-head-acts{display:flex;gap:8px;flex-wrap:wrap;}
.cl-empty{border:1.5px dashed var(--line);border-radius:var(--r);padding:30px 20px;text-align:center;}
.cl-empty p{font-size:.84rem;color:var(--slate);font-weight:600;line-height:1.65;max-width:420px;margin:0 auto 16px;}
.cl-empty .acts{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
.cl-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 14px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);margin-bottom:8px;cursor:pointer;font-family:var(--sans);box-shadow:var(--shadow);transition:border-color .15s,transform .12s;}
.cl-row:hover{border-color:var(--fairway-2);transform:translateY(-1px);}
.cl-row.archived{cursor:default;opacity:.85;box-shadow:none;}
.cl-row.archived:hover{border-color:var(--line);transform:none;}
.cl-row .ava,.cl-id .ava{width:42px;height:42px;border-radius:50%;background:linear-gradient(150deg,#2d6a4f,#14211b);color:#fff;font-family:var(--serif);font-size:.82rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}
.cl-id .ava.lg{width:60px;height:60px;font-size:1.1rem;}
.cl-row .tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.cl-row .nm{font-weight:800;font-size:.9rem;color:var(--ink);}
.cl-row .ct{font-size:.7rem;color:var(--slate);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cl-row .nt{font-size:.74rem;color:var(--slate);font-style:italic;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cl-row .chev{width:14px;height:14px;color:var(--slate);flex-shrink:0;}
.cl-arch{margin-top:20px;}
.cl-arch-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--fog);border:1px solid var(--line);border-radius:var(--r-sm);padding:11px 14px;cursor:pointer;font-family:var(--sans);font-weight:800;font-size:.82rem;color:var(--ink);}
.cl-arch-toggle svg{width:15px;height:15px;color:var(--slate);transition:transform .18s;}
.cl-arch-list{margin-top:10px;}
.btn-outline2.sm{padding:7px 13px;font-size:.74rem;flex-shrink:0;}
.cl-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--shadow);}
.cl-id{display:flex;align-items:center;gap:14px;margin-bottom:18px;}
.cl-id h2{font-family:var(--serif);font-size:1.35rem;font-weight:700;color:var(--ink);margin:0;word-wrap:break-word;}
.cl-linked{font-size:.7rem;color:var(--slate);font-weight:700;margin-top:4px;display:flex;align-items:center;gap:5px;}
.cl-linked.v{color:var(--fairway);font-weight:800;}
.cl-linked svg{width:12px;height:12px;}
.cl-arch-banner{background:var(--amber-bg);border:1px solid #e8d9b8;border-radius:var(--r-sm);padding:12px 14px;margin-bottom:16px;}
.cl-arch-banner .t1{font-weight:800;font-size:.82rem;color:var(--amber);}
.cl-arch-banner .t2{font-size:.76rem;color:var(--amber);margin-top:3px;font-weight:600;}
.cl-arch-banner .t3{font-size:.72rem;color:var(--slate);margin-top:5px;font-weight:600;line-height:1.5;}
.cl-qa{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px;}
.cl-kv{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;}
.cl-kv .cell{background:var(--fog);border-radius:var(--r-sm);padding:11px 12px;min-width:0;}
.cl-kv .k,.cl-sec .k{display:block;font-size:.64rem;font-weight:800;color:var(--slate);text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px;}
.cl-kv .v{font-weight:700;font-size:.84rem;color:var(--ink);word-break:break-all;}
.cl-kv .v i,.cl-notes i{color:var(--slate);font-weight:600;}
.cl-sec{margin-bottom:18px;}
.cl-notes{background:var(--fog);border-radius:var(--r-sm);padding:13px 14px;min-height:56px;font-size:.85rem;line-height:1.6;white-space:pre-wrap;color:var(--ink);font-weight:600;}
.cl-bk{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:8px;}
.cl-bk .tx{flex:1;min-width:0;}
.cl-bk .t1{font-weight:800;font-size:.84rem;color:var(--ink);}
.cl-bk .t2{font-size:.7rem;color:var(--slate);margin-top:2px;}
.cl-bk .rt{text-align:right;flex-shrink:0;}
.cl-bk .fee{font-size:.84rem;color:var(--fairway);margin-bottom:3px;}
.cl-detail-acts{display:flex;gap:9px;flex-wrap:wrap;}
.cl-detail-acts>*{flex:1;min-width:120px;}
.cl-mkt-lock{padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--fog);font-size:.86rem;font-weight:700;color:var(--ink);}
/* cancel / reschedule / lesson-details modal bits (R3) */
.modal-sum{background:var(--mint);border-radius:var(--r-sm);padding:12px 14px;margin-bottom:16px;font-size:.84rem;line-height:1.5;}
.modal-sum .k{font-size:.64rem;color:var(--slate);font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;}
.modal-sum .t{font-weight:800;color:var(--ink);}
.modal-sum .d{font-size:.76rem;color:var(--ink);margin-top:3px;}
.modal-sum.danger{background:var(--red-bg);}
.modal-sum.danger .k,.modal-sum.danger .t,.modal-sum.danger .d{color:var(--red);}
.ld-grid{display:grid;grid-template-columns:auto 1fr;gap:9px 18px;font-size:.86rem;}
.ld-grid .k{color:var(--slate);font-weight:700;}
.ld-grid .v{font-weight:700;color:var(--ink);}
/* own-book modal bits */
.bl-legend{font-size:.66rem;color:var(--slate);font-weight:700;margin-bottom:6px;display:flex;align-items:center;gap:5px;}
.bl-legend .dot{width:8px;height:8px;border-radius:50%;display:inline-block;}
.bl-legend .dot.free{background:var(--fairway);}
.bl-legend .dot.taken{background:var(--red);}
.bl-legend .dot.off{background:var(--line);}
.ts.off{opacity:.4;cursor:not-allowed;pointer-events:none;}
.bl-pms{display:flex;gap:10px;flex-wrap:wrap;}
.pm{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:96px;padding:11px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);font-family:var(--sans);font-size:.8rem;font-weight:800;color:var(--ink);cursor:pointer;transition:border-color .15s,background .15s;}
.pm:hover{border-color:var(--fairway-2);}
.pm.sel{border-color:var(--fairway);background:var(--mint);}
.pm.off{opacity:.55;cursor:not-allowed;}
.pm-icon{display:flex;color:var(--fairway);}
.pm-icon svg{width:18px;height:18px;}
.pm-sub{font-size:.58rem;font-weight:700;color:var(--slate);line-height:1.2;text-align:center;}
.req{color:var(--red);}
/* coach booking rows (v2, R3-settings) — .booking-item / .bi-status / .bi-date
   are frozen names the e2e flows read; golfer cards override under .gacct. */
.booking-item{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin-bottom:10px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow);flex-wrap:wrap;}
.bi-avatar{width:44px;height:44px;border-radius:50%;color:#fff;font-family:var(--serif);font-weight:600;font-size:.88rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.bi-info{flex:1;min-width:180px;}
.bi-name{font-weight:800;font-size:.9rem;color:var(--ink);margin-bottom:2px;}
.bi-detail{font-size:.78rem;color:var(--slate);font-weight:600;}
.bi-date{font-size:.74rem;color:var(--slate);margin-top:3px;}
.bi-status{padding:3px 10px;border-radius:20px;font-size:.62rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;}
.bi-status.confirmed{background:var(--mint);color:var(--fairway);}
.bi-status.pending{background:var(--amber-bg);color:var(--amber);}
.bi-status.completed{background:var(--fog);color:var(--slate);}
.bi-status.no_show{background:var(--red-bg);color:var(--red);}
.bi-status.denied{background:var(--red-bg);color:var(--red);}
.bi-status.cancelled{background:var(--fog);color:var(--slate);}
.bi-denied-msg{margin-top:6px;background:var(--red-bg);border-left:3px solid var(--red);border-radius:6px;padding:7px 10px;font-size:.74rem;color:var(--red);font-weight:700;line-height:1.5;}
.bi-actions{display:flex;gap:7px;flex-wrap:wrap;}
.bi-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 13px;border-radius:30px;font-family:var(--sans);font-size:.72rem;font-weight:800;cursor:pointer;border:1px solid var(--line);background:var(--paper);color:var(--ink);transition:border-color .15s,background .15s,color .15s;}
.bi-btn svg{width:13px;height:13px;}
.bi-btn:hover{border-color:var(--slate);}
.bi-btn.primary{background:var(--fairway);color:#fff;border-color:var(--fairway);}
.bi-btn.primary:hover{background:var(--fairway-2);border-color:var(--fairway-2);}
.bi-btn.danger{color:var(--red);}
.bi-btn.danger:hover{border-color:var(--red);background:var(--red-bg);}
/* settings cards (v2, R3-editor) — shared by the editor Account tab and the
   account page's settings/payments panels. Mobile-first: 1-col, 2-col ≥768. */
.settings-grid{display:grid;grid-template-columns:1fr;gap:14px;}
@media(min-width:768px){.settings-grid{grid-template-columns:1fr 1fr;}}
.settings-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--shadow);}
.settings-card h3{font-family:var(--sans);font-size:.9rem;font-weight:800;color:var(--ink);margin-bottom:14px;display:flex;align-items:center;gap:9px;}
.btn-update{background:var(--fairway);color:#fff;border:none;padding:10px 20px;border-radius:30px;font-family:var(--sans);font-size:.82rem;font-weight:800;cursor:pointer;margin-top:8px;transition:background .18s;}
.btn-update:hover{background:var(--fairway-2);}
.btn-update:disabled{opacity:.6;cursor:default;}
/* Client-detail quick-action row — big, thumb-friendly, used mid-lesson on a
   phone (v2, R3-clients). One filled primary look + ghost .qa-alt. */
.qa-btn{flex:1;min-width:96px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:13px 8px;border-radius:var(--r);border:1px solid var(--fairway);background:var(--fairway);color:#fff;font-family:var(--sans);font-weight:800;font-size:.76rem;line-height:1.15;text-align:center;text-decoration:none;cursor:pointer;transition:background .18s,border-color .18s;}
.qa-btn:hover{background:var(--fairway-2);border-color:var(--fairway-2);}
.qa-btn .qa-ico{display:flex;}
.qa-btn .qa-ico svg{width:18px;height:18px;}
.qa-btn.qa-alt{background:var(--paper);color:var(--ink);border-color:var(--line);}
.qa-btn.qa-alt:hover{background:var(--mint);border-color:var(--fairway-2);color:var(--ink);}
.btn-danger{display:inline-block;background:var(--paper);color:var(--red);border:1px solid var(--line);padding:10px 20px;border-radius:30px;font-family:var(--sans);font-size:.82rem;font-weight:800;cursor:pointer;margin-top:8px;transition:border-color .15s,background .15s;text-decoration:none;}
.btn-danger:hover{border-color:var(--red);background:var(--red-bg);}
.empty-state{text-align:center;padding:40px 20px;color:var(--muted);}
.empty-state .es-icon{font-size:2.8rem;margin-bottom:10px;}
.empty-state p{font-weight:700;margin-bottom:14px;}
.empty-state button{background:var(--green);color:#fff;border:none;padding:11px 24px;border-radius:30px;font-family:'Nunito',sans-serif;font-size:.86rem;font-weight:800;cursor:pointer;}
/* R3-ACCOUNT-GOLFER: .card-display / .cd-* removed — only consumer was the
   golfer "Saved Card" mock UI, deleted with the Payment Details tab (no
   online payments exist to manage). */


/* ══════════════════════════════════════════════════════════════
   HOME v2 (rebrand R3) — ported from home-v2b.html, trust-first.
   Mobile-first; canonical breakpoints 480/768/980 (see tokens.css).
   ══════════════════════════════════════════════════════════════ */
.hm-eyebrow{font-size:.7rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--slate);}
.hm-eyebrow-dark{color:var(--green3);}
.hm-in{max-width:1120px;margin:0 auto;}
.hm-section{padding:36px 18px 6px;}
.hm-h2{font-family:var(--serif);font-size:1.5rem;font-weight:700;margin:8px 0 18px;color:var(--ink);}

/* hero */
.hm-hero{background:var(--paper);border-bottom:1px solid var(--line);padding:36px 18px 30px;}
.hm-hero-in{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:30px;align-items:center;}
.hm-hero h1{font-family:var(--serif);font-weight:700;font-size:2rem;line-height:1.14;letter-spacing:-.015em;color:var(--ink);margin-top:10px;}
.hm-hero h1 em{font-style:italic;color:var(--fairway);}
.hm-sub{font-size:.95rem;font-weight:600;color:var(--slate);margin-top:14px;max-width:50ch;line-height:1.7;}
.hm-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px;}
.hm-btn-solid{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-weight:800;font-size:.92rem;
  padding:13px 24px;border-radius:30px;border:none;cursor:pointer;background:var(--fairway);color:#fff;transition:background .18s,transform .08s;}
.hm-btn-solid:hover{background:var(--fairway-2);}
.hm-btn-solid:active{transform:translateY(1px);}
.hm-btn-solid svg{width:16px;height:16px;}
.hm-btn-ghost{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-weight:800;font-size:.92rem;
  padding:13px 24px;border-radius:30px;border:1px solid var(--line);cursor:pointer;background:var(--paper);color:var(--ink);transition:border-color .18s;}
.hm-btn-ghost:hover{border-color:var(--slate);}

/* real-coach faces (rendered by js/pages/home.js from coachesCache) */
.hm-faces{display:flex;gap:14px;overflow-x:auto;padding:6px 2px 14px;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.hm-faces::-webkit-scrollbar{display:none;}
.hm-faces[hidden]{display:none;}
.hm-face{flex:0 0 168px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow);overflow:hidden;cursor:pointer;}
.hm-face .ph{position:relative;aspect-ratio:4/4.4;overflow:hidden;}
.hm-face .fb{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-size:2rem;font-weight:600;color:rgba(255,255,255,.9);}
.hm-face .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hm-face .cap{padding:10px 12px 12px;}
.hm-face .nm{font-family:var(--serif);font-weight:600;font-size:.95rem;line-height:1.2;color:var(--ink);}
.hm-face .cl{font-size:.72rem;font-weight:700;color:var(--slate);margin-top:2px;}
.hm-face .vf{display:inline-flex;align-items:center;gap:4px;font-size:.66rem;font-weight:800;color:var(--fairway);margin-top:7px;}
.hm-face .vf svg{width:12px;height:12px;}

/* the Fairbook standard — scorecard signature */
.hm-standard{padding:36px 18px 6px;}
.hm-standard-in{max-width:560px;margin:0 auto;}
.hm-scard{border:1.5px solid var(--ink);border-radius:var(--r-sm);overflow:hidden;background:var(--paper);}
.hm-scard-h{background:var(--ink);color:#fff;font-family:var(--serif);font-size:.82rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;padding:10px 16px;text-align:center;}
.hm-srow{display:flex;align-items:baseline;gap:8px;padding:13px 16px;border-bottom:1px dashed var(--line);}
.hm-srow:last-of-type{border-bottom:none;}
.hm-srow .k{font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);flex:0 0 96px;}
.hm-srow .lead{flex:1;border-bottom:1px dotted var(--line);transform:translateY(-3px);}
.hm-srow .v{font-weight:800;font-size:.86rem;color:var(--ink);text-align:right;}
.hm-srow .v em{font-style:normal;color:var(--fairway);}
.hm-fine{font-size:.78rem;font-weight:600;color:var(--slate);text-align:center;margin-top:12px;line-height:1.6;}

/* how it works */
.hm-steps{display:grid;grid-template-columns:1fr;gap:14px;margin-top:4px;}
.hm-step{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--shadow);}
.hm-step .n{font-family:var(--mono);font-feature-settings:"tnum";font-size:.86rem;font-weight:500;color:var(--fairway);
  border:1px solid var(--line);border-radius:var(--r-sm);width:34px;height:34px;
  display:flex;align-items:center;justify-content:center;margin-bottom:12px;}
.hm-step h4{font-size:.95rem;font-weight:800;color:var(--ink);}
.hm-step p{font-size:.84rem;font-weight:600;color:var(--slate);margin-top:5px;line-height:1.65;}
.hm-link{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:.84rem;font-weight:800;color:var(--fairway);cursor:pointer;}
.hm-link svg{width:14px;height:14px;}

/* why no star ratings */
.hm-nr-wrap{padding-top:30px;}
.hm-nr{max-width:620px;margin:0 auto;text-align:center;padding:26px 22px;border:1px dashed var(--line);border-radius:var(--r);}
.hm-nr h2{font-family:var(--serif);font-size:1.2rem;font-weight:700;margin-top:8px;color:var(--ink);}
.hm-nr p{font-size:.88rem;font-weight:600;color:var(--slate);margin-top:10px;line-height:1.7;}

/* find a coach */
.hm-search .search-box{margin-top:4px;}
.hm-pin{width:17px;height:17px;color:var(--fairway);flex:0 0 auto;}

/* meet the coaches */
.hm-meet{padding-bottom:14px;}

/* for coaches — the page's one dark moment */
.hm-forcoaches{background:linear-gradient(155deg,#1b4332,#14211b);color:#fff;padding:38px 18px 42px;margin-top:26px;}
.hm-forcoaches h2{font-family:var(--serif);font-size:1.5rem;font-weight:700;margin-top:8px;line-height:1.2;color:#fff;}
.hm-fc-sub{font-size:.9rem;font-weight:600;color:rgba(255,255,255,.72);margin-top:10px;max-width:52ch;line-height:1.65;}
.hm-tiles{display:grid;grid-template-columns:1fr;gap:14px;margin:24px 0 26px;}
.hm-tile{border:1px solid rgba(255,255,255,.14);border-radius:var(--r);padding:20px;}
.hm-tile svg{width:20px;height:20px;color:var(--green3);margin-bottom:10px;}
.hm-tile h4{font-size:.92rem;font-weight:800;color:#fff;}
.hm-tile p{font-size:.8rem;font-weight:600;color:rgba(255,255,255,.7);margin-top:5px;line-height:1.6;}
.hm-cta-white{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--ink);border:none;cursor:pointer;
  font-family:var(--sans);font-weight:800;font-size:.95rem;padding:14px 26px;border-radius:30px;transition:transform .08s;}
.hm-cta-white:active{transform:translateY(1px);}
.hm-cta-white svg{width:16px;height:16px;color:var(--fairway);}

@media(min-width:480px){
  .hm-steps{grid-template-columns:1fr 1fr;}
}
@media(min-width:768px){
  .hm-hero{padding:56px 28px 44px;}
  .hm-hero-in{grid-template-columns:1.05fr .95fr;gap:44px;}
  .hm-hero h1{font-size:2.5rem;}
  .hm-faces{display:grid;grid-template-columns:1fr 1fr;gap:16px;overflow:visible;padding:0;}
  .hm-face{flex:none;}
  .hm-face:nth-child(2){transform:translateY(22px);}
  .hm-face:nth-child(3){transform:translateY(-8px);}
  .hm-section{padding:44px 28px 8px;}
  .hm-standard{padding:44px 28px 8px;}
  .hm-steps{grid-template-columns:1fr 1fr 1fr;gap:18px;}
  .hm-tiles{grid-template-columns:1fr 1fr 1fr;gap:18px;}
  .hm-forcoaches{padding:44px 28px 48px;}
}
@media(min-width:980px){
  .hm-hero h1{font-size:2.9rem;}
  .hm-hero{padding:64px 36px 52px;}
  .hm-section{padding:48px 36px 10px;}
  .hm-forcoaches h2{font-size:1.9rem;}
}


/* ══════════════════════════════════════════════════════════════
   COACH DAILY HUB (rebrand R3-dashboard) — the coach view of
   pg-account, ported from the approved dashboard-v3 mockup.
   Golfer account view untouched; shared .acct-* classes only get
   scoped overrides here. Mobile-first at 480/768/980.
   ══════════════════════════════════════════════════════════════ */
.hub-head{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);
  padding:14px 16px;display:flex;align-items:center;gap:13px;margin-bottom:14px;}
.hub-ava{width:46px;height:46px;border-radius:11px;background:var(--fairway);color:#fff;display:flex;align-items:center;
  justify-content:center;font-family:var(--serif);font-weight:600;font-size:1.05rem;flex:0 0 auto;}
.hub-hello{flex:1;min-width:0;}
.hub-hello .g{font-family:var(--serif);font-size:1.12rem;font-weight:700;line-height:1.15;color:var(--ink);}
.hub-hello .d{font-size:.76rem;font-weight:700;color:var(--slate);margin-top:2px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.hub-head .acct-type{background:var(--mint);color:var(--fairway);font-size:.68rem;font-weight:800;padding:3px 10px;margin-top:0;}
.hub-pill{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:800;
  color:var(--amber);background:var(--amber-bg);border:1px solid #e8d9b8;border-radius:20px;padding:7px 12px;cursor:pointer;transition:transform .08s;}
.hub-pill:active{transform:translateY(1px);}
.hub-pill .mono{font-weight:500;}
.hub-pill svg{width:12px;height:12px;}

/* day rail */
.hub-rail{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.hub-rail::-webkit-scrollbar{display:none;}
.hub-day{flex:0 0 auto;min-width:62px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);
  padding:9px 6px 8px;text-align:center;cursor:pointer;position:relative;transition:border-color .15s,background .15s;}
.hub-day:hover{border-color:var(--fairway-2);}
.hub-day.on{border-color:var(--fairway);background:var(--fairway);color:#fff;}
.hub-day .dn{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--slate);}
.hub-day.on .dn{color:rgba(255,255,255,.85);}
.hub-day .dd{font-family:var(--mono);font-size:.92rem;font-weight:500;margin-top:2px;}
.hub-day .cnt{margin-top:5px;font-family:var(--mono);font-size:.6rem;font-weight:500;color:var(--fairway);white-space:nowrap;}
.hub-day.on .cnt{color:var(--green3);}
.hub-day .cnt.zero{color:var(--line);}
.hub-day.on .cnt.zero{color:rgba(255,255,255,.4);}
.hub-day .pdot{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--amber);}

/* the sheet */
.hub-card{border:1.5px solid var(--ink);border-radius:var(--r-sm);overflow:hidden;background:var(--paper);box-shadow:var(--shadow);margin-bottom:14px;}
.hub-card-h{background:var(--ink);color:#fff;font-family:var(--serif);font-size:.8rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;padding:9px 16px;text-align:center;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;}
.hub-card-h .sum{font-family:var(--mono);font-size:.62rem;letter-spacing:0;text-transform:none;color:var(--green3);}
.hub-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px dashed var(--line);}
.hub-row:last-of-type{border-bottom:none;}
.hub-row .t{font-family:var(--mono);font-size:.8rem;font-weight:500;flex:0 0 62px;color:var(--ink);
  border-right:1px solid var(--line);padding-right:10px;}
.hub-row.past{background:var(--fog);}
.hub-row.past .t,.hub-row.past .nm{color:var(--slate);}
.hub-row .who{flex:1;min-width:0;}
.hub-row .nm{font-weight:800;font-size:.88rem;color:var(--ink);}
.hub-row .ls{font-size:.74rem;color:var(--slate);font-weight:600;}
.hub-row .fee{font-family:var(--mono);font-size:.8rem;color:var(--ink);}
.hub-tick{width:22px;height:22px;border-radius:50%;background:var(--mint);color:var(--fairway);
  display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.hub-tick svg{width:13px;height:13px;}
.hub-done{font-size:.6rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--fairway);
  background:var(--mint);border-radius:20px;padding:3px 8px;flex:0 0 auto;}
.hub-row.free{background:linear-gradient(90deg,var(--mint) 0%,var(--paper) 60%);}
.hub-row.free .t{color:var(--fairway);}
.hub-row.free .txt{flex:1;font-size:.8rem;font-weight:800;color:var(--fairway);}
.hub-row.free .book{font-size:.72rem;font-weight:800;color:var(--fairway);border:1px solid #bfe3cd;border-radius:20px;
  padding:7px 12px;background:var(--paper);cursor:pointer;transition:background .15s;white-space:nowrap;}
.hub-row.free .book:hover{background:var(--mint);}
.hub-row.free .share1{width:32px;height:32px;border-radius:9px;border:1px solid #bfe3cd;background:var(--paper);color:var(--fairway);
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s;flex:0 0 auto;}
.hub-row.free .share1:hover{background:var(--mint);}
.hub-row.free .share1 svg{width:15px;height:15px;}
.hub-row.pend{background:var(--amber-bg);border-left:3px solid var(--amber);padding-left:11px;}
.hub-row.pend .t{color:var(--amber);border-right-color:#e8d9b8;}
.hub-row.pend .wants{font-weight:700;color:var(--amber);font-size:.74rem;}
.hub-row.pend .review{margin-left:auto;font-size:.72rem;font-weight:800;color:var(--amber);border:1px solid #e8d9b8;
  border-radius:20px;padding:7px 12px;background:var(--paper);cursor:pointer;white-space:nowrap;}
.hub-loading,.hub-closed{padding:22px 16px;text-align:center;color:var(--slate);font-size:.82rem;font-weight:700;}
.hub-closed .h{font-family:var(--serif);font-size:1rem;font-weight:700;color:var(--ink);margin-bottom:3px;}
.hub-closed .open-link{display:inline-flex;align-items:center;gap:5px;margin-top:10px;font-size:.78rem;font-weight:800;color:var(--fairway);cursor:pointer;}
.hub-total{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--mint);border-top:1.5px solid var(--ink);}
.hub-total .k{font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--fairway);}
.hub-total .k small{display:block;font-size:.62rem;font-weight:700;letter-spacing:.03em;color:var(--slate);text-transform:none;margin-top:1px;}
.hub-total .v{font-family:var(--mono);font-size:1.35rem;font-weight:500;color:var(--fairway);}

/* share lever + owed strip */
.hub-lever{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);
  padding:14px 16px;display:flex;align-items:center;gap:13px;margin-bottom:10px;}
.hub-lever .ic{width:40px;height:40px;border-radius:10px;background:var(--mint);color:var(--fairway);
  display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.hub-lever .ic svg{width:19px;height:19px;}
.hub-lever .tx{flex:1;min-width:0;}
.hub-lever .t1{font-weight:800;font-size:.88rem;color:var(--ink);}
.hub-lever .t1 .mono{color:var(--fairway);}
.hub-lever .t2{font-size:.74rem;font-weight:600;color:var(--slate);margin-top:1px;}
.hub-lever .go{flex:0 0 auto;background:var(--fairway);color:#fff;font-weight:800;font-size:.8rem;border:none;cursor:pointer;
  padding:10px 16px;border-radius:20px;transition:background .15s;}
.hub-lever .go:hover{background:var(--fairway-2);}
.hub-owed{display:flex;align-items:center;gap:11px;background:var(--paper);border:1px solid var(--line);
  border-left:3px solid var(--amber);border-radius:var(--r);box-shadow:var(--shadow);padding:13px 15px;margin-bottom:14px;}
.hub-owed .k{font-size:.8rem;font-weight:800;color:var(--ink);}
.hub-owed .s{font-size:.72rem;font-weight:600;color:var(--slate);}
.hub-owed .v{margin-left:auto;font-family:var(--mono);font-size:1.1rem;font-weight:500;color:var(--amber);}
.hub-owed .go{font-size:.74rem;font-weight:800;color:var(--fairway);border:1px solid var(--line);border-radius:20px;
  padding:7px 12px;background:var(--paper);cursor:pointer;}
.hub-owed .go:hover{border-color:var(--fairway-2);}

/* requests (spec-08 ids live inside these cards) */
.hub-reqs{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);
  padding:16px;margin-bottom:16px;}
.hub-reqs h3{font-family:var(--serif);font-size:1rem;font-weight:700;color:var(--ink);margin-bottom:12px;display:flex;align-items:center;}
.hub-reqs h3 span{background:var(--amber);color:#fff;border-radius:20px;padding:2px 10px;font-size:.72rem;
  font-family:var(--mono);font-weight:500;margin-left:8px;}
.hub-req{border:1px solid var(--line);border-left:3px solid var(--amber);border-radius:var(--r);padding:13px 14px;margin-bottom:11px;}
.hub-req:last-child{margin-bottom:0;}
.hub-req .top-line{display:flex;align-items:flex-start;gap:11px;}
.hub-req .avx{width:38px;height:38px;border-radius:10px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-weight:600;font-size:.86rem;color:#fff;background:var(--fairway);}
.hub-req .who{flex:1;min-width:0;}
.hub-req .nm{font-weight:800;font-size:.9rem;color:var(--ink);}
.hub-req .ls{font-size:.76rem;color:var(--slate);font-weight:600;margin-top:1px;}
.hub-req .msg{background:var(--mint);border-radius:7px;padding:7px 10px;margin-top:8px;font-size:.78rem;color:var(--ink);font-style:italic;line-height:1.5;}
.hub-req .acts{display:flex;gap:8px;margin-top:11px;}
.hub-req .acts button{flex:1;padding:10px;border-radius:8px;font-weight:800;font-size:.82rem;cursor:pointer;border:none;
  text-align:center;transition:background .15s,border-color .15s;}
.hub-req .b-confirm{background:var(--fairway);color:#fff;}
.hub-req .b-confirm:hover{background:var(--fairway-2);}
.hub-req .b-deny{background:var(--paper);color:var(--red);border:1px solid var(--line);}
.hub-req .b-deny:hover{border-color:var(--red);background:var(--red-bg);}
.hub-req .deny-wrap textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:var(--r-sm);
  padding:9px;font-size:.8rem;min-height:58px;resize:vertical;margin-top:10px;background:var(--paper);color:var(--ink);}
.hub-req .deny-wrap textarea:focus{outline:none;border-color:var(--fairway);}
.hub-req .deny-row{display:flex;gap:8px;margin-top:8px;}
.hub-req .deny-row .send{flex:1;background:var(--red);color:#fff;font-weight:800;font-size:.8rem;padding:9px;border-radius:8px;border:none;cursor:pointer;text-align:center;}
.hub-req .deny-row .back{background:var(--paper);color:var(--slate);border:1px solid var(--line);font-weight:800;font-size:.8rem;padding:9px 13px;border-radius:8px;cursor:pointer;}
.hub-req-empty{text-align:center;padding:14px 10px;color:var(--slate);font-size:.82rem;font-weight:700;}

/* share sheet */
.hub-scrim{position:fixed;inset:0;background:rgba(20,33,27,.55);z-index:900;opacity:0;pointer-events:none;transition:opacity .25s;}
.hub-scrim.open{opacity:1;pointer-events:auto;}
.hub-sheet{position:fixed;left:0;right:0;bottom:0;z-index:910;background:var(--fog);border-radius:20px 20px 0 0;
  max-width:560px;margin:0 auto;transform:translateY(100%);transition:transform .32s cubic-bezier(.2,.8,.2,1);
  padding:8px 16px calc(20px + env(safe-area-inset-bottom));max-height:92dvh;overflow-y:auto;}
.hub-sheet.open{transform:translateY(0);}
.hub-sheet .grab{width:38px;height:4px;border-radius:4px;background:var(--line);margin:8px auto;}
.hub-sheet .t{text-align:center;font-family:var(--serif);font-size:1.15rem;font-weight:700;color:var(--ink);}
.hub-sheet .sub{text-align:center;font-size:.78rem;color:var(--slate);font-weight:600;margin:4px 0 14px;}
.hub-scope{display:flex;gap:8px;margin:0 auto 14px;max-width:360px;}
.hub-scope button{flex:1;font-size:.8rem;font-weight:800;padding:9px;border:1px solid var(--line);border-radius:20px;
  background:var(--paper);color:var(--ink);cursor:pointer;transition:background .15s,border-color .15s,color .15s;}
.hub-scope button.on{background:var(--fairway);border-color:var(--fairway);color:#fff;}
.hub-slotlist{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;}
.hub-slot-day{display:flex;gap:10px;align-items:baseline;padding:11px 14px;border-bottom:1px dashed var(--line);}
.hub-slot-day:last-child{border-bottom:none;}
.hub-slot-day .d{font-size:.68rem;font-weight:800;color:var(--slate);text-transform:uppercase;letter-spacing:.04em;flex:0 0 64px;}
.hub-slot-day .ts{font-family:var(--mono);font-size:.76rem;color:var(--ink);line-height:1.6;}
.hub-slot-empty{padding:16px;text-align:center;font-size:.8rem;font-weight:700;color:var(--slate);}
.hub-caption{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:13px 64px 13px 14px;
  margin-top:12px;font-size:.8rem;line-height:1.55;color:var(--ink);white-space:pre-wrap;position:relative;}
.hub-caption .copy{position:absolute;top:10px;right:10px;font-size:.72rem;font-weight:800;color:var(--fairway);background:var(--mint);
  border:1px solid #bfe3cd;border-radius:20px;padding:4px 10px;cursor:pointer;}
.hub-share-acts{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:12px;}
.hub-share-acts .act{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;background:var(--paper);
  border:1px solid var(--line);border-radius:var(--r);font-size:.66rem;font-weight:800;color:var(--ink);cursor:pointer;}
.hub-share-acts .act:hover{border-color:var(--fairway);}
.hub-share-acts .act .ic{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;}
.hub-share-acts .act .ic svg{width:17px;height:17px;}
.hub-share-acts .act.wa .ic{background:#25d366;}
.hub-share-acts .act.cp .ic{background:var(--fairway);}
.hub-share-acts .act.lk .ic{background:var(--ink);}

@media(min-width:768px){
  .hub-head{padding:16px 18px;}
  .hub-row .t{flex-basis:70px;}
}


/* ── mobile single-day view (<768px) — cal-* additions ── */
.cal-daywrap{padding:0 14px 16px;}
.cal-daystrip{display:flex;gap:7px;overflow-x:auto;padding:12px 2px 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.cal-daystrip::-webkit-scrollbar{display:none;}
.cal-sday{flex:0 0 auto;min-width:64px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);
  padding:8px 6px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;font-family:var(--sans);}
.cal-sday .dn{display:block;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--slate);}
.cal-sday .dd{display:block;font-family:var(--mono);font-size:.76rem;font-weight:500;margin-top:2px;color:var(--ink);}
.cal-sday.off .dd{color:var(--slate);text-decoration:line-through;opacity:.6;}
.cal-sday.on{border-color:var(--fairway);background:var(--fairway);}
.cal-sday.on .dn{color:rgba(255,255,255,.85);}
.cal-sday.on .dd{color:#fff;opacity:1;text-decoration:none;}
.cal-dv-bucket{font-size:.62rem;font-weight:800;color:var(--slate);text-transform:uppercase;letter-spacing:.08em;
  padding:12px 2px 7px;border-bottom:1px solid var(--line);margin-bottom:2px;}
.cal-dv-row{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:8px 12px;margin-top:7px;
  border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);cursor:pointer;font-family:var(--sans);
  text-align:left;transition:border-color .15s,background .15s;}
.cal-dv-row .t{font-family:var(--mono);font-feature-settings:"tnum";font-size:.8rem;font-weight:500;flex:0 0 62px;color:var(--ink);}
.cal-dv-row .state{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:800;}
.cal-dv-row .state svg{width:14px;height:14px;}
.cal-dv-row .hint{margin-left:auto;font-size:.68rem;font-weight:700;color:var(--slate);}
.cal-dv-row.open{background:var(--paper);}
.cal-dv-row.open .state{color:var(--fairway);}
.cal-dv-row.open:hover{border-color:var(--fairway-2);}
.cal-dv-row.closed{background:var(--fog);}
.cal-dv-row.closed .state,.cal-dv-row.closed .t{color:var(--slate);}
.cal-dv-row.closed:hover{border-color:var(--slate);}
.cal-dv-row.booked{background:var(--fairway);border-color:var(--fairway);}
.cal-dv-row.booked .t{color:rgba(255,255,255,.85);}
.cal-dv-row.booked .who{display:flex;flex-direction:column;min-width:0;}
.cal-dv-row.booked .nm{color:#fff;font-weight:800;font-size:.84rem;}
.cal-dv-row.booked .ls{color:rgba(255,255,255,.8);font-size:.7rem;font-weight:600;}
.cal-dv-row.booked .tag{margin-left:auto;font-size:.58rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;
  color:var(--fairway);background:#fff;border-radius:20px;padding:3px 9px;}
.cal-dayoff{text-align:center;padding:26px 16px;border:1px dashed var(--line);border-radius:var(--r);margin-top:12px;}
.cal-dayoff .h{font-family:var(--serif);font-size:1rem;font-weight:700;color:var(--ink);}
.cal-dayoff p{font-size:.8rem;font-weight:600;color:var(--slate);margin-top:5px;line-height:1.55;}
.cal-dayoff .warn{color:var(--amber);}
.cal-dayoff button{margin-top:12px;background:var(--fairway);color:#fff;border:none;padding:10px 20px;border-radius:20px;
  font-family:var(--sans);font-size:.8rem;font-weight:800;cursor:pointer;transition:background .15s;}
.cal-dayoff button:hover{background:var(--fairway-2);}

/* view switch: day view below 768, full week grid above */
.week-grid{display:none;}
.cal-daywrap{display:block;}
@media(min-width:768px){
  .week-grid{display:block;}
  .cal-daywrap{display:none;}
}


/* ═══ R3-PROFILE ═══
   New components for the public coach profile / booking-request page
   (pg-profile), ported from the approved profile-v3 mockup. Everything is
   pf- prefixed; core identity/hero rules live in the PROFILE PAGE block at
   the top of this file. Mobile-first; app-frame column per design-system §5;
   scorecard per §7; amber strictly as pending status per §8. */

/* numerals utility — mockup-canonical .mono; hub/fc markup already carries
   the class but no global rule existed. Every number in mono + tnum (§3). */
.mono{font-family:var(--mono);font-feature-settings:"tnum";font-weight:500;}

/* ── lesson types: radio cards, each with its own £ ── */
.pf-lessons{display:flex;flex-direction:column;gap:9px;}
.pf-lesson{display:flex;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;
  border:1.5px solid var(--line);border-radius:var(--r);background:var(--paper);color:var(--ink);
  font-family:var(--sans);padding:12px 15px;transition:border-color .15s,background .15s;}
.pf-lesson:hover{border-color:var(--fairway-2);}
.pf-lesson.on{border-color:var(--fairway);background:var(--mint);}
.pf-lesson .tick{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line);flex:0 0 auto;
  display:flex;align-items:center;justify-content:center;color:transparent;background:var(--paper);
  transition:background .15s,border-color .15s;}
.pf-lesson.on .tick{background:var(--fairway);border-color:var(--fairway);color:#fff;}
.pf-lesson .tick svg{width:11px;height:11px;}
.pf-lesson .l-t{display:flex;flex-direction:column;flex:1;min-width:0;}
.pf-lesson .l-n{font-weight:800;font-size:.92rem;line-height:1.3;}
.pf-lesson .l-d{font-size:.78rem;font-weight:600;color:var(--slate);margin-top:2px;}
.pf-lesson .l-d .mono{font-size:.78rem;}
.pf-lesson .l-p{font-family:var(--mono);font-feature-settings:"tnum";font-weight:500;font-size:1.02rem;margin-left:4px;}

/* ── the week: day rail + hourly slot grid ── */
.pf-days{display:flex;gap:9px;overflow-x:auto;margin:0 -20px 16px;padding:2px 20px 8px;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.pf-days::-webkit-scrollbar{display:none;}
.pf-day{flex:0 0 auto;min-width:58px;position:relative;border:1px solid var(--line);cursor:pointer;
  border-radius:var(--r-sm);background:var(--paper);padding:8px 4px 7px;text-align:center;font-family:var(--sans);
  transition:border-color .15s,background .15s,color .15s;}
.pf-day:hover{border-color:var(--fairway-2);}
.pf-day.on{background:var(--fairway);border-color:var(--fairway);color:#fff;}
.pf-day.none{opacity:.55;}
.pf-day .dn{display:block;font-size:.64rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--slate);}
.pf-day.on .dn{color:rgba(255,255,255,.85);}
.pf-day .dd{display:block;font-family:var(--mono);font-feature-settings:"tnum";font-size:.92rem;font-weight:500;margin-top:2px;}
.pf-day .dc{display:block;font-family:var(--mono);font-feature-settings:"tnum";font-size:.64rem;color:var(--slate);margin-top:2px;}
.pf-day.on .dc{color:rgba(255,255,255,.8);}
.pf-pdot{position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--amber);}
.pf-day.on .pf-pdot{background:var(--amber-bg);}
.pf-bucket{margin-bottom:16px;}
.pf-bucket:last-child{margin-bottom:0;}
.pf-bucket-h{font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);margin-bottom:9px;}
.pf-slotgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.pf-slot{font-family:var(--mono);font-feature-settings:"tnum";font-size:.84rem;font-weight:500;
  padding:10px 6px;min-height:42px;text-align:center;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink);
  transition:border-color .12s,background .12s,color .12s;}
button.pf-slot{cursor:pointer;}
button.pf-slot:hover:not(.pend){border-color:var(--fairway);color:var(--fairway);}
.pf-slot.sel{background:var(--fairway);border-color:var(--fairway);color:#fff;}
button.pf-slot.sel:hover{color:#fff;border-color:var(--fairway);}
.pf-slot.booked{color:var(--slate);text-decoration:line-through;opacity:.5;cursor:not-allowed;background:var(--fog);}
.pf-slot.pend{background:var(--amber-bg);border-color:var(--amber);color:var(--amber);}
.pf-noday{border:1px dashed var(--line);border-radius:var(--r-sm);padding:20px 16px;text-align:center;
  font-size:.86rem;font-weight:600;color:var(--slate);line-height:1.55;}

/* ── reviews placeholder — honesty, not absence ── */
.pf-revnote{display:flex;gap:11px;align-items:flex-start;border:1px dashed var(--line);
  border-radius:var(--r);padding:14px 15px;font-size:.85rem;font-weight:600;color:var(--slate);line-height:1.55;}
.pf-revnote svg{width:17px;height:17px;flex:0 0 auto;margin-top:2px;}

/* ── page foot line ── */
.pf-foot{text-align:center;padding:24px 20px 26px;font-size:.74rem;font-weight:600;color:var(--slate);border-top:1px solid var(--line);}
.pf-foot[hidden]{display:none;}
.pf-foot-link{font-family:var(--mono);font-feature-settings:"tnum";font-size:.68rem;font-weight:400;margin-top:6px;word-break:break-all;color:var(--slate);}

/* ── loading + not-found states ── */
.pf-loading{padding:26px 16px;text-align:center;font-size:.86rem;font-weight:700;color:var(--slate);}
.pf-nf{max-width:440px;margin:64px auto;padding:0 24px;text-align:center;}
.pf-nf-ic{width:52px;height:52px;border-radius:50%;background:var(--mint);color:var(--fairway);
  display:flex;align-items:center;justify-content:center;margin:0 auto 16px;}
.pf-nf-ic svg{width:22px;height:22px;}
.pf-nf h2{font-family:var(--serif);font-size:1.4rem;font-weight:600;color:var(--ink);margin-bottom:10px;}
.pf-nf p{color:var(--slate);font-size:.9rem;font-weight:600;line-height:1.65;margin-bottom:22px;}

/* ── docked booking bar (flex child of #pg-profile — never position:fixed:
   .page.active retains a transform from its fadeIn, which would re-anchor
   fixed descendants anyway) ── */
.pf-bar{flex:0 0 auto;position:relative;z-index:30;background:var(--paper);box-shadow:var(--bar-shadow);
  padding:12px 18px calc(12px + env(safe-area-inset-bottom));}
.pf-bar[hidden]{display:none;}
.pf-bar-in{max-width:480px;margin:0 auto;display:flex;align-items:center;gap:14px;}
.pf-bar-price{flex:1;min-width:0;}
.pf-bar-price .lbl{font-size:.72rem;font-weight:700;color:var(--slate);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pf-bar-price .lbl.mono{font-size:.74rem;color:var(--ink);}
.pf-bar-price .val{font-family:var(--mono);font-feature-settings:"tnum";font-size:1.15rem;font-weight:500;white-space:nowrap;color:var(--ink);}
.pf-cta{background:var(--fairway);color:#fff;font-weight:800;font-size:.95rem;font-family:var(--sans);border:none;cursor:pointer;
  padding:14px 22px;border-radius:30px;transition:background .18s,transform .08s;
  display:inline-flex;align-items:center;justify-content:center;gap:7px;}
.pf-cta:hover:not(:disabled){background:var(--fairway-2);}
.pf-cta:active{transform:translateY(1px);}
.pf-cta:disabled{background:var(--line);color:var(--slate);cursor:not-allowed;}
.pf-cta svg{width:16px;height:16px;}
.pf-cta.pend{background:var(--amber-bg);color:var(--amber);}
.pf-cta.pend:hover:not(:disabled){background:var(--amber-bg);}
.pf-bar .pf-cta{flex:0 0 auto;}

/* ── scorecard request sheet ── */
.pf-scrim{position:fixed;inset:0;background:rgba(20,33,27,.55);z-index:940;opacity:0;pointer-events:none;transition:opacity .25s;}
.pf-scrim.open{opacity:1;pointer-events:auto;}
.pf-sheet{position:fixed;left:0;right:0;bottom:0;z-index:950;background:var(--fog);border-radius:20px 20px 0 0;
  max-width:480px;margin:0 auto;transform:translateY(102%);visibility:hidden;
  transition:transform .32s cubic-bezier(.2,.8,.2,1),visibility 0s linear .32s;
  padding:8px 20px calc(22px + env(safe-area-inset-bottom));max-height:92dvh;overflow-y:auto;}
.pf-sheet.open{transform:translateY(0);visibility:visible;transition:transform .32s cubic-bezier(.2,.8,.2,1);}
.pf-grab{width:38px;height:4px;border-radius:4px;background:var(--line);margin:8px auto 14px;}
.pf-sheet-title{font-family:var(--serif);font-size:1.15rem;font-weight:600;letter-spacing:-.01em;
  text-align:center;margin-bottom:16px;color:var(--ink);}
.pf-field{margin:16px 0 4px;}
.pf-field label{display:block;font-size:.7rem;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:var(--slate);margin-bottom:7px;}
.pf-field textarea{width:100%;font-family:var(--sans);font-size:.92rem;font-weight:600;color:var(--ink);
  padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);
  resize:vertical;min-height:84px;line-height:1.5;outline:none;transition:border-color .15s;}
.pf-field textarea:focus{border-color:var(--fairway);}
.pf-field textarea::placeholder{color:#9aa8a0;font-weight:600;}
.pf-hint{display:flex;align-items:center;gap:6px;font-size:.74rem;font-weight:700;color:var(--amber);margin-top:7px;}
.pf-hint[hidden]{display:none;}
.pf-hint svg{width:13px;height:13px;flex:0 0 auto;}
.pf-sheet-cta{width:100%;background:var(--fairway);color:#fff;font-weight:800;font-size:1rem;font-family:var(--sans);
  border:none;cursor:pointer;padding:15px;border-radius:30px;margin-top:16px;transition:background .18s;}
.pf-sheet-cta .mono{font-size:.98rem;}
.pf-sheet-cta:hover:not(:disabled){background:var(--fairway-2);}
.pf-sheet-cta:disabled{background:var(--line);color:var(--slate);cursor:not-allowed;}
.pf-sheet-note{text-align:center;font-size:.76rem;font-weight:700;color:var(--slate);margin-top:12px;line-height:1.5;}

/* the scorecard itself (§7) */
.pf-card{border:1.5px solid var(--ink);border-radius:var(--r-sm);overflow:hidden;background:var(--paper);}
.pf-card-h{background:var(--ink);color:#fff;font-family:var(--serif);font-size:.82rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;padding:9px 16px;text-align:center;}
.pf-card-row{display:flex;align-items:baseline;gap:8px;padding:11px 16px;border-bottom:1px dashed var(--line);}
.pf-card-row .k{font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);flex:0 0 62px;}
.pf-card-row .lead{flex:1;border-bottom:1px dotted var(--line);transform:translateY(-3px);}
.pf-card-row .v{font-family:var(--mono);font-feature-settings:"tnum";font-size:.88rem;font-weight:500;text-align:right;color:var(--ink);}
.pf-card-row.empty .v{color:var(--slate);font-family:var(--sans);font-weight:700;font-size:.82rem;}
.pf-card-total{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--mint);}
.pf-card-total .k{font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--fairway);}
.pf-card-total .v{font-family:var(--mono);font-feature-settings:"tnum";font-size:1.45rem;font-weight:500;color:var(--fairway);}

/* request-sent (pending — amber is status, never decoration) */
.pf-done{text-align:center;padding:6px 4px 16px;}
.pf-seal{width:58px;height:58px;border-radius:50%;background:var(--amber-bg);color:var(--amber);
  display:flex;align-items:center;justify-content:center;margin:0 auto 14px;border:2px solid var(--amber);}
.pf-seal svg{width:26px;height:26px;}
.pf-done h3{font-family:var(--serif);font-size:1.25rem;font-weight:600;color:var(--ink);margin-bottom:10px;}
.pf-stchip{display:inline-flex;align-items:center;gap:5px;background:var(--amber-bg);color:var(--amber);
  font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  padding:4px 11px;border-radius:30px;margin-bottom:10px;}
.pf-done p{font-size:.88rem;color:var(--slate);font-weight:600;line-height:1.6;}
.pf-echo{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);
  padding:11px 13px;margin:14px 0 0;text-align:left;font-size:.84rem;font-weight:600;color:var(--slate);line-height:1.55;}
.pf-echo b{display:block;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;font-weight:800;color:var(--slate);}
.pf-ghost{width:100%;border:1px solid var(--line);border-radius:30px;padding:13px;font-weight:800;font-family:var(--sans);
  font-size:.95rem;background:var(--paper);color:var(--ink);cursor:pointer;margin-top:16px;transition:border-color .15s;}
.pf-ghost:hover{border-color:var(--slate);}

/* ── responsive: app column becomes an elevated card ≥480 (§5) ── */
@media(min-width:480px){
  .pf-app{margin:20px auto 24px;border:1px solid var(--line);border-radius:18px;overflow:hidden;
    box-shadow:0 12px 48px rgba(20,33,27,.12);min-height:0;}
  .pf-bar{border-top:1px solid var(--line);}
}
@media(min-width:768px){
  .pf-app{margin:28px auto 32px;}
  .pf-hero{height:200px;}

/* ═══ R3-ACCOUNT-GOLFER ═══
   Golfer view of pg-account, ported from the approved account-golfer-v3
   mockup: v2 paper identity card + counted pill tabs + next-lesson
   scorecard (§7 signature) + status-storied booking cards + honest empty
   states + "How booking works" rail card. Everything is scoped under
   .gacct so the coach hub and the shared .acct-* / .bi-* / .booking-item
   base rules stay untouched for the coach view. Frozen e2e hooks:
   .acct-tab "My Bookings", .acct-email, .acct-type "Golfer Account",
   .booking-item / .bi-status / .bi-date. Mobile-first; 768/980. */

/* layout: on mobile the rail dissolves so its cards interleave with the
   main column (id card → tabs+list → how-it-works) */
.gacct{display:flex;flex-direction:column;gap:14px;}
.gacct-rail{display:contents;}
.gacct-id{order:1;}
.gacct-main{order:2;display:flex;flex-direction:column;gap:14px;min-width:0;}
.gacct-how{order:3;}
.gacct-main #acctPanelWrap{display:flex;flex-direction:column;gap:14px;}
.gacct-eyebrow{font-size:.7rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--slate);}

/* identity card — the paper card that replaced the dark hero */
.gacct-id{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:15px 16px;display:flex;align-items:center;gap:13px;}
.gacct-ava{width:50px;height:50px;border-radius:12px;background:var(--fairway);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:600;font-size:1.1rem;flex:0 0 auto;}
.gacct-tx{flex:1;min-width:0;}
.gacct-hi{font-family:var(--serif);font-size:1.16rem;font-weight:700;line-height:1.15;color:var(--ink);}
.gacct-sub{font-size:.75rem;font-weight:700;color:var(--slate);margin-top:3px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;}
.gacct-id .acct-type{background:var(--mint);color:var(--fairway);font-size:.66rem;font-weight:800;padding:3px 10px;margin-top:0;gap:0;flex:0 0 auto;}
.gacct-gear{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--paper);color:var(--slate);display:flex;align-items:center;justify-content:center;flex:0 0 auto;cursor:pointer;transition:border-color .15s,color .15s;}
.gacct-gear:hover{border-color:var(--fairway-2);color:var(--fairway);}
.gacct-gear svg{width:17px;height:17px;}

/* tabs — quick-filter chip rule: active = ink (base .acct-tab is the coach
   underline strip; overridden into pills inside .gacct only) */
.gacct .acct-tabs{border-bottom:none;margin-bottom:0;gap:8px;}
.gacct .acct-tab{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:.8rem;font-weight:800;padding:10px 10px;border:1px solid var(--line);border-radius:30px;background:var(--paper);color:var(--ink);margin-bottom:0;transition:background .15s,border-color .15s,color .15s;}
.gacct .acct-tab:hover{color:var(--ink);border-color:var(--fairway-2);}
.gacct .acct-tab.active{background:var(--ink);border-color:var(--ink);color:#fff;}
.gacct .acct-tab .n{font-family:var(--mono);font-feature-settings:"tnum";font-size:.74rem;font-weight:500;color:var(--slate);}
.gacct .acct-tab.active .n{color:var(--green3);}

/* booking cards — .booking-item keeps its frozen name; its old flat-row
   look is rebuilt as the mockup's stacked card inside .gacct only */
.gacct .booking-item{display:block;padding:0;margin-bottom:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;}
.gacct .gbk-main{display:flex;gap:12px;padding:13px 14px;align-items:flex-start;}
.gacct .gbk-date{flex:0 0 54px;text-align:center;border-right:1px solid var(--line);padding-right:11px;padding-top:1px;}
.gacct .gbk-date .dn{font-size:.6rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);}
.gacct .gbk-date .dd{font-family:var(--mono);font-feature-settings:"tnum";font-size:1.12rem;font-weight:500;line-height:1.2;color:var(--ink);}
.gacct .gbk-date .mo{font-size:.58rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);}
.gacct .gbk-body{flex:1;min-width:0;}
.gacct .gbk-body .sess{font-weight:800;font-size:.88rem;line-height:1.3;color:var(--ink);}
.gacct .gbk-body .sub{font-size:.74rem;color:var(--slate);font-weight:600;margin-top:2px;}
.gacct .booking-item .bi-date{font-family:var(--mono);font-feature-settings:"tnum";font-size:.72rem;font-weight:500;color:var(--slate);margin-top:3px;}
.gacct .gbk-right{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:6px;}
.gacct .gbk-right .fee{font-family:var(--mono);font-feature-settings:"tnum";font-size:.88rem;font-weight:500;color:var(--ink);}
.gacct .bi-status{padding:3px 9px;border-radius:20px;font-size:.62rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;}
.gacct .bi-status.confirmed{background:var(--mint);color:var(--fairway);}
.gacct .bi-status.pending{background:var(--amber-bg);color:var(--amber);}
.gacct .bi-status.completed,.gacct .bi-status.cancelled,.gacct .bi-status.no_show{background:var(--fog);color:var(--slate);}
.gacct .bi-status.denied{background:var(--red-bg);color:var(--red);}

/* pending storytelling — amber = semantic waiting status only */
.gacct .gbk-pend{border-left:3px solid var(--amber);}
.gacct .gbk-wait{display:flex;gap:9px;align-items:flex-start;margin:0 14px 11px;background:var(--amber-bg);border-radius:var(--r-sm);padding:9px 11px;}
.gacct .gbk-wait svg{width:15px;height:15px;color:var(--amber);flex:0 0 auto;margin-top:2px;}
.gacct .gbk-wait .t{font-size:.77rem;font-weight:700;color:var(--amber);line-height:1.45;}
.gacct .gbk-yournote{margin:0 14px 12px;background:var(--fog);border-radius:var(--r-sm);padding:8px 11px;font-size:.76rem;color:var(--slate);font-style:italic;line-height:1.5;}
.gacct .gbk-yournote b{font-style:normal;font-weight:800;font-size:.66rem;letter-spacing:.05em;text-transform:uppercase;color:var(--slate);display:block;margin-bottom:2px;}

/* the coach's reply on a declined request */
.gacct .gbk-note{margin:0 14px 12px;background:var(--fog);border-radius:var(--r-sm);padding:9px 11px;font-size:.77rem;color:var(--slate);line-height:1.55;}
.gacct .gbk-note b{font-weight:800;font-size:.66rem;letter-spacing:.05em;text-transform:uppercase;display:block;margin-bottom:2px;color:var(--slate);}
.gacct .gbk-note em{font-style:italic;color:var(--ink);}

/* history rows stay quiet */
.gacct .gbk-past .gbk-date .dd{color:var(--slate);}
.gacct .gbk-past .fee{color:var(--slate);}

/* actions row + ghost buttons */
.gacct .gbk-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line);padding:9px 12px;background:var(--fog);}
.gacct .gbtn{display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);font-size:.76rem;font-weight:800;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:8px 13px;cursor:pointer;transition:border-color .15s,background .15s;}
.gacct .gbtn:hover{border-color:var(--fairway-2);}
.gacct .gbtn svg{width:13px;height:13px;color:var(--fairway);flex:0 0 auto;}
.gacct .gbtn.danger{color:var(--red);}
.gacct .gbtn.danger svg{color:var(--red);}
.gacct .gbtn.danger:hover{border-color:var(--red);background:var(--red-bg);}
.gacct .gbtn.primary{background:var(--fairway);border-color:var(--fairway);color:#fff;}
.gacct .gbtn.primary svg{color:#fff;}
.gacct .gbtn.primary:hover{background:var(--fairway-2);border-color:var(--fairway-2);}

/* next-lesson scorecard (§7) — the wrapper stays borderless; the .gsc box
   carries the signature 1.5px ink frame, actions sit beneath it */
.gacct .gbk-next{border:none;box-shadow:none;background:transparent;border-radius:0;overflow:visible;}
.gacct .gsc{border:1.5px solid var(--ink);border-radius:var(--r-sm);overflow:hidden;background:var(--paper);box-shadow:var(--shadow);}
.gacct .gsc-h{background:var(--ink);color:#fff;font-family:var(--serif);font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:9px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;}
.gacct .gsc-hr{display:inline-flex;align-items:center;gap:8px;letter-spacing:0;text-transform:none;font-family:var(--sans);}
.gacct .gsc-h .bi-status.confirmed{background:transparent;color:var(--green3);padding:0;border-radius:0;font-family:var(--mono);font-feature-settings:"tnum";font-size:.64rem;font-weight:500;letter-spacing:.06em;}
.gacct .gsc-h .sum{font-family:var(--mono);font-feature-settings:"tnum";font-size:.66rem;color:rgba(255,255,255,.75);}
.gacct .gsc-row{display:flex;align-items:baseline;gap:8px;padding:11px 16px;border-bottom:1px dashed var(--line);}
.gacct .gsc-row .k{font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);flex:0 0 62px;}
.gacct .gsc-row .lead{flex:1;border-bottom:1px dotted var(--line);transform:translateY(-3px);min-width:14px;}
.gacct .gsc-row .v{font-family:var(--mono);font-feature-settings:"tnum";font-size:.86rem;font-weight:500;color:var(--ink);text-align:right;max-width:70%;}
.gacct .gsc-row .v.sans{font-family:var(--sans);font-weight:700;font-size:.84rem;}
.gacct .gsc-row .bi-date{margin-top:0;font-size:.86rem;color:var(--ink);}
.gacct .gsc-total{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 16px;background:var(--mint);border-top:1.5px solid var(--ink);}
.gacct .gsc-total .k{font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--fairway);}
.gacct .gsc-total .k small{display:block;font-size:.64rem;font-weight:700;letter-spacing:.02em;color:var(--slate);text-transform:none;margin-top:2px;}
.gacct .gsc-total .v{font-family:var(--mono);font-feature-settings:"tnum";font-size:1.42rem;font-weight:500;color:var(--fairway);}
.gacct .gbk-next .gbk-acts{border-top:none;background:transparent;padding:10px 0 0;}

/* list eyebrow + "nothing confirmed yet" strip */
.gacct .gacct-list-eyebrow{display:flex;align-items:baseline;gap:8px;margin:4px 2px -4px;}
.gacct .gacct-list-eyebrow .n{font-family:var(--mono);font-feature-settings:"tnum";font-size:.68rem;font-weight:500;color:var(--fairway);}
.gacct .gacct-soft{font-size:.78rem;font-weight:700;color:var(--slate);background:var(--paper);border:1px dashed var(--line);border-radius:var(--r);padding:10px 14px;}

/* honest empty states */
.gacct .gacct-empty{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);text-align:center;padding:34px 20px 30px;}
.gacct .gacct-empty .seal{width:56px;height:56px;border-radius:50%;background:var(--mint);color:var(--fairway);display:flex;align-items:center;justify-content:center;margin:0 auto 13px;border:2px solid var(--fairway);}
.gacct .gacct-empty .seal svg{width:26px;height:26px;}
.gacct .gacct-empty h3{font-family:var(--serif);font-size:1.18rem;font-weight:700;color:var(--ink);}
.gacct .gacct-empty p{font-size:.82rem;font-weight:600;color:var(--slate);margin-top:5px;margin-bottom:0;line-height:1.55;}
.gacct .gacct-empty .cta{display:inline-flex;align-items:center;gap:7px;margin-top:15px;background:var(--fairway);color:#fff;border:none;cursor:pointer;font-family:var(--sans);font-weight:800;font-size:.84rem;padding:11px 20px;border-radius:30px;transition:background .15s;}
.gacct .gacct-empty .cta:hover{background:var(--fairway-2);}
.gacct .gacct-empty .cta svg{width:15px;height:15px;}
.gacct .gacct-empty.quiet{padding:24px 20px;box-shadow:none;}
.gacct .gacct-empty.quiet p{margin-top:0;}

/* the settings tab now lives in the narrower main column — stack its
   cards (coach payments renders .settings-grid outside .gacct, untouched) */
.gacct .settings-grid{grid-template-columns:1fr;}

/* how booking works — request → confirm → pay at the lesson */
.gacct-how{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:16px;}
.gacct-how .gacct-eyebrow{margin-bottom:12px;}
.gacct-how .step{display:flex;gap:11px;align-items:flex-start;padding:8px 0;}
.gacct-how .step + .step{border-top:1px dashed var(--line);}
.gacct-how .num{width:26px;height:26px;border-radius:50%;background:var(--mint);color:var(--fairway);font-family:var(--mono);font-feature-settings:"tnum";font-size:.76rem;display:flex;align-items:center;justify-content:center;flex:0 0 auto;margin-top:1px;}
.gacct-how .t1{font-weight:800;font-size:.82rem;color:var(--ink);}
.gacct-how .t2{font-size:.75rem;font-weight:600;color:var(--slate);line-height:1.5;margin-top:1px;}

@media(min-width:768px){
  .gacct-id{padding:18px 20px;}
  .gacct-hi{font-size:1.3rem;}
  .gacct .gbk-body .sess{font-size:.92rem;}
  .gacct .gsc-total .v{font-size:1.5rem;}
}
@media(min-width:980px){
  .gacct{display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:start;}
  .gacct-rail{display:flex;flex-direction:column;gap:16px;position:sticky;top:20px;}
  .gacct-main{order:0;}

/* ═══ R3-CHECKOUT ═══
   New classes for the booking-request flow (steps, scorecard review,
   payment-truth, request-pending). Tokens per docs/design-system.md §2;
   scorecard per §7; amber = semantic pending only. */
.ck-nav-tag{font-size:.7rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--slate);list-style:none;}
.ck-sub{font-size:.85rem;font-weight:600;color:var(--slate);margin:0 0 16px;line-height:1.55;}
/* step 1 — lesson cards + required note */
.so-tick{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line);flex:0 0 auto;margin-top:2px;display:flex;align-items:center;justify-content:center;background:var(--paper);color:transparent;transition:background .15s,border-color .15s;}
.sess-opt.sel .so-tick{background:var(--fairway);border-color:var(--fairway);color:#fff;}
.so-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.so-name{font-weight:800;font-size:.9rem;color:var(--ink);}
.so-dur{font-size:.72rem;font-weight:600;color:var(--slate);}
.so-price{font-family:var(--mono);font-feature-settings:"tnum";font-size:1rem;font-weight:500;color:var(--ink);flex:0 0 auto;}
.ck-note-row{margin-top:18px;margin-bottom:0;}
.ck-note-row label{text-transform:none;letter-spacing:0;font-size:.85rem;color:var(--ink);margin-bottom:4px;}
.ck-req{color:var(--slate);font-weight:700;font-size:.72rem;}
.ck-help{font-size:.76rem;font-weight:600;color:var(--slate);margin:0 0 8px;}
.ck-count{display:block;text-align:right;font-family:var(--mono);font-feature-settings:"tnum";font-size:.68rem;color:var(--slate);margin-top:5px;}
/* step 2 — mini calendar header + slot label */
.ck-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.ck-cal-month{font-family:var(--serif);font-size:.95rem;font-weight:600;}
.ck-slots-label{font-size:.7rem;font-weight:800;color:var(--slate);text-transform:uppercase;letter-spacing:.08em;margin:14px 0 7px;}
/* coach strip verified mark */
.ck-vf{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-size:.7rem;font-weight:800;color:var(--fairway);flex:0 0 auto;}
.ck-vf svg{flex:0 0 auto;}
/* step 3 — "Your round" scorecard (design-system §7) */
.ck-scorecard{border:1.5px solid var(--ink);border-radius:var(--r-sm);overflow:hidden;margin-bottom:14px;background:var(--paper);}
.ck-sc-h{background:var(--ink);color:#fff;font-family:var(--serif);font-size:.82rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:9px 16px;text-align:center;}
.ck-sc-row{display:flex;align-items:baseline;gap:8px;padding:11px 14px;border-bottom:1px dashed var(--line);}
.ck-sc-row .k{font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);flex:0 0 58px;}
.ck-sc-row .lead{flex:1;min-width:14px;border-bottom:1px dotted var(--line);transform:translateY(-3px);}
.ck-sc-row .v{font-family:var(--mono);font-feature-settings:"tnum";font-size:.86rem;font-weight:500;color:var(--ink);text-align:right;}
.ck-sc-total{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--mint);}
.ck-sc-total .k{font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--fairway);}
.ck-sc-total .v{font-family:var(--mono);font-feature-settings:"tnum";font-size:1.45rem;font-weight:500;color:var(--fairway);}
/* your note, quoted back (the golfer's own voice) */
.ck-note-card{border:1px solid var(--line);border-radius:var(--r);padding:13px 15px;margin-bottom:14px;}
.ck-eyebrow{font-size:.7rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--slate);margin-bottom:6px;}
.ck-note-q{font-family:var(--serif);font-style:italic;font-weight:500;font-size:.94rem;line-height:1.6;color:var(--ink);}
.ck-note-edit{display:inline-block;margin-top:8px;font-size:.76rem;font-weight:800;color:var(--fairway);background:none;border:none;padding:0;cursor:pointer;font-family:var(--sans);}
.ck-note-edit:hover{text-decoration:underline;}
/* payment truth — the plain fact, no padlock theatre */
.ck-pay-truth{display:flex;gap:12px;align-items:flex-start;background:var(--fog);border:1px solid var(--line);border-radius:var(--r);padding:13px 15px;}
.ck-pt-ic{width:34px;height:34px;border-radius:50%;background:var(--mint);color:var(--fairway);flex:0 0 auto;display:flex;align-items:center;justify-content:center;}
.ck-pt-t{font-size:.88rem;font-weight:800;}
.ck-pt-b{font-size:.8rem;font-weight:600;color:var(--slate);line-height:1.55;margin-top:2px;}
.ck-pt-road{font-size:.72rem;font-weight:600;color:var(--slate);margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);line-height:1.5;}
/* request pending — amber is the semantic pending status, never decoration */
.ck-seal{width:58px;height:58px;border-radius:50%;background:var(--amber-bg);color:var(--amber);border:2px solid var(--amber);display:inline-flex;align-items:center;justify-content:center;margin-bottom:14px;}
.ck-pend-title{font-family:var(--serif);font-size:1.55rem;font-weight:700;letter-spacing:-.01em;margin-bottom:10px;}
.ck-pend-chips{display:flex;justify-content:center;gap:8px;margin:0 0 14px;flex-wrap:wrap;}
.ck-chip-ref{font-family:var(--mono);font-feature-settings:"tnum";font-size:.78rem;font-weight:500;border:1px solid var(--line);border-radius:30px;padding:6px 13px;color:var(--ink);}
.ck-chip-status{font-size:.72rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;background:var(--amber-bg);color:var(--amber);border-radius:30px;padding:7px 13px;}
.ck-pend-body{font-size:.88rem;font-weight:600;color:var(--slate);line-height:1.65;max-width:380px;margin:0 auto 22px;}
.ck-pend-body .ck-when{color:var(--ink);font-family:var(--mono);font-feature-settings:"tnum";font-weight:500;white-space:nowrap;}
.ck-pend-body strong{color:var(--ink);}
.ck-next-wrap{max-width:420px;margin:0 auto;text-align:left;}
.ck-next{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--paper);}
.ck-next-row{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-bottom:1px dashed var(--line);}
.ck-next-row:last-child{border-bottom:none;}
.ck-nx-ic{width:30px;height:30px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;}
.ck-nx-ic.is-done{background:var(--mint);color:var(--fairway);}
.ck-nx-ic.is-now{background:var(--amber-bg);color:var(--amber);}
.ck-nx-ic.is-later{background:var(--fog);color:var(--slate);}
.ck-nx-t{font-size:.84rem;font-weight:800;}
.ck-nx-b{font-size:.77rem;font-weight:600;color:var(--slate);line-height:1.5;margin-top:1px;}
@media(min-width:480px){
  .checkout-page-wrap{padding:28px 24px 60px;}
}
@media(min-width:768px){
  .checkout-page-wrap{padding:36px 24px 68px;}
  .form-card{padding:24px;}
}
