/* Designed Wellness — primary stylesheet.
   Extracted from index.html inline <style> blocks for browser caching.
   Main styles (was lines 45-1533) followed by mcmd-styles (was lines 2069-2109). */

:root {
  /* Designed Wellness — gold-luxury palette. Legacy var names alias the dw tokens
     so the existing rules keep working. New code should use --dw-* directly. */
  --black: var(--dw-black);
  --white: var(--dw-white);
  --accent: var(--dw-accent);
  --accent-dark: var(--dw-accent-dark);
  --accent-light: var(--dw-accent-light);
  --teal-glow: var(--dw-gold-glow);
  --mid: var(--dw-mid);
  --mid2: var(--dw-mid2);
  --muted: var(--dw-muted);
  --border: var(--dw-border);
  --red: var(--dw-red);
  --orange: var(--dw-orange);
  --blue: var(--dw-blue);
  --green: var(--dw-green);
}
*{margin:0;padding:0;box-sizing:border-box;}
html,body{height:100%;}
body{font-family:var(--dw-font-body);background:var(--black);color:var(--white);min-height:100vh;overscroll-behavior-y:none;-webkit-font-smoothing:antialiased;}
body.app-standalone header{padding-top:calc(10px + env(safe-area-inset-top,0px));}
body.client-shell-active{--client-shell-top:calc(62px + env(safe-area-inset-top,0px));}
/* v107: Membership CTA banner sticky-top — clears the mobile-top-bar on small screens. Desktop has no fixed top bar so banner sticks at 0. */
:root{--banner-sticky-top:0px;}
@media (max-width:640px){:root{--banner-sticky-top:calc(62px + env(safe-area-inset-top,0px));}}
body.app-shell-ready #view-client,
body.app-shell-ready #view-dashboard,
body.app-shell-ready #view-noticeboard,
body.app-shell-ready #view-membership,
body.app-shell-ready #view-invoices,
body.app-shell-ready #view-progress,
body.app-shell-ready #view-account,
body.app-shell-ready #view-shop,
body.app-shell-ready #view-admin{min-height:100vh;}

/* ── HEADER ── */
header{display:flex;align-items:center;justify-content:space-between;padding:10px 32px;border-bottom:1px solid var(--border);position:sticky;top:0;background:rgba(11,9,7,0.97);backdrop-filter:blur(12px);z-index:300;}
.logo{display:flex;align-items:center;gap:0;text-decoration:none;cursor:default;}
.logo-img{height:56px;width:auto;border-radius:50%;box-shadow:0 0 0 2px rgba(201,162,75,0.3), 0 4px 16px rgba(201,162,75,0.2);}
.nav-tabs{display:flex;background:var(--mid);border-radius:8px;padding:4px;gap:4px;}
.nav-tab{padding:8px 18px;border:none;border-radius:6px;font-family:var(--dw-font-body);font-size:0.82rem;font-weight:600;cursor:pointer;transition:all 0.2s;background:transparent;color:var(--muted);letter-spacing:0.5px;white-space:nowrap;}
/* v93d: Dual nav system — desktop nav in header, mobile bottom nav independent */
.mobile-bottom-nav{display:none;} /* hidden on desktop */
.desktop-only-nav{display:flex;} /* shown on desktop */
.tab-icon{display:none;}
.tab-label-short{display:none;}
.tab-label-full{display:inline;}
.nav-tab.active{background:var(--accent);color:var(--black);}
.user-pill{display:flex;align-items:center;gap:10px;background:var(--mid);border:1px solid var(--border);border-radius:30px;padding:6px 14px 6px 6px;cursor:pointer;transition:border-color 0.2s;}
.user-pill:hover{border-color:var(--accent);}
.user-avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--black);font-weight:700;font-size:0.75rem;display:flex;align-items:center;justify-content:center;}
.user-name{font-size:0.82rem;font-weight:600;}
.logout-btn{background:none;border:none;color:var(--muted);font-size:0.75rem;cursor:pointer;padding:0;transition:color 0.2s;}
.logout-btn:hover{color:var(--red);}

/* ── VIEWS ── */
.view{display:none;}
.view.active{display:block;}

