:root{--ink:#172e28;--muted:#65746b;--paper:#f4f3ed;--card:#fffef8;--line:#d9ded2;--lime:#d4ed75;--orange:#c75d34;--warn:#fff1d6;--tg-safe:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:15px;line-height:1.55}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:12px;padding:12px 18px;min-height:46px}button:hover{border-color:var(--ink)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--orange);outline-offset:3px}a{color:inherit;text-underline-offset:4px}header{display:flex;align-items:center;gap:24px;padding:20px 5vw;border-bottom:1px solid var(--line)}header>span{font-size:11px;font-weight:700;letter-spacing:1.8px}.brand{text-decoration:none;font-size:32px;font-weight:900;letter-spacing:-3px}.branddot{background:var(--ink);color:var(--lime);border-radius:50%;padding:8px;letter-spacing:-2px;margin-left:4px;font-size:20px}.badge{margin-left:auto;border:1px solid var(--line);padding:7px 12px;border-radius:30px;font-size:10px!important;letter-spacing:.9px!important}.shell{max-width:1260px;margin:auto;display:grid;grid-template-columns:240px 1fr;gap:54px;padding:40px 28px 60px}aside{display:flex;flex-direction:column}.side-title{font-family:Georgia,serif;font-size:29px;line-height:1.2}aside p{font-size:13px;color:var(--muted)}nav{display:grid;gap:8px;margin-top:26px}nav button{text-align:left;border:0;background:transparent}nav button.active{background:var(--ink);color:var(--lime)}.side-foot{margin-top:70px;font-size:12px;color:var(--muted)}.side-foot a{display:inline-block;margin-top:15px}main{min-width:0}h1{font-family:Georgia,serif;font-size:clamp(32px,4vw,49px);font-weight:400;line-height:1.1;letter-spacing:-1.2px;margin:5px 0 14px}h2{font-size:22px;line-height:1.25;margin:0 0 15px}h3{font-size:16px;margin:0 0 8px}p{margin:0 0 14px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:14px}.sub{color:var(--muted)}.hero{position:relative;background:var(--ink);color:#fffdf1;border-radius:24px;padding:30px;overflow:hidden;margin:24px 0}.hero p{max-width:420px;color:#cddacf}.hero .eyebrow{color:var(--lime)}.hero strong{font-size:22px}.hero-row{display:flex;align-items:center;justify-content:space-between;gap:20px}.bell{flex:0 0 108px;width:108px;height:108px;fill:var(--lime);opacity:.95}.primary{background:var(--lime);border-color:var(--lime);color:var(--ink);font-weight:750}.dark{background:var(--ink);color:var(--card);border-color:var(--ink)}.danger{color:#a12a20;border-color:#cfaca5}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.stat,.card{border:1px solid var(--line);border-radius:18px;background:var(--card);padding:20px}.stat strong{display:block;font-size:26px}.stat span{font-size:12px;color:var(--muted)}.card{margin-bottom:14px}.card p:last-child{margin-bottom:0}.callout{border-left:3px solid var(--orange);padding:14px 18px;background:var(--warn);border-radius:0 12px 12px 0;font-size:13px;margin:16px 0}.hint{font-size:12px;color:var(--muted)}.exercise{display:grid;grid-template-columns:38px 1fr auto;gap:14px;padding:18px 0;border-top:1px solid var(--line)}.exercise .number{font-family:Georgia,serif;font-size:25px;color:#8b998a}.exercise h3{margin:0}.exercise p{font-size:12px;margin:4px 0;color:var(--muted)}.pill{display:inline-block;font-size:11px;background:#e8eddf;border-radius:20px;padding:5px 10px}.right{text-align:right}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}label{display:block;margin-bottom:14px}label.check{display:flex;align-items:flex-start;gap:10px;font-size:14px}input[type=checkbox]{width:21px;height:21px;flex:0 0 21px;accent-color:var(--ink)}input[type=number],select{display:block;background:white;color:var(--ink);width:100%;border:1px solid #b6c4b5;border-radius:10px;padding:12px;margin-top:5px}form .grid2,.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.timer{font-variant-numeric:tabular-nums;font-family:Georgia,serif;font-size:64px;line-height:1.3}.timer-label{font-size:11px;letter-spacing:1.5px}.progress-track{height:6px;background:var(--line);border-radius:8px;overflow:hidden;margin:18px 0}.progress-fill{height:100%;background:var(--orange)}.week{display:grid;grid-template-columns:60px 1fr;gap:16px;padding:20px 0;border-top:1px solid var(--line)}.week>strong{color:var(--orange);font-family:Georgia,serif;font-size:24px}details{border-top:1px solid var(--line);padding:14px 0}summary{cursor:pointer;font-weight:650}details p{padding-top:12px;font-size:14px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:10px;letter-spacing:1px;text-transform:uppercase}.empty{padding:30px;text-align:center;border:1px dashed #b8c5b8;border-radius:15px;color:var(--muted)}#notice:not(:empty){position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:90vw;background:var(--ink);color:white;padding:14px 24px;border-radius:12px;box-shadow:0 10px 40px #0003;z-index:100}footer{padding:16px 24px calc(16px + var(--tg-safe));text-align:center;font-size:11px;border-top:1px solid var(--line);color:var(--muted)}.research{max-width:920px;padding:35px 25px;margin:auto}.research h1{margin:24px 0}.research h2{margin-top:35px}.research li{margin:7px 0}.research .links{overflow-wrap:anywhere}.research table{background:var(--card)}@media(max-width:760px){header{padding:15px 20px;gap:16px}header>span{font-size:9px;letter-spacing:1px}.badge{display:none}.shell{display:block;padding:22px 18px 35px}.side-title,aside p,.side-foot{display:none}nav{display:flex;overflow:auto;gap:6px;margin:0 0 25px}nav button{white-space:nowrap;font-size:12px;padding:10px 14px;min-height:44px}h1{font-size:36px}.hero{padding:24px}.bell{flex-basis:75px;width:75px;height:75px}.cards{gap:8px}.stat{padding:15px 10px}.stat strong{font-size:23px}.stat span{font-size:10px}.exercise{grid-template-columns:28px 1fr;gap:8px}.exercise>.right{grid-column:2;text-align:left}.grid2{grid-template-columns:1fr}.actions>button{flex:1}.research{padding:25px 18px}th,td{min-width:120px}.research table{font-size:12px}}@media(prefers-reduced-motion:no-preference){main{animation:appear .25s ease}@keyframes appear{from{opacity:.5;transform:translateY(4px)}to{opacity:1;transform:none}}}@media print{header,footer,aside,button{display:none}.research{max-width:none;padding:0}body{background:white;font-size:11pt}h1{font-size:26pt}.card,table,li{break-inside:avoid}a{color:black}}

progress.progress-track{width:100%;border:0}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--orange)}
.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:20px}.calendar-heading h2{margin:0;font-size:18px;text-transform:capitalize}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-grid>small{text-align:center;color:var(--muted)}.calday{min-height:74px;padding:8px;border-radius:9px;border:1px solid var(--line);display:flex;flex-wrap:wrap;align-content:start;justify-content:space-between}.calday small{width:100%;font-size:9px;overflow-wrap:anywhere}.calday.done{background:#d6e8c8}.calday.cancelled{background:#ffe7b4}.calday.planned{background:#edf0e3}.calday.current{border:2px solid var(--ink)}input[type=time]{display:block;padding:12px;border:1px solid var(--line);border-radius:10px;background:white;width:100%;color:var(--ink)}@media(max-width:480px){.calday{padding:5px;min-height:65px}.calday small{font-size:8px}.calendar-heading h2{font-size:16px}}
.research{max-width:1000px;margin:0 auto;padding:32px 20px 64px}.research p,.research li{line-height:1.65}.research li{margin-bottom:12px}.research a{color:#235c47;text-underline-offset:3px}.table-scroll{overflow-x:auto}.research table{width:100%;border-collapse:collapse;min-width:610px}.research td,.research th{text-align:left;vertical-align:top;padding:14px;border-bottom:1px solid #dbe0d6;line-height:1.5}.research th{background:#eef2e7}.research td:first-child{font-weight:650}

.technique{margin:12px 0;grid-column:1/-1}.technique summary{font-weight:650;color:#244f3e;padding:12px 0;cursor:pointer}.motion{margin:12px 0;border:1px solid #d9e0d3;border-radius:18px;overflow:hidden;background:#edf1e7}.motion img{display:block;width:100%;height:auto}.motion button{margin:12px}.motion span{display:block;font-size:12px;color:#627565;padding:0 12px 12px}.technique li{margin:8px 0}.exercise .technique{max-width:640px}.exercise:has(.technique[open]){grid-template-columns:35px minmax(0,1fr)}.exercise:has(.technique[open]) .right{grid-column:2}

.motion-dialog{width:min(960px,96vw);max-width:96vw;padding:12px;border:0;border-radius:18px;background:#edf1e7;color:#17382e}.motion-dialog::backdrop{background:#14241ecc}.motion-dialog img{display:block;width:100%;height:auto;max-height:75vh;object-fit:contain}.motion-dialog p{font-size:13px}.motion-dialog button{margin:0 0 10px auto;display:block}

input[type=date]{display:block;width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink)}

.motion video,.motion-dialog video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#172e28}.motion-dialog video{max-height:70vh}.motion .motion-status{font-size:13px;padding:0 12px;margin:0}.motion .motion-status:empty{display:none}.motion-fallback{display:block;font-size:13px;margin:4px 12px 12px}

input[type=text]{display:block;width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink)}.variant-form{margin-top:12px}.variant-form .hint{padding-top:0}.card details>summary{line-height:1.5}a{overflow-wrap:anywhere}

.research nav{display:block;overflow:visible}.research section{padding:24px 0;border-top:1px solid var(--line)}.research small{color:var(--muted)}
