:root{color-scheme:dark;--bg:#101716;--panel:#192321;--line:#30403a;--muted:#a4b6ac;--accent:#b9eb8e;--text:#f2f5ee}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.6 system-ui,sans-serif;padding-bottom:100px}header{max-width:1100px;margin:auto;padding:25px 24px;display:flex;align-items:center;justify-content:space-between}.brand{text-decoration:none;color:var(--text);font-size:24px;font-weight:750;letter-spacing:-1px}.brand span:not(.mark){color:var(--accent)}.mark{background:var(--accent);color:var(--bg);padding:0 8px;border-radius:10px;margin-right:8px}main{max-width:1052px;margin:auto;padding:10px 24px}h1{font-size:clamp(29px,5vw,42px);line-height:1.2;letter-spacing:-1.4px;margin:8px 0 14px}h2{font-size:20px;line-height:1.35;margin:6px 0 16px}h3{font-size:16px;margin:6px 0}p{margin:8px 0 16px}.muted,small{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:11px;color:var(--accent)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.card{border:1px solid var(--line);border-radius:22px;background:var(--panel);padding:22px;margin:14px 0;min-width:0}.hero{background:radial-gradient(ellipse at top right,#344930,transparent 75%),var(--panel)}.row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.big{font-size:42px;line-height:1.3;font-weight:650;font-variant-numeric:tabular-nums}.pill{font-size:12px;padding:4px 10px;border-radius:20px;background:#304331;color:var(--accent)}button,.button{font:inherit;color:var(--text);border:1px solid var(--line);background:#24332c;padding:10px 15px;border-radius:12px;cursor:pointer;text-decoration:none}button:hover{border-color:var(--accent)}button.primary{background:var(--accent);color:#152018;font-weight:700}button.danger{color:#ffb9aa}input,select,textarea{font:inherit;color:var(--text);background:#111b17;border:1px solid #485d51;border-radius:9px;padding:10px;width:100%;min-width:0}input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent)}label{display:block;font-size:13px;color:var(--muted);margin:10px 0}textarea{min-height:80px}nav{position:fixed;bottom:0;left:0;right:0;border-top:1px solid var(--line);background:#111b17f5;backdrop-filter:blur(20px);display:flex;justify-content:center;padding:10px 8px calc(10px + env(safe-area-inset-bottom));z-index:5}nav button{width:min(20%,160px);border:0;background:none;border-radius:12px;color:var(--muted);font-size:12px;padding:7px 0}nav button span{display:block;font-size:22px;line-height:1.2;margin-bottom:4px}nav button.active{background:#293a2c;color:var(--accent)}progress{width:100%;height:12px;accent-color:var(--accent)}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-top:14px}.calendar>small{text-align:center}.day{min-height:68px;padding:7px 2px;border-radius:10px;background:#152019;font-size:14px}.day.selected{outline:2px solid var(--accent)}.dots{font-size:10px;line-height:16px;letter-spacing:1px;color:var(--accent)}.day:disabled{opacity:.3}.sets{display:grid;grid-template-columns:30px repeat(3,minmax(0,1fr)) 28px;gap:6px;align-items:center;margin:8px 0}.sets input{padding:8px 5px;font-size:13px}.exercise{border-top:1px solid var(--line);padding-top:14px;margin-top:16px}.timeline{border-left:1px solid #5d775b;padding-left:22px;margin-left:5px}.timeline article{margin:20px 0;position:relative}.timeline article:before{content:'';position:absolute;left:-27px;top:8px;width:8px;height:8px;border-radius:100%;background:var(--accent)}details{margin:12px 0;border-bottom:1px solid var(--line);padding-bottom:10px}summary{cursor:pointer;font-weight:600}svg.chart{width:100%;height:160px;overflow:visible}.chart text{fill:var(--muted);font-size:10px}table{width:100%;border-collapse:collapse;font-size:13px}td,th{text-align:left;padding:9px 4px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}dialog{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:22px;width:min(600px,calc(100% - 24px));max-height:90dvh;padding:24px}dialog::backdrop{background:#000b}#toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);background:var(--accent);color:#142016;padding:8px 20px;border-radius:12px;z-index:10;display:none}.empty{padding:24px 0;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.stats .card{padding:16px}.stats .big{font-size:28px}.accent{color:var(--accent)}.table-wrap{overflow:auto}.note{white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:650px){header{padding:20px 18px}main{padding:4px 16px}.grid{grid-template-columns:1fr;gap:0}.card{padding:18px;border-radius:18px}.day{min-height:57px}.stats{gap:7px}.stats .card{padding:12px}.stats .big{font-size:23px}button{padding:10px 12px}}@media print{nav,header button,.actions,dialog{display:none}body{background:white;color:black;padding:0}.card{background:white;border-color:#bbb;break-inside:avoid}.muted,small{color:#444}}
/* V2: compact workouts, clinical sections and legible mobile plots. */
.exercise{padding:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:10px 0;background:#142019}.exercise>summary{padding:14px;list-style:none}.exercise>summary::-webkit-details-marker{display:none}.exercise>summary strong{font-size:15px}.exercise-meta{display:block;color:var(--muted);font-size:12px;font-weight:400;margin-top:4px}.exercise[open]>summary{background:#26372a}.exercise-body{padding:14px}.series-grid{display:grid;grid-template-columns:28px repeat(var(--columns),minmax(0,1fr)) 26px;gap:8px;align-items:center}.series-grid input{padding:9px 5px;text-align:center;font-size:14px}.series-grid input[type=checkbox]{width:22px;height:22px}.series-grid small{font-size:11px}.timer-card{padding:15px 18px}.timer-card #timer{font-size:30px;letter-spacing:1px}.timer-card .actions{margin:8px 0 0}.timer-card button{font-size:13px;padding:7px 12px}.timer-card p:empty{display:none}.tools{border:0;margin-top:20px}.filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px}.filter-grid label{min-width:0}.filter-grid select{font-size:13px;text-overflow:ellipsis}.series-legend{font-size:12px;color:var(--accent);line-height:1.5}.detailed-chart{height:auto!important;min-height:155px}.detailed-chart text{font-size:13px}.detailed-chart g[role=button]{cursor:pointer}.detailed-chart g:focus{outline:2px solid white}.milestone-list{max-height:650px;overflow:auto;padding-right:10px}.milestone>summary span,.visit>summary span,.milestone>summary small,.visit>summary small{display:block}.milestone>summary>small:first-child,.visit>summary>small:first-child{font-weight:400;color:var(--accent);font-size:12px}.milestone{padding:10px 0 16px;margin:0 0 12px}.visit{padding:13px 0}.visit-block{border-left:2px solid #526c49;padding:5px 0 4px 14px;margin-top:17px}.visit-block h3{font-size:13px;text-transform:uppercase;letter-spacing:.8px;color:var(--accent)}.visit-block ul{padding-left:18px;margin:8px 0;line-height:1.7}.visit-block li{margin:8px 0;font-size:14px}.migration-banner{border:1px solid #789663;background:#273b26;border-radius:16px;padding:16px;margin-bottom:22px}.migration-banner p{font-size:13px;margin:5px 0}.check-label{display:flex;align-items:center;gap:12px;color:var(--text)}.check-label input{flex:0 0 22px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}dialog .grid input{max-width:100%}summary .row{flex-wrap:nowrap;align-items:flex-start}summary .row>span:first-child{min-width:0;flex:1}summary .pill{flex-shrink:0}body{padding-bottom:calc(100px + env(safe-area-inset-bottom))}.milestone-list::-webkit-scrollbar{width:5px}.milestone-list::-webkit-scrollbar-thumb{background:#536d4b;border-radius:5px}@media(min-width:850px){.filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.exercise-body{padding:20px}.series-grid{gap:10px}.milestones .filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:380px){.filter-grid{gap:5px 8px}.card{padding:15px}.exercise>summary{padding:12px}.exercise-body{padding:10px}.actions{gap:6px}button{font-size:13px}.calendar{gap:4px}.detailed-chart text{font-size:14px}}
#save-error{max-width:1004px;margin:0 auto 16px;padding:12px 18px;border:1px solid #a86448;background:#38251e;border-radius:12px;color:#ffd9bf;font-size:14px}#save-error[hidden]{display:none}.measurement-table caption{text-align:left;color:var(--muted);font-size:12px;padding:8px 0}.measurement-table table{table-layout:fixed}.measurement-table th:first-child{width:43%}.measurement-table td,.measurement-table th{vertical-align:top}.measurement-note td{font-size:11px;color:var(--muted);padding-top:0;line-height:1.4}.rom-status{border-top:1px solid var(--line);margin-top:15px}.rom-status article{padding:12px 0;border-bottom:1px solid var(--line)}.episode summary small,.episode summary span{display:block}.episode summary small{font-weight:400;color:var(--accent)}.episode h3{font-size:13px;color:var(--accent)}.episode p{font-size:14px}.episode-list{margin:16px 0}.episode button{display:block;margin-top:12px}.plan-stages p{font-size:14px}@media(max-width:420px){.measurement-table td,.measurement-table th{font-size:12px;padding:9px 3px}.measurement-note td{font-size:11px}.measurement-table th:first-child{width:45%}#save-error{margin:0 16px 12px}}

/* V2.4: native, independent progress accordions. */
.progress-detail{padding:0}.progress-detail>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;padding:18px 22px;list-style:none;font-size:20px;line-height:1.35}.progress-detail>summary::-webkit-details-marker{display:none}.progress-detail>summary::after{content:"▸";color:var(--accent);font-size:16px;font-weight:400;flex-shrink:0}.progress-detail[open]>summary::after{content:"▾"}.progress-detail-body{padding:0 22px 22px}.progress-detail>summary:focus-visible{outline-offset:-4px}@media(max-width:650px){.progress-detail>summary{padding:18px}.progress-detail-body{padding:0 18px 18px}}