/* ── MODAL OVERLAY ── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.85);backdrop-filter:blur(6px);z-index:500;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity 0.3s;}
.modal-overlay.open{opacity:1;pointer-events:all;}
.modal{background:var(--dw-mid);border:1px solid var(--dw-border-hover);border-radius:20px;padding:40px;width:100%;max-width:460px;transform:translateY(20px);transition:transform 0.3s;}
.modal-overlay.open .modal{transform:translateY(0);}
.modal h2{font-family:var(--dw-font-display);font-size:2.4rem;letter-spacing:2px;margin-bottom:6px;}
.modal h2 em{color:var(--accent);font-style:normal;}
.modal .modal-sub{color:var(--muted);font-size:0.88rem;margin-bottom:28px;line-height:1.6;}
/* v109: area badge atop the auth modal — sets context for which location the user is signing into */
.modal .modal-area-badge{display:inline-flex;align-items:center;gap:6px;font-size:0.72rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);background:rgba(201,162,75,0.08);border:1px solid rgba(201,162,75,0.25);border-radius:999px;padding:6px 12px;margin-bottom:18px;align-self:flex-start;}
.modal .modal-area-badge[hidden]{display:none;}
.form-row{display:flex;gap:14px;}
.form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;flex:1;}
.form-field label{font-size:0.68rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);}
.form-field input{background:var(--dw-mid2);border:1px solid #333;color:var(--white);padding:12px 16px;border-radius:9px;font-family:var(--dw-font-body);font-size:0.92rem;outline:none;transition:border-color 0.2s;}
.form-field input:focus{border-color:var(--accent);}
.form-field input::placeholder{color:#444;}
.form-field .field-error{font-size:0.72rem;color:var(--red);margin-top:2px;display:none;}
.form-field.has-error input{border-color:var(--red);}
.form-field.has-error .field-error{display:block;}
.modal-btn{width:100%;padding:14px;background:var(--accent);color:var(--black);border:none;border-radius:9px;font-family:var(--dw-font-body);font-weight:700;font-size:0.9rem;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:background 0.2s;margin-top:4px;}
.modal-btn:hover{background:var(--accent-dark);}
.modal-switch{text-align:center;margin-top:18px;font-size:0.83rem;color:var(--muted);}
.modal-switch a{color:var(--accent);cursor:pointer;font-weight:600;text-decoration:none;}
.modal-switch a:hover{text-decoration:underline;}
.modal-link-btn{background:none;border:none;color:var(--accent);cursor:pointer;font:inherit;font-weight:600;padding:0;}
.modal-link-btn:hover{text-decoration:underline;}

/* ── CLIENT VIEW ── */
.client-hero{padding:52px 32px 36px;max-width:980px;margin:0 auto;}
.client-hero h1{font-family:var(--dw-font-display);font-size:clamp(3rem,8vw,5.5rem);line-height:0.92;letter-spacing:2px;margin-bottom:12px;}
.client-hero h1 em{color:var(--accent);font-style:normal;}
.client-hero p{color:var(--muted);font-size:0.95rem;max-width:400px;line-height:1.65;}
.week-nav{max-width:980px;margin:0 auto 20px;padding:0 32px;display:flex;align-items:center;gap:14px;}
.week-nav button{width:34px;height:34px;border:1px solid var(--border);background:transparent;color:var(--white);border-radius:6px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all 0.2s;}
.week-nav button:hover{border-color:var(--accent);color:var(--accent);}
.week-label{font-size:0.8rem;font-weight:700;letter-spacing:1px;color:var(--muted);text-transform:uppercase;}
.sessions-grid{max-width:980px;margin:0 auto;padding:0 32px 60px;display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px;}
.session-card{background:var(--mid);border:1px solid var(--border);border-radius:14px;padding:22px;transition:all 0.25s;position:relative;overflow:hidden;}
.session-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent);transform:scaleX(0);transition:transform 0.3s;transform-origin:left;}
.session-card:hover:not(.full-locked)::before{transform:scaleX(1);}
.session-card:hover:not(.full-locked){border-color:#1e4040;transform:translateY(-2px);}
.session-card.booked-by-me{border-color:var(--accent);background:var(--dw-fill-confirmed);}
.session-card.booked-by-me::before{transform:scaleX(1);}
.session-card.waitlisted-me{border-color:var(--orange);background:#1e1200;}
.session-card.waitlisted-me::before{background:var(--orange);transform:scaleX(1);}
.session-card.past-attended{border-color:var(--dw-border-hover);background:var(--dw-chart-bg);}
.session-card.past-attended::before{background:var(--muted);transform:scaleX(1);}
.status-badge.attended{background:var(--dw-fill-confirmed);color:var(--muted);border:1px solid var(--dw-border);}
.avg-rating{font-size:0.72rem;color:var(--orange);margin-bottom:10px;letter-spacing:0.3px;}
.book-btn.rate-btn{background:transparent;border:1px solid var(--orange);color:var(--orange);}
.book-btn.rate-btn:hover{background:var(--orange);color:var(--black);}
.book-btn.rate-edit{background:transparent;border:1px solid var(--dw-border-hover);color:var(--muted);font-size:0.76rem;}
.book-btn.rate-edit:hover{border-color:var(--orange);color:var(--orange);}

/* ── RATING MODAL ── */
#rating-modal .modal{max-width:420px;}
#rating-modal h2{font-size:2rem;}
.rate-sess-name{font-size:0.8rem;color:var(--accent);margin-bottom:20px;font-style:italic;}
.stars-row{display:flex;justify-content:center;gap:8px;margin:20px 0;}
.star-btn{background:none;border:none;font-size:2.2rem;cursor:pointer;filter:grayscale(1) opacity(0.35);transition:all 0.15s;line-height:1;}
.star-btn.active{filter:grayscale(0) opacity(1);}
.star-btn:hover{transform:scale(1.15);}
.rate-label{text-align:center;font-size:0.75rem;color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-bottom:16px;min-height:1em;}
.rate-comment{width:100%;background:var(--dw-mid2);border:1px solid #333;color:var(--white);padding:12px 14px;border-radius:9px;font-family:var(--dw-font-body);font-size:0.88rem;resize:vertical;outline:none;min-height:80px;transition:border-color 0.2s;}
.rate-comment:focus{border-color:var(--accent);}
.rate-comment::placeholder{color:#444;}
.session-day{font-family:var(--dw-font-display);font-size:1.9rem;letter-spacing:2px;line-height:1;margin-bottom:3px;}
.session-date{font-size:0.72rem;color:var(--muted);letter-spacing:0.5px;margin-bottom:12px;}
.session-time{font-size:1rem;font-weight:700;margin-bottom:4px;color:var(--accent);}
.session-lbl{font-size:0.78rem;color:var(--muted);margin-bottom:14px;font-style:italic;}
.status-badge{display:inline-block;font-size:0.65rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:3px 10px;border-radius:20px;margin-bottom:12px;}
.status-badge.confirmed{background:var(--dw-fill-confirmed);color:var(--accent);border:1px solid var(--accent);}
.status-badge.on-waitlist{background:#2a1800;color:var(--orange);border:1px solid var(--orange);}
.cap-bar{height:4px;background:#333;border-radius:2px;margin-bottom:7px;overflow:hidden;}
.cap-fill{height:100%;border-radius:2px;background:var(--accent);transition:width 0.4s;}
.cap-fill.high{background:var(--orange);}
.cap-fill.full-bar{background:var(--red);}
.cap-text{font-size:0.72rem;color:var(--muted);margin-bottom:8px;display:flex;justify-content:space-between;}
.wl-info{font-size:0.72rem;color:var(--orange);margin-bottom:14px;}
.wl-info::before{content:'⏳ ';}
.book-btn{width:100%;padding:11px;border:none;border-radius:8px;font-family:var(--dw-font-body);font-size:0.8rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:all 0.2s;margin-top:4px;}
.book-btn+.book-btn{margin-top:8px;}
.book-btn.available{background:var(--accent);color:var(--black);}
.book-btn.available:hover{background:var(--accent-dark);transform:scale(1.02);}
.book-btn.wl-join{background:transparent;border:1px solid var(--orange);color:var(--orange);}
.book-btn.wl-join:hover{background:var(--orange);color:var(--black);}
.book-btn.cancel{background:transparent;border:1px solid var(--dw-border-hover);color:var(--muted);}
.book-btn.cancel:hover{border-color:var(--red);color:var(--red);}
.book-btn.cancel-wl{background:transparent;border:1px solid var(--dw-border-hover);color:var(--muted);font-size:0.72rem;}
.book-btn.cancel-wl:hover{border-color:var(--red);color:var(--red);}
.book-btn.disabled-btn{background:var(--dw-mid2);color:#333;cursor:not-allowed;}
.book-btn.book-weekly-btn{background:transparent;border:1px solid var(--accent);color:var(--accent);font-size:0.75rem;margin-top:6px;}
.book-btn.book-weekly-btn:hover{background:var(--accent);color:var(--black);}

/* ── RECURRING SUMMARY MODAL ── */
#recurring-modal .modal{max-width:440px;}
#recurring-modal h2{font-size:2rem;margin-bottom:8px;}
.recurring-results{margin:20px 0;display:flex;flex-direction:column;gap:8px;max-height:260px;overflow-y:auto;}
.rec-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:9px;font-size:0.85rem;}
.rec-row.booked{background:var(--dw-fill-confirmed);border:1px solid var(--accent);color:var(--white);}
.rec-row.skipped{background:var(--dw-mid2);border:1px solid var(--dw-border-hover);color:var(--muted);}
.rec-row.already{background:var(--dw-mid);border:1px solid var(--dw-border);color:var(--muted);}
.rec-icon{font-size:1.1rem;flex-shrink:0;}
.rec-label{flex:1;}
.rec-reason{font-size:0.72rem;opacity:0.7;margin-left:auto;}

/* ── ADMIN ── */
.admin-header{max-width:1060px;margin:0 auto;padding:48px 32px 28px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.admin-header h2{font-family:var(--dw-font-display);font-size:2.8rem;letter-spacing:3px;line-height:1;}
.admin-header h2 span{color:var(--accent);}
.admin-stats{display:flex;gap:12px;flex-wrap:wrap;}
.stat-pill{background:var(--mid);border:1px solid var(--border);border-radius:10px;padding:12px 16px;text-align:center;min-width:100px;}
.stat-pill .num{font-family:var(--dw-font-display);font-size:2rem;color:var(--accent);line-height:1;}
.stat-pill .lbl{font-size:0.62rem;color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-top:2px;}

/* Admin sub-tabs */
.admin-subtabs{max-width:1060px;margin:0 auto 28px;padding:0 32px;display:flex;gap:8px;border-bottom:1px solid var(--border);padding-bottom:0;}
.subtab{padding:10px 20px;border:none;background:transparent;color:var(--muted);font-family:var(--dw-font-body);font-size:0.85rem;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all 0.2s;letter-spacing:0.5px;}
.subtab.active{color:var(--accent);border-bottom-color:var(--accent);}
.admin-subview{display:none;max-width:1060px;margin:0 auto;padding:24px 32px 60px;}
body.trainer-shell-active .admin-subview.active{display:block;}
body.trainer-shell-active .view{padding-top:0;}

/* v125.1: extended trainer-shell scoping to fix empty-space gaps on Earnings / Trainers / Requests / etc. */
body.trainer-shell-active .admin-subview{padding-top:0;}
body.trainer-shell-active #view-admin{min-height:auto;}
body.trainer-shell-active .client-hero{display:none;}
body.trainer-shell-active .admin-header{padding-top:18px;padding-bottom:18px;}

.settings-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:24px;}
.settings-row label{font-size:0.72rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);}
.settings-row input[type=number]{width:66px;background:var(--mid);border:1px solid var(--border);color:var(--white);padding:8px 12px;border-radius:8px;font-family:var(--dw-font-body);font-size:0.9rem;outline:none;}
.settings-row input:focus{border-color:var(--accent);}
.settings-section{margin-bottom:28px;padding:18px 22px;background:rgba(201,162,75,0.04);border:1px solid rgba(201,162,75,0.12);border-radius:12px;}
.settings-section h3{font-family:var(--dw-font-display);font-size:1.1rem;letter-spacing:1px;color:var(--accent);margin:0 0 4px;}
.settings-section-help{font-size:0.84rem;color:var(--muted);margin:0 0 16px;line-height:1.5;}

/* ── v75: COLLAPSIBLE ADMIN SECTIONS ── */
.admin-section{background:var(--mid2);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;overflow:hidden;transition:border-color 0.2s;}
.admin-section.expanded{border-left:3px solid var(--accent);}
.admin-section-header{display:flex;align-items:center;gap:10px;padding:14px 18px;cursor:pointer;user-select:none;transition:background 0.15s;}
.admin-section-header:hover{background:var(--mid);}
.admin-section-header .chevron{color:var(--accent);font-size:0.85rem;transition:transform 0.3s;flex-shrink:0;}
.admin-section-header .section-icon{font-size:1rem;}
.admin-section-header .section-title{font-weight:700;font-size:0.88rem;color:var(--white);letter-spacing:0.3px;}
.admin-section-header .section-subtitle{font-size:0.75rem;color:var(--muted);margin-left:auto;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.admin-section-body{max-height:0;overflow:hidden;transition:max-height 0.35s ease;}
.admin-section.expanded .admin-section-body{max-height:5000px;}
.admin-section-body-inner{padding:0 18px 18px;}
.admin-section-summary{padding:0 18px 12px;font-size:0.78rem;color:var(--muted);line-height:1.5;display:none;overflow:hidden;max-height:2.8em;text-overflow:ellipsis;}
.admin-section:not(.expanded) .admin-section-summary{display:block;}
.admin-section-summary .sum-day{font-weight:600;color:var(--white);}
.bill-section{margin-bottom:18px;border:1px solid rgba(201,162,75,0.18);border-radius:12px;overflow:hidden;background:var(--mid2);}
.bill-section-toggle{width:100%;display:flex;align-items:center;gap:10px;background:rgba(201,162,75,0.06);border:none;padding:14px 18px;color:var(--white);font-family:var(--dw-font-body);font-weight:700;font-size:0.95rem;cursor:pointer;text-align:left;}
.bill-section-toggle:hover{background:rgba(201,162,75,0.12);}
.bill-section-chevron{font-size:0.85rem;color:var(--accent);width:14px;}
.bill-section-title{flex:1;}
.bill-section-count{font-size:0.78rem;color:var(--muted);font-weight:400;}
.bill-section-body{padding:18px;}
/* Week navigation */
.week-nav{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap;}
.week-nav-btn{background:var(--mid);border:1px solid var(--border);color:var(--white);border-radius:8px;padding:6px 12px;cursor:pointer;font-size:0.88rem;transition:border-color 0.2s;}
.week-nav-btn:hover{border-color:var(--accent);color:var(--accent);}
.week-nav-label{font-weight:600;font-size:0.9rem;color:var(--white);}
.week-nav-count{font-size:0.78rem;color:var(--muted);}
.week-nav-today{background:transparent;border:1px solid var(--accent);color:var(--accent);border-radius:8px;padding:4px 12px;cursor:pointer;font-size:0.75rem;font-weight:600;transition:background 0.2s;}
.week-nav-today:hover{background:rgba(201,162,75,0.1);}
/* Day sub-headers in week view */
.day-subheader{font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--accent);padding:12px 0 6px;border-bottom:1px solid var(--border);margin-top:8px;}
.day-subheader:first-child{margin-top:0;}

.section-label{display:block;font-size:0.68rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:10px;}
.slot-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;min-height:28px;}
.slot-chip{background:var(--mid);border:1px solid var(--border);border-radius:20px;padding:6px 14px;font-size:0.78rem;color:var(--white);display:flex;align-items:center;gap:6px;}
.slot-chip button{background:none;border:none;color:var(--muted);cursor:pointer;font-size:0.85rem;transition:color 0.15s;padding:0;line-height:1;}
.slot-chip button:hover{color:var(--red);}
.add-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:28px;}
.add-row input{background:var(--mid);border:1px solid var(--border);color:var(--white);padding:9px 14px;border-radius:8px;font-family:var(--dw-font-body);font-size:0.85rem;outline:none;transition:border-color 0.2s;}
.add-row input:focus{border-color:var(--accent);}
.add-row .lbl-inp{min-width:180px;flex:1;}
.add-row button{padding:9px 16px;background:var(--mid2);border:1px solid #333;color:var(--white);border-radius:8px;font-family:var(--dw-font-body);font-size:0.8rem;font-weight:600;cursor:pointer;transition:all 0.2s;white-space:nowrap;}
.add-row button:hover{border-color:var(--accent);color:var(--accent);}

.add-form{background:var(--mid);border:1px solid var(--border);border-radius:14px;padding:20px;display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-bottom:24px;}
.add-form .ff{display:flex;flex-direction:column;gap:6px;flex:1;min-width:130px;}
.add-form label{font-size:0.66rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);}
.add-form input,.add-form select{background:var(--dw-mid);border:1px solid #333;color:var(--white);padding:11px 14px;border-radius:8px;font-family:var(--dw-font-body);font-size:0.87rem;outline:none;transition:border-color 0.2s;}
.add-form input:focus,.add-form select:focus{border-color:var(--accent);}
.add-form select option{background:var(--dw-mid2);}
.add-form .add-btn{padding:11px 24px;background:var(--accent);color:var(--black);border:none;border-radius:8px;font-family:var(--dw-font-body);font-weight:700;font-size:0.82rem;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:background 0.2s;white-space:nowrap;}
.add-form .add-btn:hover{background:var(--accent-dark);}

.session-rows{display:flex;flex-direction:column;gap:10px;}
.sess-row{background:var(--mid);border:1px solid var(--border);border-radius:12px;padding:18px 22px;display:flex;align-items:flex-start;gap:20px;flex-wrap:wrap;}
.sess-dt{min-width:160px;}
.sess-dt .sd{font-family:var(--dw-font-display);font-size:1.3rem;letter-spacing:1px;line-height:1;}
.sess-dt .st{font-weight:700;color:var(--accent);font-size:0.9rem;margin-top:3px;}
.sess-dt .sl{font-size:0.73rem;color:var(--muted);margin-top:2px;font-style:italic;}
.bsec{flex:1;min-width:180px;}
.bsec-ttl{font-size:0.63rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:7px;}
.bsec-ttl.wl{color:var(--orange);margin-top:10px;}
.chips{display:flex;flex-wrap:wrap;gap:6px;}
.chip{background:var(--dw-mid);border:1px solid var(--dw-border-hover);border-radius:20px;padding:4px 12px;font-size:0.77rem;color:var(--white);display:flex;align-items:center;gap:5px;}
.chip.wlc{color:var(--orange);border-color:#3a2800;}
.chip button{background:none;border:none;color:var(--muted);cursor:pointer;font-size:0.85rem;padding:0;line-height:1;transition:color 0.15s;}
.chip button:hover{color:var(--red);}
.no-chips{font-size:0.77rem;color:var(--muted);font-style:italic;}
.sess-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px;}
.sbadge{font-size:0.7rem;font-weight:700;padding:4px 12px;border-radius:20px;white-space:nowrap;}
.sbadge.open{background:var(--dw-fill-confirmed);color:var(--accent);border:1px solid var(--dw-border);}
.sbadge.full{background:#2a0505;color:var(--red);border:1px solid #4a1010;}
.del-btn{background:none;border:1px solid var(--border);color:var(--muted);padding:7px 14px;border-radius:8px;cursor:pointer;font-size:0.77rem;transition:all 0.2s;}
.del-btn:hover{border-color:var(--red);color:var(--red);}

/* ── CLIENTS TAB ── */
.clients-table-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;}
thead tr{border-bottom:1px solid var(--border);}
th{font-size:0.65rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);padding:10px 14px;text-align:left;}
tbody tr{border-bottom:1px solid #181818;transition:background 0.15s;}
tbody tr:hover{background:#161616;}
td{padding:12px 14px;font-size:0.85rem;}
td.mono{font-family:monospace;font-size:0.8rem;color:var(--muted);}
.badge-count{background:var(--mid2);color:var(--accent);border-radius:20px;padding:2px 10px;font-size:0.75rem;font-weight:700;}

/* ── BILLING TAB ── */
.billing-controls{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-bottom:28px;padding:20px;background:var(--mid);border:1px solid var(--border);border-radius:14px;}
.billing-controls .ff{display:flex;flex-direction:column;gap:6px;min-width:140px;}
.billing-controls label{font-size:0.66rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);}
.billing-controls input,.billing-controls select{background:var(--dw-mid);border:1px solid #333;color:var(--white);padding:10px 14px;border-radius:8px;font-family:var(--dw-font-body);font-size:0.87rem;outline:none;transition:border-color 0.2s;}
.billing-controls input:focus,.billing-controls select:focus{border-color:var(--accent);}
.billing-controls select option{background:var(--dw-mid2);}
.gen-btn{padding:10px 24px;background:var(--accent);color:var(--black);border:none;border-radius:8px;font-family:var(--dw-font-body);font-weight:700;font-size:0.82rem;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:background 0.2s;white-space:nowrap;align-self:flex-end;}
.gen-btn:hover{background:var(--accent-dark);}

.billing-report{display:none;}
.billing-report.visible{display:block;}
.report-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px;}
.report-header h3{font-family:var(--dw-font-display);font-size:1.8rem;letter-spacing:2px;}
.report-header h3 span{color:var(--accent);}
.print-btn{padding:9px 20px;background:transparent;border:1px solid var(--border);color:var(--white);border-radius:8px;font-family:var(--dw-font-body);font-size:0.8rem;font-weight:600;cursor:pointer;transition:all 0.2s;}
.print-btn:hover{border-color:var(--accent);color:var(--accent);}

.billing-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;}
.billing-card{background:var(--mid);border:1px solid var(--border);border-radius:14px;padding:22px;position:relative;overflow:hidden;}
.billing-card::after{content:'';position:absolute;top:0;right:0;width:3px;height:100%;background:var(--accent);}
.bc-name{font-family:var(--dw-font-display);font-size:1.5rem;letter-spacing:1px;margin-bottom:2px;}
.bc-email{font-size:0.75rem;color:var(--muted);margin-bottom:14px;}
.bc-sessions{margin-bottom:14px;}
.bc-sess-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--dw-mid2);font-size:0.8rem;}
.bc-sess-row:last-child{border-bottom:none;}
.bc-sess-row .sdate{color:var(--muted);}
.bc-divider{height:1px;background:var(--border);margin:14px 0;}
.bc-totals{display:flex;justify-content:space-between;align-items:center;}
.bc-total-lbl{font-size:0.72rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);}
.bc-total-amt{font-family:var(--dw-font-display);font-size:2rem;color:var(--accent);letter-spacing:1px;}
.bc-breakdown{font-size:0.72rem;color:var(--muted);margin-top:3px;}
.bc-zero{opacity:0.5;}

.billing-summary{background:var(--mid);border:1px solid var(--border);border-radius:14px;padding:22px;margin-bottom:20px;display:flex;gap:24px;flex-wrap:wrap;}
.bs-item .bs-val{font-family:var(--dw-font-display);font-size:2.2rem;color:var(--accent);line-height:1;}
.bs-item .bs-lbl{font-size:0.65rem;color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-top:2px;}

/* ── TOAST ── */
#toast{position:fixed;bottom:28px;right:28px;background:var(--accent);color:var(--black);padding:13px 20px;border-radius:10px;font-weight:700;font-size:0.82rem;letter-spacing:0.5px;opacity:0;transform:translateY(12px);transition:all 0.3s;z-index:999;pointer-events:none;max-width:300px;}
#toast.show{opacity:1;transform:translateY(0);}
#toast.error{background:var(--red);color:#fff;}
#toast.warn{background:var(--orange);color:var(--black);}

.empty-state{text-align:center;padding:60px 20px;color:var(--muted);}
.empty-state .icon{font-size:2.8rem;margin-bottom:14px;}
.empty-state p{font-size:0.9rem;line-height:1.7;}
.gs-grid{grid-column:1/-1;}

