:root{--bg:#f4f8f4;--bg-2:#e8f1ea;--paper:#fffefa;--paper-soft:#f8fbf7;--paper-quiet:#eef6ef;--ink:#15221b;--ink-soft:#31433a;--muted:#65756c;--muted-2:#8a9a90;--line:#dce6dd;--line-strong:#c7d5ca;--brand:#15945d;--brand-2:#0f7f50;--brand-soft:#e7f6ee;--accent:#256c91;--accent-soft:#e7f1f6;--danger:#c2413a;--danger-soft:#faecea;--warning:#9a640f;--warning-soft:#fff5df;--success:#12835a;--info:#256c91;--radius-xs:6px;--radius:8px;--radius-lg:8px;--radius-xl:8px;--motion:cubic-bezier(.22, 1, .36, 1);--spring:cubic-bezier(.2, .9, .18, 1.08);--shadow-soft:0 8px 22px #223e2b14;--shadow-lift:0 16px 36px #223e2b1f;--shadow-card:0 1px 0 #ffffffd9 inset, 0 10px 28px #1d322414;--focus-ring:0 0 0 4px #15945d29, 0 0 0 1px #15945d66;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Aptos,Segoe UI Variable,Segoe UI,Microsoft YaHei UI,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%}body{min-width:320px;color:var(--ink);background:linear-gradient(90deg, #15945d0a 1px, transparent 1px), linear-gradient(180deg, #15945d09 1px, transparent 1px), linear-gradient(180deg, var(--bg), var(--bg-2));background-size:32px 32px,32px 32px,auto;margin:0;overflow:hidden}button,input,select,textarea{font:inherit}button{border:0}button,a,.hero-panel,.status-card,.exercise-card,.leave-card,.form-card,.day-card,.penalty-card,.review-card,.metric,.bottom-nav a,.member-choice,.member-card,.fatigue-card{transition:transform .18s var(--spring), box-shadow .18s var(--motion), border-color .18s var(--motion), background .18s var(--motion), color .18s var(--motion)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible{box-shadow:var(--focus-ring);outline:0}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-shell,.center-screen{place-items:center;height:100svh;min-height:100svh;padding:20px;display:grid;overflow:hidden}.center-screen{overflow:auto}.app-frame,.login-card,.config-card{border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:var(--paper);width:min(100%,840px);box-shadow:var(--shadow-card)}.app-frame{flex-direction:column;height:min(980px,100svh - 40px);min-height:0;display:flex;position:relative;overflow:hidden}.app-content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.app-content>.screen{flex:1}.screen{overscroll-behavior:contain;min-height:0;animation:screen-enter .32s var(--motion) both;flex:1;padding:24px 28px 30px;overflow:auto}.screen::-webkit-scrollbar{width:9px}.screen::-webkit-scrollbar-thumb{background:#c7d8ca;border-radius:999px}.with-nav{padding-bottom:22px}.with-nav>:last-child{margin-bottom:0}.topbar{padding:calc(18px + env(safe-area-inset-top,0px)) 24px 16px;border-bottom:1px solid var(--line);background:linear-gradient(#fffefaf5,#f8fbf7f5),repeating-linear-gradient(90deg,#0000 0 22px,#15945d0b 22px 23px);justify-content:space-between;align-items:center;gap:14px;display:flex}.brand-block{align-items:center;gap:12px;min-width:0;display:flex}.brand-mark,.login-mark{border-radius:var(--radius);color:#fff;background:var(--brand);place-items:center;display:grid;box-shadow:0 10px 24px #15945d3d}.brand-mark{flex:none;width:42px;height:42px}.brand-block p,.brand-block h1,.hero-panel h2,.hero-panel p,.page-title h2,.page-title p,.metric small,.metric strong{margin:0}.brand-block p{color:var(--brand);letter-spacing:0;font-size:12px;font-weight:780}.brand-block h1{color:var(--ink);overflow-wrap:anywhere;margin-top:3px;font-size:clamp(21px,3.2vw,28px);font-weight:820;line-height:1.1}.ghost-button,.leave-card button,.today-choice-actions button,.row-actions button,.row-actions a,.preview-actions button,.admin-button,.icon-action,.planned-copy-button,.planned-edit-button,.planned-expand-button,.week-tabs button,.member-edit-button,.member-edit-actions button,.app-notice-actions button,.waiver-template-grid button,.waiver-modal-actions button{border:1px solid var(--line-strong);border-radius:var(--radius);min-height:44px;color:var(--ink-soft);background:var(--paper-soft);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:740;text-decoration:none;display:inline-flex;box-shadow:inset 0 1px #ffffffe6}.config-banner,.config-warning{color:var(--warning);background:var(--warning-soft);border-bottom:1px solid #efd7a8;align-items:center;gap:8px;padding:11px 18px;font-size:13px;line-height:1.45;display:flex}.config-warning{border-radius:var(--radius);border:1px solid #efd7a8}.contract-paper{position:relative}.contract-paper:after{content:"";background:linear-gradient(180deg, var(--brand), #256c918c, transparent);pointer-events:none;border-radius:999px;width:3px;position:absolute;inset:12px auto 12px 12px}.contract-paper-header{padding-left:28px}.contract-party-block{position:relative}.contract-paper-body{background:linear-gradient(#fffefab3,#f8fbf7b8),repeating-linear-gradient(0deg,#0000 0 35px,#15945d09 35px 36px)}.hero-panel,.status-card,.exercise-card,.leave-card,.form-card,.day-card,.penalty-card,.review-card,.metric,.member-card,.member-choice,.fatigue-card,.login-card,.config-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow-soft)}.hero-panel{background:linear-gradient(#fffefafa,#f6fbf6fa),repeating-linear-gradient(0deg,#0000 0 31px,#15945d0d 31px 32px);border-color:#bdd7c4;padding:28px;position:relative;overflow:hidden}.hero-panel:before{content:"";background:linear-gradient(90deg, var(--brand), var(--accent), #c48a21);height:5px;position:absolute;inset:0 0 auto}.hero-kicker{border-radius:var(--radius);width:fit-content;min-height:32px;color:var(--brand-2);background:var(--brand-soft);border:1px solid #b8dcc7;align-items:center;gap:7px;padding:0 10px;font-size:13px;font-weight:780;display:inline-flex}.contract-cover-panel{border-width:1px}.contract-cover-panel .hero-kicker{box-shadow:inset 0 1px #fffc}.hero-panel h2{letter-spacing:0;margin-top:18px;font-size:clamp(30px,6vw,42px);font-weight:860;line-height:1.02}.plan-title-with-source{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.plan-title-with-source>span:first-child{overflow-wrap:anywhere;min-width:0}.plan-source-tag{border-radius:var(--radius);width:fit-content;min-height:30px;color:var(--accent);background:var(--accent-soft);white-space:nowrap;border:1px solid #bdd6e3;flex:none;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:840;line-height:1;display:inline-flex}.plan-source-tag small{opacity:.72;border-left:1px solid;align-items:center;min-height:20px;padding-left:6px;font-size:11px;line-height:1;display:inline-flex}.plan-source-tag.coach{color:var(--brand-2);background:var(--brand-soft);border-color:#aad4b9}.plan-source-tag.empty{border-color:var(--line);color:var(--muted);background:var(--paper-soft)}.hero-panel p,.muted,.page-title p,.exercise-card p,.day-card span,.penalty-card span,.review-card span,.member-card span,.member-choice small{color:var(--muted)}.day-card .plan-source-tag,.hero-panel .plan-source-tag{color:var(--accent)}.day-card .plan-source-tag.coach,.hero-panel .plan-source-tag.coach{color:var(--brand-2)}.day-card .plan-source-tag.empty{color:var(--muted)}.page-title{gap:7px;margin:2px 0 18px;display:grid}.page-title h2{color:var(--ink);font-size:clamp(26px,5vw,34px);font-weight:840;line-height:1.08}.page-title p{max-width:62ch;font-size:15px;line-height:1.58}.metric-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.metric-row.three-col{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{background:linear-gradient(180deg, var(--paper), var(--paper-soft));align-content:space-between;gap:10px;min-width:0;min-height:108px;padding:16px;display:grid}.metric-icon{border-radius:var(--radius);width:36px;height:36px;color:var(--brand);background:var(--brand-soft);place-items:center;display:grid}.metric-icon svg{width:19px;height:19px}.metric small{color:var(--muted);font-size:12px;font-weight:700;display:block}.metric strong{color:var(--ink);overflow-wrap:anywhere;margin-top:4px;font-size:clamp(22px,5vw,30px);font-weight:860;line-height:1;display:block}.metric-bar{background:#dfe9e1;border-radius:999px;width:100%;height:4px;position:relative;overflow:hidden}.metric-bar:after{content:"";background:linear-gradient(90deg, var(--brand), var(--accent));width:46%;position:absolute;inset:0 auto 0 0}.section-heading,.day-head,.penalty-card,.review-card{justify-content:space-between;gap:12px;display:flex}.section-heading{border-bottom:1px solid var(--line);align-items:center;margin:26px 0 12px;padding-bottom:8px}.section-heading h3{color:var(--ink);margin:0;font-size:21px;font-weight:820}.section-heading span{color:var(--muted);font-size:13px;font-weight:700}.status-card,.leave-card,.form-card,.day-card,.review-card,.penalty-card{margin-top:14px;padding:18px}.status-card strong,.day-head strong,.review-card strong{color:var(--ink);font-weight:780}.contract-section{margin-top:18px}.contract-section-heading{border-bottom-color:#c9dbc9}.contract-clause-card{border-left:4px solid #15945d47}.action-card{background:linear-gradient(180deg, var(--paper), var(--paper-soft));gap:8px;display:grid}.action-card strong{font-size:18px;font-weight:800}.action-card p,.status-card p,.leave-card p,.form-card p,.day-card p,.review-card p,.penalty-card p{color:var(--muted);margin:0;line-height:1.55}.members-screen{padding-bottom:calc(98px + env(safe-area-inset-bottom,0px))}.plan-workspace{margin-top:28px}.plan-workspace .section-heading{margin-top:0}.planned-list-section,.low-frequency-section{border-top:1px solid var(--line);margin-top:34px;padding-top:22px}.planned-list-section .section-heading,.low-frequency-section .section-heading{margin-top:0}.planned-week-list{gap:15px;margin-top:12px}.planned-week-list .day-card,.planned-empty-card{margin-top:0}.planned-plan-card{cursor:default;outline:none;gap:12px;display:grid}.planned-plan-topline{grid-template-columns:minmax(0,1fr) minmax(240px,auto);align-items:start;gap:12px;display:grid}.planned-plan-main{text-align:left;gap:10px;width:100%;min-width:0;display:grid}.planned-plan-main strong{overflow-wrap:anywhere;min-width:0}.planned-plan-card.active{box-shadow:inset 4px 0 0 var(--brand), var(--shadow-soft);border-color:#9bcfac}.planned-plan-exercises{gap:10px;display:grid}.planned-plan-meta,.planned-plan-actions{flex-wrap:wrap;gap:8px;display:flex}.planned-plan-actions{justify-content:flex-end}.planned-source-chip,.planned-count-chip{border:1px solid var(--line);border-radius:var(--radius);min-height:34px;color:var(--muted);white-space:nowrap;background:#ffffffb8;flex:none;align-items:center;padding:0 10px;font-size:13px;font-weight:760;display:inline-flex}.planned-count-chip{color:var(--brand-2);background:var(--brand-soft);border-color:#aad4b9}.planned-copy-button,.planned-edit-button,.planned-expand-button{white-space:nowrap;background:#fff;justify-self:end;min-width:126px}.planned-edit-button{color:var(--brand-2);background:var(--brand-soft);border-color:#aad4b9}.planned-expand-button{min-width:104px}.planned-expand-button[aria-expanded=true] svg{transform:rotate(180deg)}.return-review-button{color:#8a5f00;background:#fff9e8;border-color:#e6c67e}.make-up-checkin-button{color:var(--brand-2);background:var(--brand-soft);border-color:#aad4b9}.today-choice-card{gap:14px}.today-choice-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.today-choice-actions button{white-space:nowrap;min-width:0;min-height:48px;padding:0 12px}.today-choice-actions button:first-child{color:var(--brand-2);background:var(--brand-soft);border-color:#aad4b9}.today-choice-actions button:nth-child(2){color:#446a9c;background:#edf6ff;border-color:#b8d3f0}.today-choice-leave-field{margin-top:2px}.plan-copy-note{border-radius:var(--radius);background:var(--brand-soft);border:1px solid #b7d8c2;margin:0 0 12px;padding:10px 12px}.plan-workspace-copied{animation:copy-target-pulse 1.4s var(--motion)}.low-frequency-section{padding-bottom:18px}.add-member-card{background:linear-gradient(180deg, var(--paper), var(--paper-soft)), repeating-linear-gradient(0deg, transparent 0 31px, #15945d0a 31px 32px);border-color:#b7d8c2;gap:14px;display:grid}.form-card-head{gap:5px;display:grid}.form-card-head strong{color:var(--ink);font-size:18px;font-weight:800}.form-card-head span{color:var(--muted);line-height:1.45}.participant-select{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-soft);padding:14px}.participant-label{color:var(--brand-2)}.participant-empty{border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--paper-soft);margin:14px 0 0;padding:14px}.participant-code-card strong{color:var(--brand-2)}.member-binding-card{background:#fffefac7;padding:0;overflow:hidden}.member-binding-toggle{width:100%;min-height:56px;color:var(--ink);cursor:pointer;text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.member-binding-toggle span{gap:3px;min-width:0;display:grid}.member-binding-toggle strong{color:var(--ink);font-size:16px;font-weight:820}.member-binding-toggle small{color:var(--muted);font-size:13px;font-weight:720}.member-binding-detail{border-top:1px solid var(--line);gap:8px;padding:0 16px 16px;display:grid}.member-code-value{border-radius:var(--radius);width:fit-content;min-height:34px;color:var(--brand-2);background:var(--brand-soft);overflow-wrap:anywhere;border:1px solid #aad4b9;align-items:center;padding:0 11px;font-weight:820;display:inline-flex}.member-binding-detail p{color:var(--muted);margin:0;line-height:1.5}.exercise-list,.week-list,.penalty-list,.review-list{gap:12px;display:grid}.plan-screen .week-list{gap:16px}.plan-day-card{gap:14px;display:grid}.plan-day-summary{gap:8px;min-width:0;display:grid}.plan-day-title{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;display:flex}.plan-day-title strong{min-width:0;color:var(--ink);overflow-wrap:anywhere;font-size:21px;line-height:1.2}.plan-day-meta,.plan-card-actions{flex-wrap:wrap;gap:8px;display:flex}.plan-day-meta span{border:1px solid var(--line);border-radius:var(--radius);width:fit-content;min-height:30px;color:var(--muted);background:var(--paper-soft);align-items:center;padding:0 10px;font-size:12px;font-weight:760;display:inline-flex}.plan-card-actions{justify-content:flex-end;padding-top:2px}.plan-card-actions .ghost-button{min-width:126px}.plan-edit-trigger{color:var(--brand-2);background:var(--brand-soft);border-color:#aad4b9}.plan-day-detail{gap:10px;padding-top:2px;display:grid}.plan-day-editor{gap:12px;padding-top:4px;display:grid}.plan-day-editor .plan-editor{margin-top:0}.plan-editor-strip{border-radius:var(--radius);background:linear-gradient(180deg, #fff, var(--brand-soft));border:1px solid #d9eadb;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.plan-editor-strip strong{color:var(--ink);font-size:15px}.exercise-card{background:var(--paper-soft);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px;display:grid}.exercise-card-main{min-width:0}.exercise-card h3{color:var(--ink);margin:0;font-size:18px;font-weight:780}.exercise-card p{margin:6px 0 0;font-size:14px;line-height:1.55}.exercise-dose{border-radius:var(--radius);min-width:154px;max-width:240px;min-height:42px;color:var(--brand-2);text-align:center;overflow-wrap:anywhere;background:linear-gradient(#f7fff9,#e8f7ee);border:1px solid #b8d9c4;justify-content:center;align-items:center;padding:0 12px;font-size:14px;font-weight:840;line-height:1.25;display:inline-flex}input,select,textarea{border:1px solid var(--line-strong);border-radius:var(--radius);width:100%;color:var(--ink);background:#fff;outline:0;transition:border-color .18s,box-shadow .18s,background .18s}input,select{min-height:48px;padding:0 13px}textarea{resize:vertical;min-height:96px;padding:13px}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--brand);box-shadow:var(--focus-ring);background:#fff}input[type=file]{min-height:56px;padding:10px;line-height:1.5}input::file-selector-button{border-radius:var(--radius);min-height:36px;color:var(--brand-2);background:var(--brand-soft);font:inherit;cursor:pointer;border:1px solid #aad4b9;margin-right:10px;font-weight:760}input[type=checkbox]{accent-color:var(--brand)}label{color:var(--muted);gap:9px;font-size:14px;font-weight:700;display:grid}.field-label{color:var(--muted);font-size:13px;font-weight:780}.primary-action{border:1px solid var(--brand-2);border-radius:var(--radius);color:#fff;background:var(--brand);cursor:pointer;letter-spacing:0;justify-content:center;align-items:center;width:100%;min-height:58px;margin-top:14px;font-size:17px;font-weight:820;display:inline-flex;box-shadow:0 12px 24px #15945d33,inset 0 1px #ffffff38}.primary-action:disabled,.leave-card button:disabled,.row-actions button:disabled,.withdraw-checkin-button:disabled,.preview-actions button:disabled,.waiver-template-grid button:disabled,.waiver-modal-actions button:disabled,.admin-button:disabled,.icon-action:disabled,.member-edit-button:disabled,.member-edit-actions button:disabled{opacity:.55;cursor:default;box-shadow:none}.leave-card{gap:12px;display:grid}.form-grid,.check-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.fatigue-field{gap:12px;display:grid}.fatigue-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.fatigue-card{min-height:104px;color:var(--ink);background:var(--paper-soft);cursor:pointer;text-align:center;align-content:center;justify-items:center;gap:5px;padding:10px 6px;display:grid}.fatigue-card.active{background:var(--brand-soft);box-shadow:inset 0 -4px 0 #15945d3d, var(--shadow-soft);border-color:#8ccba2}.fatigue-face{transform-origin:50%;font-size:25px;line-height:1}.fatigue-card strong{font-size:14px;font-weight:800}.fatigue-card small{color:var(--muted);font-size:11px;line-height:1.25}.switch-row{border:1px solid var(--line-strong);border-radius:var(--radius);min-height:48px;color:var(--ink-soft);background:var(--paper-soft);align-items:center;gap:10px;padding:0 12px;display:flex}.switch-row input{flex:none;width:18px;min-height:18px}.compact-heading{margin:6px 0 0}.icon-action{width:44px;min-height:44px;padding:0}.danger-action{color:#fff;background:var(--danger);border-color:#9f2f2c;align-self:end}.plan-editor,.plan-item-list,.plan-item-editor{gap:12px;display:grid}.contract-clause-editor{border-left:4px solid #15945d47}.contract-term-list{counter-reset:contract-term}.plan-item-editor{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-soft);padding:14px;position:relative}.contract-term-editor{padding-left:44px}.contract-term-editor:before{counter-increment:contract-term;content:counter(contract-term);color:#fff;background:var(--brand);border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;font-weight:820;display:grid;position:absolute;top:16px;left:14px}.member-select{gap:10px;margin-top:14px;display:grid}.member-select-loading{align-content:start;min-height:88px;padding:12px 0}.member-list,.week-tabs{gap:10px;margin-top:14px;display:grid}.member-list{grid-template-columns:1fr}.member-choice-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.member-choice{min-height:68px;color:var(--ink);cursor:pointer;text-align:left;align-content:center;justify-items:start;gap:3px;padding:12px 14px;display:grid}.participant-choice{background:#fff}.member-choice.active,.member-card.active{color:var(--ink);background:var(--brand-soft);box-shadow:inset 4px 0 0 var(--brand), var(--shadow-soft);border-color:#8ccba2}.member-choice span,.member-choice small,.member-card small{color:var(--muted);font-size:12px}.current-member-card{position:relative}.current-member-card.editing{align-content:start}.current-member-head{justify-content:space-between;align-items:flex-start;gap:10px;min-width:0;display:flex}.current-member-edit-button{flex:none}.current-member-edit-form{grid-template-columns:minmax(0,1fr) auto;align-items:end}.member-card{cursor:default;text-align:left;grid-template-columns:minmax(0,1fr);place-items:center stretch;gap:8px;min-height:60px;padding:10px 12px;display:grid}.member-card-main{width:100%;min-width:0;min-height:40px;color:var(--ink);box-shadow:none;cursor:pointer;text-align:left;background:0 0;border:0;align-content:center;gap:3px;padding:0 2px;display:grid}.member-card-main strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.member-card-main span{color:var(--muted);font-size:12px;font-weight:700}.member-card-main:hover{box-shadow:none}.member-card.active span,.member-card.active small,.member-card.active .member-edit-button span{color:inherit}.member-card.editing{grid-template-columns:1fr;align-items:stretch;min-height:0;padding:12px}.member-edit-button{white-space:nowrap;justify-content:center;width:auto;min-height:40px;padding:0 12px}.member-edit-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;width:100%;display:grid}.member-edit-actions{gap:6px;display:flex}.member-edit-actions button{min-height:40px;padding:0 10px}.spin-icon{animation:.9s linear infinite spin}.week-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.week-tabs button.active{color:#fff;border-color:var(--brand-2);background:var(--brand);box-shadow:0 10px 22px #15945d2e}.evidence-grid,.compact-list{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.evidence-grid img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);border:1px solid var(--line);background:var(--paper-soft);width:96px;height:auto;box-shadow:var(--shadow-soft)}.mini-chip{border:1px solid var(--line);border-radius:var(--radius);max-width:100%;min-height:34px;color:var(--ink-soft);background:var(--paper-soft);overflow-wrap:anywhere;align-items:center;padding:0 11px;font-size:13px;font-weight:720;display:inline-flex}.status-pill{border:1px solid var(--line);border-radius:var(--radius);width:fit-content;color:var(--ink-soft);background:var(--paper-soft);white-space:nowrap;align-items:center;gap:7px;padding:7px 10px;font-size:12px;font-weight:780;display:inline-flex}.status-dot{opacity:.82;background:currentColor;border-radius:999px;flex:none;width:7px;height:7px}.status-pill.completed,.status-pill.excused,.status-pill.paid{color:#047857;background:#e7f6ee;border-color:#aad4b9}.status-pill.pending_review,.status-pill.pending{color:#9a640f;background:#fff5df;border-color:#efd7a8}.status-pill.payment_reported,.status-pill.waived{color:#1d5f82;background:#e7f1f6;border-color:#bdd6e3}.status-pill.missed{color:#b91c1c;background:#faecea;border-color:#eab7b2}.bottom-nav{margin:0 20px calc(18px + env(safe-area-inset-bottom,0px));border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--paper-soft);box-shadow:var(--shadow-soft);flex:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:8px;display:grid;position:relative}.bottom-nav a{border-radius:var(--radius);min-width:0;min-height:58px;color:var(--muted);place-items:center;gap:3px;font-size:12px;font-weight:750;text-decoration:none;display:grid}.bottom-nav a.active{color:var(--brand-2);background:#fff;box-shadow:inset 0 -3px #15945d52,0 6px 14px #15945d14}.bottom-nav a svg{stroke-width:2.2px}.keyboard-open .bottom-nav{opacity:0;pointer-events:none;border-color:#0000;max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0;overflow:hidden;transform:translateY(120%)}.penalty-card,.review-card{align-items:center}.penalty-card>div,.review-card>div{min-width:0}.penalty-copy{align-content:center;gap:8px;min-width:0;display:grid}.penalty-card strong{color:var(--brand);font-size:30px;font-weight:860;line-height:1;display:block}.penalty-card span,.review-card span{overflow-wrap:anywhere}.penalty-meta{color:var(--muted);font-size:14px;line-height:1.45;display:block}.review-detail-card{align-items:stretch;gap:14px;display:grid}.review-card-summary{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px;display:grid}.review-card-copy{gap:6px;min-width:0;display:grid}.review-status-column{justify-items:end;gap:10px;display:grid}.review-expand-button{border:1px solid var(--line-strong);border-radius:var(--radius);min-height:40px;color:var(--brand-2);background:var(--brand-soft);cursor:pointer;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-size:13px;font-weight:780;display:inline-flex}.review-detail-panel{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(#fffefaf5,#f8fbf7f5),repeating-linear-gradient(0deg,#0000 0 35px,#15945d09 35px 36px);border-left:4px solid #15945d4d;gap:12px;padding:14px;display:grid}.review-detail-section{border:1px solid var(--line);border-radius:var(--radius);background:#fff;gap:10px;padding:12px;display:grid}.review-detail-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:8px;display:flex}.review-detail-head strong{color:var(--ink);font-size:16px;font-weight:820}.review-detail-head span{color:var(--muted);text-align:right;font-size:12px;font-weight:760}.review-note-box,.review-plan-summary,.review-empty-detail{color:var(--ink-soft);margin:0;line-height:1.58}.review-note-box{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-soft);padding:10px 12px}.review-empty-detail{color:var(--muted)}.review-comment-section{background:linear-gradient(180deg, #fff, var(--accent-soft));border-color:#bdd6e3}.review-comment-field textarea{background:#fff;min-height:112px}.review-inline-comment{border-radius:var(--radius);background:linear-gradient(180deg, #fff, var(--accent-soft));border:1px solid #bdd6e3;gap:10px;padding:14px}.review-inline-comment textarea{min-height:92px}.review-comment-label-row{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.review-comment-label-row strong{color:var(--ink);font-size:15px;font-weight:820}.review-comment-label-row small{color:var(--muted);text-align:right;font-size:12px;font-weight:720}.checkin-clause-card{gap:12px;display:grid}.pending-checkin-card{background:linear-gradient(180deg, #fffefa, var(--warning-soft));border-color:#efd7a8}.checkin-summary-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.checkin-summary-head>span{color:var(--muted);text-align:right;font-size:13px;font-weight:760}.withdraw-checkin-button{border-radius:var(--radius);width:100%;min-height:52px;color:var(--danger);background:var(--danger-soft);cursor:pointer;border:1px solid #e7b8b2;justify-content:center;align-items:center;gap:8px;font-size:16px;font-weight:820;display:inline-flex}.coach-comment-box{border:1px solid #bdd6e3;border-left:4px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft);gap:6px;margin-top:12px;padding:12px;display:grid}.coach-comment-box strong{color:var(--accent);font-size:13px;font-weight:820}.coach-comment-box p{color:var(--ink-soft);margin:0;line-height:1.55}.ledger-comment-box{margin-top:10px}.penalty-source-note{background:#fff7e6;border-left:3px solid #f2b35e;border-radius:6px;width:min(100%,280px);margin-top:2px;padding:7px 10px;font-size:13px;font-weight:720;line-height:1.35;display:block;color:#735129!important}.review-chip-row{flex-wrap:wrap;gap:8px;display:flex}.review-plan-list{gap:9px;display:grid}.review-plan-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-soft);gap:4px;padding:11px 12px;display:grid}.review-plan-item strong{color:var(--ink);font-size:15px;font-weight:820}.review-plan-item span{color:var(--brand-2);font-size:13px;font-weight:760}.review-plan-item p{color:var(--muted);margin:0;line-height:1.45}.penalty-card.waiver-under-review,.review-card.waiver-review-card{background:linear-gradient(180deg, #fff, var(--accent-soft));border-color:#bdd6e3}.waiver-inline-note{margin-top:7px;font-weight:760;display:block;color:var(--accent)!important}.waiver-review-badge{border-radius:var(--radius);background:var(--brand-soft);border:1px solid #aad4b9;align-items:center;width:fit-content;min-height:30px;margin-top:3px;padding:0 10px;font-size:12px;font-weight:820;display:inline-flex;color:var(--brand-2)!important}.waiver-review-reason{font-weight:740;display:block;color:var(--ink-soft)!important}.row-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.row-actions button,.row-actions a{white-space:nowrap;min-width:0}.waiver-modal-backdrop{z-index:60;-webkit-backdrop-filter:blur(8px);background:#14211b57;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.waiver-modal{border:1px solid var(--line-strong);border-radius:var(--radius);width:min(520px,100%);color:var(--ink);background:var(--paper);box-shadow:var(--shadow-lift);gap:16px;padding:22px;display:grid}.waiver-modal h3,.waiver-modal p{margin:0}.waiver-modal h3{margin-top:6px;font-size:25px;line-height:1.15}.waiver-modal p{color:var(--muted);margin-top:8px;line-height:1.55}.waiver-template-grid{gap:9px;display:grid}.waiver-modal-actions{grid-template-columns:1fr 1.25fr;gap:10px;display:grid}.waiver-modal-actions button:last-child{color:#fff;border-color:var(--brand-2);background:var(--brand)}.login-card,.config-card{gap:16px;max-width:560px;padding:30px;display:grid}.login-contract-card{gap:20px}.login-contract-header{gap:13px;display:grid}.login-form{padding-top:4px}.participant-preview-actions{padding-top:2px}.login-mark{width:58px;height:58px}.login-card h1,.config-card h1{color:var(--ink);margin:0;font-size:clamp(31px,7vw,40px);font-weight:860;line-height:1.06}.login-card p,.config-card p{color:var(--muted);margin:0;line-height:1.58}.login-card form,.preview-actions{gap:12px;display:grid}.preview-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.form-error{color:#a23b35;margin:0;font-weight:760}.form-success{color:var(--success);margin:0;font-weight:760}code{overflow-wrap:anywhere;border-radius:var(--radius);color:var(--warning);background:var(--warning-soft);padding:10px}.app-notice{z-index:50;border:1px solid var(--line-strong);border-radius:var(--radius);width:min(100vw - 24px,520px);color:var(--ink);background:var(--paper);box-shadow:var(--shadow-lift);justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex;position:fixed;top:14px;left:50%;transform:translate(-50%)}.app-notice.info{border-color:#bdd6e3}.app-notice.success{border-color:#aad4b9}.app-notice.warning{border-color:#efd7a8}.app-notice-actions{flex:none;gap:7px;display:flex}.app-notice-actions button{min-height:36px;padding:0 11px}.dashboard-row{align-items:flex-start}.dashboard-record-copy{gap:9px;min-width:0;display:grid}.dashboard-record-date{line-height:1.2}.dashboard-record-detail{color:var(--muted);line-height:1.55;display:block}.checkin-screen{background:linear-gradient(150deg,#15945d1a,#0000 34%),linear-gradient(25deg,#ffb55529,#0000 30%)}.checkin-title-block{gap:8px;margin:2px 0 14px;padding:2px 2px 4px;display:grid}.checkin-title-block h2,.checkin-title-block p{margin:0}.checkin-title-block h2{color:var(--ink);font-size:clamp(30px,6vw,40px);font-weight:860;line-height:1.06}.checkin-title-block p{max-width:52ch;color:var(--muted);font-size:15px;font-weight:720;line-height:1.55}.checkin-plan-card{background:linear-gradient(#fffffaf5,#f8fcf7f5),radial-gradient(circle at 100% 0,#256c911c,#0000 32%);border-color:#b4d2bcf0;position:relative;overflow:hidden}.checkin-plan-card:before{content:"";background:linear-gradient(180deg, var(--brand), #f0a33a);width:5px;position:absolute;inset:0 auto 0 0}.checkin-panel{background:linear-gradient(#fffffafa,#f6fbf7fa),radial-gradient(circle at 0 0,#ffb5551f,#0000 34%);border-color:#bbd3c1f0;gap:18px;padding:20px;display:grid}.checkin-section-head{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.checkin-section-head>span{border-radius:var(--radius);width:38px;height:38px;color:var(--brand-2);background:var(--brand-soft);border:1px solid #b9ddc7;place-items:center;font-size:13px;font-weight:900;display:grid}.checkin-section-head strong,.checkin-section-head small{display:block}.checkin-section-head strong{color:var(--ink);font-size:18px}.checkin-section-head small{color:var(--muted);margin-top:2px;font-weight:700}.checkin-section-copy{min-width:0}.checkin-issue-grid{gap:10px}.checkin-issue-grid .switch-row{background:#ffffffad}.checkin-note-field textarea{background:#ffffffdb;min-height:118px}.submit-error{border-radius:var(--radius);background:var(--danger-soft);border:1px solid #e6b7b2;padding:11px 12px}.submit-error-block{border-radius:var(--radius);background:var(--danger-soft);border:1px solid #e6b7b2;gap:10px;padding:12px;display:grid}.submit-error-title{color:var(--danger);align-items:flex-start;gap:8px;display:flex}.submit-error-title strong{line-height:1.45}.checkin-submit-notice,.submit-near-button{border-radius:var(--radius);color:var(--ink);background:linear-gradient(180deg, #fff, var(--accent-soft));border:1px solid #bdd6e3;gap:4px;padding:11px 12px;display:grid}.checkin-submit-notice.warning,.submit-near-button.warning{background:var(--danger-soft);border-color:#e6b7b2}.checkin-submit-notice.success{background:var(--brand-soft);border-color:#aad4b9}.checkin-submit-notice strong,.submit-near-button strong{font-size:13px;line-height:1.2}.checkin-submit-notice span,.submit-near-button span{color:var(--ink-soft);font-size:13px;font-weight:680;line-height:1.45}.checkin-submit{gap:9px;margin-top:2px}.is-spinning{animation:.9s linear infinite spin}.loading-card{align-content:center;min-height:260px}.skeleton-card{overflow:hidden}.skeleton-line,.skeleton-row,.skeleton-tile{border-radius:var(--radius);background:#e5eee7;display:block;position:relative;overflow:hidden}.skeleton-line{width:100%;height:14px;margin-top:12px}.skeleton-line.short{width:36%}.skeleton-line.medium{width:62%}.skeleton-line.title{width:76%;height:30px}.skeleton-row{height:86px;margin-top:12px}.skeleton-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px;display:grid}.skeleton-tile{min-height:90px}.skeleton-line:after,.skeleton-row:after,.skeleton-tile:after{content:"";background:linear-gradient(90deg,#0000,#ffffffb8,#0000);animation:1.8s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}.payments-screen{padding-bottom:calc(34px + env(safe-area-inset-bottom,0px))}.penalty-rule-card{gap:14px;margin-top:18px;padding:18px;display:grid}.penalty-rule-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.penalty-rule-head>div{gap:5px;min-width:0;display:grid}.penalty-rule-head strong{color:var(--ink);font-size:18px;font-weight:820}.penalty-rule-head span{color:var(--muted);font-size:13px;font-weight:720}.penalty-rule-head button{border:1px solid var(--line-strong);border-radius:var(--radius);min-height:40px;color:var(--muted);background:var(--paper-soft);flex:none;padding:0 13px;font-weight:760}.penalty-rule-head button:disabled{cursor:not-allowed;opacity:.58}.penalty-rule-grid{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(112px,max-content);align-items:end;gap:12px;display:grid}.penalty-rule-grid label{min-width:0;color:var(--ink-soft);gap:6px;font-size:13px;font-weight:740;display:grid}.penalty-rule-grid input{border:1px solid var(--line);border-radius:var(--radius);width:100%;min-height:46px;color:var(--ink);background:#fff;padding:0 12px;font-weight:820}.penalty-rule-grid button{border-radius:var(--radius);min-height:46px;color:var(--brand-2);background:var(--brand-soft);white-space:nowrap;border:1px solid #aad4b9;padding:0 16px;font-weight:820}.penalty-rule-grid button:disabled{cursor:not-allowed;opacity:.58}.penalty-rule-message{color:var(--muted);margin:0;font-size:13px;line-height:1.45}.payments-controls{gap:14px;margin:18px 0 20px;display:grid}.payments-summary{margin-top:0;padding:20px 22px}.payments-summary strong{font-size:clamp(20px,5vw,24px);line-height:1.16}.payments-summary p{max-width:48ch;font-size:15px;line-height:1.62}.payments-toolbar{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-soft);box-shadow:var(--shadow-soft);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px;display:grid}.payments-toolbar label{min-width:0}.payments-toolbar select{min-height:52px}.payments-screen .payment-list{gap:16px;padding-bottom:18px}.payments-screen .payment-card{grid-template-columns:minmax(0,1fr) minmax(112px,max-content);grid-template-areas:"copy status""copy actions";align-items:start;gap:12px 16px;padding:18px;display:grid}.payment-copy{grid-area:copy;align-content:center;gap:8px;min-width:0;display:grid}.payments-screen .payment-copy strong{font-size:clamp(29px,8vw,34px)}.payments-screen .payment-copy span{font-size:14px;line-height:1.45}.payment-status{grid-area:status;justify-content:flex-end;justify-self:end;min-width:max-content;padding-top:2px;display:flex}.payment-actions{grid-area:actions;justify-self:end;gap:8px;width:100%;display:grid}.payments-screen .payment-actions button{white-space:nowrap;width:100%;min-width:0;min-height:42px;padding:0 12px}@media (hover:hover){.primary-action:hover:not(:disabled),.ghost-button:hover,.leave-card button:hover:not(:disabled),.today-choice-actions button:hover:not(:disabled),.row-actions button:hover:not(:disabled),.row-actions a:hover,.preview-actions button:hover:not(:disabled),.waiver-template-grid button:hover:not(:disabled),.waiver-modal-actions button:hover:not(:disabled),.admin-button:hover,.icon-action:hover,.planned-copy-button:hover,.planned-edit-button:hover,.planned-expand-button:hover,.week-tabs button:hover,.member-edit-button:hover,.member-edit-actions button:hover,.bottom-nav a:hover,.member-choice:hover,.member-card-main:hover{box-shadow:var(--shadow-lift);transform:translateY(-1px)}.primary-action:hover:not(:disabled),.waiver-modal-actions button:last-child:hover:not(:disabled){background:var(--brand-2)}.exercise-card:hover,.day-card:hover,.penalty-card:hover,.review-card:hover,.metric:hover,.status-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-1px)}}button:active,.bottom-nav a:active,.row-actions a:active,.waiver-template-grid button:active,.waiver-modal-actions button:active{transform:translateY(0)scale(.99)}@keyframes screen-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{to{transform:translate(100%)}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (height<=1000px){.app-notice{top:auto;bottom:calc(92px + env(safe-area-inset-bottom,0px))}}@media (width>=760px) and (height<=1000px){.app-notice{flex-direction:column;align-items:flex-start;width:min(300px,100vw - 36px);top:18px;bottom:auto;left:18px;transform:none}.app-notice-actions{justify-content:flex-end;width:100%}}@media (width<=760px){.app-shell,.center-screen{padding:0}.app-frame,.login-card,.config-card{border:0;border-radius:0;width:100%;height:100svh;min-height:0;max-height:none}.login-card,.config-card{align-content:center;min-height:100svh}.screen{padding:18px 14px 24px}.members-screen{padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))}.topbar{padding-left:14px;padding-right:14px}.contract-paper:after{display:none}.contract-paper-header{padding-left:14px}.ghost-button{padding:0 10px}.hero-panel{padding:22px}.bottom-nav{margin-left:10px;margin-right:10px}.app-notice{top:auto;bottom:calc(92px + env(safe-area-inset-bottom,0px))}}@media (width<=560px){.metric-row,.metric-row.three-col,.form-grid,.check-grid,.member-choice-list,.week-tabs,.penalty-rule-grid,.payments-toolbar{grid-template-columns:1fr}.contract-term-editor{padding-top:44px;padding-left:14px}.contract-term-editor:before{top:14px}.fatigue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.preview-actions{grid-template-columns:1fr}.planned-plan-topline,.planned-plan-actions{grid-template-columns:1fr;display:grid}.today-choice-actions,.current-member-edit-form{grid-template-columns:1fr}.current-member-edit-form .member-edit-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.planned-copy-button,.planned-edit-button,.planned-expand-button{width:100%;min-width:0}.plan-day-title,.plan-editor-strip{flex-direction:column;align-items:stretch}.plan-card-actions{grid-template-columns:1fr;display:grid}.plan-card-actions .ghost-button{width:100%}.exercise-card{grid-template-columns:1fr;align-items:stretch}.exercise-dose{text-align:left;justify-content:flex-start;width:100%;min-width:0;max-width:none}.hero-panel h2{font-size:31px}}@keyframes copy-target-pulse{0%{filter:drop-shadow(0 0 #15945d00)}28%{filter:drop-shadow(0 0 18px #15945d38)}to{filter:drop-shadow(0 0 #15945d00)}}@media (width<=430px){.brand-block{gap:10px}.brand-mark{width:38px;height:38px}.brand-block h1{font-size:21px}.ghost-button{gap:6px;font-size:13px}.penalty-card,.review-card,.exercise-card{flex-direction:column;align-items:stretch}.review-detail-card{display:grid}.review-card-summary,.review-detail-head{grid-template-columns:1fr}.review-status-column{justify-items:start}.checkin-summary-head,.penalty-rule-head,.review-comment-label-row{flex-direction:column;align-items:flex-start}.penalty-rule-head button{width:100%}.review-comment-label-row small{text-align:left}.penalty-card .row-actions,.review-card .row-actions{justify-content:flex-start}.penalty-card .row-actions button,.penalty-card .row-actions a,.review-card .row-actions button,.review-card .row-actions a{flex:132px}.waiver-modal{padding:18px}.waiver-modal-actions,.payments-screen .payment-card{grid-template-columns:1fr}.payments-screen{padding-bottom:calc(42px + env(safe-area-inset-bottom,0px))}.payments-controls{gap:16px;margin:20px 0 22px}.payments-summary{padding:20px}.payments-screen .payment-list{gap:18px;padding-bottom:26px}.payments-screen .payment-card{grid-template-areas:"copy""status""actions";gap:14px;padding:20px}.payment-status{justify-content:flex-start;justify-self:start;padding-top:0}.payment-actions{grid-template-columns:repeat(2,minmax(0,1fr));justify-self:stretch}.bottom-nav a span{font-size:11px}}
