@font-face{font-family:melangeSemiLight;src:url(../media/KMRMelangeGrotesk_SemiLight-s.p.23ibdy4flo3sb.otf)format("opentype");font-display:swap;font-weight:350}@font-face{font-family:melangeSemiLight Fallback;src:local(Arial);ascent-override:98.3%;descent-override:32.6%;line-gap-override:0.0%;size-adjust:100.31%}.melangesemilight_50491502-module__8fGF0W__className{font-family:melangeSemiLight,melangeSemiLight Fallback;font-weight:350}.melangesemilight_50491502-module__8fGF0W__variable{--font-melange-semilight:"melangeSemiLight", "melangeSemiLight Fallback"}
@font-face{font-family:melangeMedium;src:url(../media/KMRMelangeGrotesk_Medium-s.p.2wd793wx4jopf.otf)format("opentype");font-display:swap;font-weight:500}@font-face{font-family:melangeMedium Fallback;src:local(Arial);ascent-override:96.13%;descent-override:31.88%;line-gap-override:0.0%;size-adjust:102.57%}.melangemedium_9ec5d555-module__6l3Q4G__className{font-family:melangeMedium,melangeMedium Fallback;font-weight:500}.melangemedium_9ec5d555-module__6l3Q4G__variable{--font-melange-medium:"melangeMedium", "melangeMedium Fallback"}
:root{--bg:#fafafa;--surface:#fff;--ink:#111;--ink-soft:#6b6b6b;--line:#e4e4e4;--accent:#41729f;--accent-ink:#fff;--accent-bg:#cce1f5;--steel:#3e4c56;--steel-soft:#8c99a1;--good:#2f5c34;--good-bg:#e4ebe0;font-size:16px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0a0a0a;--surface:#161616;--ink:#f5f5f5;--ink-soft:#a3a3a3;--line:#2c2c2c;--accent:#7fa0c2;--accent-ink:#0a0a0a;--accent-bg:#22334a;--steel:#8fa0ab;--steel-soft:#5b6970;--good:#7ca377;--good-bg:#243024}}:root[data-theme=dark]{--bg:#0a0a0a;--surface:#161616;--ink:#f5f5f5;--ink-soft:#a3a3a3;--line:#2c2c2c;--accent:#7fa0c2;--accent-ink:#0a0a0a;--accent-bg:#22334a;--steel:#8fa0ab;--steel-soft:#5b6970;--good:#7ca377;--good-bg:#243024}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--font-melange-semilight), system-ui, -apple-system, sans-serif;min-height:100%;margin:0;padding:0}h1,h2,h3,.display{font-family:var(--font-melange-medium), system-ui, sans-serif;letter-spacing:-.03em;margin:0;font-weight:500}.num{font-variant-numeric:tabular-nums}header{z-index:10;background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0}.header-inner{align-items:center;gap:28px;max-width:980px;margin:0 auto;padding:16px 20px;display:flex}.wordmark-lockup{flex-direction:column;gap:4px;display:flex}.wordmark-logo{width:auto;height:28px;display:block}.wordmark-tagline{font-family:var(--font-melange-semilight), sans-serif;letter-spacing:.2px;color:var(--ink-soft);text-transform:uppercase;font-size:11px;font-weight:350}nav{flex-wrap:wrap;align-items:center;gap:4px;margin-left:auto;display:flex}nav button,nav a{font-family:var(--font-melange-semilight), sans-serif;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:8px 14px;font-size:14px;font-weight:500;transition:background .15s,color .15s}nav a.active{background:var(--ink);color:var(--surface)}nav a:not(.active):hover{background:var(--line);color:var(--ink)}.signout-btn{font-family:var(--font-melange-semilight), sans-serif;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:8px 4px;font-size:13px;font-weight:500}.signout-btn:hover{color:var(--ink)}main{width:100%;max-width:980px;margin:0 auto;padding:28px 20px 80px}.view-title{margin-bottom:4px;font-size:30px}.view-sub{color:var(--ink-soft);margin-bottom:22px;font-size:14px}.section-label{font-family:var(--font-melange-medium), sans-serif;color:var(--ink-soft);margin:28px 0 10px;font-size:12px;font-weight:500}.type-tag{font-family:var(--font-melange-medium), sans-serif;background:var(--bg);border:1px solid var(--line);border-radius:999px;align-items:center;gap:7px;padding:5px 12px 5px 10px;font-size:13px;font-weight:500;display:inline-flex}.type-dot{border-radius:50%;width:8px;height:8px}.type-push .type-dot{background:var(--ink)}.type-pull .type-dot{background:var(--steel)}.type-lower .type-dot{background:var(--good)}.class-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;margin-bottom:8px;padding:22px}.class-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:4px;display:flex}.class-time{font-family:var(--font-melange-medium), sans-serif;font-size:28px;font-weight:500}.class-meta{color:var(--ink-soft);margin-top:2px;font-size:13px}.now-flag{font-family:var(--font-melange-medium), sans-serif;color:var(--accent);letter-spacing:.3px;font-size:11px;font-weight:500}.roster-count{color:var(--ink-soft);margin-top:10px;font-size:12px}.roster-search{margin:14px 0 12px}.roster-search input{width:100%;font-family:var(--font-melange-semilight), sans-serif;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:11px 12px;font-size:15px}.roster-list{border:1px solid var(--line);background:var(--line);border-radius:10px;flex-direction:column;gap:1px;max-height:520px;display:flex;overflow:hidden auto}.roster-row{background:var(--surface);cursor:pointer;text-align:left;width:100%;font-size:15px;font-family:var(--font-melange-semilight), sans-serif;color:var(--ink);border:none;align-items:center;gap:10px;padding:13px 16px;display:flex}.roster-row:hover{background:var(--bg)}.roster-row .name{flex:1}.badge-done{font-family:var(--font-melange-medium), sans-serif;color:var(--good);background:var(--good-bg);white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:500}.badge-pending{color:var(--ink-soft);white-space:nowrap;font-size:11px}.badge-skip{font-family:var(--font-melange-medium), sans-serif;color:var(--ink-soft);background:var(--line);white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:500}.roster-empty{color:var(--ink-soft);background:var(--surface);padding:20px 16px;font-size:14px}.upload-banner{font-family:var(--font-melange-medium), sans-serif;background:var(--good-bg);border:1px solid var(--line);color:var(--good);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:16px;padding:14px 16px;font-size:14px;font-weight:500;display:flex}.upload-banner button{color:var(--good)}.day-list{flex-direction:column;gap:8px;display:flex}.day-row{background:var(--surface);border:1px solid var(--line);cursor:pointer;text-align:left;font-family:var(--font-melange-semilight), sans-serif;color:var(--ink);border-radius:10px;align-items:center;gap:14px;width:100%;padding:13px 16px;display:flex}.day-row:hover{border-color:var(--steel-soft)}.day-row.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-bg)}.day-row .time-col{font-family:var(--font-melange-medium), sans-serif;flex-shrink:0;width:88px;font-size:18px;font-weight:500}.day-row .info-col{flex:1;min-width:0}.day-row .counts{color:var(--ink-soft);margin-top:2px;font-size:12px}.day-row .chev{color:var(--ink-soft)}.back-link{font-family:var(--font-melange-medium), sans-serif;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;margin-bottom:14px;padding:0;font-size:13px;font-weight:500;display:inline-flex}.back-link:hover{color:var(--ink)}.entry-client-name{margin-bottom:4px;font-size:22px}.entry-ordinal{font-family:var(--font-melange-medium), sans-serif;color:var(--ink-soft);margin-bottom:14px;font-size:13px;font-weight:500}.skip-row{background:var(--bg);border:1px solid var(--line);border-radius:8px;align-items:center;gap:9px;margin:4px 0 18px;padding:10px 12px;font-size:14px;display:flex}.skip-row input{width:17px;height:17px}.entry-table{border:1px solid var(--line);background:var(--surface);border-radius:10px;transition:opacity .15s;overflow:hidden}.entry-table.disabled{opacity:.45;pointer-events:none}.entry-row{grid-template-columns:1.5fr .7fr .7fr .7fr .7fr;align-items:center;gap:10px;padding:10px 14px;display:grid}.entry-row+.entry-row{border-top:1px solid var(--line)}.entry-row.head{font-family:var(--font-melange-medium), sans-serif;background:var(--bg);color:var(--ink-soft);font-size:11px;font-weight:500}.entry-row input{width:100%;font-size:15px;font-family:var(--font-melange-semilight), sans-serif;border:1px solid var(--line);background:var(--bg);color:var(--ink);text-align:center;border-radius:6px;padding:8px}.entry-row input:focus{outline:2px solid var(--accent);outline-offset:1px}.exercise-name{font-family:var(--font-melange-medium), sans-serif;font-size:14px;font-weight:500}.btn{font-family:var(--font-melange-semilight), sans-serif;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:11px 18px;font-size:14px;font-weight:500}.btn:hover{border-color:var(--steel-soft)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);padding:13px 22px;font-size:15px}.btn-primary:hover{filter:brightness(1.06)}.btn-block{width:100%;margin-top:14px}.save-bar{border-top:1px solid var(--line);align-items:center;gap:14px;margin-top:22px;padding-top:18px;display:flex}.save-msg{font-family:var(--font-melange-medium), sans-serif;color:var(--good);opacity:0;font-size:14px;font-weight:500;transition:opacity .2s}.save-msg.show{opacity:1}.add-client-form{gap:10px;margin-bottom:22px;display:flex}.add-client-form input{font-family:var(--font-melange-semilight), sans-serif;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;flex:1;padding:11px 12px;font-size:15px}.client-list{border:1px solid var(--line);background:var(--line);border-radius:10px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.client-list-row{background:var(--surface);cursor:pointer;text-align:left;width:100%;font-size:15px;font-family:var(--font-melange-semilight), sans-serif;color:var(--ink);border:none;justify-content:space-between;align-items:center;padding:13px 16px;display:flex}.client-list-row:hover{background:var(--bg)}.client-list-row .count{color:var(--ink-soft);font-size:13px}.text-input,#client-filter{width:100%;font-family:var(--font-melange-semilight), sans-serif;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;margin-bottom:14px;padding:11px 12px;font-size:15px}.history-summary{flex-wrap:wrap;gap:16px;margin:18px 0 26px;display:flex}.stat{background:var(--surface);border:1px solid var(--line);border-radius:10px;min-width:120px;padding:14px 18px}.stat .num{font-family:var(--font-melange-medium), sans-serif;font-size:26px;font-weight:500;display:block}.stat .lbl{color:var(--ink-soft);font-size:12px}.chart-wrap{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-bottom:26px;padding:18px}.chart-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.chart-head select{font-family:var(--font-melange-semilight), sans-serif;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:6px;padding:7px 10px;font-size:14px}svg text{font-family:var(--font-melange-semilight), sans-serif;fill:var(--ink-soft)}.day-group{margin-bottom:20px}.day-head{font-family:var(--font-melange-medium), sans-serif;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:8px;font-size:17px;font-weight:500;display:flex}.day-head .date-sub{font-family:var(--font-melange-semilight), sans-serif;color:var(--ink-soft);font-size:12px;font-weight:500}.log-item{background:var(--surface);border:1px solid var(--line);border-radius:8px;justify-content:space-between;margin-bottom:6px;padding:9px 14px;font-size:14px;display:flex}.log-item .ex{font-family:var(--font-melange-medium), sans-serif;font-weight:500}.log-item .val{color:var(--ink-soft)}input[type=date],input[type=time],select.field{font-family:var(--font-melange-semilight), sans-serif;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:10px 12px;font-size:15px}.empty-state{text-align:center;color:var(--ink-soft);padding:50px 20px}.empty-state h3{color:var(--ink);margin-bottom:6px;font-size:20px}footer{max-width:980px;color:var(--ink-soft);margin:0 auto;padding:0 20px 40px;font-size:12px}footer button{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.modal-backdrop{z-index:50;background:#14121080;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.modal-backdrop.open{display:flex}.modal-panel{background:var(--surface);border-radius:16px;flex-direction:column;gap:12px;width:75vw;max-width:640px;height:75vh;max-height:760px;padding:22px;display:flex;box-shadow:0 20px 60px #0000004d}.modal-head{justify-content:space-between;align-items:center;display:flex}.modal-close{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:4px;font-size:24px;line-height:1}.modal-panel input[type=text]{font-family:var(--font-melange-semilight), sans-serif;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;width:100%;padding:11px 12px;font-size:15px}.modal-list{border:1px solid var(--line);border-radius:10px;flex:1;overflow-y:auto}.modal-list button{text-align:left;background:var(--surface);border:none;border-bottom:1px solid var(--line);width:100%;font-family:var(--font-melange-semilight), sans-serif;color:var(--ink);cursor:pointer;padding:12px 14px;font-size:15px;display:block}.modal-list button:last-child{border-bottom:none}.modal-list button:hover{background:var(--bg)}.modal-empty{color:var(--ink-soft);padding:20px;font-size:14px}.modal-custom-row{gap:8px;display:flex}.modal-custom-row input{flex:1}@media (max-width:600px){.modal-panel{width:92vw;height:82vh}}.bar-row{margin-bottom:14px}.bar-row .bar-label{justify-content:space-between;gap:10px;margin-bottom:5px;font-size:13px;display:flex}.bar-row .bar-label .l1{font-family:var(--font-melange-medium), sans-serif;font-weight:500}.bar-row .bar-label .l2{color:var(--ink-soft)}.bar-track{background:var(--line);border-radius:999px;height:10px;overflow:hidden}.bar-fill{background:var(--accent);border-radius:999px;height:100%}.bar-fill.good{background:var(--good)}.data-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:20px;padding:20px}.data-card h3{margin-bottom:14px;font-size:18px}.note-card{background:var(--bg);border:1px dashed var(--line);color:var(--ink-soft);border-radius:12px;margin-bottom:20px;padding:16px 18px;font-size:13px}.rank-row{border-bottom:1px solid var(--line);justify-content:space-between;padding:9px 0;font-size:14px;display:flex}.rank-row:last-child{border-bottom:none}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;width:100%;max-width:380px;padding:32px}.login-field{margin-bottom:14px}.login-field label{font-family:var(--font-melange-medium), sans-serif;color:var(--ink-soft);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.login-error{color:var(--ink);margin-bottom:14px;font-size:13px;font-weight:500}.form-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px;display:grid}.form-field label{font-family:var(--font-melange-medium), sans-serif;color:var(--ink-soft);margin-bottom:6px;font-size:12px;font-weight:500;display:block}.form-field select,.form-field input{width:100%}.attendee-picker{border:1px solid var(--line);background:var(--surface);border-radius:10px;max-height:320px;overflow-y:auto}.attendee-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:11px 14px;font-size:14px;display:flex}.attendee-row:last-child{border-bottom:none}.attendee-row input{width:17px;height:17px}@media (max-width:600px){.entry-row{grid-template-columns:1fr 1fr;gap:6px}.entry-row.head{display:none}.entry-row:not(.head){border:1px solid var(--line);border-radius:8px;margin-bottom:8px;padding:10px}.entry-row:not(.head) .exercise-name{grid-column:1/-1;margin-bottom:4px}.entry-table{background:0 0;border:none;padding:0}.entry-row+.entry-row{border-top:none}.day-row .time-col{width:64px;font-size:15px}.form-grid{grid-template-columns:1fr}}