/* ── TRAINER PIN MODAL ── */
#pin-modal .modal{max-width:380px;text-align:center;}
#pin-modal .modal h2{font-size:2rem;margin-bottom:6px;}
#pin-modal .modal .modal-sub{margin-bottom:24px;}
.pin-dots{display:flex;justify-content:center;gap:12px;margin-bottom:24px;}
.pin-dot{width:14px;height:14px;border-radius:50%;border:2px solid #444;background:transparent;transition:all 0.2s;}
.pin-dot.filled{background:var(--accent);border-color:var(--accent);}
.pin-dot.error{background:var(--red);border-color:var(--red);}
.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;}
.pin-key{padding:16px;background:var(--mid2);border:1px solid var(--border);border-radius:10px;font-family:var(--dw-font-display);font-size:1.5rem;color:var(--white);cursor:pointer;transition:all 0.15s;letter-spacing:1px;}
.pin-key:hover{background:#333;border-color:#555;}
.pin-key:active{transform:scale(0.95);}
.pin-key.del{font-family:var(--dw-font-body);font-size:1rem;font-weight:600;}
.pin-hint{font-size:0.75rem;color:var(--muted);margin-top:4px;}
.trainer-badge{display:flex;align-items:center;gap:8px;background:var(--mid);border:1px solid var(--border);border-radius:30px;padding:6px 14px 6px 6px;}
.trainer-badge .user-avatar{background:#444;color:var(--accent);}
.trainer-badge .user-name{font-size:0.82rem;font-weight:600;color:var(--accent);}
.trainer-badge .logout-btn{color:var(--muted);}
.trainer-badge .logout-btn:hover{color:var(--red);}

/* ── SESSION NOTE (client card) ── */
.session-note-pill{font-size:0.75rem;color:var(--accent);background:var(--dw-fill-confirmed);border:1px solid var(--dw-border);border-radius:8px;padding:6px 10px;margin-bottom:10px;line-height:1.5;}

/* ── SESSION NOTE (admin) ── */
.sess-note-wrap{margin-top:4px;}
.sess-note-row{display:flex;gap:8px;align-items:flex-start;margin-top:6px;}
.sess-note-input{flex:1;background:var(--dw-fill-confirmed);border:1px solid var(--border);color:var(--white);padding:9px 12px;border-radius:8px;font-family:var(--dw-font-body);font-size:0.82rem;resize:none;outline:none;min-height:52px;transition:border-color 0.2s;line-height:1.5;}
.sess-note-input:focus{border-color:var(--accent);}
.sess-note-input::placeholder{color:var(--muted);}
.save-note-btn{padding:9px 16px;background:var(--accent);color:var(--black);border:none;border-radius:8px;font-family:var(--dw-font-body);font-size:0.78rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:background 0.2s;align-self:flex-start;}
.save-note-btn:hover{background:var(--accent-dark);}

/* ── CLIENT NOTES BTN ── */
.notes-btn{padding:6px 14px;background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:8px;font-family:var(--dw-font-body);font-size:0.75rem;font-weight:600;cursor:pointer;transition:all 0.2s;white-space:nowrap;}
.notes-btn:hover{border-color:var(--accent);color:var(--accent);}

/* ── PROGRESS NOTES PANEL ── */
.progress-panel{background:var(--mid);border:1px solid var(--border);border-radius:16px;padding:28px;margin-top:28px;}
.progress-panel-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;gap:16px;flex-wrap:wrap;}
.progress-panel-name{font-family:var(--dw-font-display);font-size:1.8rem;letter-spacing:2px;line-height:1;}
.progress-panel-sub{font-size:0.78rem;color:var(--muted);margin-top:4px;}
.progress-close{padding:8px 16px;background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:8px;font-family:var(--dw-font-body);font-size:0.78rem;font-weight:600;cursor:pointer;transition:all 0.2s;white-space:nowrap;}
.progress-close:hover{border-color:var(--red);color:var(--red);}
.progress-add-row{display:flex;gap:10px;align-items:flex-start;margin-bottom:24px;}
.progress-textarea{flex:1;background:var(--dw-fill-confirmed);border:1px solid var(--border);color:var(--white);padding:12px 14px;border-radius:10px;font-family:var(--dw-font-body);font-size:0.88rem;resize:vertical;outline:none;min-height:70px;transition:border-color 0.2s;line-height:1.6;}
.progress-textarea:focus{border-color:var(--accent);}
.progress-textarea::placeholder{color:var(--muted);}
.progress-add-btn{padding:12px 20px;background:var(--accent);color:var(--black);border:none;border-radius:10px;font-family:var(--dw-font-body);font-weight:700;font-size:0.82rem;letter-spacing:0.5px;cursor:pointer;white-space:nowrap;transition:background 0.2s;align-self:flex-start;}
.progress-add-btn:hover{background:var(--accent-dark);}
.progress-notes-list{display:flex;flex-direction:column;gap:12px;}
.progress-empty{text-align:center;padding:32px;color:var(--muted);font-size:0.88rem;font-style:italic;}
.progress-note{background:var(--dw-chart-bg);border:1px solid var(--border);border-radius:12px;padding:16px 18px;}
.progress-note-meta{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap;}
.progress-note-date{font-size:0.7rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--accent);}
.progress-note-edited{font-size:0.68rem;color:var(--muted);font-style:italic;}
.progress-note-text{font-size:0.88rem;line-height:1.7;color:var(--white);}
.pn-btn{padding:4px 10px;background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:6px;font-family:var(--dw-font-body);font-size:0.72rem;cursor:pointer;transition:all 0.2s;}
.pn-btn.edit:hover{border-color:var(--accent);color:var(--accent);}
.pn-btn.del:hover{border-color:var(--red);color:var(--red);}

/* ── INVOICE STYLES ── */
.inv-divider{height:2px;background:var(--border);margin:40px 0;}
.invoice-card{background:var(--mid);border:1px solid var(--border);border-radius:16px;padding:40px;position:relative;overflow:hidden;max-width:780px;margin:0 auto;}
.inv-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:36px;position:relative;}
.inv-logo-wrap{display:flex;align-items:center;gap:16px;}
.inv-logo{height:64px;width:64px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px rgba(201,162,75,0.4);}
.inv-brand{font-family:var(--dw-font-display);font-size:2.4rem;letter-spacing:4px;line-height:1.1;color:var(--white);}
.inv-corner-teal{position:absolute;top:-40px;right:-40px;width:120px;height:120px;background:var(--accent);clip-path:polygon(100% 0,0 0,100% 100%);opacity:0.9;}
.inv-corner-pink{position:absolute;top:40px;right:0;width:60px;height:60px;background:#e88fa0;clip-path:polygon(100% 0,0 100%,100% 100%);opacity:0.7;}
.inv-meta{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:28px;}
.inv-meta-label{font-family:var(--dw-font-body);font-size:0.7rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:2px;}
.inv-meta-val{font-family:var(--dw-font-body);font-size:0.9rem;color:var(--white);font-weight:500;}
.inv-contact{font-size:0.75rem;color:var(--muted);}
.inv-table{width:100%;border-collapse:collapse;margin-bottom:0;}
.inv-table thead tr{background:var(--mid2);}
.inv-table th{font-size:0.68rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);padding:10px 14px;text-align:left;border:1px solid var(--border);}
.inv-table td{padding:10px 14px;border:1px solid var(--border);vertical-align:top;font-size:0.85rem;}
.inv-td-no{text-align:center;width:40px;color:var(--muted);}
.inv-desc-input{width:100%;background:transparent;border:none;outline:none;color:var(--white);font-family:var(--dw-font-body);font-size:0.85rem;resize:none;line-height:1.5;}
.inv-num-input{width:80px;background:var(--mid2);border:1px solid var(--border);color:var(--white);padding:5px 8px;border-radius:6px;font-family:var(--dw-font-body);font-size:0.84rem;outline:none;text-align:right;}
.inv-num-input:focus{border-color:var(--accent);}
.inv-pre-fill-hint{display:block;margin-top:6px;font-size:0.72rem;color:var(--orange);}
.inv-locked-price{display:inline-block;padding:6px 10px;background:rgba(201,162,75,0.12);border:1px dashed rgba(201,162,75,0.4);color:var(--white);border-radius:7px;font-family:var(--dw-font-body);font-size:0.86rem;font-weight:600;white-space:nowrap;}
.inv-subtotal{text-align:right;font-weight:600;color:var(--white);white-space:nowrap;}
.inv-table tfoot td{border:none;padding-top:16px;}
.inv-grand-total-row{display:flex;flex-direction:column;align-items:flex-end;gap:4px;border-top:2px solid var(--accent);padding-top:12px;}
.inv-grand-label{font-family:var(--dw-font-display);font-size:1rem;letter-spacing:3px;color:var(--accent);}
.inv-grand-amt{font-family:var(--dw-font-display);font-size:2rem;color:var(--white);letter-spacing:1px;}
.inv-override-row{display:flex;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;background:var(--dw-fill-confirmed);border:1px dashed #1e3a3a;border-radius:8px;flex-wrap:wrap;}
.inv-override-row label{font-size:0.7rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);white-space:nowrap;}
.inv-override-input{width:130px;background:var(--mid2);border:1px solid var(--border);color:var(--white);padding:8px 12px;border-radius:7px;font-family:var(--dw-font-body);font-size:0.88rem;outline:none;}
.inv-override-input:focus{border-color:var(--orange);}
.inv-override-hint{font-size:0.7rem;color:var(--muted);font-style:italic;}
.inv-footer{display:flex;justify-content:space-between;align-items:flex-end;margin-top:32px;padding-top:20px;border-top:1px solid var(--border);flex-wrap:wrap;gap:20px;}
.inv-note-label{font-family:var(--dw-font-body);font-size:0.75rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:6px;color:var(--white);}
.inv-note div{font-size:0.8rem;color:var(--muted);line-height:1.7;}
.inv-sig{text-align:center;min-width:140px;}
.inv-sig-line{border-bottom:1px solid var(--border);margin-bottom:6px;width:140px;}
.inv-sig-name{font-family:var(--dw-font-script);font-size:1.6rem;color:var(--white);line-height:1;}
.inv-sig-title{font-size:0.7rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-top:4px;}
.inv-print-row{margin-top:20px;text-align:right;}
.inv-print-btn{padding:9px 20px;background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:8px;font-family:var(--dw-font-body);font-size:0.78rem;font-weight:600;cursor:pointer;transition:all 0.2s;}
.inv-print-btn:hover{border-color:var(--accent);color:var(--accent);}

/* ── INVOICE STATUS BADGES ── */
.inv-status{display:inline-block;padding:3px 10px;border-radius:20px;font-size:0.7rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;}
.inv-status.pending{background:rgba(240,144,48,0.15);color:var(--orange);}
.inv-status.paid{background:rgba(201,162,75,0.15);color:var(--accent);}
.inv-status.cancelled{background:rgba(180,180,180,0.08);color:var(--muted);text-decoration:line-through;}
.inv-cycle-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:0.74rem;font-weight:700;white-space:nowrap;margin-right:8px;}
.inv-cycle-pending{background:rgba(180,180,180,0.12);color:var(--muted);border:1px solid rgba(180,180,180,0.3);}
.inv-cycle-n1{background:rgba(36,161,222,0.15);color:#24a1de;border:1px solid rgba(36,161,222,0.4);}
.inv-cycle-n2{background:rgba(255,193,7,0.15);color:#ffc107;border:1px solid rgba(255,193,7,0.4);}
.inv-cycle-n3{background:rgba(220,53,69,0.18);color:#dc3545;border:1px solid rgba(220,53,69,0.5);}
.inv-cycle-paid{background:rgba(201,162,75,0.15);color:var(--accent);border:1px solid rgba(201,162,75,0.4);}
.inv-cycle-cancelled{background:rgba(180,180,180,0.08);color:var(--muted);border:1px solid rgba(180,180,180,0.2);text-decoration:line-through;}

/* ── CLIENT INVOICE PANEL (trainer side) ── */
.client-invoices-panel{margin-top:24px;background:var(--mid);border:1px solid var(--border);border-radius:14px;padding:24px;}
.cip-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:10px;}
.cip-title{font-family:var(--dw-font-display);font-size:1.3rem;letter-spacing:2px;}
.cip-close{background:none;border:none;color:var(--muted);cursor:pointer;font-size:0.8rem;padding:0;}
.cip-close:hover{color:var(--red);}
.cip-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--dw-mid2);flex-wrap:wrap;}
.cip-row:last-child{border-bottom:none;}
.cip-period{font-weight:600;font-size:0.9rem;flex:1;min-width:120px;}
.cip-amount{font-family:var(--dw-font-display);font-size:1.3rem;color:var(--accent);letter-spacing:1px;min-width:100px;}
.cip-date{font-size:0.72rem;color:var(--muted);}
.cip-mark-paid{padding:5px 14px;background:transparent;border:1px solid var(--accent);color:var(--accent);border-radius:7px;font-size:0.75rem;font-weight:700;cursor:pointer;transition:all 0.2s;white-space:nowrap;}
.cip-mark-paid:hover{background:var(--accent);color:var(--black);}
.cip-notify-btn{background:transparent;border:1px solid var(--accent);color:var(--accent);border-radius:8px;padding:7px 14px;font-size:0.78rem;font-weight:600;cursor:pointer;transition:all 0.2s;}
.cip-notify-btn:hover{background:rgba(201,162,75,0.12);}
.cip-cancel-inv-trainer{background:transparent;border:1px solid var(--dw-red);color:var(--dw-red);border-radius:8px;padding:7px 14px;font-size:0.78rem;font-weight:600;cursor:pointer;transition:all 0.2s;}
.cip-cancel-inv-trainer:hover{background:rgba(200,74,74,0.12);}
.cip-cancel-inv{padding:5px 14px;background:transparent;border:1px solid var(--danger, var(--dw-red));color:var(--danger, var(--dw-red));border-radius:7px;font-size:0.75rem;font-weight:700;cursor:pointer;transition:all 0.2s;white-space:nowrap;margin-left:6px;}
.cip-cancel-inv:hover{background:var(--danger, var(--dw-red));color:var(--white);}
.cip-delete{padding:5px 10px;background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:7px;font-size:0.75rem;cursor:pointer;transition:all 0.2s;}
.cip-delete:hover{border-color:var(--red);color:var(--red);}
.cip-empty{color:var(--muted);font-style:italic;font-size:0.85rem;padding:12px 0;}

