:root{--bg:#111010;--panel:#1d1a19;--panel2:#25201e;--line:#423530;--line2:#392d29;--fg:#fff3e8;--muted:#c4afa0;--soft:#e7d6c7;--accent:#ff793e;--violet:#e6a67e;--warn:#f4b95d;--danger:#f4837c;--radius:15px;--shadow:0 16px 50px rgba(0,0,0,.23);color-scheme:dark}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.45}
h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:"Arial Narrow",Impact,system-ui,sans-serif;letter-spacing:-.035em}h1{font-size:clamp(25px,3vw,34px);font-weight:800}h2{font-size:19px}h3{font-size:15px;letter-spacing:-.01em}a{color:var(--accent);text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.46;cursor:not-allowed}
input,textarea,select{background:#171312;border:1px solid #5d4840;color:var(--fg);border-radius:9px;padding:11px 12px;outline:none;min-width:0;width:100%}
input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #ff793e26}
input::placeholder,textarea::placeholder{color:#b39280}input[type=number]{font-variant-numeric:tabular-nums}input[type=date]{color-scheme:dark}
button.primary,.btn.primary{border:1px solid transparent;background:var(--accent);color:#25120b;font-weight:800;padding:11px 16px;border-radius:10px;transition:.15s}
button.primary:hover{background:#ffab70}button.secondary{border:1px solid #5d4439;background:#302522;color:var(--fg);padding:10px 14px;border-radius:10px;font-weight:700}
button.secondary:hover{background:#453129}button.ghost{color:#d6c1b0;background:transparent;border:0;padding:9px 12px;border-radius:9px;font-weight:650}
button.ghost:hover{background:#32231e;color:white}button.danger{color:#ffb1b1}button.wide{width:100%}button.small{font-size:12px;padding:7px 10px;border-radius:8px}
i{font-style:normal}label{display:block;color:#e0c8b5;font-weight:650;font-size:12px;margin-bottom:6px;letter-spacing:.01em}
button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.stack{display:flex;flex-direction:column;gap:14px}.flex{display:flex;align-items:center;gap:10px}.space{justify-content:space-between}.wrap{flex-wrap:wrap}.end{justify-content:flex-end}.center{text-align:center}
.muted{color:var(--muted)}.soft{color:var(--soft)}.small{font-size:12px}.tiny{font-size:11px}.strong{font-weight:700}.mono{font-variant-numeric:tabular-nums}.empty{padding:34px 20px;text-align:center;color:var(--muted)}
.section-title{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#bda18e}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;min-width:0}
.card.soft-card{background:var(--panel2)}.card.hover{cursor:pointer}.card.hover:hover{border-color:#bc6c45;background:#312018}
.badge{display:inline-flex;align-items:center;gap:5px;color:#cfb29c;background:#3c2b25;border:1px solid #5d4136;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:750;white-space:nowrap}
.badge.good{color:#ffc296;background:#573020;border-color:#7c462b}.badge.warn{color:#ffd292;background:#4f3222;border-color:#765038}.badge.violet{color:#ecc2a3;background:#44302a;border-color:#6e4c3b}
.hero-tag{color:var(--accent);font-size:12px;letter-spacing:.15em;font-weight:800;text-transform:uppercase}
.subtitle{margin-top:5px;color:var(--muted)}
hr{border:0;border-top:1px solid var(--line);margin:16px 0}.divider{height:1px;background:var(--line);margin:16px 0}
.layout{min-height:100vh;display:grid;grid-template-columns:252px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);background:#171312;padding:24px 16px;display:flex;flex-direction:column;gap:22px;overflow-y:auto}
.brand{display:flex;align-items:center;gap:11px;color:var(--fg);font:800 15px system-ui,sans-serif;letter-spacing:-.025em}
.brand small{display:block;font-size:10px;font-weight:750;color:#bca18c;letter-spacing:.14em;margin-top:1px}
.brand-icon{display:grid;place-items:center;width:40px;height:40px;min-width:40px;border-radius:11px;background:linear-gradient(145deg,#ffa465 0%,#ef6d38 60%,#a94629 100%);color:#2c100b;font:900 22px system-ui,sans-serif;box-shadow:0 0 35px #f46b3130}
.sidebar label{font-size:10px;color:#b99c87;letter-spacing:.13em;text-transform:uppercase;margin:12px 0 6px 12px}
.side-nav{display:grid;gap:4px}.nav-link{display:flex;align-items:center;gap:12px;background:transparent;color:#cbb4a1;padding:12px 13px;width:100%;border:0;text-align:left;border-radius:10px;font-weight:700}
.nav-link.active{background:#38251e;color:var(--accent);box-shadow:inset 2px 0 0 var(--accent)}.nav-link:hover{background:#30221c;color:white}
.nav-mark{width:19px;text-align:center;font-size:18px;font-family:system-ui}
.sidebar-foot{margin-top:auto;border-top:1px solid var(--line);padding-top:16px}
.account-name{font-weight:750;line-height:1.1}.account-email{color:#b59881;font-size:11px;overflow:hidden;text-overflow:ellipsis}
.avatar{display:grid;place-items:center;border-radius:11px;width:38px;height:38px;min-width:38px;color:#ffca99;font-weight:800;background:#513021}
.main{min-width:0}.topbar{height:76px;padding:0 34px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #342722;position:sticky;top:0;background:#111010f5;backdrop-filter:blur(15px);z-index:10}
.topbar-title{color:#d2b8a2;font-weight:750;font-size:13px}.topbar-right{display:flex;gap:12px;align-items:center}
.org-select{width:auto;max-width:250px;padding:9px 36px 9px 12px;background:#261d1a;font-size:12px;font-weight:750}
.content{max-width:1480px;margin:auto;padding:30px 34px 70px;display:grid;gap:24px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:18px}.page-head p{color:var(--muted);margin-top:7px}
.kpi{position:relative;overflow:hidden}.kpi:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,#ff793e1b,transparent 70%);right:-25px;top:-35px}
.kpi .label{font-weight:700;font-size:12px;color:#c6a997}.kpi .value{font:800 34px system-ui,sans-serif;letter-spacing:-.05em;margin:10px 0 0}
.kpi .detail{font-size:11px;color:#b69a87;margin-top:5px}.accent{color:var(--accent)}.violet-text{color:var(--violet)}.warn-text{color:var(--warn)}
.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:#8295ac;font-weight:800;padding:12px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{font-size:13px;padding:15px 10px;border-bottom:1px solid #3f2e29;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#ffffff03}
.row-btn{background:none;border:0;color:var(--fg);text-align:left;font-weight:750;padding:0}.row-btn:hover{color:var(--accent)}
.table-foot{padding:12px 0 0;color:var(--muted);font-size:11px}
.profile-line{display:flex;gap:12px;align-items:center}.profile-circle{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#4a3026;color:#ffcb9d;font-weight:800}
.list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--line2)}.list-item:last-child{border-bottom:0}
.list-main{min-width:0}.list-title{font-size:13px;font-weight:750;white-space:normal}.list-detail{color:var(--muted);font-size:11px;margin-top:4px}
.progress-track{height:6px;background:#233040;border-radius:10px;overflow:hidden;margin-top:7px}.progress-bar{height:100%;background:linear-gradient(90deg,#4fbd9e,#9cffd9);border-radius:10px}
.field{min-width:0}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.form-help{color:#7e91a6;font-size:11px;margin-top:5px}
.input-inline{display:flex;align-items:center;gap:8px}
.status-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);display:inline-block;margin-right:4px}
.pill-list{display:flex;flex-wrap:wrap;gap:7px}.pill{border-radius:7px;background:#33231e;border:1px solid #584036;padding:6px 10px;font-size:11px;color:#e7cbb7}
.exercise-row{display:grid;grid-template-columns:minmax(160px,2.2fr) 65px 85px 95px minmax(110px,1fr) 34px;gap:9px;align-items:end;border-bottom:1px solid var(--line);padding:12px 0}
.exercise-row input{padding:9px}.exercise-row .remove{height:36px;font-size:18px}
.stat-line{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line2);padding:13px 0}.stat-line:last-child{border-bottom:0}
.calendar-date{color:var(--accent);font-size:11px;font-weight:700}
.session-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.timer{font:800 27px system-ui;letter-spacing:.03em;font-variant-numeric:tabular-nums}
.log-set{display:grid;grid-template-columns:35px minmax(55px,1fr) minmax(50px,1fr) minmax(50px,1fr) 68px;gap:8px;align-items:end;padding:6px 0}
.log-set input{padding:8px}.log-set .set-no{font-size:12px;font-weight:800;color:#8499ae;padding:8px 0}
.auth-wrap{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:radial-gradient(ellipse at 10% 15%,#4c2619 0%,transparent 38%),#12100f}
.auth-panel{max-width:540px;width:100%;padding:clamp(28px,6vw,75px);display:flex;flex-direction:column;justify-content:space-between;gap:30px}
.auth-form{max-width:445px;padding:35px;background:#221b18;border:1px solid #5e4538;border-radius:20px;box-shadow:0 25px 70px #00000038}
.auth-intro{display:flex;flex-direction:column;justify-content:center;max-width:660px;padding:clamp(30px,7vw,85px);background:linear-gradient(130deg,#261913,#151110 65%);border-right:1px solid #5d382a}
.auth-intro h1{font-size:clamp(40px,5vw,72px);line-height:1.1;margin:22px 0}.auth-intro h1 em{font-style:normal;color:var(--accent)}
.feature{display:flex;gap:12px;align-items:center;margin-top:18px;color:#b4c7d5}
.feature b{color:var(--accent)}.auth-note{color:#718ca0;font-size:11px}
#modal{background:#111a27;color:var(--fg);border:1px solid #344458;border-radius:16px;max-width:min(600px,calc(100vw - 28px));width:100%;padding:26px;box-shadow:var(--shadow)}
#modal::backdrop{background:#030a12be;backdrop-filter:blur(5px)}#toast{position:fixed;right:20px;bottom:20px;max-width:min(450px,calc(100vw - 40px));display:none;border:1px solid #3b5d56;border-radius:12px;background:#1b3733;color:#ddfff3;padding:13px 16px;box-shadow:0 18px 50px #0008;z-index:99;font-size:13px}
#toast.show{display:block}#toast.error{background:#48292c;border-color:#9d4d51;color:#ffdfdf}
.boot{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:var(--muted)}
.mobile-tabs{display:none}.bottom-spacer{display:none}
@media(max-width:1100px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding:24px}.topbar{padding:0 24px}.exercise-row{grid-template-columns:1.5fr 55px 65px 80px 1fr 30px}}
@media(max-width:790px){.layout{display:block}.sidebar{display:none}.topbar{height:68px;padding:0 16px}.content{padding:22px 16px 100px;gap:20px}.mobile-tabs{display:flex;position:fixed;bottom:0;left:0;right:0;background:#191411f2;backdrop-filter:blur(15px);z-index:20;border-top:1px solid var(--line);justify-content:space-around;padding:7px 5px max(7px,env(safe-area-inset-bottom))}.mobile-tabs button{border:0;background:none;color:#91a9b8;display:grid;justify-items:center;gap:2px;padding:4px 6px;font-size:10px;font-weight:800}.mobile-tabs button.active{color:var(--accent)}.mobile-tabs b{font-size:20px}.topbar-title{display:none}.org-select{max-width:170px}.page-head{align-items:flex-start}.page-head .primary{font-size:12px;padding:10px}.grid-3{grid-template-columns:1fr}.auth-wrap{display:block}.auth-intro{display:none}.auth-panel{max-width:none;min-height:100vh;justify-content:flex-start;padding:30px 20px}.auth-form{max-width:none}.bottom-spacer{display:block;height:25px}}
@media(max-width:540px){.grid-2,.grid-4,.field-row,.field-row.three{grid-template-columns:1fr}.card{padding:16px}.kpi{padding:18px}.kpi .value{font-size:30px}.exercise-row{grid-template-columns:repeat(3,minmax(0,1fr))}.exercise-row .ex-name{grid-column:1/4}.exercise-row .ex-notes{grid-column:1/3}.log-set{grid-template-columns:25px repeat(3,minmax(0,1fr)) 57px;gap:5px}.log-set input{padding:7px 4px}.auth-form{padding:24px}.table-wrap{margin:0 -8px}.hide-mobile{display:none}}

.sidebar-view-switch{margin-top:18px;display:flex;align-items:center;justify-content:center}.sidebar-view-switch .view-toggle{width:100%}.topbar .view-toggle{white-space:nowrap;color:var(--accent);border-color:#36584d}.topbar .view-toggle:hover{background:#203c33}
@media(max-width:790px){.topbar .view-toggle{font-size:12px;padding:8px 10px}.topbar-right{gap:8px}.org-select{max-width:140px}}
@media(max-width:390px){.topbar .avatar{display:none}.org-select{max-width:135px}}

.prescription-list{display:flex;flex-direction:column;gap:8px;margin-top:18px}
.prescription{background:#241b17;border:1px solid #51382d;border-radius:11px;padding:12px;display:flex;align-items:flex-start;gap:10px;min-width:0;flex-direction:column}
.prescription-label{display:flex;align-items:center;gap:11px}
.prescription-index{min-width:27px;width:27px;height:27px;display:grid;place-items:center;background:#653625;border-radius:7px;color:#ffd7ae;font-size:12px;font-weight:800}
.prescription-value{font-weight:750;color:#ffe4cf;font-size:13px}
.prescription .log-set{width:100%;border:0;grid-template-columns:28px repeat(3,minmax(0,1fr)) 76px}
.prescription .log-set.timed{grid-template-columns:28px repeat(4,minmax(0,1fr)) 76px}
.prescription .log-set input{min-width:0}
@media(max-width:600px){
.prescription .log-set{grid-template-columns:24px repeat(3,minmax(0,1fr)) 65px;gap:5px}
.prescription .log-set.timed{grid-template-columns:24px repeat(4,minmax(0,1fr)) 65px}
.prescription .log-set.timed input{padding:7px 3px}
.prescription .log-set label{font-size:10px}
}
@media(max-width:400px){
.prescription .log-set.timed{grid-template-columns:26px repeat(2,minmax(0,1fr)) 65px}
}

.archive-exercise{padding:14px 0;border-top:1px solid #2b3949}
.archive-exercise h3{margin:0 0 10px;font-size:14px}
.archive-set{display:grid;grid-template-columns:55px 1fr;gap:10px;align-items:start;padding:8px 0;border-top:1px solid #1d2c3c}
.archive-set .strong{font-size:13px;color:#d9fff1}
.archive-set .accent{margin-top:3px;color:#ffad79}

/* Heartforged Strength — forge-inspired identity applied to all workspaces. */
:root{--heartforged-orange:#ff793e;--heartforged-ember:#fc542c;--heartforged-gold:#ffbe72;--heartforged-iron:#151211}
body{background:radial-gradient(ellipse at 78% -20%,#4d241827,transparent 48%),var(--bg)}
.brand{font-weight:900;letter-spacing:.045em}
.brand small{font-size:9px;letter-spacing:.19em;color:#e99b6d}
.brand-icon{background:linear-gradient(150deg,#ffb96d 0%,#fc6634 49%,#9a2e21 100%);box-shadow:0 0 32px #f35e3233;color:#29130c;border:1px solid #ffbb8b60;border-radius:11px}
.forge-symbol{font-size:26px;line-height:1;font-family:system-ui}
button.primary,.btn.primary{color:#281007;background:linear-gradient(105deg,#ffba75,#ff7942 64%,#f35c30)}
button.primary:hover{background:linear-gradient(105deg,#ffd098,#ff8d55)}
.nav-link.active{background:#3a241b;color:#ffad77}
.auth-wrap{background:radial-gradient(ellipse at 20% 16%,#692b193b,transparent 43%),#14110f}
.auth-intro{background:radial-gradient(ellipse at 23% 49%,#80351f36,transparent 57%),linear-gradient(130deg,#20140f,#151211 70%);border-color:#5c392d}
.auth-intro h1{font-weight:900;text-transform:uppercase;line-height:1.02;letter-spacing:-.045em}
.auth-intro h1 em{color:#ff9d64}
.auth-form{background:#231b17;border-color:#624233}
.sidebar{border-color:#3f2d26;background:#181310}
.topbar{border-color:#3f2d26;background:#111010f3}
.card{border-color:#44342b;box-shadow:inset 0 1px 0 #ffffff06}
.kpi:after{background:radial-gradient(circle,#ef6b2b24,transparent 70%)}
.hero-tag{font-size:11px;color:#ff9c62;letter-spacing:.17em}
.badge.good{color:#ffd1a6;background:#593522;border-color:#94542c}
.avatar,.profile-circle{background:#673a2a;color:#ffe4bd}
.progress-bar{background:linear-gradient(90deg,#c84729,#ffa769)}
.progress-track{background:#483129}
button:focus-visible,a:focus-visible{outline:2px solid #ffa76e}
@media(max-width:790px){.mobile-tabs{background:#17110ef5;border-color:#593629}.mobile-tabs button.active{color:#ff9656}.topbar .view-toggle{color:#ff9d67;border-color:#79442b}}

/* Athlete session logging: additional sets, separate from coach targets */
.exercise-panel{scroll-margin-top:90px}
.extra-set-footer{display:flex;gap:10px;justify-content:flex-start;align-items:center;margin-top:14px}
.add-workout-set{width:100%;min-height:44px;border-color:#a55330!important;color:#ffbc91!important;background:#35241d!important;font-weight:850!important}
.add-workout-set:hover:not(:disabled){background:#4b2d21!important;border-color:#ef7542!important}
.add-workout-set:disabled{color:#988476!important;border-color:#48382d!important}
.prescription.athlete-extra-set{border:1px dashed #ad633a;background:linear-gradient(130deg,#30221d,#231b18)}
.athlete-extra-set .prescription-index{background:#ad552c;color:#fff1db}
.extra-set-label{background:#59321f!important;border-color:#c47946!important;color:#ffcb99!important;font-size:10px!important}
.remove-added-set{margin-left:auto;color:#eeb292!important;min-height:32px}
.athlete-extra-set .prescription-label{width:100%;flex-wrap:wrap}
.athlete-extra-set .log-set{margin-top:6px}
@media(max-width:600px){.extra-set-footer{margin-top:16px}.add-workout-set{font-size:14px;padding:12px}}

/* Heartforged athlete editing and coaching performance views */
.set-row-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;width:100%;padding-top:2px}
.set-row-actions button{font-size:11px;min-height:32px}
.set-row-actions .remove-set-btn{color:#ffb48a;border:1px solid #75432e;border-radius:8px}
.completed-set{display:flex;align-items:center;gap:10px;color:#ffd0ad;font-weight:700;font-size:13px}
.completed-set-mark{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;background:#503220;color:#ffbe89;border-radius:6px}
.skipped-sets{margin-top:12px;padding:12px;background:#2d211c;border:1px dashed #785039;border-radius:10px}
.skipped-set-item{display:inline-flex;align-items:center;gap:7px;margin:7px 9px 0 0;border:1px solid #795039;border-radius:8px;padding:2px 8px;font-size:12px;color:#eab694}
.skipped-set-item button{padding:4px 5px!important;color:#ffa86d}
.extra-set-footer{flex-wrap:wrap;margin-top:16px}
.extra-set-footer button{min-height:42px}
.extra-set-footer .add-workout-set{flex:1 1 190px;width:auto}
.extra-set-footer button.danger{color:#ffa7a0}
.performance-chart{width:100%;height:auto;max-height:250px;display:block;overflow:visible;margin-top:12px}
.performance-chart text{font-family:system-ui,sans-serif}
.chart-empty{padding:36px 14px;text-align:center;color:#c8a993;font-size:12px}
.chart-select-field{min-width:min(240px,100%);max-width:100%}
.chart-select-field label{margin-bottom:3px}
.chart-select-field select{font-size:12px;padding:8px 10px}
#individual-performance .grid{margin-top:15px}
.recap-banner{border:1px solid #905133;border-radius:18px;padding:clamp(22px,5vw,40px);background:radial-gradient(circle at 90% 12%,#9c45213b,transparent 50%),linear-gradient(118deg,#2c1b17,#181310 80%);box-shadow:inset 0 1px #ffcd8240}
.recap-banner h1{font-size:clamp(24px,4vw,39px);margin:8px 0}
.recap-celebration{font-size:clamp(27px,6vw,57px);line-height:1;font-weight:950;color:#ffbd80;letter-spacing:-.04em;margin:15px 0 22px}
.record-card{border-color:#b56639;background:linear-gradient(120deg,#2d2018,#1d1a19)}
.record-row{display:flex;gap:13px;align-items:center;border-top:1px solid #5f3e2b;padding:13px 0}
.record-row:first-of-type{border-top:0}
.record-medal{display:grid;place-items:center;width:36px;height:36px;min-width:36px;background:#5f371c;border:1px solid #b27644;border-radius:10px;color:#ffcf8d;font-size:18px}
.animal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:18px 0}
.animal-tile{border:1px solid #67432c;border-radius:13px;padding:18px;background:linear-gradient(140deg,#332119,#241913)}
.animal-number{color:#ffbe80;font-size:clamp(26px,4vw,38px);font-weight:900;line-height:1;margin-bottom:8px}
.kong-quip{color:#ffd0a4;letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:850;border-left:3px solid #f87541;padding:9px 13px;margin-bottom:13px;background:#3a281b}
@media(max-width:600px){
  .set-row-actions{justify-content:flex-start}
  .extra-set-footer{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .extra-set-footer .add-workout-set{grid-column:1/-1}
  .animal-grid{gap:8px}
  .animal-tile{padding:13px}
  .chart-select-field{width:100%}
  .chart-select-field select{width:100%}
}

.paired-dumbbell-info{padding:12px 14px;margin:13px 0 14px;background:#32241c;border:1px solid #855234;border-radius:10px;font-size:13px;line-height:1.55;color:#f3cead}
.paired-dumbbell-info b{color:#ffbf89}

/* HeartForged Strength brand system */
:root{--bg:#101318;--panel:#191e25;--panel2:#20262e;--line:#333b44;--line2:#30363e;--fg:#f6f3ef;--muted:#a2a8b0;--soft:#d0d4d8;--accent:#f4772d;--violet:#e4a070;--warn:#efbf7c;--danger:#f47e75;color-scheme:dark}
body{background:radial-gradient(ellipse 900px 460px at 83% -20%,rgba(237,94,28,.07),transparent 70%),var(--bg)}
.brand-icon{background:#151a20;border:1px solid #78452c;box-shadow:0 0 30px #fa6c1b20;overflow:hidden;border-radius:12px}
.brand-icon img{width:100%;height:100%;object-fit:contain}
.sidebar{background:#151a20;border-right-color:#323840}
.topbar{background:#101318f5;border-color:#2a333b}
.nav-link.active{background:#34251e;color:#ff9b56;box-shadow:inset 3px 0 0 #f4772d}
.nav-link:hover{background:#292a2b}
.card{background:#1a2027;border-color:#373f48}
.card.soft-card{background:#222931}
.card.hover:hover{border-color:#c16b36;background:#27272a}
button.primary,.btn.primary{background:linear-gradient(115deg,#e85e24,#ffa14d);color:#20120e;box-shadow:0 4px 18px #d5531c18}
button.primary:hover{background:#ffb36e}
button.secondary{background:#282d34;border-color:#464d56}
button.secondary:hover{background:#343c44}
button:focus-visible,a:focus-visible{outline-color:#f4772d}
.auth-wrap{background:radial-gradient(ellipse at 7% 12%,#4e291c 0%,transparent 45%),#101318}
.auth-intro{background:linear-gradient(130deg,#30201c,#14191e 68%);border-right-color:#523426}
.auth-intro h1 em,.accent,.hero-tag{color:#ff964b}
.auth-form{background:#1c2229;border-color:#554037}
.auth-panel .brand{font-size:16px}
.kpi:after{background:radial-gradient(circle,#f4772d19,transparent 70%)}
.avatar,.profile-circle{background:#523122;color:#ffbc8e}
.pill,.badge{border-color:#4a4240;background:#343039;color:#d5c8bc}
.badge.good{color:#ffbc81;background:#49301f;border-color:#765033}
.badge.warn{color:#f7c580;background:#4c3526;border-color:#765037}
.progress-bar{background:linear-gradient(90deg,#d84d24,#ffaa55)}
.status-dot{background:#f4772d}
.calendar-date{color:#fa9855}
a{color:#ff964b}
input,textarea,select{background:#151b22;border-color:#4d5055}
input:focus,textarea:focus,select:focus{border-color:#f4772d;box-shadow:0 0 0 3px #f4772d24}
.prescription-index{background:#5a3222;color:#ffd2a3}
.prescription-value,.archive-set .strong{color:#ffe0c0}
.prescription{background:#21242a;border-color:#4a3b34}
.mobile-tabs{background:#151a20f4;border-top-color:#353a42}
.mobile-tabs button.active{color:#ff964b}
#modal{background:#1b2028;border-color:#5c463c}
#toast{background:#4b3023;border-color:#a35c35;color:#ffe4ca}
.auth-intro .brand-icon{width:52px;height:52px}

/* Compact athlete-only performance overview, including mobile-first trend tiles. */
.athlete-trend-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.athlete-trend-tile{border:1px solid var(--line);background:var(--panel);padding:14px;border-radius:13px;min-width:0}
.athlete-trend-value{font-size:clamp(16px,2vw,23px);font-weight:850;color:var(--fg);margin:8px 0;letter-spacing:-.035em}
.athlete-trend-tile .flex{gap:6px}
.analytics-source-note{padding:11px 14px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:12px;line-height:1.5}
.analytics-source-note b{color:var(--soft)}
@media(max-width:600px){.athlete-trend-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.athlete-trend-tile{padding:11px}.athlete-trend-value{font-size:18px}}

/* Heartforged dashboard heading clarity: remove heavy Impact/Arial Narrow
   fallbacks only inside signed-in workspace content. Keep branding and KPI fonts. */
#content h1,
#content h2,
#content h3,
#content h4 {
  font-family: system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  font-synthesis: none;
  letter-spacing: -.01em;
  line-height: 1.25;
}
#content .page-head h1 {
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: 1.16;
}
#content h2,
#content h3,
#content h4 {
  font-weight: 700;
}

/* HeartForged inbox, chat and activity */
.nav-unread,.mobile-nav-unread{display:inline-flex;min-width:18px;height:18px;padding:0 5px;
 align-items:center;justify-content:center;background:#f4772d;color:#1b1310;border-radius:999px;
 font-size:10px;font-weight:850;margin-left:5px;line-height:1}
.nav-unread[hidden],.mobile-nav-unread[hidden]{display:none}
.mobile-tabs button{position:relative}
.mobile-nav-unread{position:absolute;top:0;right:0}
.top-alerts{display:flex;align-items:center;gap:4px;padding:8px 10px;border:1px solid #4a3c33;border-radius:9px;
 background:#242329;color:#ffb078;font-size:12px;font-weight:750}
.top-alerts:hover{background:#322821}
.chat-thread-list{margin-top:12px}
.chat-thread-row,.chat-activity-row{display:flex;align-items:center;justify-content:space-between;
 gap:14px;padding:15px 2px;border-top:1px solid var(--line)}
.chat-thread-row:first-child,.chat-activity-row:first-of-type{border-top:0}
.chat-identity{display:flex;gap:11px;min-width:0;align-items:center;flex:1}
.chat-avatar{background:#493021;color:#ffd2ae;border:1px solid #865339;
 border-radius:11px;width:39px;height:39px;display:grid;place-items:center;
 font-size:16px;font-weight:800;flex-shrink:0}
.chat-row-title{font-weight:750;font-size:15px;color:#f5f1ec}
.chat-preview{margin:5px 0;max-width:550px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.chat-thread-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;flex-shrink:0}
.chat-thread-title{display:flex;align-items:center;gap:11px;margin-bottom:14px}
.chat-history{height:min(55vh,540px);min-height:230px;overflow-y:auto;background:#151a20;
 border:1px solid #333b44;border-radius:13px;padding:17px 14px;scroll-behavior:smooth}
.chat-bubble-wrap{display:flex;width:100%;margin:11px 0}
.chat-bubble-wrap.chat-own{justify-content:flex-end}
.chat-bubble{max-width:min(78%,540px);border:1px solid #3d4b55;border-radius:13px;
 padding:12px 14px;background:#263039;overflow-wrap:anywhere}
.chat-own .chat-bubble{background:#4a2e22;border-color:#8b4d2e}
.chat-sender{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#ffc091;font-weight:800}
.chat-body{white-space:pre-wrap;font-size:14px;line-height:1.55;margin:5px 0;color:#f6f3ef}
.chat-time{text-align:right;font-size:10px;color:#b2bac2}
.chat-context{font-size:11px;color:#ffbc85;margin:8px 0;border-left:2px solid #e87436;padding-left:8px}
.chat-empty{display:grid;place-items:center;text-align:center;min-height:200px;color:var(--muted)}
.chat-compose{display:flex;flex-direction:column;gap:9px;margin-top:14px}
.chat-compose label{font-size:12px;color:var(--soft);font-weight:700}
.chat-compose textarea{width:100%;min-height:80px;resize:vertical}
.chat-compose-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.chat-workout-hint{padding:10px 12px;border:1px solid #73492f;background:#3a281e;
 color:#f7c396;font-size:12px;border-radius:9px}
.chat-activity-row{border-bottom:1px solid #343b43}
.chat-activity-row>div:first-child{min-width:0}
.chat-activity-row .small.soft{margin-top:6px}
.chat-activity-new{background:#241f1c;margin:0 -12px;padding:15px 12px;border-radius:8px}
@media(max-width:790px){
 .mobile-tabs button{min-width:0;flex:1;font-size:9px;padding:5px 2px}
 .mobile-tabs b{font-size:18px}
 .top-alerts{font-size:11px;padding:7px}
 .chat-thread-row{align-items:flex-start}
 .chat-thread-actions{flex-direction:column;align-items:flex-end}
 .chat-history{height:min(48vh,430px);min-height:240px}
 .chat-bubble{max-width:87%}
}
@media(max-width:390px){
 .mobile-tabs button{font-size:8.5px}
 .chat-thread-row{flex-wrap:wrap}
 .chat-thread-actions{flex-direction:row;margin-left:50px}
 .chat-compose-actions button{width:100%}
}



/* Coach review, library and bottom-of-workout completion controls. */
.workout-finish-footer{border:1px solid #d16b34;margin-top:22px;margin-bottom:20px;padding:22px;background:linear-gradient(130deg,#30221b,#201c1b)}
.workout-finish-footer .primary{min-height:50px;font-size:15px}
.review-set{border-top:1px solid var(--line);padding:12px 0;display:grid;gap:5px}
.review-set:first-child{margin-top:8px}
.review-stats{display:flex;gap:14px;padding:12px 0;color:var(--soft);font-size:12px}
.review-card{margin-bottom:12px}
.pr-inline{border-top:1px solid var(--line);padding-top:10px;display:grid;gap:7px}
.library-list{max-height:65vh;overflow:auto;margin-top:12px}
.library-row[hidden]{display:none}
.analytics-period{align-items:center;margin:8px 0 16px;gap:10px}
.analytics-period select{width:auto;min-width:140px}
@media(max-width:790px){
 .mobile-tabs{overflow-x:auto;justify-content:flex-start;scrollbar-width:none}
 .mobile-tabs::-webkit-scrollbar{display:none}
 .mobile-tabs button{flex:0 0 73px;min-width:73px}
 .workout-finish-footer .primary{width:100%}
}

/* Coaching analytics, offline workout status, and custom exercise set types */
.offline-set-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:15px 17px;margin:14px 0;border:1px solid #86522e;border-radius:12px;background:#2c211c;color:#f6d7b8;font-size:13px;font-weight:650}
.offline-set-banner button{margin-left:auto}
.log-set-dynamic{display:flex;align-items:flex-end;gap:9px;flex-wrap:wrap}
.log-set-dynamic .field{flex:1 1 96px;min-width:82px;margin:0}
.log-set-dynamic .set-no{flex:0 0 22px}
.log-set-dynamic button[type=submit]{min-height:41px;flex:0 0 90px}
.log-set-dynamic .field input,.log-set-dynamic .field select{min-height:41px;min-width:0;width:100%}
.log-set-dynamic.offline-pending{background:#442d1c;border:1px solid #d98e42;border-radius:10px;padding:9px}
.tracking-extra{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:8px;margin-top:9px}
.exercise-row .ex-name .field{margin-bottom:8px}
.exercise-row .ex-notes{min-width:0}
.weekly-athlete h4{margin:14px 0 5px;font-size:13px;color:#ffb77d}
.weekly-athlete .list-item{padding:8px 0}
@media(max-width:600px){
 .log-set-dynamic .field{flex:1 1 106px;min-width:90px}
 .log-set-dynamic button[type=submit]{flex:1 1 100%;width:100%}
 .offline-set-banner button{flex:1 1 100%;margin:0}
 .tracking-extra{grid-template-columns:repeat(2,minmax(0,1fr))}
 .exercise-row .ex-notes{grid-column:1/-1}
}
.exercise-row .field[hidden]{display:none!important}

/* HeartForged coach calendar - readable on desktop and touch screens */
.hf-cal-toolbar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:13px;margin:16px 0}
.hf-cal-toolbar>.field{min-width:205px;flex:1 1 200px}
.hf-cal-toolbar .field label{display:block;margin-bottom:6px;font-weight:700;font-size:12px}
.hf-cal-toolbar input,.hf-cal-toolbar select{width:100%;min-height:38px}
#hf-cal-client-search{margin-bottom:6px}
.hf-cal-view-toggle{display:flex;flex-wrap:wrap;background:#261b18;border:1px solid #60402d;border-radius:10px;padding:3px}
.hf-cal-view-toggle button{background:transparent;border:0;border-radius:7px;color:#e8c7ad;padding:10px 13px;cursor:pointer}
.hf-cal-view-toggle button.active{color:#1c120c;background:#f68d4b;font-weight:800}
.hf-cal-period-controls{display:flex;flex:1 1 300px;align-items:center;flex-wrap:wrap;gap:8px}
.hf-cal-period-controls strong{margin-left:5px;font-size:16px}
.hf-cal-secondary{align-items:center}
.hf-cal-secondary .field{flex:1 1 170px;min-width:155px}
.hf-cal-filter-menu{position:relative;background:#231a16;border:1px solid #62432e;border-radius:9px;min-width:112px}
.hf-cal-filter-menu summary{padding:10px 13px;cursor:pointer;font-size:12px;font-weight:800}
.hf-cal-filter-options{position:absolute;z-index:16;top:100%;left:0;min-width:185px;max-height:245px;overflow-y:auto;background:#261c17;border:1px solid #784a30;border-radius:8px;box-shadow:0 16px 28px #0008;padding:11px}
.hf-cal-filter-options label{display:flex;align-items:center;gap:9px;font-size:12px;padding:5px;white-space:nowrap;cursor:pointer}
.hf-cal-filter-options input{min-height:auto;width:auto;accent-color:#f99053}
.hf-cal-group-toggle{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700}
.hf-cal-group-toggle input{width:16px;min-height:16px;accent-color:#f99053}
.hf-cal-main{margin:10px 0 28px}
.hf-cal-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid #503624;border-radius:13px;overflow:hidden}
.hf-cal-weekday{padding:12px 7px;text-align:center;background:#32221c;color:#f4ba93;font-weight:800;font-size:12px}
.hf-cal-day{min-height:136px;padding:7px;border-top:1px solid #493329;border-right:1px solid #493329;background:#1d1917;min-width:0}
.hf-cal-day:nth-child(7n){border-right:0}
.hf-cal-day.hf-cal-outside{background:#1b1715;opacity:.68}
.hf-cal-day.hf-cal-today{background:#2e2119;box-shadow:inset 0 0 0 2px #e58647}
.hf-cal-date{border:0;background:transparent;font-size:12px;font-weight:900;color:#f0d5be;padding:5px 2px;cursor:pointer}
.hf-cal-date:hover{text-decoration:underline;color:#ffb780}
.hf-cal-day-entries{display:grid;gap:5px}
.hf-calendar-entry{display:grid;gap:5px;border:1px solid #68412c;border-left:4px solid #ec8b4c;border-radius:8px;background:#31251f;color:#f2dbc9;text-align:left;cursor:pointer;min-width:0;padding:8px;font-size:12px}
.hf-calendar-entry:hover,.hf-calendar-entry:focus-visible{outline:2px solid #ffbc83;outline-offset:1px}
.hf-calendar-entry[draggable="true"]{cursor:grab}
.hf-cal-entry-title{font-weight:800;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hf-cal-entry-detail{color:#e2c5ad;font-size:10px;display:flex;flex-wrap:wrap;align-items:center;gap:5px}
.hf-cal-initial{border-radius:100%;background:#4f3326;font-weight:900;padding:3px 5px;font-size:10px;color:#f4d0b0}
.hf-cal-client-1{border-left-color:#8ebce3}.hf-cal-client-2{border-left-color:#89bf91}
.hf-cal-client-3{border-left-color:#ce9ccc}.hf-cal-client-4{border-left-color:#f2bb5b}
.hf-cal-client-5{border-left-color:#8ccfce}.hf-cal-client-6{border-left-color:#df887f}
.hf-cal-client-7{border-left-color:#a6a3f3}
.hf-calendar-status{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:850;white-space:nowrap}
.hf-cal-completed{color:#9de0b2}.hf-cal-partial{color:#ffe09b}
.hf-cal-missed{color:#ffaaa2}.hf-cal-skipped{color:#d7c5af}
.hf-cal-draft{color:#d6b4fa}.hf-cal-scheduled{color:#fbb888}
.hf-cal-more{background:transparent;color:#ffb477;border:0;text-align:left;font-weight:800;font-size:12px;padding:7px;cursor:pointer}
.hf-cal-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.hf-cal-week-cell,.hf-cal-group,.hf-cal-day-focus{padding:14px;border:1px solid #61432f;background:#211a16;border-radius:12px;min-width:0;display:grid;align-content:start;gap:9px}
.hf-cal-week-cell{min-height:180px}
.hf-cal-group-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
.hf-cal-group-head h2,.hf-cal-group-head h3{margin:0}
.hf-cal-group h3{font-size:16px;margin:0 0 8px}
.hf-cal-agenda{display:grid;gap:14px}
.hf-cal-agenda-row{display:flex;align-items:center;gap:15px;padding:6px 0;border-bottom:1px solid #523a2b}
.hf-cal-agenda-row .hf-calendar-entry{flex:1}
.hf-cal-list-date{flex:0 0 110px;font-weight:700;font-size:12px;color:#e9b68c}
.hf-cal-empty{font-size:13px;color:#d1aa8f}
.hf-cal-sheet{position:fixed;left:auto;top:0;right:0;bottom:0;margin:0;width:min(650px,100%);height:100vh;max-height:100vh;max-width:none;border:1px solid #70452b;background:#1c1715;color:#f8e6d9;padding:0;box-shadow:-20px 0 65px #000a;overflow:auto}
.hf-cal-sheet::backdrop{background:#000a}
.hf-cal-sheet-head{position:sticky;top:0;background:#28201b;padding:22px;z-index:3;border-bottom:1px solid #60402c;display:flex;align-items:start;justify-content:space-between;gap:15px}
.hf-cal-sheet-head h2{font-size:23px;margin:4px 0}
.hf-cal-sheet-head p{font-size:12px;color:#e4c3ae}
.hf-cal-sheet-content{padding:22px;display:grid;align-content:start;gap:13px}
.hf-cal-sheet-content h3{margin:7px 0 0;font-size:15px}
.hf-cal-sheet-content p{font-size:13px;line-height:1.6}
.hf-cal-detail-exercise{border-bottom:1px solid #503528;padding:10px 0;display:grid;gap:5px}
.hf-cal-detail-exercise span{font-size:12px;color:#e2b999}
.hf-cal-sheet-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:10px}
.hf-cal-loading{padding:42px;background:#241c18;border-radius:13px;color:#e7c2a5}
@media(max-width:1100px){.hf-cal-week{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:790px){
 .hf-cal-toolbar{align-items:stretch}
 .hf-cal-view-toggle{width:100%;justify-content:space-between}
 .hf-cal-view-toggle button{flex:1;font-size:12px}
 .hf-cal-month{overflow-x:auto}
 .hf-cal-day{min-height:90px;padding:3px}
 .hf-calendar-entry{padding:5px 4px;font-size:10px;overflow:hidden}
 .hf-cal-entry-detail{font-size:9px}
 .hf-cal-entry-title{font-size:10px}
 .hf-cal-initial{display:none}
 .hf-cal-period-controls strong{flex:1 1 100%;margin-left:0}
 .hf-cal-week{grid-template-columns:1fr}
 .hf-cal-sheet{left:0;right:0;width:100%;height:100dvh;max-height:100dvh}
 .hf-cal-sheet-content{padding:15px}
 .hf-cal-agenda-row{flex-wrap:wrap;gap:7px}
 .hf-cal-list-date{flex-basis:100%}
}
.hf-cal-undo-banner{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:13px 18px;border:1px solid #8b5c34;background:#362719;border-radius:11px;color:#f8d4aa;font-size:14px;font-weight:800}
.hf-cal-builder-recipients{padding:14px;background:#261d18;border:1px solid #704832;border-radius:10px;margin:12px 0}
.hf-cal-recipient{display:flex;align-items:center;gap:10px;padding:7px 4px;font-size:13px;cursor:pointer}
.hf-cal-recipient input{width:18px;min-height:18px;accent-color:#f99053;flex:none}
.hf-cal-recipient-list{max-height:245px;overflow:auto;display:grid;gap:5px;padding:10px;border:1px solid #583725;border-radius:10px}
@media(max-width:790px){.mobile-tabs{overflow-x:auto;justify-content:flex-start}.mobile-tabs button{flex:0 0 auto;min-width:70px}}
.hf-cal-results-block{display:grid;gap:13px;border-top:1px solid #744730;margin-top:14px;padding-top:17px}
.hf-cal-results-block h3{margin:13px 0 0;color:#f5ad78}
.hf-cal-results-exercise{border:1px solid #60402e;background:#281e19;border-radius:11px;padding:12px;display:grid;gap:12px}
.hf-cal-set-compare{display:grid;gap:8px;border-top:1px solid #654532;padding-top:8px}
.hf-cal-set-compare-header{display:flex;justify-content:space-between;align-items:center;gap:10px}
.hf-cal-set-columns{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.hf-cal-set-columns>div{display:grid;gap:5px;padding:9px;border:1px solid #5b3c2a;border-radius:8px;background:#201914}
.hf-cal-set-columns small,.hf-cal-feedback-grid small{font-size:11px;color:#e0aa85}
.hf-cal-set-columns strong{font-size:13px}
.hf-cal-delta{font-size:10px;font-weight:900;border-radius:15px;padding:4px 9px;background:#403027}
.hf-cal-delta-above{color:#a6e3b4}.hf-cal-delta-below{color:#ffb2a4}
.hf-cal-delta-mixed{color:#f1cc89}.hf-cal-delta-even{color:#d0dbce}
.hf-cal-review-status{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.hf-cal-unreviewed{font-size:12px;font-weight:850;color:#ffbd89}
.hf-cal-feedback-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.hf-cal-feedback-grid>div{display:grid;gap:5px;border-radius:8px;padding:10px;background:#34251d}
.hf-cal-feedback-grid strong{font-size:17px}
.hf-cal-audit-entry,.hf-cal-history-row{border-top:1px solid #573927;padding:10px 0;font-size:13px;display:grid;gap:4px}
.hf-cal-history-row small{color:#c99e81}
.hf-cal-pr-list{padding:4px 22px;display:grid;gap:6px;font-size:13px}
@media(max-width:420px){.hf-cal-set-columns{grid-template-columns:1fr}}
.hf-cal-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:18px 0 10px}
.hf-cal-summary>div{display:grid;gap:5px;background:#2a1e18;border:1px solid #694129;border-radius:11px;padding:12px}
.hf-cal-summary small{font-size:11px;font-weight:800;color:#eba572}
.hf-cal-summary strong{font-size:26px;line-height:1.2;color:#fbe2d3}
.hf-cal-summary span{font-size:10px;color:#dbb596}
.hf-cal-attention{margin-top:18px;display:grid;gap:11px}
.hf-cal-attention-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;border-top:1px solid #57402d;padding:10px 0}
.hf-cal-attention-row strong{font-size:13px}
.hf-cal-attention-row .small{margin-top:6px;font-size:11px}
.hf-cal-weekdays{display:flex;flex-wrap:wrap;gap:8px;border:1px solid #593b29;border-radius:10px;padding:12px}
.hf-cal-weekdays legend{font-size:12px;font-weight:800;color:#efb17f;padding:0 5px}
.hf-cal-weekdays label{display:flex;align-items:center;gap:5px;cursor:pointer;font-size:12px}
.hf-cal-weekdays input{width:16px;min-height:16px;accent-color:#f99053}
.hf-cal-week-by-client{display:grid;gap:14px}
.hf-cal-client-row{display:grid;grid-template-columns:120px repeat(7,minmax(0,1fr));gap:5px;align-items:start}
.hf-cal-client-row-name{font-weight:850;color:#ffd5b4;font-size:13px;padding:12px 5px}
.hf-cal-client-day{border:1px solid #5c3b29;background:#281f19;min-height:95px;padding:7px;border-radius:8px;display:grid;align-content:start;gap:5px}
.hf-cal-client-day>span{font-size:10px;color:#d9ac8d}
@media(max-width:1100px){.hf-cal-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.hf-cal-client-row{min-width:790px}}
@media(max-width:790px){.hf-cal-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.hf-cal-week-by-client{overflow-x:auto}.hf-cal-attention-row button{width:100%}}

.hf-cal-detail-targets{display:grid;gap:3px;padding:5px 9px;border-left:2px solid #8c6143}
.hf-cal-detail-exercise p{margin:3px 0 6px;white-space:pre-wrap}


/* HeartForged onboarding UI */
.hf-qrow{border:1px solid var(--border,#54433a);border-radius:12px;padding:16px;margin:12px 0;background:rgba(255,255,255,.025)}
.hf-qrow .field{margin-top:12px}
.hf-qcols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hf-waiver{white-space:pre-wrap;overflow-wrap:anywhere;max-height:470px;overflow-y:auto;border:1px solid var(--border,#54433a);border-radius:12px;padding:22px;line-height:1.6;background:rgba(255,255,255,.04);font-size:14px}
.hf-answer{padding:14px 2px;border-bottom:1px solid rgba(150,150,150,.2);overflow-wrap:anywhere}
.hf-answer b{display:block;margin-bottom:6px}
.hf-consent{display:flex;align-items:flex-start;gap:12px;padding:15px;border:1px solid var(--border,#54433a);border-radius:10px;line-height:1.5}
.hf-consent input{width:20px;height:20px;flex:0 0 20px;margin-top:3px}
#hf-signature-pad{display:block;width:100%;max-width:720px;height:170px;touch-action:none;cursor:crosshair;background:#fff;border:2px solid #a3a3a3;border-radius:10px;margin:10px 0}
@media (max-width:600px){.hf-qcols{grid-template-columns:1fr}.hf-qrow{padding:12px}.hf-waiver{padding:14px;max-height:380px}}

/* Dual-role athlete/coach switch: always visible at the start of phone navigation. */
@media(max-width:790px){
 .mobile-tabs .mobile-workspace-switch{flex:0 0 98px;min-width:98px;color:#ffc090;background:#37251e;border-right:1px solid #694332;border-radius:8px}
 .mobile-tabs .mobile-workspace-switch b{font-size:21px;color:#ff9854;line-height:1.15}
 .mobile-tabs .mobile-workspace-switch span{font-size:10px;font-weight:800;white-space:nowrap}
 .mobile-tabs .mobile-workspace-switch:focus-visible{outline:2px solid #ff9d67;outline-offset:-3px}
}
