*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--background);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}h1,h2,h3,p{margin:0}h1{letter-spacing:-.3px;text-wrap:balance;font-size:26px;font-weight:700;line-height:1.2}h2{font-size:17px;font-weight:700;line-height:1.3}h3{font-size:14px;font-weight:700}a{color:var(--accent)}.muted{color:var(--text-secondary)}.small{font-size:13px}.error{color:var(--hard)}.eyebrow{letter-spacing:.3px;font-size:13px;font-weight:700}.stack{flex-direction:column;gap:12px;display:flex}.row{flex-wrap:wrap;gap:8px;display:flex}.between{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.btn{border:1px solid var(--background-selected);background:var(--background-element);color:var(--text);font:inherit;cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:11px 18px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--background-selected)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:hover{filter:brightness(1.05)}.btn.danger{color:var(--hard)}.btn:disabled{opacity:.55;cursor:default}.link{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:4px;font-weight:600;text-decoration:none}.icon-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px}.icon-btn:hover{background:var(--background-selected)}.field{flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.field input{font:inherit;color:var(--text);background:var(--background);border:1px solid var(--background-selected);border-radius:12px;padding:12px 14px;font-size:16px;font-weight:400}.field input:focus,.btn:focus-visible,.link:focus-visible,.nav-item:focus-visible,.tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.auth{place-items:center;min-height:100%;padding:24px 16px;display:grid}.auth-card{background:var(--background-element);border-radius:20px;flex-direction:column;gap:16px;width:100%;max-width:400px;padding:32px 28px;display:flex}.auth-card h1{font-size:24px}.auth-mark{background:#fff;border-radius:14px;width:56px;height:56px;padding:6px}.shell{grid-template-columns:232px minmax(0,1fr);min-height:100%;display:grid}.sidebar{border-right:1px solid var(--background-selected);background:var(--background);flex-direction:column;gap:24px;height:100vh;padding:24px 14px;display:flex;position:sticky;top:0}.brand{color:var(--text);align-items:center;gap:10px;padding:0 8px;font-size:18px;font-weight:800;text-decoration:none;display:flex}.mark{background:#fff;border-radius:9px;place-items:center;width:34px;height:34px;display:grid}.mark img{width:28px;height:28px}.nav,.sidebar-foot{flex-direction:column;gap:2px;display:flex}.sidebar-foot{margin-top:auto}.nav-item{color:var(--text-secondary);border-radius:10px;align-items:center;gap:12px;padding:10px 12px;font-weight:600;text-decoration:none;display:flex}.nav-item:hover{background:var(--background-selected);color:var(--text)}.nav-item.active{background:var(--background-element);color:var(--accent)}.who{flex-direction:column;min-width:0;padding:12px;font-size:13px;display:flex}.who span{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.main{min-width:0;padding:32px 40px 64px}.tabbar{display:none}.sync{max-width:1100px;margin:0 auto}.sync:has(.note){margin-bottom:16px}.page{flex-direction:column;gap:24px;max-width:1100px;margin:0 auto;display:flex;container-type:inline-size}.rows{flex-direction:column;gap:16px;display:flex}.grid{align-items:stretch;gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.span-2{grid-column:span 2}.span-3,.grid-2 .span-2{grid-column:1/-1}.panel{flex-direction:column;gap:12px;padding:20px 22px;display:flex}.panel-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.panel-head h2{font-size:17px;line-height:1.3}.panel-head .link{white-space:nowrap;padding:0}.panel-eyebrow{letter-spacing:.4px;text-transform:uppercase;color:var(--text-secondary);font-size:11.5px;font-weight:600}.panel-desc{color:var(--text-secondary);margin-top:-6px;font-size:13px}.panel-body{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex}.panel-foot{color:var(--text-secondary);margin-top:auto;font-size:12px;line-height:1.45}.headline{letter-spacing:-.4px;font-variant-numeric:tabular-nums;font-size:26px;font-weight:800;line-height:1.15}.headline.small-head{font-size:20px}.visual{flex-direction:column;justify-content:flex-end;height:120px;display:flex}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.stat{background:var(--background-element);border-radius:16px;flex-direction:column;justify-content:center;gap:2px;min-height:92px;padding:16px 20px;display:flex}.stat-value strong{font-variant-numeric:tabular-nums;letter-spacing:-.4px;font-size:28px;font-weight:800}.stat-value span{color:var(--text-secondary);font-size:14px;font-weight:600}.stat-label{color:var(--text-secondary);font-size:13px}.empty{text-align:center;border:1.5px dashed var(--background-selected);min-height:150px;color:var(--text-secondary);border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:16px;font-size:13px;display:flex}.empty p{max-width:260px}.visual .empty{height:100%;min-height:0}.panel-body>.time-chart,.panel-body>.empty{margin-top:auto}.info-rows.compact li{padding:5px 0}.panel-action{margin-top:auto}.race-item:first-child{border-top:0}.info-rows.compact .pred-label{min-width:110px;font-weight:600}@container (width<=860px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3>:last-child:nth-child(odd){grid-column:1/-1}.grid-3:has(>.span-2)>*{grid-column:1/-1}}@container (width<=560px){.grid-3,.grid-2{grid-template-columns:minmax(0,1fr)}.span-2{grid-column:auto}.stats{gap:8px}.stat{min-height:76px;padding:12px 14px}.stat-value strong{font-size:22px}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.card{background:var(--background-element);border-radius:16px;min-width:0;padding:20px}.why{border-top:1px solid var(--background-selected);flex-direction:column;gap:4px;margin-top:6px;padding-top:14px;display:flex}.done{color:var(--done);font-weight:700}.week{margin:12px 0 0;padding:0;list-style:none}.week li{border-top:1px solid var(--background-selected)}.week li:first-child{border-top:0}.week-row{color:inherit;border-radius:10px;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 8px;text-decoration:none;display:grid}a.week-row:hover,.week-row[role=link]:hover{background:var(--background-selected);cursor:pointer}.week li.is-today{border-top-color:#0000}.week li.is-today .week-row{background:var(--today-tint)}.week li.is-today+li{border-top-color:#0000}.panel-body>.week{margin:0}.wday{color:var(--text-secondary);flex-direction:column;align-items:center;font-size:12px;display:flex}.wday strong{color:var(--text);font-size:17px}.what{flex-direction:column;min-width:0;display:flex}.what .small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.amt{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.key{color:var(--key);background:var(--key-tint);vertical-align:2px;border-radius:999px;margin-left:8px;padding:2px 7px;font-size:11px;font-weight:700}.row-tight{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.row-start{align-items:flex-start;gap:10px;display:flex}.stack-tight{flex-direction:column;gap:4px;display:flex}.grow{flex:1;min-width:0}.center{text-align:center;flex-direction:column;align-items:center;display:flex}.plain{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none}a.plain:hover{color:var(--text)}.link.muted{color:var(--text-secondary)}p .link,.check .link{padding:0}.link.done{color:var(--done)}.link.small,.small-btn{font-size:13px}.small-btn{padding:7px 12px}.link:hover{text-decoration:underline}.back{align-self:flex-start;align-items:center;gap:6px;padding:0;display:inline-flex}.page.narrow{gap:16px;max-width:760px}.two{grid-template-columns:1fr 1fr;gap:16px;display:grid}.track{background:var(--track);border-radius:3px;height:6px;display:block;position:relative;overflow:hidden}.track>span{background:var(--done);border-radius:3px;position:absolute;top:0;bottom:0;left:0}.track>span.planned{background:var(--easy-bar)}.hero{border:1px solid var(--background-selected)}.tiles{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.tile{background:var(--background-selected);border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.done-bar{background:var(--today-tint);color:var(--done);border-radius:12px;align-items:center;gap:10px;padding:12px 14px;display:flex}.note{border-radius:14px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;display:flex}.note p{flex:1}.note.key{background:var(--key-tint);color:var(--key)}.note.hard{background:var(--hard-tint);color:var(--hard)}.note.easy{background:var(--easy-tint);color:var(--easy)}.card-note p{color:var(--text)}.card-note .icon-btn{color:inherit}.card-note>svg,.note>svg{flex-shrink:0;margin-top:3px}.note .link{color:inherit;padding:0}.note .link.muted{color:var(--text-secondary)}.actions{gap:18px;margin-top:6px}.key-text{color:var(--key)!important}.key-dot{background:var(--key);border-radius:50%;width:7px;height:7px}.session-amount{font-variant-numeric:tabular-nums;font-size:40px}.session-amount .muted{letter-spacing:0;font-size:16px;font-weight:500}.target{border-radius:14px;flex-direction:column;gap:2px;margin:0;padding:14px 16px;display:flex}.target.easy{background:var(--easy-tint)}.target.easy>span:first-child{color:var(--easy)}.target.hard{background:var(--hard-tint)}.target.hard>span:first-child{color:var(--hard)}.target-pace{font-variant-numeric:tabular-nums;font-size:24px}.effort-bars{align-items:flex-end;gap:2px;height:64px;display:flex}.effort-bars span{border-radius:3px 3px 0 0}.effort-labels{color:var(--text-secondary);gap:2px;margin-top:4px;font-size:11px;display:flex}.effort-labels span{white-space:nowrap;overflow:hidden}.steps,.exercises,.pick-days,.info-rows{margin:0;padding:0;list-style:none}.steps li,.exercises li{border-top:1px solid var(--background-selected);align-items:center;gap:12px;padding:12px 0;display:flex}.steps li:first-child,.exercises li:first-child{border-top:0}.steps .grow{flex-direction:column;display:flex}.stripe{border-radius:2px;align-self:stretch;width:4px}.exercises li{align-items:flex-start}.num{background:var(--background-element);border-radius:50%;flex-shrink:0;place-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:grid}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--background-selected);background:var(--background-element);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;padding:6px 12px;font-size:13px}.chip:hover{border-color:var(--accent)}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.chip.strength{background:var(--strength-tint);color:var(--strength);cursor:default;border-color:#0000}.pick-days li{border-top:1px solid var(--background-selected)}.pick-days button{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;padding:10px 6px;display:flex}.pick-days button:hover:not(:disabled){background:var(--background-selected)}.pick-days button:disabled{opacity:.45;cursor:default}.pick-day{flex-direction:column;width:110px;display:flex}.action{font:inherit;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:10px 6px;text-decoration:none;display:flex}.action:hover{background:var(--background-selected)}.action.danger{color:var(--hard)}.form{gap:18px}.field textarea{font:inherit;color:var(--text);background:var(--background);border:1px solid var(--background-selected);resize:vertical;border-radius:12px;padding:12px 14px;font-size:16px}.field textarea:focus{outline:2px solid var(--accent);outline-offset:2px}.field input[aria-invalid=true]{border-color:var(--hard)}.hint{font-weight:400}.chips-field{border:0;flex-direction:column;gap:6px;margin:0;padding:0;display:flex}.chips-field legend{margin-bottom:6px;padding:0;font-size:13px;font-weight:600}.seg-field{flex-direction:column;gap:6px;display:flex}.seg-label{font-size:13px;font-weight:600}.segmented{background:var(--background-selected);border-radius:10px;align-self:flex-start;gap:2px;max-width:100%;padding:3px;display:inline-flex}.segmented button{font:inherit;color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:8px;padding:7px 14px;font-size:14px;font-weight:600}.segmented button.on{background:var(--background-element);color:var(--text);box-shadow:0 1px 3px #0000001f}.date-step{background:var(--background);border-radius:12px;align-items:center;gap:8px;padding:8px;display:flex}.date-step .icon-btn:disabled{opacity:.3;cursor:default}.calendar{gap:8px;display:grid}.cal-head,.cal-week{grid-template-columns:128px repeat(7,minmax(0,1fr));gap:6px;display:grid}.cal-head span{color:var(--text-secondary);padding:0 6px;font-size:12px;font-weight:700}.cal-week{border-radius:14px;padding:6px}.cal-week.now{background:var(--background-element)}.cal-side{flex-direction:column;gap:3px;padding:6px 4px;display:flex}.cal-side .link{align-self:flex-start;margin-top:4px;padding:0}.cal-day{background:var(--background-element);border:1px solid var(--background-selected);border-radius:12px;flex-direction:column;gap:6px;min-height:112px;padding:6px;display:flex;position:relative}.cal-week.now .cal-day{background:var(--background)}.cal-day.past{opacity:.85}.cal-day.cal-day.drop{background:var(--today-tint);border:2px dashed var(--accent);padding:5px}.cal-date{color:var(--text-secondary);padding:0 2px;font-size:12px;font-weight:700}.cal-day.today .cal-date{color:var(--accent)}.cal-s{color:var(--text);background:var(--easy-tint);border-left:3px solid var(--easy-bar);cursor:grab;border-radius:9px;flex-direction:column;gap:2px;padding:7px 8px;text-decoration:none;display:flex}.cal-s:hover{filter:brightness(.97)}.cal-s:active{cursor:grabbing}.cal-s.tone-hard,.cal-s.tone-race{background:var(--hard-tint);border-left-color:var(--hard-bar)}.cal-s.tone-long{background:var(--easy-tint);border-left-color:var(--long-bar)}.cal-s.tone-strength,.cal-s.tone-rest{background:var(--strength-tint);border-left-color:var(--strength)}.cal-s.is-done{opacity:.75}.cal-s-top{align-items:center;gap:5px;min-width:0;font-size:12.5px;display:flex}.cal-s-top strong{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.cal-s-amt{font-variant-numeric:tabular-nums;color:var(--text);align-items:center;gap:4px;font-size:16px;font-weight:800;display:flex}.cal-s-amt svg{color:var(--text-secondary)}.cal-s-also{color:var(--text-secondary);align-items:center;gap:4px;font-size:11px;display:flex}.cal-rest{color:var(--text-secondary);flex-direction:column;align-items:flex-start;padding:0 2px;font-size:12px;display:flex}.cal-rest .link{padding:0}.cal-add{color:var(--text-secondary);opacity:0;border-radius:6px;align-items:center;gap:4px;margin-top:auto;padding:4px 6px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.cal-day:hover .cal-add,.cal-add:focus-visible{opacity:1}.cal-add:hover{background:var(--background-selected);color:var(--accent)}@media (hover:none){.cal-add{opacity:1}}.week-nav{justify-content:space-between;align-items:center;display:flex}.week-nav .icon-btn:disabled{opacity:.3}.icon-btn:disabled{cursor:default;opacity:.35}.block-track{border-radius:4px;gap:2px;height:8px;display:flex;position:relative}.block-track span:first-child{border-radius:4px 0 0 4px}.block-track span:nth-last-child(2){border-radius:0 4px 4px 0}.block-track i{background:var(--text);border-radius:2px;width:3px;height:16px;margin-left:-1.5px;position:absolute;top:-4px}.block-labels{color:var(--text-secondary);gap:2px;margin-top:4px;font-size:11px;display:flex}.block-labels span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.overview{border-collapse:collapse;background:var(--background-element);border-radius:16px;width:100%;font-size:14px;overflow:hidden}.overview th{text-align:left;color:var(--text-secondary);border-bottom:1px solid var(--background-selected);padding:12px 14px;font-size:12px;font-weight:700}.overview td{border-bottom:1px solid var(--background-selected);vertical-align:middle;padding:10px 14px}.overview tbody tr{cursor:pointer}.overview tbody tr:hover{background:var(--background-selected)}.overview tr.now{background:var(--today-tint)}.overview tr:last-child td{border-bottom:0}.bar-col{width:34%}.ov-bar{align-items:center;gap:10px;display:flex}.ov-bar .track{flex:1}.ov-bar strong{text-align:right;font-variant-numeric:tabular-nums;min-width:64px}.info-rows li{border-bottom:1px solid var(--background-selected);align-items:center;gap:10px;padding:9px 0;font-size:14px;display:flex}.info-rows li:last-child{border-bottom:0}.info-rows>li>strong{text-align:right}.dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.race-item{border-top:1px solid var(--background-selected);align-items:center;gap:12px;padding:10px 0;display:flex}.pri{border:1.5px solid;border-radius:50%;flex-shrink:0;place-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:grid}.tiny{font-size:11.5px;line-height:1.4}.caps{text-transform:uppercase;letter-spacing:.4px;font-weight:600}.right{text-align:right}.time{font-variant-numeric:tabular-nums;font-size:17px}.big-num{letter-spacing:-.5px;font-variant-numeric:tabular-nums;font-size:30px;font-weight:800}.insight h2{margin-bottom:6px}.pred-label{min-width:116px}.log-list{margin:0;padding:0;list-style:none}.log-list li{border-top:1px solid var(--background-selected)}.log-list li:first-child{border-top:0}.log-row{color:inherit;border-radius:8px;align-items:center;gap:12px;padding:10px 6px;text-decoration:none;display:flex}.log-row:hover{background:var(--background-selected)}.table-wrap{background:var(--background-element);border-radius:16px;overflow-x:auto}.history,.parts{border-collapse:collapse;width:100%;font-size:14px}.history th,.parts th{text-align:left;color:var(--text-secondary);white-space:nowrap;padding:12px 12px 8px;font-size:12px;font-weight:700}.history td,.parts td{border-top:1px solid var(--background-selected);white-space:nowrap;padding:9px 12px}.num-col{text-align:right;font-variant-numeric:tabular-nums}.history tbody tr:not(.month){cursor:pointer}.history .row-tight{flex-wrap:nowrap}.history tbody tr:not(.month):hover{background:var(--background-selected)}.history tr.month th{color:var(--text);background:var(--background-element);padding-top:18px;font-size:14px}.history .notes{text-overflow:ellipsis;max-width:260px;overflow:hidden}.card .table-wrap{background:0 0;border-radius:0}.parts td:first-child{color:var(--text-secondary)}.parts tr.work td:first-child{color:var(--text);font-weight:700}.band{color:var(--background);border-radius:999px;padding:3px 10px;font-size:13px;font-weight:700}.split{background:var(--track);border-radius:6px;gap:2px;height:12px;display:flex;overflow:hidden}.mini-bars{align-items:flex-end;gap:6px;height:84px;display:flex}.mini-bars>div{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:3px;height:100%;display:flex}.mini-bars span{border-radius:4px 4px 0 0;width:100%}.mini-bars small,.pace-dots small{color:var(--text-secondary);font-size:11px}.pace-dots{gap:4px;height:96px;display:flex}.pace-dots>div{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:3px;display:flex}.pace-dots span{background:var(--easy);border-radius:50%;width:10px;height:10px}.wk-sq{border-radius:6px;width:22px;height:22px}.milestones,.shoes{margin:0;padding:0;list-style:none}.tile-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.tile-grid>li{background:var(--background);border-radius:12px;min-height:72px;padding:12px 14px}.milestones li{align-items:center;gap:12px;display:flex}.ms-group+.ms-group{margin-top:12px}.ms-group h3{font-size:14px}@container (width<=860px){.tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (width<=560px){.tile-grid{grid-template-columns:minmax(0,1fr)}}.milestones .badge{background:var(--background-selected);width:36px;height:36px;color:var(--text-secondary);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.milestones li.earned .badge{background:var(--key-tint);color:var(--key)}.milestones li:not(.earned) strong{color:var(--text-secondary)}.shoes li{flex-direction:column;gap:6px;display:flex}.shoes li.retired{opacity:.6}.check{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.check input{width:18px;height:18px;accent-color:var(--accent);flex-shrink:0;margin-top:2px}.sub-box{background:var(--background);border-radius:14px;padding:16px}.save-bar{justify-content:flex-end;display:flex;position:sticky;bottom:16px}.save-bar .btn{box-shadow:0 6px 20px #0000002e}.btn.danger-solid{background:var(--hard);border-color:var(--hard);color:#fff}.bullets{flex-direction:column;gap:4px;margin:0;padding-left:20px;display:flex}.wrap-row{flex-wrap:wrap;align-items:center}.group-title{padding:0 4px}.menu{margin:0;padding:4px 8px;list-style:none}.menu li+li{border-top:1px solid var(--background-selected)}.menu-item{width:100%;font:inherit;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;padding:12px 8px;text-decoration:none;display:flex}.menu-item:hover{background:var(--background-selected)}.menu-item>svg:first-child{color:var(--accent);flex-shrink:0}.menu-item.danger,.menu-item.danger>svg:first-child{color:var(--hard)}.recap-label{flex-shrink:0;width:80px}.race-item.plain{color:var(--text);border-radius:8px}.race-item.plain:hover{background:var(--background-selected)}.guide summary{cursor:pointer;align-items:center;gap:12px;list-style:none;display:flex}.guide summary::-webkit-details-marker{display:none}.guide summary:after{content:"+";color:var(--text-secondary);font-size:20px}.guide[open] summary:after{content:"−"}.guide[open]{flex-direction:column;gap:12px;display:flex}.guide .rule{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.accent-card{border:1px solid var(--accent)}.share-wrap{grid-template-columns:minmax(0,360px) 1fr;align-items:start;gap:24px;display:grid}.share-canvas{border-radius:14px;width:100%;height:auto;box-shadow:0 10px 30px #0003}.onboard{flex-direction:column;gap:16px;max-width:720px;min-height:100%;margin:0 auto;padding:16px 16px 48px;display:flex}.onboard-top{background:var(--background);z-index:2;align-items:center;gap:14px;padding:8px 0;display:flex;position:sticky;top:0}.onboard-body{gap:20px}.onboard h1{font-size:28px}.choice{text-align:left;width:100%;font:inherit;color:var(--text);background:var(--background-element);border:1.5px solid var(--background-selected);cursor:pointer;border-radius:14px;align-items:center;gap:10px;padding:14px 16px;display:flex}.choice:hover{border-color:var(--accent)}.choice.on{border-color:var(--accent);background:var(--easy-tint)}.chart{margin:0}.wk-bars{align-items:flex-end;gap:4px;display:flex;position:relative}.wk-col{outline:none;flex:1;align-items:flex-end;height:100%;display:flex;position:relative}.wk-col span{border-radius:4px 4px 0 0;position:absolute;bottom:0;left:0;right:0}.wk-planned{background:var(--track)}.wk-col.next .wk-planned{opacity:.55}.wk-col.now .wk-planned{box-shadow:inset 0 0 0 1.5px var(--accent)}.wk-done{background:var(--done)}.wk-col:hover .wk-planned,.wk-col:focus .wk-planned{filter:brightness(.94)}.wk-labels{gap:4px;margin-top:4px;display:flex}.wk-labels span{text-align:center;color:var(--text-secondary);flex:1;font-size:11px;overflow:hidden}.wk-labels span.now{color:var(--accent);font-weight:700}.tip{background:var(--text);color:var(--background);white-space:nowrap;pointer-events:none;z-index:2;border-radius:8px;flex-direction:column;padding:6px 10px;font-size:12.5px;display:flex;position:absolute;transform:translate(-50%)}.legend{color:var(--text-secondary);align-items:center;gap:6px;font-size:12px;display:inline-flex}.legend i{border-radius:3px;width:10px;height:10px;display:inline-block}.legend i:not(:first-child){margin-left:8px}.sw-planned{background:var(--track)}.sw-done{background:var(--done)}.stream{cursor:crosshair;flex-direction:column;gap:14px;display:flex}.line-chart{margin:0}.line-chart figcaption{align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.line-chart .range{margin-left:auto}.line-chart svg{width:100%;height:120px;display:block;overflow:visible}.line-chart .axis{stroke:var(--background-selected);stroke-width:1px}.line-chart .crosshair{stroke:var(--text-secondary);stroke-width:1px;stroke-dasharray:3 3}.stream-axis{color:var(--text-secondary);justify-content:space-between;margin-top:-8px;font-size:11px;display:flex}.stream-at{min-height:18px}.time-chart{margin:4px 0 0}.time-chart .legend{flex-wrap:wrap;gap:4px;margin-bottom:8px}.time-chart .legend span{align-items:center;gap:6px;margin-right:10px;display:inline-flex}.time-chart .legend i{margin-left:0!important}.tc-plot{border-bottom:1px solid var(--background-selected);cursor:crosshair;margin:16px 0 0;position:relative}.tc-plot svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.tc-y{color:var(--text-secondary);background:var(--background-element);z-index:1;pointer-events:none;padding:0 2px;font-size:11px;position:absolute;right:0}.tc-y.top{top:-16px}.tc-y.bottom{bottom:2px}.tc-zero{border-top:1px dashed var(--background-selected);position:absolute;left:0;right:0}.tc-bar{border-radius:2px;position:absolute}.tc-dot{width:8px;height:8px;box-shadow:0 0 0 1.5px var(--background-element);border-radius:50%;margin:-4px 0 0 -4px;position:absolute}.tc-cross{border-left:1px dashed var(--text-secondary);pointer-events:none;position:absolute;top:0;bottom:0}.tc-x{color:var(--text-secondary);justify-content:space-between;margin-top:4px;font-size:11px;display:flex}.tc-read{min-height:20px}.kinds{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.kinds li{grid-template-columns:130px 1fr auto;align-items:center;gap:10px;font-size:13px;display:grid}.kind-bar{background:var(--track);border-radius:5px;height:10px;overflow:hidden}.kind-bar span{border-radius:5px;height:100%;display:block}.kind-num{white-space:nowrap;font-variant-numeric:tabular-nums}:root{--hero-bg:#085041;--hero-text:#e1f5ee;--hero-soft:#9fe1cb;--hero-line:#e1f5ee47}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--hero-bg:#0f6e56;--hero-soft:#c6efe1}}:root[data-theme=dark]{--hero-bg:#0f6e56;--hero-soft:#c6efe1}.card.hero{background:var(--hero-bg);color:var(--hero-text);flex-direction:column;gap:10px;padding:26px 28px;display:flex}.hero-tag{color:var(--hero-soft);align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.hero-tag svg{color:var(--hero-soft)!important}.hero-title{letter-spacing:-.8px;font-size:40px;font-weight:800;line-height:1.1}.hero-sub{letter-spacing:0;color:var(--hero-soft);font-size:16px;font-weight:500}.hero-text{color:var(--hero-text);max-width:560px;font-size:15px;line-height:1.55}.hero-actions{flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:8px;display:flex}.btn.hero-primary{background:var(--hero-text);color:var(--hero-bg);border-color:var(--hero-text)}.btn.hero-ghost{color:var(--hero-text);border-color:var(--hero-line);background:0 0}.btn.hero-ghost:hover{background:#ffffff14}.card.hero .key{color:#fac775;background:#faeeda2e}.hero-strength{color:var(--hero-soft);align-items:center;gap:8px;font-size:14px;display:flex}.hero-strength .plain{color:var(--hero-text)}.hero-strength .link{color:var(--hero-text);margin-left:8px;padding:0;text-decoration:underline}.hero-why{color:var(--hero-soft);border-top:1px solid var(--hero-line);max-width:620px;padding-top:10px;font-size:13.5px;line-height:1.5}.goal-track{gap:2px;height:10px;display:flex;position:relative}.goal-track .ph{background:var(--track);border-radius:3px}.goal-track .ph-base{background:var(--easy-bar)}.goal-track .ph-build{background:var(--long-bar)}.goal-track .ph-peak{background:var(--hard-bar)}.goal-track .ph-taper{background:var(--key-tint)}.goal-track i{background:var(--text);border-radius:2px;width:3px;height:18px;margin-left:-1.5px;position:absolute;top:-4px}.goal-labels{color:var(--text-secondary);gap:2px;margin-top:4px;font-size:11px;display:flex}.goal-labels span{white-space:nowrap;overflow:hidden}.day-tiles{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;display:grid}.day-tile{background:var(--background);color:var(--text);border:1.5px solid #0000;border-radius:12px;flex-direction:column;gap:6px;min-height:92px;padding:10px;text-decoration:none;display:flex}a.day-tile:hover{border-color:var(--background-selected)}.day-tile.is-today{border-color:var(--accent)}.day-tile.done{background:var(--today-tint)}.day-tile.rest{opacity:.7}.dt-day{color:var(--text-secondary);font-size:12px}.dt-day strong{color:var(--text)}.dt-what{align-items:center;gap:5px;min-width:0;font-size:13px;font-weight:600;display:flex}.dt-amt{font-variant-numeric:tabular-nums;align-items:center;gap:6px;margin-top:auto;font-size:16px;font-weight:800;display:flex}.feedback{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.feedback li{align-items:flex-start;gap:10px;font-size:14.5px;line-height:1.5;display:flex}.feedback li svg{flex-shrink:0;margin-top:3px}@container (width<=860px){.day-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}@container (width<=560px){.day-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.dialog{background:var(--background-element);max-width:min(440px,100vw - 32px);color:var(--text);border:0;border-radius:18px;padding:24px;box-shadow:0 20px 60px #0000004d}.dialog::backdrop{background:#0006}.dialog h2{margin-bottom:8px}.dialog p{white-space:pre-line}.dialog-buttons{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.dialog-buttons.stacked{flex-direction:column;align-items:stretch}.dialog-buttons.stacked>:first-child{order:1}.notices{z-index:10;flex-direction:column;gap:8px;max-width:min(420px,100vw - 32px);display:flex;position:fixed;top:16px;right:16px}.notice{background:var(--background-element);border:1px solid var(--background-selected);border-radius:14px;align-items:flex-start;gap:12px;padding:14px 16px;display:flex;box-shadow:0 8px 24px #0000001f}.notice p{color:var(--text-secondary);margin-top:2px;font-size:14px}@media (width<=760px){.two,.share-wrap{grid-template-columns:minmax(0,1fr)}.hide-narrow,.overview th:nth-child(3),.overview td:nth-child(3),.overview th:nth-child(6),.overview td:nth-child(6),.overview th:nth-child(2),.overview td:nth-child(2){display:none}.session-amount{font-size:34px}.shell{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.main{padding:20px 16px calc(88px + env(safe-area-inset-bottom,0px))}.tabbar{z-index:5;background:var(--background-element);border-top:1px solid var(--background-selected);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab{color:var(--text-secondary);flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:11px;font-weight:600;text-decoration:none;display:flex}.tab.active{color:var(--accent)}}@media (pointer:coarse){.chip{padding:12px 15px}.segmented button{padding:12px 14px}.icon-btn{padding:13px}.link{padding:12px 4px}p .link,.check .link{padding:0}.btn{min-height:46px}button.plain{min-height:44px}.check input{width:22px;height:22px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