/* ── v128 CLIENT PROFILE PANEL ── */
.profile-panel{margin-top:24px;background:var(--mid);border:1px solid var(--border);border-radius:14px;padding:24px;}
.profile-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap;}
.profile-panel-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-family:var(--dw-font-display);font-size:1.5rem;letter-spacing:2px;}
.close-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:1.4rem;line-height:1;padding:0 4px;}
.close-btn:hover{color:var(--red);}
.profile-panel-tabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--border);padding-bottom:10px;margin-bottom:18px;}
.profile-tab{position:relative;padding:8px 14px;background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:8px;font-family:var(--dw-font-body);font-size:0.78rem;font-weight:700;cursor:pointer;transition:all 0.2s;}
.profile-tab:hover{border-color:var(--accent);color:var(--white);}
.profile-tab.active{background:var(--accent);border-color:var(--accent);color:var(--black);}
.tab-dot{display:inline-block;width:7px;height:7px;background:var(--red,var(--dw-red));border-radius:50%;margin-left:6px;vertical-align:middle;}
.profile-tab-content{min-height:120px;}
.profile-contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;}
.profile-contact-grid>div,.profile-info-card{background:var(--dw-chart-bg);border:1px solid var(--border);border-radius:10px;padding:14px;}
.profile-contact-grid label,.profile-info-card label{display:block;font-size:0.65rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:6px;}
.verified-pill,.pending-pill,.telegram-linked-badge{display:inline-block;padding:4px 9px;border-radius:999px;font-size:0.68rem;font-weight:700;letter-spacing:0.6px;}
.verified-pill{background:rgba(201,162,75,0.14);border:1px solid rgba(201,162,75,0.32);color:var(--accent);}
.pending-pill{background:rgba(240,144,48,0.12);border:1px solid rgba(240,144,48,0.32);color:var(--orange);}
.telegram-linked-badge{background:rgba(36,161,222,0.08);border:1px solid rgba(36,161,222,0.4);color:#24a1de;}
.profile-notes-shell{display:flex;flex-direction:column;gap:16px;}
.profile-notes-actions{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap;}
.profile-notes-actions .progress-textarea{min-width:240px;}
.profile-badge-actions{display:flex;justify-content:flex-start;margin-bottom:14px;}
.membership-state-empty,.membership-state-active,.membership-state-pending{border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:16px;font-size:0.88rem;line-height:1.6;}
.membership-state-empty{background:rgba(255,255,255,0.03);color:var(--muted);}
.membership-state-active{background:rgba(201,162,75,0.08);border-color:rgba(201,162,75,0.25);}
.membership-state-pending{background:rgba(240,144,48,0.08);border-color:rgba(240,144,48,0.25);}
.profile-membership-form{display:flex;flex-direction:column;gap:14px;}
.profile-membership-form label{display:flex;flex-direction:column;gap:6px;font-size:0.72rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);}
.profile-membership-form select,.profile-membership-form input[type=number]{background:var(--dw-mid);border:1px solid #333;color:var(--white);padding:10px 12px;border-radius:8px;font-family:var(--dw-font-body);font-size:0.88rem;outline:none;}
.profile-membership-form select:focus,.profile-membership-form input[type=number]:focus{border-color:var(--accent);}
.profile-slot-picker{border:1px solid var(--border);border-radius:10px;background:var(--black);padding:12px;max-height:380px;overflow-y:auto;}
.membership-pattern-wrap{border:1px solid var(--border);border-radius:10px;background:var(--black);padding:12px;overflow-x:auto;}
.membership-pattern-grid{width:100%;min-width:560px;border-collapse:collapse;table-layout:fixed;}
.membership-pattern-grid th,.membership-pattern-grid td{border-bottom:1px solid rgba(255,255,255,0.06);padding:8px 6px;text-align:center;font-size:0.8rem;}
.membership-pattern-grid thead th{color:var(--accent);font-size:0.72rem;text-transform:uppercase;letter-spacing:1px;}
.membership-pattern-grid .slot-head{text-align:left;color:var(--white);font-weight:700;width:110px;}
.membership-pattern-grid input{accent-color:var(--accent);width:16px;height:16px;cursor:pointer;}
.pattern-cell-disabled{color:var(--muted);opacity:0.42;background:rgba(255,255,255,0.02);}
.pattern-drift-warning{display:none;border-left:2px solid var(--orange);padding:8px 10px;background:rgba(240,144,48,0.08);color:var(--orange);font-size:0.78rem;line-height:1.45;}
.pattern-generated-summary{font-size:0.78rem;color:var(--muted);line-height:1.5;}
.generate-sessions-inline{align-self:flex-start;background:rgba(201,162,75,0.08);border:1px solid rgba(201,162,75,0.35);color:var(--accent);border-radius:8px;padding:9px 14px;font-family:var(--dw-font-body);font-size:0.8rem;font-weight:700;cursor:pointer;}
.generate-sessions-inline:hover{background:rgba(201,162,75,0.14);}
.profile-primary-btn:disabled{opacity:0.45;cursor:not-allowed;}
.slot-week-label{font-size:0.7rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin:10px 0 6px;}
.slot-week-label:first-child{margin-top:0;}
.slot-pick{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;padding:7px 4px;border-bottom:1px solid rgba(255,255,255,0.05);font-size:0.84rem;font-weight:500!important;letter-spacing:0!important;text-transform:none!important;color:var(--white)!important;cursor:pointer;}
.slot-pick:last-child{border-bottom:none;}
.slot-pick.disabled{opacity:0.48;cursor:default;}
.slot-pick input{accent-color:var(--accent);width:15px;height:15px;flex-shrink:0;}
.reserved-tag{font-size:0.68rem;color:var(--accent);margin-left:auto;}
.profile-primary-btn{align-self:flex-start;background:var(--accent);color:var(--black);border:none;border-radius:8px;padding:11px 20px;font-family:var(--dw-font-body);font-size:0.86rem;font-weight:800;cursor:pointer;}
.profile-primary-btn:hover{background:var(--accent-dark);}
.helper-text{font-size:0.78rem;color:var(--muted);line-height:1.6;margin:0;}

/* ── SAVE & SEND INVOICE BUTTON ── */
.inv-send-btn{padding:9px 22px;background:var(--accent);color:var(--black);border:none;border-radius:8px;font-family:var(--dw-font-body);font-size:0.8rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:background 0.2s;}
.inv-send-btn:hover{background:var(--dw-accent-dark);}
.inv-send-btn:disabled{opacity:0.5;cursor:default;}

/* ── MY INVOICES (client side) ── */
.my-invoices{max-width:980px;margin:0 auto;padding:0 32px 48px;}
.my-invoices-title{font-family:var(--dw-font-display);font-size:2rem;letter-spacing:2px;margin-bottom:20px;}
.my-invoices-title span{color:var(--accent);}
.mi-card{background:var(--mid);border:1px solid var(--border);border-radius:14px;padding:22px;margin-bottom:14px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.mi-period{font-family:var(--dw-font-display);font-size:1.4rem;letter-spacing:1px;flex:1;min-width:150px;}
.mi-amount{font-family:var(--dw-font-display);font-size:2rem;color:var(--accent);letter-spacing:1px;}
.mi-meta{flex:2;min-width:180px;}
.mi-lines{font-size:0.8rem;color:var(--muted);line-height:1.8;}
.mi-bank{margin-top:10px;padding:10px 14px;background:var(--dw-fill-confirmed);border-radius:8px;font-size:0.78rem;color:var(--muted);line-height:1.8;}
.mi-bank strong{color:var(--white);}
.mi-date{font-size:0.72rem;color:var(--muted);margin-top:4px;}
.mi-empty{color:var(--muted);font-style:italic;text-align:center;padding:40px 0;}

/* ── CLIENT DASHBOARD ── */
.dash-subtabs{max-width:980px;margin:0 auto 0;padding:0 32px 0;display:flex;gap:8px;flex-wrap:wrap;}
.dash-tab{padding:10px 22px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--muted);font-family:var(--dw-font-body);font-size:0.82rem;font-weight:600;cursor:pointer;transition:all 0.2s;letter-spacing:0.5px;}
.dash-tab.active{background:var(--accent);color:var(--black);border-color:var(--accent);}
.dash-tab:hover:not(.active){border-color:var(--accent);color:var(--white);}
/* v52: red notification badges for tabs */
.tab-notif{background:var(--red);color:var(--white);border-radius:999px;padding:1px 7px;font-size:0.68rem;margin-left:4px;vertical-align:middle;font-weight:700;display:inline-block;min-width:18px;text-align:center;animation:notifPulse 2s ease-in-out 3;}
@keyframes notifPulse{0%,100%{box-shadow:0 0 0 0 rgba(224,80,80,0.4);}50%{box-shadow:0 0 8px 2px rgba(224,80,80,0.6);}}
.dash-body{max-width:980px;margin:0 auto;padding:24px 32px 60px;}
.dash-panel{display:none;}
.dash-panel.active{display:block;}

/* session history cards */
.mys-card{background:var(--mid);border:1px solid var(--border);border-radius:14px;padding:20px 24px;margin-bottom:12px;display:flex;align-items:flex-start;gap:20px;flex-wrap:wrap;}
.mys-date-block{min-width:70px;text-align:center;background:rgba(201,162,75,0.08);border:1px solid rgba(201,162,75,0.2);border-radius:10px;padding:10px 14px;}
.mys-day{font-family:var(--dw-font-display);font-size:2rem;color:var(--accent);line-height:1;}
.mys-month{font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);}
.mys-info{flex:1;min-width:180px;}
.mys-time{font-size:0.9rem;font-weight:700;color:var(--white);margin-bottom:4px;}
.mys-note{font-size:0.78rem;color:var(--accent);margin-top:6px;padding:6px 10px;background:rgba(201,162,75,0.08);border-left:2px solid var(--accent);border-radius:0 6px 6px 0;}
.mys-rating-area{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:160px;}
.mys-stars{display:flex;gap:4px;}
.mys-star{font-size:1.4rem;cursor:pointer;transition:transform 0.15s,opacity 0.15s;opacity:0.3;line-height:1;}
.mys-star.filled{opacity:1;}
.mys-star:hover{transform:scale(1.2);}
.mys-rate-label{font-size:0.68rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);}
.mys-rated-label{font-size:0.72rem;color:var(--accent);font-weight:600;}
.mys-empty{color:var(--muted);font-style:italic;text-align:center;padding:60px 0;font-size:0.9rem;}

/* progress notes client view */
.myp-empty{color:var(--muted);font-style:italic;text-align:center;padding:60px 0;font-size:0.9rem;}
.myp-card{background:var(--mid);border:1px solid var(--border);border-radius:12px;padding:18px 22px;margin-bottom:10px;}
.myp-date{font-size:0.68rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);margin-bottom:8px;}
.myp-text{font-size:0.88rem;line-height:1.7;color:var(--white);}

/* ── v50 UNIFIED TIMELINE ── */
#timeline-list{display:flex;flex-direction:column;gap:10px;}
.inline-notice-banner { margin: 12px 20px; }
.inline-notice-content { background: rgba(255,193,7,0.1); border: 1px solid rgba(255,193,7,0.4); border-radius: 10px; padding: 12px 16px; display: flex; gap: 12px; align-items: center; }
.inline-notice-icon { font-size: 1.2rem; }
.inline-notice-body { flex: 1; color: var(--white); font-size: 0.92rem; }
.inline-notice-date { display: block; font-size: 0.78rem; color: var(--muted); margin-top: 2px; font-weight: 500; }
.inline-notice-dismiss { background: transparent; border: none; color: var(--muted); font-size: 1.4rem; cursor: pointer; padding: 0 8px; }
#progress-timeline-feed { display: flex; flex-direction: column; gap: 14px; padding: 20px; max-width: 820px; margin: 0 auto 60px; }
.prog-entry { display: flex; gap: 16px; padding: 16px 18px; background: rgba(201,162,75,0.06); border: 1px solid rgba(201,162,75,0.18); border-radius: 12px; }
.prog-entry-badge { background: rgba(255,193,7,0.08); border-color: rgba(255,193,7,0.3); }
.prog-date { flex: 0 0 110px; font-size: 0.82rem; color: var(--muted); font-weight: 600; }
.prog-body { flex: 1; }
.prog-title { font-weight: 700; color: var(--white); margin-bottom: 6px; }
.prog-rating { font-size: 0.86rem; color: var(--accent); }
.prog-rating-pending { color: var(--muted); font-style: italic; }
.prog-badges { margin-top: 6px; display: flex; flex-wrap: wrap; gap: 6px; }
.prog-badge { padding: 3px 10px; background: rgba(255,193,7,0.15); border: 1px solid rgba(255,193,7,0.4); color: #ffc107; border-radius: 999px; font-size: 0.78rem; font-weight: 600; }
.prog-note { font-size: 0.84rem; color: var(--muted); margin-top: 4px; font-style: italic; }
.prog-empty { text-align: center; color: var(--muted); padding: 40px; }
#view-account-content { padding: 20px; max-width: 720px; margin: 0 auto; }
.account-section { margin-bottom: 24px; padding: 18px 22px; background: rgba(201,162,75,0.04); border: 1px solid rgba(201,162,75,0.12); border-radius: 12px; }
.account-section h3 { font-family: var(--dw-font-display); font-size: 1.1rem; letter-spacing: 1px; color: var(--accent); margin: 0 0 16px; }
.account-field { display: flex; justify-content: space-between; gap: 14px; padding: 8px 0; border-bottom: 1px solid rgba(201,162,75,0.1); }
.account-field:last-child { border-bottom: none; }
.account-field label { color: var(--muted); font-size: 0.86rem; }
.account-field span { color: var(--white); font-size: 0.92rem; font-weight: 600; text-align: right; overflow-wrap: anywhere; }
.account-tg-linked { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; color: var(--white); }
.account-tg-disconnect { background: transparent; border: 1px solid var(--muted); color: var(--muted); padding: 7px 14px; border-radius: 7px; font-size: 0.82rem; cursor: pointer; }
.account-tg-unlinked p { color: var(--muted); margin: 0 0 12px; font-size: 0.9rem; }
.account-tg-connect { background: #24a1de; color: #fff; border: none; padding: 12px 24px; border-radius: 8px; font-weight: 700; font-size: 0.92rem; cursor: pointer; box-shadow: 0 4px 14px rgba(36,161,222,0.4); }
.account-signout-btn { background: transparent; border: 1px solid var(--red, var(--dw-red)); color: var(--red, var(--dw-red)); padding: 12px 28px; border-radius: 8px; font-weight: 700; font-size: 0.94rem; cursor: pointer; width: 100%; }
.account-signout-btn:hover { background: var(--red, var(--dw-red)); color: var(--white); }
#view-apply-gate { min-height: 80vh; display: flex; align-items: center; justify-content: center; padding: 40px 24px; text-align: center; }
.apply-gate { max-width: 540px; }
.apply-gate h1 { font-family: var(--dw-font-display); font-size: 2.6rem; letter-spacing: 1px; color: var(--white); margin: 0 0 16px; }
.ag-accent { color: var(--accent); }
.apply-gate p { color: var(--muted); font-size: 1rem; margin: 0 0 28px; }
.ag-cta { display: inline-block; background: var(--accent); color: var(--black); padding: 16px 36px; border-radius: 10px; font-weight: 800; font-size: 1.05rem; text-decoration: none; box-shadow: 0 6px 24px rgba(201,162,75,0.35); }
.ag-secondary { font-size: 0.86rem; margin-top: 24px; }
.ag-secondary a { color: var(--muted); text-decoration: none; }
.tl-item{background:var(--mid);border:1px solid var(--border);border-radius:12px;padding:18px 22px;position:relative;}
.tl-note{border-left:3px solid var(--accent);}
.tl-note-text{font-size:0.88rem;line-height:1.7;color:var(--white);}
.tl-badge{display:flex;gap:16px;align-items:center;}
.tl-badge-emoji{font-size:2.2rem;flex-shrink:0;}
.tl-badge-name{font-size:0.95rem;font-weight:700;color:var(--white);}
.tl-badge-cat{font-size:0.65rem;text-transform:uppercase;letter-spacing:1px;background:var(--black);color:var(--accent);padding:2px 8px;border-radius:20px;display:inline-block;}
.tl-badge-info{flex:1;display:flex;flex-direction:column;gap:4px;}
.tl-badge-note{font-size:0.82rem;color:var(--muted);font-style:italic;margin-top:4px;}
.tl-date{font-size:0.68rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);margin-bottom:8px;}
.tl-unseen{border-color:var(--accent);box-shadow:0 0 12px rgba(201,162,75,0.3);animation:badgePulse 2s ease-in-out infinite;}
.tl-new-tag{position:absolute;top:8px;right:10px;font-size:0.6rem;font-weight:700;background:var(--accent);color:var(--black);padding:2px 6px;border-radius:4px;}
.tl-month-header{font-family:var(--dw-font-display);font-size:1.1rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);padding:12px 0 4px 2px;border-bottom:1px solid var(--border);margin-bottom:4px;}
.tl-month-header:first-child{padding-top:0;}
.timeline-empty{text-align:center;color:var(--muted);font-style:italic;padding:60px 20px;font-size:0.9rem;}

