:root{font-family:system-ui,-apple-system,sans-serif;color:#173d39;background:#f5faf8;font-size:16px;line-height:1.6;--accent:#17645d}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}button{cursor:pointer;border:1px solid #c3dbd5;border-radius:12px;padding:12px 18px;background:white;color:inherit;min-height:46px}button:hover,a.card:hover{border-color:var(--accent)}button:focus-visible,a:focus-visible{outline:3px solid #17645d;outline-offset:3px}header{display:flex;align-items:center;gap:18px;padding:16px max(18px,calc((100vw - 1160px)/2));border-bottom:1px solid #c3dbd5;background:white;position:sticky;top:0;z-index:3}.brand{font-weight:850;letter-spacing:.12em;color:#173d39;text-decoration:none;font-size:18px}.brand span{display:block;font-size:12px;letter-spacing:.12em;font-weight:500}.support{margin-left:auto;color:#4b6662;font-size:14px}#menu{width:48px;height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:10px}#menu span{height:2px;width:21px;background:#17645d}aside{position:fixed;top:82px;left:0;bottom:0;background:white;box-shadow:10px 0 35px #173d3920;width:min(320px,90vw);padding:24px;z-index:4;overflow:auto}nav a{display:block;padding:12px;color:#173d39;text-decoration:none;border-bottom:1px solid #c3dbd5}main{max-width:1160px;margin:auto;padding:42px 24px 64px}h1{font-size:clamp(30px,5vw,54px);line-height:1.12;letter-spacing:-.035em;margin:8px 0 18px}h2{font-size:24px;line-height:1.3;margin:0 0 14px}h3{font-size:19px;margin:0 0 8px}p{margin:8px 0 18px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:14px;font-weight:700;color:var(--accent)}.intro{max-width:680px;margin-bottom:32px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card,.panel{background:white;border:1px solid #c3dbd5;border-radius:20px;padding:24px}.card{text-decoration:none;color:inherit;display:block;position:relative;min-height:195px;border-top:5px solid var(--tone)}.card b{font-size:26px;letter-spacing:-.04em}.card small{display:block;color:#4b6662;font-size:14px}.card p{margin-top:8px}.number{color:var(--tone);font-size:14px;font-weight:700}.workspace{display:grid;grid-template-columns:1.35fr 1fr;gap:22px}.stack{display:grid;gap:20px;align-content:start}.pillrow{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 20px}.primary{background:var(--accent);color:white;border-color:var(--accent)}.muted{color:#4b6662;font-size:14px}.back{color:#4b6662;font-size:14px}.exercise{padding:17px 0;border-top:1px solid #c3dbd5}.exercise:first-child{border-top:0}ol{padding-left:23px}li{margin:8px 0}label{display:block;margin:14px 0 6px;font-weight:600}input,textarea,select{width:100%;border:1px solid #c3dbd5;border-radius:10px;padding:12px;background:white;color:inherit}textarea{min-height:100px;resize:vertical}.week{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.week label{margin:0}.week input{margin-top:5px}.notice{border-left:4px solid var(--accent);padding:12px 16px;background:#f5faf8;border-radius:0 12px 12px 0}.history{margin-top:15px;padding:12px;background:#f5faf8;border-radius:12px}.history p{white-space:pre-wrap;overflow-wrap:anywhere}.empty{padding:18px 0;color:#4b6662}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}footer{text-align:center;font-size:14px;color:#4b6662;padding:26px 20px;background:#e5f3f0}footer button{margin-top:12px}dialog{border:0;border-radius:20px;padding:28px;max-width:650px;width:calc(100% - 32px);max-height:90vh;overflow:auto}dialog::backdrop{background:#17645d99}#status{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#17645d;color:white;border-radius:12px;padding:12px 20px;z-index:8;display:none;max-width:90vw}table{border-collapse:collapse;width:100%;font-size:14px}th,td{padding:10px 6px;text-align:left;border-bottom:1px solid #c3dbd5}.timer{font-size:38px;font-variant-numeric:tabular-nums;font-weight:800}.check{display:flex;gap:12px;align-items:center}.check input{width:22px;height:22px}a{color:var(--accent)}@media(max-width:850px){.grid{grid-template-columns:repeat(2,1fr)}.workspace{grid-template-columns:1fr}}@media(max-width:520px){main{padding:28px 18px 44px}.grid{grid-template-columns:1fr}.card{min-height:0}.panel{padding:20px}.brand{font-size:15px}.brand span{font-size:10px}.support{max-width:70px;line-height:1.3}header{gap:12px}.week{grid-template-columns:1fr}h1{font-size:36px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.start-panel{background:#17645d;color:white;border-radius:22px;padding:26px;margin-bottom:30px;display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}.start-panel h2,.start-panel p,.start-panel button{grid-column:1/-1}.start-panel label{margin:0}.start-panel label[for=startLevel]{grid-column:2;grid-row:2}.start-panel select{grid-row:3}.start-panel .muted{color:#e5f3f0}.start-panel .primary{background:#e5f3f0;color:#173d39;border-color:#c3dbd5;font-weight:750}.group-grid{grid-template-columns:repeat(2,1fr)}.artist-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:24px}.button-link{display:inline-block;padding:12px 16px;border:1px solid #c3dbd5;border-radius:12px;font-weight:600;text-decoration:none;background:white;min-height:46px}.workspace+section{margin-top:24px}.light-choice{padding:12px;background:#f5faf8;border-radius:12px;margin:12px 0 20px}.light-choice input{accent-color:var(--accent)}nav summary{padding:14px 0;cursor:pointer;font-weight:650}.version-list{list-style:none;padding:0}.version-list li{display:flex;justify-content:space-between;gap:18px;padding:14px 0;border-bottom:1px solid #c3dbd5}.version-list .muted{flex-shrink:0}#versionList .panel{margin-top:20px}.artist-panel+.panel{margin-top:24px}@media(max-width:600px){.group-grid{grid-template-columns:1fr}.start-panel{display:block;padding:20px}.start-panel label,.start-panel select,.start-panel button{display:block;width:100%;margin:12px 0}.artist-panel{display:block}.version-list li{display:block}.version-list .muted{display:block}.brand span{font-size:12px}}