/* ── v68 SESSION FEEDBACK (emoji vibes) ── */
.feedback-prompt-card{background:rgba(42,31,0,0.3);border:1px solid rgba(201,162,75,0.3);border-radius:12px;padding:20px;margin-bottom:16px;transition:opacity 0.3s ease;}
.feedback-prompt-card h3{margin:0 0 4px;font-size:1.1rem;font-weight:700;color:var(--dw-white);}
.feedback-prompt-card .fp-session-detail{font-size:0.82rem;color:var(--dw-muted);margin-bottom:16px;}
.vibe-row{display:flex;gap:8px;justify-content:center;margin-bottom:16px;}
.vibe-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;border-radius:12px;border:2px solid transparent;background:transparent;cursor:pointer;transition:all 0.15s;min-width:56px;}
.vibe-btn:hover{transform:scale(1.08);background:rgba(201,162,75,0.08);}
.vibe-btn.selected{border-color:var(--dw-accent);background:rgba(201,162,75,0.15);}
.vibe-btn .vb-emoji{font-size:2rem;line-height:1;}
.vibe-btn .vb-label{font-size:0.62rem;color:rgba(255,255,255,0.7);text-align:center;line-height:1.2;max-width:60px;}
.feedback-textarea{width:100%;box-sizing:border-box;background:rgba(33,26,16,0.65);border:1px solid rgba(255,255,255,0.15);border-radius:8px;color:var(--dw-white);padding:10px 12px;font-size:0.85rem;resize:vertical;min-height:60px;max-height:120px;margin-bottom:12px;font-family:inherit;}
.feedback-textarea::placeholder{color:var(--dw-muted);}
.feedback-textarea:focus{outline:none;border-color:rgba(201,162,75,0.45);}
.feedback-actions{display:flex;align-items:center;justify-content:space-between;}
.feedback-submit{background:var(--dw-accent);color:var(--dw-black);font-weight:700;border:none;border-radius:8px;padding:10px 20px;font-size:0.88rem;cursor:pointer;transition:opacity 0.15s;}
.feedback-submit:disabled{opacity:0.3;cursor:not-allowed;}
.feedback-skip{background:none;border:none;color:var(--dw-muted);font-size:0.82rem;cursor:pointer;padding:8px;}
.feedback-skip:hover{text-decoration:underline;}
.tl-feedback{border-left:3px solid var(--dw-accent);}
.tl-feedback .tl-vibe-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.tl-feedback .tl-vibe-emoji{font-size:1.2rem;}
.tl-feedback .tl-vibe-label{font-weight:700;font-size:0.88rem;color:var(--dw-white);}
.tl-feedback .tl-vibe-date{font-size:0.75rem;color:var(--dw-muted);}
.tl-feedback .tl-vibe-comment{font-size:0.82rem;color:var(--dw-muted);font-style:italic;margin-top:6px;line-height:1.5;}
.feedback-empty{color:var(--muted);font-style:italic;text-align:center;padding:40px 20px;font-size:0.85rem;line-height:1.6;}
.feedback-trend{font-size:1.4rem;letter-spacing:2px;margin-bottom:12px;}
.feedback-section-header{font-size:0.72rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);margin:20px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--border);}

/* ── v49 BADGES (kept for trainer admin badge views) ── */
.badge-collection{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;padding:8px 0;}
.badge-tile{background:var(--mid);border:1px solid var(--border);border-radius:14px;padding:18px 14px;text-align:center;transition:all 0.25s;position:relative;}
.badge-tile:hover{border-color:var(--accent);transform:translateY(-2px);}
.badge-tile .bt-emoji{font-size:2.2rem;line-height:1;margin-bottom:8px;}
.badge-tile .bt-name{font-size:0.72rem;font-weight:700;letter-spacing:0.5px;color:var(--white);margin-bottom:4px;}
.badge-tile .bt-date{font-size:0.62rem;color:var(--muted);letter-spacing:0.5px;}
.badge-tile .bt-disc{font-size:0.6rem;text-transform:uppercase;letter-spacing:0.8px;color:var(--accent);font-weight:700;margin-bottom:4px;}
.badge-tile .bt-by{font-size:0.6rem;color:var(--muted);letter-spacing:0.5px;margin-top:3px;}
.badge-tile .bt-note{font-size:0.68rem;color:var(--accent);margin-top:6px;font-style:italic;line-height:1.4;}
.badge-tile.unseen{border-color:var(--accent);box-shadow:0 0 12px rgba(201,162,75,0.3);animation:badgePulse 2s ease-in-out infinite;}
@keyframes badgePulse{0%,100%{box-shadow:0 0 12px rgba(201,162,75,0.3);}50%{box-shadow:0 0 20px rgba(201,162,75,0.5);}}
.badge-new-tag{position:absolute;top:8px;right:8px;background:var(--accent);color:var(--black);font-size:0.55rem;font-weight:800;padding:2px 6px;border-radius:8px;letter-spacing:1px;text-transform:uppercase;}
.badge-cat-header{font-size:0.68rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin:20px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--border);}
.badge-empty{color:var(--muted);font-style:italic;text-align:center;padding:60px 0;font-size:0.9rem;}
.badge-summary-bar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px;}
.badge-summary-pill{background:var(--mid);border:1px solid var(--border);border-radius:10px;padding:8px 14px;display:flex;align-items:center;gap:6px;font-size:0.78rem;font-weight:600;color:var(--white);}
.badge-summary-pill .bsp-num{color:var(--accent);font-size:1.1rem;font-weight:700;}
/* Trainer award badge button in progress panel */
.award-badge-btn{background:linear-gradient(135deg,#2a1f00,#1a1500);border:1px solid #a78b00;color:#ffd700;border-radius:8px;padding:8px 14px;font-size:0.78rem;font-weight:700;cursor:pointer;transition:all 0.2s;display:inline-flex;align-items:center;gap:6px;}
.award-badge-btn:hover{background:#3a2f00;border-color:#ffd700;}
/* Award badge modal */
.award-modal-badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;max-height:260px;overflow-y:auto;padding:4px 0;}
.award-modal-badge{background:var(--mid);border:2px solid var(--border);border-radius:10px;padding:12px 8px;text-align:center;cursor:pointer;transition:all 0.15s;}
.award-modal-badge:hover{border-color:var(--accent);}
.award-modal-badge.selected{border-color:var(--accent);background:var(--dw-fill-confirmed);box-shadow:0 0 8px rgba(201,162,75,0.3);}
.award-modal-badge .amb-emoji{font-size:1.5rem;margin-bottom:4px;}
.award-modal-badge .amb-name{font-size:0.68rem;font-weight:600;color:var(--white);}
/* Unseen badge notification banner */
.badge-notif-banner{background:linear-gradient(135deg,var(--dw-fill-confirmed),#0d2a2a);border:1px solid var(--accent);border-radius:12px;padding:14px 20px;margin:0 auto 16px;max-width:980px;display:flex;align-items:center;gap:12px;animation:badgePulse 2s ease-in-out infinite;cursor:pointer;}
.badge-notif-banner:hover{background:#2a1f00;}
.badge-notif-emoji{font-size:1.6rem;}
.badge-notif-text{flex:1;font-size:0.88rem;font-weight:600;color:var(--white);}
.badge-notif-text span{color:var(--accent);}
.badge-notif-btn{background:var(--accent);color:var(--black);border:none;border-radius:8px;padding:8px 16px;font-size:0.78rem;font-weight:700;cursor:pointer;}
/* Trainer client table badge column */
.client-badges-mini{display:flex;gap:2px;flex-wrap:wrap;}
.client-badges-mini span{font-size:0.9rem;cursor:default;}

/* ── LOADING BAR ── */
#loading-bar{position:fixed;top:0;left:0;right:0;height:3px;background:transparent;z-index:9999;pointer-events:none;}
#loading-bar.loading-active{background:linear-gradient(90deg,var(--accent),var(--accent-light),var(--accent));background-size:200%;animation:loadbar 1.2s linear infinite;}
@keyframes loadbar{0%{background-position:100%}100%{background-position:-100%}}

@media print{
  header,.nav-tabs,.admin-subtabs,.billing-controls,.no-print,#toast{display:none!important;}
  body{background:#fff;color:#000;}
  /* Show only the selected invoice when printing single */
  body[data-print-invoice]:not([data-print-invoice="all"]) .invoice-card{display:none!important;}
  body[data-print-invoice]:not([data-print-invoice="all"]) .invoice-card[id]{display:none!important;}
  body[data-print-invoice]:not([data-print-invoice="all"]) #invoices-container > *{display:none!important;}

  .invoice-card{background:#fff!important;border:1px solid #ddd!important;color:#000!important;border-radius:0!important;page-break-after:always;max-width:100%;padding:30px!important;}
  .inv-brand{color:#000!important;}
  .inv-meta-val{color:#000!important;}
  .inv-meta-label{color:#555!important;}
  .inv-note div{color:#333!important;}
  .inv-note-label{color:#000!important;}
  .inv-contact{color:#555!important;}
  .inv-table th{color:#555!important;background:#f5f5f5!important;}
  .inv-table td{color:#000!important;border-color:#ccc!important;}
  .inv-table th{border-color:#ccc!important;}
  .inv-desc-input{color:#000!important;}
  .inv-num-input{background:#f5f5f5!important;color:#000!important;border-color:#ccc!important;}
  .inv-subtotal{color:#000!important;}
  .inv-grand-label{color:#a8863a!important;}
  .inv-grand-amt{color:#000!important;}
  .inv-sig-line{border-color:#000!important;}
  .inv-sig-name{color:#000!important;}
  .inv-sig-title{color:#555!important;}
  .inv-corner-teal{background:var(--dw-accent)!important;}
  .billing-report{display:block!important;}
  .inv-divider{display:none!important;}
  .report-header{display:none!important;}
  .inv-footer{border-top-color:#ccc!important;}
}

/* ===== MOBILE TOP BAR (logged-out, mobile only) ===== */
.mobile-top-bar {
  display: none; /* Hidden on desktop */
}

/* v111: Compact client app header shown only while the authenticated client shell is active. */
#client-app-header { display: none; }

body.client-shell-active #client-app-header {
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 350;
  padding: 10px 16px;
  padding-top: calc(10px + env(safe-area-inset-top, 0px));
  padding-left: calc(16px + env(safe-area-inset-left, 0px));
  padding-right: calc(16px + env(safe-area-inset-right, 0px));
  background: rgba(11, 9, 7, 0.97);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(201, 162, 75, 0.2);
  min-height: 62px;
  align-items: center;
  gap: 12px;
}

body.client-shell-active #client-app-header .cah-left,
body.client-shell-active #client-app-header .cah-right { flex: 0 0 auto; }

body.client-shell-active #client-app-header .cah-centre {
  flex: 1 1 auto;
  min-width: 0;
  text-align: center;
}

body.client-shell-active #client-app-header .cah-logo {
  height: 32px;
  width: 32px;
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(201,162,75,0.35);
}

body.client-shell-active #client-app-header .cah-title {
  font-family: var(--dw-font-display);
  font-size: 1.25rem;
  letter-spacing: 1px;
  margin: 0;
  color: var(--white);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

body.client-shell-active #client-app-header .cah-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(201,162,75,0.4);
  background: var(--mid);
  color: var(--accent);
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

body.client-shell-active header:not(#client-app-header),
body.client-shell-active #mobile-top-bar {
  display: none !important;
}

/* v126.1: Desktop client portal nav fix — restore regular <header> (with desktop-only-nav)
   on desktop screens; hide simplified #client-app-header on desktop. Mobile (≤640px) keeps
   client-app-header + mobile-bottom-nav as before. */
@media (min-width: 641px) {
  body.client-shell-active header:not(#client-app-header) {
    display: flex !important;
  }
  body.client-shell-active #mobile-top-bar { display: none !important; }
  body.client-shell-active #client-app-header { display: none !important; }
  body.client-shell-active #view-client,
  body.client-shell-active #view-dashboard,
  body.client-shell-active #view-noticeboard,
  body.client-shell-active #view-membership,
  body.client-shell-active #view-invoices,
  body.client-shell-active #view-progress,
  body.client-shell-active #view-shop,
  body.client-shell-active #view-account {
    padding-top: 0 !important;
  }
}

body.client-shell-active #view-client,
body.client-shell-active #view-dashboard,
body.client-shell-active #view-noticeboard,
body.client-shell-active #view-membership,
body.client-shell-active #view-invoices,
body.client-shell-active #view-progress,
body.client-shell-active #view-shop,
body.client-shell-active #view-account {
  padding-top: var(--client-shell-top);
}

body.client-shell-active #view-client .client-hero h1,
body.client-shell-active #view-dashboard .client-hero h1,
body.client-shell-active #view-noticeboard .client-hero h1,
body.client-shell-active #view-membership .client-hero h1,
body.client-shell-active #view-invoices .client-hero h1,
body.client-shell-active #view-progress .client-hero h1,
body.client-shell-active #view-shop .client-hero h1,
body.client-shell-active #view-account .client-hero h1 {
  display: none;
}

body.client-shell-active #view-client .client-hero,
body.client-shell-active #view-dashboard .client-hero,
body.client-shell-active #view-noticeboard .client-hero,
body.client-shell-active #view-membership .client-hero,
body.client-shell-active #view-invoices .client-hero,
body.client-shell-active #view-progress .client-hero,
body.client-shell-active #view-shop .client-hero,
body.client-shell-active #view-account .client-hero {
  padding-top: 8px;
  padding-bottom: 12px;
}

@media (min-width: 768px) {
  body.client-shell-active #client-app-header {
    padding-left: 32px;
    padding-right: 32px;
  }

  body.client-shell-active #client-app-header .cah-title {
    font-size: 1.5rem;
  }
}

.cah-sheet[hidden] { display: none; }
.cah-sheet { position: fixed; inset: 0; z-index: 1100; }
.cah-sheet-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.55); }
.cah-sheet-panel {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--mid);
  border-top: 1px solid rgba(201,162,75,0.3);
  border-radius: 16px 16px 0 0;
  padding: 16px 16px calc(16px + env(safe-area-inset-bottom, 0px));
  max-height: 80vh;
  overflow-y: auto;
}
.cah-sheet-header { display: flex; align-items: center; gap: 12px; }
.cah-sheet-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--black);
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
.cah-sheet-name { color: var(--white); font-weight: 800; }
.cah-sheet-meta { color: var(--muted); font-size: 0.82rem; margin-top: 2px; }
.cah-sheet-close {
  margin-left: auto;
  width: 44px;
  height: 44px;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: transparent;
  color: var(--muted);
  font-size: 1.4rem;
  cursor: pointer;
}
.cah-sheet-list { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 8px; }
.cah-sheet-list button {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--mid2);
  color: var(--white);
  font-family: var(--dw-font-body);
  font-weight: 700;
  text-align: left;
  padding: 12px 14px;
  cursor: pointer;
}
.cah-sheet-list button:hover { border-color: var(--accent); color: var(--accent); }
.cah-sheet-list .cah-action-danger { border-color: rgba(224,80,80,0.35); color: var(--red); }
@media (min-width: 768px) {
  .cah-sheet-panel {
    left: 50%;
    right: auto;
    bottom: auto;
    top: 80px;
    transform: translateX(-50%);
    width: min(420px, calc(100% - 32px));
    border-radius: 16px;
    border: 1px solid rgba(201,162,75,0.3);
  }
}

.portal-mobile-nav,
.portal-more-sheet{display:none;}

@media (max-width: 640px) {
  /* v62 fix: Chrome portrait compat — !important + -webkit-sticky + simplified background */
  .mobile-top-bar {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 350;
    padding: 12px 16px;
    padding-top: calc(12px + env(safe-area-inset-top, 0px));
    padding-left: calc(16px + env(safe-area-inset-left, 0px));
    padding-right: calc(16px + env(safe-area-inset-right, 0px));
    background: var(--dw-black);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(201, 162, 75, 0.2);
    min-height: 62px;
  }

  .mobile-top-bar.mtb-hidden {
    display: none !important;
  }

  .mtb-link {
    background: transparent;
    border: none;
    color: var(--muted, var(--dw-muted));
    font-size: 0.85rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    min-height: 44px;
    min-width: 44px;
    display: inline-flex;
    align-items: center;
    padding: 8px 4px;
    -webkit-tap-highlight-color: transparent;
  }

  .mtb-book {
    flex: 1;
    justify-content: flex-start;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-right: 12px;
  }

  .mtb-signin,
  .mtb-signout {
    flex-shrink: 0;
    white-space: nowrap;
  }

  .mtb-link:active {
    opacity: 0.7;
  }

  .mtb-book {
    color: var(--accent, var(--dw-accent));
  }

  /* v62: Sign Out styling in mobile top bar */
  .mtb-signout {
    color: var(--red, var(--dw-red));
  }

  .mtb-icon {
    margin-right: 4px;
  }

  .mobile-bottom-nav.nav-hidden { display: none !important; }
  .portal-mobile-nav{
    position:fixed;bottom:0;left:0;right:0;z-index:1001;display:none;justify-content:space-around;background:rgb(15,25,25);
    border-top:1px solid rgba(201,162,75,0.3);padding:6px 0 env(safe-area-inset-bottom,6px);gap:0;
  }
  .portal-mobile-nav.nav-visible{display:flex;}
  .portal-mobile-nav .portal-nav-btn{
    flex:1;min-width:0;background:transparent;border:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:3px;padding:6px 2px;min-height:58px;font-family:var(--dw-font-body);font-size:0.68rem;font-weight:600;cursor:pointer;
  }
  .portal-mobile-nav .portal-nav-btn.active{color:var(--accent);}
  .portal-mobile-nav .portal-nav-btn .nav-icon{font-size:1.28rem;line-height:1;}
  .portal-more-sheet{
    position:fixed;inset:0;z-index:1002;background:rgba(0,0,0,0.65);align-items:flex-end;justify-content:center;padding:16px;
    backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  }
  .portal-more-sheet.open{display:flex;}
  .portal-more-sheet-card{
    width:100%;max-width:420px;background:var(--mid);border:1px solid var(--border);border-radius:18px 18px 12px 12px;padding:14px 14px calc(14px + env(safe-area-inset-bottom,0px));
    box-shadow:0 -12px 40px rgba(0,0,0,0.35);
  }
  .portal-more-sheet-handle{width:44px;height:4px;border-radius:999px;background:rgba(130,160,160,.35);margin:0 auto 12px;}
  .portal-more-sheet-title{font-size:0.82rem;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:12px;padding:0 4px;}
  .portal-more-sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .portal-more-sheet-grid.single-col{grid-template-columns:1fr;}
  .portal-more-action{
    display:flex;align-items:center;gap:10px;background:var(--mid2);border:1px solid var(--border);color:var(--white);border-radius:12px;padding:14px 12px;text-align:left;
    font-family:var(--dw-font-body);font-size:0.88rem;font-weight:700;cursor:pointer;min-height:54px;
  }
  .portal-more-action.active{border-color:var(--accent);color:var(--accent);}
  .portal-more-action.danger{border-color:rgba(224,80,80,0.35);color:var(--red);}
  body.portal-nav-active{padding-bottom:78px !important;}
  body.portal-nav-active #toast{bottom:90px;}
}

@media(max-width:640px){
  header{padding:14px 16px;flex-wrap:wrap;gap:10px;}
  .header-auth { display: none; }

  .client-hero,.week-nav,.sessions-grid,.admin-header,.admin-subview,.admin-subtabs,.dash-subtabs,.dash-body{padding-left:16px;padding-right:16px;}
}
/* v55: Two-row tab wrap for 6 admin tabs on mobile */
@media(max-width:480px){
  .admin-subtabs{flex-wrap:wrap;gap:4px;}
  .admin-subtabs .subtab{flex:1 1 30%;font-size:0.75rem;padding:8px 4px;text-align:center;white-space:nowrap;}
}

/* ══ v58 UX & ACCESSIBILITY FIXES ══ */

/* v58 Fix 1: Toast success variant */
#toast.success{background:#2ecc71;color:#fff;}

/* v58 Fix 2: Touch targets — 44px minimum on all interactive elements */
.nav-tab{min-height:44px;display:inline-flex;align-items:center;justify-content:center;}
.user-pill{min-height:44px;}
.user-pill .sign-out-link{min-height:44px;display:inline-flex;align-items:center;padding:4px 8px;}
.week-nav button{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:1.25rem;}
.dash-tab{min-height:44px;display:inline-flex;align-items:center;}

/* v58 Fix 3: Past session styling */
.session-card.session-past{opacity:0.4;filter:grayscale(40%);pointer-events:none;position:relative;}
.session-card.session-past .sc-book-btn{display:none;}
.session-group-label{font-family:var(--dw-font-display);font-size:0.85rem;color:var(--muted);letter-spacing:2px;text-transform:uppercase;margin:20px 0 10px;grid-column:1/-1;}

/* v58 Fix 5: Focus indicators for keyboard nav */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}

/* v59 Fix: Mobile account button — hidden on desktop, visible in mobile bottom nav */
.mobile-account-tab{display:none;}
.mobile-account-tab.mob-hidden{display:none;}

/* v58 Fix 6: Mobile bottom navigation */
@media(max-width:640px){
  /* v93d: Hide desktop nav, show mobile bottom nav */
  .desktop-only-nav{display:none!important;}
  .mobile-bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:1000;display:flex!important;justify-content:space-around;background:rgb(15,25,25);border-top:1px solid rgba(201,162,75,0.3);border-radius:0;padding:6px 0 env(safe-area-inset-bottom,6px);gap:0;}
  .mobile-bottom-nav{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);}
  .mobile-bottom-nav .nav-tab{flex-direction:column;font-size:0.62rem;padding:4px 2px;min-height:52px;gap:1px;border-radius:0;background:transparent!important;letter-spacing:0;flex:1;min-width:0;text-align:center;}
  /* v93d: Show icons + short labels on mobile, hide full labels */
  .mobile-bottom-nav .tab-icon{display:block;font-size:1.2rem;line-height:1;}
  .mobile-bottom-nav .tab-label-full{display:none;}
  .mobile-bottom-nav .tab-label-short{display:block;overflow:hidden;text-overflow:ellipsis;}
  .nav-tab.active{background:transparent!important;color:var(--accent);border-bottom:2px solid var(--accent);}
  .nav-tab:not(.active){color:var(--muted);}
  /* Hide logo and user pill in header on mobile — sign-out is in mobile bottom nav */
  header .logo{display:none;}
  header .user-pill{display:none;}
  /* v59: Show mobile account tab in bottom nav (sign-in or sign-out) */
  .mobile-account-tab{display:inline-flex;}
  .mobile-account-tab.mob-hidden{display:none;}
  header{border-bottom:none;padding:0;position:static;background:transparent;}
  /* Add bottom padding so content doesn't hide behind fixed nav */
  body{padding-bottom:68px;}
  /* Toast above mobile nav */
  #toast{bottom:80px;right:16px;left:16px;max-width:none;}
  /* Session grid single column on mobile */
  .sessions-grid{grid-template-columns:1fr!important;gap:12px;}
  /* Membership checkboxes single column */
  .mem-slot-grid{grid-template-columns:1fr!important;}
  body.portal-nav-active .admin-subtabs{display:none!important;}

  body.client-shell-active #view-client,
  body.client-shell-active #view-dashboard,
  body.client-shell-active #view-noticeboard,
  body.client-shell-active #view-membership,
  body.client-shell-active #view-invoices,
  body.client-shell-active #view-progress,
  body.client-shell-active #view-shop,
  body.client-shell-active #view-account{
    padding-top:var(--client-shell-top);
    padding-bottom:88px;
  }

  body.client-shell-active #view-client .client-hero,
  body.client-shell-active #view-dashboard .client-hero,
  body.client-shell-active #view-noticeboard .client-hero,
  body.client-shell-active #view-membership .client-hero,
  body.client-shell-active #view-invoices .client-hero,
  body.client-shell-active #view-progress .client-hero,
  body.client-shell-active #view-shop .client-hero,
  body.client-shell-active #view-account .client-hero{
    padding-top:8px;
    padding-bottom:12px;
    min-height:auto;
  }

  body.client-shell-active #view-dashboard .client-hero p,
  body.client-shell-active #view-noticeboard .client-hero p,
  body.client-shell-active #view-membership .client-hero p,
  body.client-shell-active #view-invoices .client-hero p,
  body.client-shell-active #view-progress .client-hero p,
  body.client-shell-active #view-shop .client-hero p,
  body.client-shell-active #view-account .client-hero p{
    max-width:100%;
  }

  body.client-shell-active .dash-subtabs{
    position:sticky;
    top:var(--client-shell-top);
    z-index:220;
    margin:0;
    padding-top:12px;
    padding-bottom:12px;
    background:rgba(11,9,7,0.96);
    border-bottom:1px solid rgba(201,162,75,0.16);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    flex-wrap:nowrap;
    overflow-x:auto;
    scrollbar-width:none;
  }

  body.client-shell-active .dash-subtabs::-webkit-scrollbar{display:none;}
  body.client-shell-active .dash-tab{flex:0 0 auto;}
  body.client-shell-active .dash-body{padding-top:18px;padding-bottom:104px;}
  body.client-shell-active .my-invoices{padding-left:0;padding-right:0;}
}



/* v63: Hide app chrome by default */
header, #mobile-top-bar { display: none; }
/* v104: Location chooser splash */
.location-splash {
  position: fixed; inset: 0; z-index: 9000;
  background: #0a0a0a; color: #fff;
  display: none; align-items: center; justify-content: center;
  padding: 24px;
}
.location-splash.active { display: flex; }
.location-splash-inner { max-width: 560px; width: 100%; text-align: center; }
.location-splash-title { font-size: 2rem; font-weight: 600; margin: 0 0 32px; }
.location-splash-options { display: flex; flex-direction: column; gap: 16px; margin-bottom: 32px; }
.location-card {
  flex: 1; padding: 24px; border: 1px solid var(--dw-border-hover); border-radius: 12px;
  background: var(--dw-mid); color: #fff; cursor: pointer; text-align: left;
  font-family: inherit; min-height: 88px;
  transition: border-color 120ms, transform 120ms;
}
.location-card:hover, .location-card:focus-visible {
  border-color: var(--dw-accent); transform: translateY(-1px); outline: none;
}
.location-card-eyebrow { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.08em; opacity: 0.6; margin-bottom: 4px; }
.location-card-name { font-size: 1.25rem; font-weight: 600; margin-bottom: 4px; }
.location-card-meta { font-size: 0.8rem; opacity: 0.55; margin-bottom: 12px; }
.location-card-cta { font-size: 0.875rem; color: var(--dw-accent); }
@media (min-width: 640px) {
  .location-splash-options { flex-direction: row; flex-wrap: wrap; justify-content: center; }
  .location-card { flex: 1 1 200px; min-width: 200px; max-width: 280px; }
}
.location-splash-tagline { font-size: 0.9rem; opacity: 0.6; margin: 0; }
/* ═══ LANDING PAGE STYLES v63 ═══ */
#view-landing{background:var(--black,var(--dw-black))}
#view-landing .landing-nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:calc(16px + env(safe-area-inset-top,0px)) 32px 16px;background:rgba(11,9,7,.85);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border,var(--dw-border))}
#view-landing .landing-nav-logo{font-family:var(--dw-font-display);font-size:1.5rem;letter-spacing:2px;color:var(--white,var(--dw-white));text-decoration:none}
#view-landing .landing-nav-logo span{color:var(--accent,var(--dw-accent))}
#view-landing .landing-nav-links{display:flex;gap:32px;align-items:center}
#view-landing .landing-nav-links a{color:var(--muted,var(--dw-muted));text-decoration:none;font-size:.88rem;font-weight:500;letter-spacing:.5px;transition:color .2s}
#view-landing .landing-nav-links a:hover{color:var(--white,var(--dw-white))}
#view-landing a.landing-nav-cta{background:0 0;border:1px solid var(--accent,var(--dw-accent));color:var(--accent,var(--dw-accent));padding:8px 20px;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s;text-decoration:none}
#view-landing a.landing-nav-cta:hover{background:var(--accent,var(--dw-accent));color:var(--black,var(--dw-black))}
#view-landing .landing-hamburger{display:none;align-items:center;justify-content:center;width:44px;height:44px;background:0 0;border:none;cursor:pointer;padding:10px;border-radius:8px;transition:background .2s}
#view-landing .landing-hamburger:hover{background:var(--mid,var(--dw-mid))}
#view-landing .landing-hamburger-lines{display:flex;flex-direction:column;gap:5px}
#view-landing .landing-hamburger-lines span{display:block;width:22px;height:2px;background:var(--white,var(--dw-white));border-radius:2px;transition:all .3s}
#view-landing .landing-hero-wrapper{position:relative;min-height:100vh;overflow:hidden}
#view-landing .landing-hero-bg{position:absolute;inset:0;z-index:0;background:url('/images/hero-training.jpeg') center/cover no-repeat}
#view-landing .landing-hero-bg::before{content:'';position:absolute;inset:0;background:linear-gradient(to right,rgba(11,9,7,.92) 0%,rgba(11,9,7,.75) 50%,rgba(11,9,7,.55) 100%),radial-gradient(ellipse 80% 60% at 70% 40%,rgba(201,162,75,.12) 0%,transparent 60%)}
#view-landing .landing-hero-bg::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 120px,rgba(46,37,24,.15) 120px,rgba(46,37,24,.15) 121px),repeating-linear-gradient(90deg,transparent,transparent 120px,rgba(46,37,24,.08) 120px,rgba(46,37,24,.08) 121px);opacity:.5}
#view-landing .landing-accent-shape{position:absolute;top:15%;right:5%;width:400px;height:400px;border:1px solid rgba(201,162,75,.08);border-radius:50%;z-index:0}
#view-landing .landing-accent-shape::before{content:'';position:absolute;top:40px;left:40px;right:40px;bottom:40px;border:1px solid rgba(201,162,75,.05);border-radius:50%}
#view-landing .landing-accent-ring{position:absolute;bottom:20%;right:15%;width:200px;height:200px;border:1px solid rgba(201,162,75,.06);border-radius:50%;z-index:0}
#view-landing .landing-hero{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:calc(120px + env(safe-area-inset-top,0px)) 32px 80px;max-width:900px;margin:0 auto}
#view-landing .landing-hero-label{font-size:.82rem;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--accent,var(--dw-accent));margin-bottom:24px}
#view-landing .landing-hero h1{font-family:var(--dw-font-display);font-size:clamp(3rem,8vw,5.5rem);line-height:.95;letter-spacing:2px;color:var(--white,var(--dw-white));margin-bottom:28px}
#view-landing .landing-hero h1 em{font-style:normal;color:var(--accent,var(--dw-accent))}
#view-landing .landing-hero-sub{font-size:1.1rem;color:var(--muted,var(--dw-muted));max-width:600px;line-height:1.7;margin-bottom:40px}
#view-landing .audience-gate-badge {
  display: inline-block;
  padding: 6px 12px;
  background: rgba(212, 175, 55, 0.12);
  color: var(--dw-accent);
  border: 1px solid rgba(212, 175, 55, 0.4);
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  margin: 12px 0 8px;
}
#view-landing .audience-gate-note {
  font-size: 0.875rem;
  opacity: 0.7;
  margin: 0 0 24px;
}
#view-landing .audience-gate-badge[hidden] { display: none; }
#view-landing .landing-hero-cta{display:inline-flex;align-items:center;gap:10px;background:var(--accent,var(--dw-accent));color:var(--black,var(--dw-black));padding:14px 32px;border-radius:10px;font-size:1rem;font-weight:700;text-decoration:none;transition:all .25s;border:none;cursor:pointer}
#view-landing .landing-hero-cta:hover{background:var(--accent-light,var(--dw-accent-light));transform:translateY(-2px);box-shadow:0 8px 30px rgba(201,162,75,.25)}
#view-landing .landing-hero-cta svg{width:18px;height:18px;transition:transform .2s}
#view-landing .landing-hero-cta:hover svg{transform:translateX(3px)}
#view-landing .landing-install-card{display:none;margin-top:20px;max-width:520px;background:linear-gradient(135deg,rgba(201,162,75,.12) 0%,rgba(201,162,75,.05) 100%);border:1px solid rgba(201,162,75,.35);border-radius:14px;padding:18px 18px 16px}
#view-landing .landing-install-card.visible{display:block}
#view-landing .landing-install-card h3{font-size:1rem;font-weight:800;color:var(--white,var(--dw-white));margin-bottom:6px}
#view-landing .landing-install-card p{font-size:.9rem;color:var(--muted,var(--dw-muted));line-height:1.6;margin-bottom:14px}
#view-landing .landing-install-steps{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
#view-landing .landing-install-step{display:flex;gap:10px;align-items:flex-start;color:var(--white,var(--dw-white));font-size:.88rem;line-height:1.5}
#view-landing .landing-install-step-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;border-radius:50%;background:var(--accent,var(--dw-accent));color:var(--black,var(--dw-black));font-size:.72rem;font-weight:800;margin-top:1px}
#view-landing .landing-install-actions{display:flex;gap:10px;flex-wrap:wrap}
#view-landing .landing-install-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent,var(--dw-accent));color:var(--black,var(--dw-black));padding:12px 16px;border-radius:10px;font-size:.9rem;font-weight:800;border:none;cursor:pointer}
#view-landing .landing-install-btn:hover{background:var(--accent-light,var(--dw-accent-light))}
#view-landing .landing-install-dismiss{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--muted,var(--dw-muted));padding:12px 16px;border-radius:10px;font-size:.85rem;font-weight:700;border:1px solid var(--border,var(--dw-border));cursor:pointer}
#view-landing .landing-install-dismiss:hover{color:var(--white,var(--dw-white));border-color:var(--accent,var(--dw-accent))}
#view-landing .landing-hero-scroll{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);color:var(--muted,var(--dw-muted));font-size:.75rem;letter-spacing:2px;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:8px;opacity:.6;z-index:1}
#view-landing .landing-hero-scroll .line{width:1px;height:40px;background:linear-gradient(to bottom,var(--muted,var(--dw-muted)),transparent)}
#view-landing .landing-section{padding:100px 32px;max-width:900px;margin:0 auto}
#view-landing .landing-section-label{font-size:.78rem;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--accent,var(--dw-accent));margin-bottom:16px}
#view-landing .landing-section-title{font-family:var(--dw-font-display);font-size:clamp(2rem,5vw,3rem);letter-spacing:1.5px;color:var(--white,var(--dw-white));margin-bottom:40px}
#view-landing .landing-about-layout{display:grid;grid-template-columns:280px 1fr;gap:48px;align-items:start}
#view-landing .landing-about-photo{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:3/4;background:var(--mid,var(--dw-mid));border:1px solid var(--border,var(--dw-border))}
#view-landing .landing-about-photo-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted,var(--dw-muted));text-align:center;padding:24px}
#view-landing .landing-about-photo-placeholder svg{width:48px;height:48px;opacity:.4}
#view-landing .landing-about-photo-placeholder span{font-size:.78rem;opacity:.5;letter-spacing:1px;text-transform:uppercase}
#view-landing .landing-about-photo-accent{position:absolute;bottom:-8px;right:-8px;width:100%;height:100%;border:1px solid var(--accent,var(--dw-accent));border-radius:14px;opacity:.15;z-index:-1}
#view-landing .landing-about-content{display:flex;flex-direction:column;gap:24px}
#view-landing .landing-about-text p{color:var(--muted,var(--dw-muted));font-size:1.05rem;line-height:1.8;margin-bottom:20px}
#view-landing .landing-about-text p:first-child{color:var(--white,var(--dw-white));font-size:1.15rem;font-weight:500}
#view-landing .landing-about-text .highlight{color:var(--white,var(--dw-white));font-weight:500}
#view-landing .landing-disciplines{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
#view-landing .landing-discipline-tag{padding:8px 18px;background:var(--mid,var(--dw-mid));border:1px solid var(--border,var(--dw-border));border-radius:30px;font-size:.82rem;font-weight:600;color:var(--accent,var(--dw-accent));letter-spacing:1px;text-transform:uppercase}
#view-landing .landing-divider{max-width:900px;margin:0 auto;padding:0 32px}
#view-landing .landing-divider hr{border:none;height:1px;background:var(--border,var(--dw-border))}
#view-landing .landing-steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
#view-landing .landing-step-card{background:var(--mid,var(--dw-mid));border:1px solid var(--border,var(--dw-border));border-radius:14px;padding:32px 28px;transition:all .3s}
#view-landing .landing-step-card:hover{border-color:var(--accent,var(--dw-accent));transform:translateY(-4px);box-shadow:0 12px 40px rgba(201,162,75,.08)}
#view-landing .landing-step-icon{width:48px;height:48px;background:rgba(201,162,75,.1);border:1px solid rgba(201,162,75,.2);border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:20px}
#view-landing .landing-step-icon svg{width:24px;height:24px;color:var(--accent,var(--dw-accent))}
#view-landing .landing-step-number{font-family:var(--dw-font-display);font-size:1.5rem;color:var(--accent,var(--dw-accent));line-height:1;margin-bottom:8px;opacity:.4}
#view-landing .landing-step-card h3{font-size:1.1rem;font-weight:700;margin-bottom:10px;color:var(--white,var(--dw-white))}
#view-landing .landing-step-card p{font-size:.92rem;color:var(--muted,var(--dw-muted));line-height:1.6}
#view-landing .landing-diff-grid{display:grid;grid-template-columns:1fr;gap:32px}
#view-landing .landing-diff-item{display:grid;grid-template-columns:4px 1fr;gap:24px}
#view-landing .landing-diff-bar{background:linear-gradient(to bottom,var(--accent,var(--dw-accent)),transparent);border-radius:2px}
#view-landing .landing-diff-content h3{font-size:1.1rem;font-weight:700;color:var(--white,var(--dw-white));margin-bottom:8px}
#view-landing .landing-diff-content p{font-size:.95rem;color:var(--muted,var(--dw-muted));line-height:1.7}
#view-landing .qualification { padding: 80px 32px; max-width: 960px; margin: 0 auto; }
#view-landing .qualification h2 { font-family:var(--dw-font-display);font-size:clamp(2rem,5vw,3rem);letter-spacing:1.5px;color:var(--white,var(--dw-white));margin-bottom:24px; }
#view-landing .qualification-cols { display: grid; gap: 32px; grid-template-columns: 1fr; margin: 24px 0; }
@media (min-width: 768px) { #view-landing .qualification-cols { grid-template-columns: 1fr 1fr; } }
#view-landing .qualification-col h3 { font-size: 1.125rem; font-weight: 600; margin-bottom: 12px; }
#view-landing .qualification-col ul { padding-left: 20px; line-height: 1.6; color:var(--muted,var(--dw-muted)); }
#view-landing .qualification-col li { margin-bottom: 8px; }
#view-landing .qualification-tagline { font-style: italic; opacity: 0.7; margin-top: 24px; }
#view-landing .pricing { padding: 80px 32px; max-width: 900px; margin: 0 auto; text-align:center; }
#view-landing .pricing h2 { font-family:var(--dw-font-display);font-size:clamp(2rem,5vw,3rem);letter-spacing:1.5px;color:var(--white,var(--dw-white));margin-bottom:24px; }
#view-landing .pricing-block { margin-bottom: 24px; }
#view-landing .pricing-line { color: var(--white,var(--dw-white)); font-size: 1.1rem; line-height: 1.8; }
#view-landing .pricing-line strong { color: var(--accent,var(--dw-accent)); }
#view-landing .pricing-ctas { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-bottom:20px; }
#view-landing .pricing-note { color:var(--muted,var(--dw-muted)); font-size:.95rem; }
#view-landing .btn-primary,#view-landing .btn-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 24px;border-radius:10px;font-size:.95rem;font-weight:700;text-decoration:none;transition:all .2s;border:1px solid var(--accent,var(--dw-accent));cursor:pointer}
#view-landing .btn-primary{background:var(--accent,var(--dw-accent));color:var(--black,var(--dw-black))}
#view-landing .btn-secondary{background:transparent;color:var(--accent,var(--dw-accent))}
#view-landing .btn-primary:hover,#view-landing .btn-secondary:hover{transform:translateY(-1px)}
#view-landing .landing-testimonials{background:var(--mid,var(--dw-mid));padding:100px 32px;max-width:100%;margin:0}
#view-landing .landing-testimonials-inner{max-width:900px;margin:0 auto}
#view-landing .landing-quotes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
#view-landing .landing-quote-card{background:var(--black,var(--dw-black));border:1px solid var(--border,var(--dw-border));border-radius:14px;padding:32px 28px;position:relative}
#view-landing .landing-quote-mark{font-family:var(--dw-font-display);font-size:4rem;color:var(--accent,var(--dw-accent));line-height:1;opacity:.3;position:absolute;top:16px;left:24px}
#view-landing .landing-quote-card p{font-size:1rem;color:var(--white,var(--dw-white));line-height:1.7;font-style:italic;position:relative;z-index:1;padding-top:24px}
#view-landing .landing-quote-card footer{font-size:.85rem;color:var(--accent,var(--dw-accent));margin-top:18px;position:relative;z-index:1}
#view-landing .schedule-public { padding: 80px 32px; max-width: 900px; margin: 0 auto; }
#view-landing .schedule-public h2 { font-family:var(--dw-font-display);font-size:clamp(2rem,5vw,3rem);letter-spacing:1.5px;color:var(--white,var(--dw-white));margin-bottom:28px;text-align:center; }
#view-landing .schedule-day { border:1px solid var(--border,var(--dw-border)); border-radius:14px; margin-bottom:16px; overflow:hidden; background:var(--mid,var(--dw-mid)); }
#view-landing .schedule-day-label { padding:16px 18px; font-size:1rem; color:var(--white,var(--dw-white)); border-bottom:1px solid var(--border,var(--dw-border)); }
#view-landing .schedule-list { list-style:none; padding:0; margin:0; }
#view-landing .schedule-row { display:grid; grid-template-columns:76px 1fr 110px 100px 76px; gap:12px; align-items:center; padding:14px 18px; border-bottom:1px solid rgba(46,37,24,.6); color:var(--muted,var(--dw-muted)); font-size:.9rem; }
#view-landing .schedule-row:last-child { border-bottom:0; }
#view-landing .schedule-time,#view-landing .schedule-type { color:var(--white,var(--dw-white)); font-weight:700; }
#view-landing .schedule-spots { color:var(--accent,var(--dw-accent)); font-weight:700; }
#view-landing .schedule-full { color:var(--orange,var(--dw-orange)); font-weight:700; }
#view-landing .schedule-book { color:var(--black,var(--dw-black)); background:var(--accent,var(--dw-accent)); text-decoration:none; text-align:center; padding:8px 10px; border-radius:8px; font-weight:800; }
#view-landing .schedule-note,.schedule-loading,.schedule-empty,.schedule-error { color:var(--muted,var(--dw-muted)); text-align:center; line-height:1.6; }
#view-landing .landing-footer-cta{text-align:center;padding:100px 32px 60px;max-width:900px;margin:0 auto}
#view-landing .landing-footer-cta .landing-section-title{margin-bottom:12px}
#view-landing .landing-footer-cta-sub{color:var(--muted,var(--dw-muted));font-size:1rem;margin-bottom:36px}
#view-landing .landing-footer{padding:32px;border-top:1px solid var(--border,var(--dw-border));text-align:center}
#view-landing .landing-footer-inner{max-width:900px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}
#view-landing .landing-footer-brand{font-family:var(--dw-font-display);font-size:1.1rem;letter-spacing:2px;color:var(--muted,var(--dw-muted))}
#view-landing .landing-footer-links{display:flex;gap:24px}
#view-landing .landing-footer-links a{color:var(--muted,var(--dw-muted));text-decoration:none;font-size:.82rem;transition:color .2s}
#view-landing .landing-footer-links a:hover{color:var(--accent,var(--dw-accent))}
#view-landing .landing-footer-copy{font-size:.75rem;color:var(--muted,var(--dw-muted));opacity:.5}
#view-landing .landing-mobile-nav{display:none;position:fixed;inset:0;z-index:99;background:rgba(11,9,7,.97);backdrop-filter:blur(20px);flex-direction:column;align-items:center;justify-content:center;gap:32px}
#view-landing .landing-mobile-nav.open{display:flex}
#view-landing .landing-mobile-nav a{color:var(--white,var(--dw-white));text-decoration:none;font-family:var(--dw-font-display);font-size:2rem;letter-spacing:2px;transition:color .2s}
#view-landing .landing-mobile-nav a:hover{color:var(--accent,var(--dw-accent))}
#view-landing .landing-mobile-nav a.landing-nav-cta{font-family:var(--dw-font-body);font-size:1rem}
#view-landing .landing-mobile-nav-close{position:absolute;top:16px;right:16px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:0 0;border:none;color:var(--white,var(--dw-white));font-size:2rem;cursor:pointer;border-radius:8px;transition:background .2s}
#view-landing .landing-mobile-nav-close:hover{background:var(--mid,var(--dw-mid))}
#view-landing .landing-fade-up{opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}
#view-landing .landing-fade-up.visible{opacity:1;transform:translateY(0)}
#view-landing .landing-fade-up-delay-1{transition-delay:.1s}
#view-landing .landing-fade-up-delay-2{transition-delay:.2s}
#view-landing .landing-fade-up-delay-3{transition-delay:.3s}
@media(max-width:768px){
#view-landing .landing-nav{padding:calc(14px + env(safe-area-inset-top,0px)) 20px 14px}
#view-landing .landing-nav-links{display:none}
#view-landing .landing-hamburger{display:flex}
#view-landing .landing-hero{padding:calc(100px + env(safe-area-inset-top,0px)) 20px 60px;min-height:90vh}
#view-landing .landing-hero h1{font-size:clamp(2.6rem,10vw,4rem)}
#view-landing .landing-hero-sub{font-size:1rem}
#view-landing .landing-hero-scroll{display:none}
#view-landing .landing-accent-shape{width:250px;height:250px;top:10%;right:-5%}
#view-landing .landing-accent-ring{width:120px;height:120px}
#view-landing .landing-section{padding:60px 20px}
#view-landing .landing-about-layout{grid-template-columns:1fr;gap:32px}
#view-landing .landing-about-photo{max-width:240px;margin:0 auto}
#view-landing .landing-steps-grid{grid-template-columns:1fr;gap:16px}
#view-landing .landing-step-card{padding:24px 22px}
#view-landing .landing-quotes-grid{grid-template-columns:1fr;gap:16px}
#view-landing .schedule-row{grid-template-columns:64px 1fr;gap:8px}
#view-landing .schedule-trainer,#view-landing .schedule-spots,#view-landing .schedule-full,#view-landing .schedule-book{grid-column:2}
#view-landing .pricing,#view-landing .qualification,#view-landing .schedule-public{padding:60px 20px}
#view-landing .landing-testimonials{padding:60px 20px}
#view-landing .landing-footer-inner{flex-direction:column;gap:16px}
#view-landing .landing-footer-links{gap:16px}
}
@media(max-width:480px){
#view-landing .landing-hero{padding:calc(90px + env(safe-area-inset-top,0px)) 16px 50px}
#view-landing .landing-section{padding:50px 16px}
#view-landing .landing-disciplines{gap:8px}
#view-landing .landing-discipline-tag{padding:6px 14px;font-size:.75rem}
}

/* v125: Membership-first landing page */
#view-landing .landing-hero-wrapper{min-height:70vh;overflow:visible;background:linear-gradient(135deg,var(--dw-black) 0%,#1a1308 60%,#0f0c08 100%);}
#view-landing .landing-hero-bg{display:none;}
#view-landing .landing-hero{min-height:70vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:120px 32px 54px;max-width:none;margin:0;}
#view-landing .landing-hero-content{max-width:720px;margin:0 auto;}
#view-landing .landing-hero h1{font-family:var(--dw-font-display);font-size:3.2rem;letter-spacing:1px;line-height:1.05;color:var(--white);margin:0 0 18px;}
#view-landing .hero-trainer-name,#view-landing .hero-emphasis{color:var(--accent);}
#view-landing .hero-emphasis{font-weight:700;}
#view-landing .hero-sub{font-size:1.05rem;color:var(--muted);line-height:1.65;margin:0 0 32px;}
#view-landing .hero-cta-primary{display:inline-block;padding:16px 36px;background:var(--accent);color:var(--black);border-radius:10px;font-weight:800;font-size:1.05rem;text-decoration:none;letter-spacing:0.5px;box-shadow:0 6px 24px rgba(201,162,75,0.35);transition:transform 0.15s,box-shadow 0.15s;}
#view-landing .hero-cta-primary:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(201,162,75,0.45);}
#view-landing .hero-secondary{font-size:0.86rem;color:var(--muted);margin:24px 0 0;}
#view-landing .hero-secondary a{color:var(--accent);text-decoration:none;}
#view-landing .landing-telegram-card{padding:60px 32px;background:linear-gradient(135deg,var(--dw-mid) 0%,var(--dw-mid2) 60%,var(--dw-mid) 100%);display:flex;justify-content:center;}
#view-landing .tg-card-inner{max-width:920px;width:100%;display:flex;align-items:center;gap:48px;background:rgba(36,161,222,0.08);border:2px solid #24a1de;border-radius:18px;padding:36px 40px;box-shadow:0 8px 40px rgba(36,161,222,0.2);}
#view-landing .tg-card-text{flex:1;}
#view-landing .tg-card-text h2{font-family:var(--dw-font-display);font-size:1.8rem;letter-spacing:1px;color:#24a1de;margin:0 0 12px;}
#view-landing .tg-card-text p{font-size:0.95rem;color:var(--white);line-height:1.65;margin:0 0 20px;opacity:0.92;}
#view-landing .tg-card-cta{display:inline-block;background:#24a1de;color:#fff;padding:12px 24px;border-radius:10px;font-weight:700;text-decoration:none;font-size:0.95rem;box-shadow:0 4px 18px rgba(36,161,222,0.4);transition:transform 0.15s;}
#view-landing .tg-card-cta:hover{transform:translateY(-2px);}
#view-landing .tg-card-qr{background:#fff;padding:12px;border-radius:10px;width:184px;height:184px;display:flex;align-items:center;justify-content:center;flex:0 0 184px;}
#view-landing .landing-pricing{padding:60px 32px;background:var(--black);text-align:center;}
#view-landing .landing-pricing-inner{max-width:920px;margin:0 auto;}
#view-landing .landing-pricing h2{font-family:var(--dw-font-display);font-size:2.2rem;letter-spacing:1px;color:var(--white);margin:0 0 8px;}
#view-landing #landing-pricing-anchor{color:var(--accent);}
#view-landing .landing-pricing-sub{font-size:0.95rem;color:var(--muted);margin:0 0 24px;}
#view-landing .landing-pricing-expand{background:transparent;border:1px solid var(--accent);color:var(--accent);padding:10px 24px;border-radius:8px;font-weight:700;font-size:0.9rem;cursor:pointer;}
#view-landing .landing-pricing-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin-top:32px;}
#view-landing .landing-tier-card{background:rgba(201,162,75,0.06);border:1px solid rgba(201,162,75,0.2);border-radius:12px;padding:24px 16px;position:relative;}
#view-landing .tier-popular{border-color:var(--accent);background:rgba(201,162,75,0.12);box-shadow:0 4px 20px rgba(201,162,75,0.25);}
#view-landing .tier-badge{position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:var(--accent);color:var(--black);padding:3px 10px;border-radius:10px;font-size:0.68rem;font-weight:800;letter-spacing:0.5px;white-space:nowrap;}
#view-landing .tier-freq{font-size:0.86rem;color:var(--muted);margin-bottom:8px;}
#view-landing .tier-price{font-family:var(--dw-font-display);font-size:2.2rem;color:var(--white);}
#view-landing .tier-mo{font-size:0.7rem;color:var(--muted);}
#view-landing .tier-cta{display:block;margin-top:12px;background:var(--accent);color:var(--black);padding:8px 14px;border-radius:7px;font-weight:700;font-size:0.84rem;text-decoration:none;}
@media(max-width:720px){
  #view-landing .landing-hero{padding:100px 20px 46px;}
  #view-landing .landing-hero h1{font-size:2.7rem;}
  #view-landing .tg-card-inner{flex-direction:column;gap:24px;padding:24px;text-align:center;}
  #view-landing .tg-card-qr{width:160px;height:160px;flex-basis:160px;}
}

/* v69: Heatmap */
.heatmap-grid{display:grid;gap:6px;margin-bottom:4px;}
.heatmap-header{display:grid;grid-template-columns:90px repeat(7,1fr);gap:6px;margin-bottom:10px;}
.heatmap-row{display:grid;grid-template-columns:90px repeat(7,1fr);gap:6px;align-items:center;}
.heatmap-cell{min-width:64px;height:48px;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:0.78rem;transition:all 0.15s;cursor:default;border:1px solid var(--border);}
.heatmap-cell:hover{transform:scale(1.03);}
.heatmap-cell.inactive{opacity:0.3;border-color:transparent;}
.heatmap-cell .hm-count{font-weight:600;}
.heatmap-cell .hm-status{font-size:0.58rem;text-transform:uppercase;letter-spacing:0.5px;margin-top:1px;}
.heatmap-nav{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.heatmap-nav button{background:transparent;border:1px solid var(--border);color:var(--white);border-radius:6px;padding:6px 12px;font-family:var(--dw-font-body);font-size:0.82rem;cursor:pointer;transition:all 0.15s;}
.heatmap-nav button:hover{border-color:var(--accent);color:var(--accent);}
.heatmap-nav .hm-week-label{font-size:0.85rem;font-weight:600;color:var(--white);}
.heatmap-nav .hm-today-btn{font-size:0.72rem;color:var(--muted);background:transparent;border:1px solid var(--border);padding:4px 10px;}
.heatmap-today-col{border-top:2px solid var(--accent);}
/* v69: Feedback notification dot on Notes button */
.feedback-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--red,var(--dw-red));margin-left:6px;vertical-align:middle;}
/* v76 B1: Revenue breakdown styles */
#revenue-breakdown{max-height:400px;overflow-y:auto;background:var(--dark);border:1px solid var(--border);border-radius:10px;margin-top:8px;transition:max-height 0.3s ease;}
.rb-row{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border);font-size:0.82rem;}
.rb-row:last-child{border-bottom:none;}
.rb-client{flex:2;color:var(--text);font-weight:600;}
.rb-period{flex:2;color:var(--muted);}
.rb-date{flex:1;color:var(--muted);text-align:center;}
.rb-amount{flex:1;color:var(--accent);text-align:right;font-family:var(--dw-font-display);font-size:1rem;}
.rb-empty{text-align:center;padding:20px;color:var(--muted);font-style:italic;}
.rb-chevron{font-size:0.75rem;color:var(--accent);margin-left:6px;transition:transform 0.3s;display:inline-block;}
.rb-chevron.expanded{transform:rotate(180deg);}
/* v76 C1: Contrast fix — improved muted text color for WCAG AA */
/* v76 C2: Touch target sizes */
/* v76 C3: ARIA focus visible indicator */
:focus-visible{outline:2px solid var(--dw-accent);outline-offset:2px;}
/* v76 D1: Past session dimming */
.session-past{opacity:0.45;filter:grayscale(40%);position:relative;}
.session-past::after{content:'';position:absolute;inset:0;background:rgba(11,9,7,0.55);border-radius:inherit;pointer-events:none;}
/* v76 D2: Toast notification enhancements */
.toast-success{background:#2ECC71 !important;color:#fff !important;}
.toast-error{background:#E74C3C !important;color:#fff !important;}
.toast-info{background:#3498DB !important;color:#fff !important;}
@keyframes toastSlideOut{from{opacity:1;transform:translateY(0);}to{opacity:0;transform:translateY(10px);}}
@keyframes pulse{0%,100%{opacity:0.7;}50%{opacity:0.4;}}

/* v136-step-B9: row-flash highlight on Quick-Add success + 409 use-existing.
   Lights the just-added/found row with a soft yellow flash for 2s. */
@keyframes row-flash-anim {
  0%   { background-color: rgba(255, 215, 0, 0.32); }
  100% { background-color: transparent; }
}
tr.row-flash {
  animation: row-flash-anim 2s ease-out;
}



/* === mcmd-styles === */
  #view-coaches-content { max-width: 720px; margin: 0 auto; padding: 0 16px 40px; }
  .mcmd-section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin: 22px 0 12px; }
  .mcmd-section-head h3 { font-family:var(--dw-font-display); letter-spacing:1.5px; font-size:1.05rem; color:var(--white); margin:0; }
  .mcmd-add-btn { background:var(--accent); color:var(--black); border:none; border-radius:10px; padding:11px 18px; font-family:var(--dw-font-body); font-weight:700; font-size:0.86rem; cursor:pointer; }
  .mcmd-coach-card { background:var(--mid); border:1px solid var(--border); border-radius:14px; padding:16px 18px; margin-bottom:12px; }
  .mcmd-coach-card.paused { opacity:0.62; }
  .mcmd-coach-top { display:flex; align-items:center; gap:12px; }
  .mcmd-coach-avatar { width:46px; height:46px; border-radius:50%; background:var(--dark,var(--dw-chart-bg)); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; font-size:1.4rem; flex:0 0 auto; overflow:hidden; }
  .mcmd-coach-avatar img { width:100%; height:100%; object-fit:cover; }
  .mcmd-coach-meta { flex:1 1 auto; min-width:0; }
  .mcmd-coach-name { font-weight:700; color:var(--white); font-size:0.98rem; }
  .mcmd-coach-disc { font-size:0.82rem; color:var(--accent); margin-top:2px; }
  .mcmd-pill { font-size:0.68rem; font-weight:700; text-transform:uppercase; letter-spacing:0.5px; padding:3px 9px; border-radius:20px; background:var(--border); color:var(--muted); }
  .mcmd-coach-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:13px; }
  .mcmd-act { border:1px solid var(--border); background:transparent; color:var(--white); border-radius:8px; padding:8px 13px; font-size:0.78rem; font-weight:700; cursor:pointer; }
  .mcmd-act.primary { background:var(--accent); color:var(--black); border-color:var(--accent); }
  .mcmd-act.danger { color:#e8736b; border-color:#5a2b27; }
  .mcmd-empty { text-align:center; color:var(--muted); padding:34px 18px; border:1px dashed var(--border); border-radius:14px; }
  .mcmd-invite-row { display:flex; align-items:center; justify-content:space-between; gap:10px; background:var(--mid); border:1px solid var(--border); border-radius:10px; padding:11px 14px; margin-bottom:8px; font-size:0.84rem; color:var(--muted); }
  .mcmd-field-label { display:block; font-size:0.78rem; font-weight:700; color:var(--muted); margin:14px 0 5px; text-transform:uppercase; letter-spacing:0.5px; }
  .mcmd-select, .mcmd-input { width:100%; box-sizing:border-box; background:var(--dark,var(--dw-chart-bg)); border:1px solid var(--border); color:var(--white); border-radius:9px; padding:11px 12px; font-family:var(--dw-font-body); font-size:0.92rem; }
  .mcmd-modal-error { color:#e8736b; font-size:0.82rem; margin-top:12px; }
  .modal-btn.modal-btn-secondary { background:transparent; border:1px solid var(--border); color:var(--white); }
  .mcmd-discipline-filter { display:flex; flex-wrap:wrap; gap:7px; margin:6px 0 14px; }
  .mcmd-df-chip { border:1px solid var(--border); background:transparent; color:var(--muted); border-radius:20px; padding:6px 13px; font-size:0.78rem; font-weight:700; cursor:pointer; }
  .mcmd-df-chip.active { background:var(--accent); color:var(--black); border-color:var(--accent); }
  #view-directory-content { max-width:720px; margin:0 auto; padding:0 16px 40px; }
  .mcmd-coach-bio { font-size:0.84rem; color:var(--muted); margin-top:9px; line-height:1.45; }
  .mcmd-coach-sub { font-size:0.8rem; color:var(--muted); margin-top:8px; }
  /* v1.2 — directory card quality + capacity signals (SPEC §5.1) */
  .mcmd-signals { display:flex; flex-direction:column; gap:5px; margin-top:11px; }
  .mcmd-signal { font-size:0.8rem; color:var(--muted); }
  .mcmd-signal.mcmd-verified { color:var(--dw-green); font-weight:700; }
  .mcmd-cap { display:inline-block; align-self:flex-start; font-size:0.72rem; font-weight:700; padding:3px 10px; border-radius:20px; margin-top:3px; }
  .mcmd-cap-accepting { background:rgba(74,222,128,0.16); color:var(--dw-green); }
  .mcmd-cap-waitlist { background:rgba(251,191,36,0.16); color:#fbbf24; }
  .mcmd-cap-full { background:var(--border); color:var(--muted); }
  .mcmd-prev-tag { font-size:0.66rem; font-weight:700; text-transform:uppercase; letter-spacing:0.5px; color:var(--muted); border:1px solid var(--border); border-radius:20px; padding:2px 8px; margin-left:7px; }
  .mcmd-badge-disc-head { font-family:var(--dw-font-display); letter-spacing:1.5px; font-size:1rem; color:var(--accent); margin:20px 0 9px; border-bottom:1px solid var(--border); padding-bottom:5px; }
  .tl-badge-disc { color:var(--accent); font-weight:700; }
  .tl-badge-by { color:var(--muted); font-weight:400; font-size:0.9em; }
