.bottom-nav{position:fixed;inset:auto 0 0 0;z-index:10;display:flex;justify-content:space-around;padding:var(--space-2) var(--space-2) env(safe-area-inset-bottom);background:var(--bg-surface);border-top:1px solid var(--bg-surface-2)}.bottom-nav__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);width:72px;height:var(--nav-h);color:var(--text-muted);text-decoration:none}.bottom-nav__item--active{color:var(--accent-default)}.bottom-nav__label{font:500 11px/14px var(--font-ui);letter-spacing:.04em;text-transform:uppercase}.button{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;padding:0 var(--space-4);border:0;border-radius:var(--radius-md);font:600 15px/22px var(--font-ui);cursor:pointer}.button--primary{background:var(--accent-default);color:var(--accent-on)}.button--secondary{background:var(--bg-surface-2);color:var(--text-primary)}.button:disabled{opacity:.5;cursor:default}.bottom-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;justify-content:flex-end}.bottom-sheet__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#0009}.bottom-sheet__panel{position:relative;max-height:90vh;display:flex;flex-direction:column;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--bg-base);padding-bottom:env(safe-area-inset-bottom);width:100%;max-width:640px;margin:0 auto}.bottom-sheet__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4)}.bottom-sheet__title{font:600 18px/24px var(--font-ui);margin:0}.bottom-sheet__close{width:var(--touch-min);height:var(--touch-min);border:0;background:none;color:var(--text-muted);font-size:18px;cursor:pointer}.bottom-sheet__body{overflow-y:auto;padding:0 var(--space-4) var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.number-field{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);border-radius:var(--radius-md);background:var(--bg-surface)}.number-field__btn{flex:none;width:var(--touch-min);height:var(--touch-min);border:0;border-radius:var(--radius-sm);background:var(--bg-surface-2);font-size:24px;cursor:pointer}.number-field__center{flex:1;display:flex;flex-direction:column;align-items:center;min-width:0}.number-field__value{width:100%;border:0;background:none;text-align:center;font:600 32px/36px var(--font-num);font-variant-numeric:tabular-nums}.number-field__value:focus{outline:none}.number-field__caption{font:500 11px/14px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.rpe-picker{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:var(--space-1)}.rpe-picker__btn{height:var(--touch-min);border:1px solid transparent;border-radius:var(--radius-sm);background:var(--bg-surface-2);font:600 18px/1 var(--font-num);cursor:pointer}.rpe-picker__btn--target{border-color:var(--text-muted)}.rpe-picker__btn--active{background:var(--accent-default);color:var(--accent-on)}.install-hint{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--bg-surface);border-left:3px solid var(--type-kraft);font:400 13px/18px var(--font-ui)}.install-hint span{flex:1}.install-hint button{border:0;background:none;color:var(--text-muted);min-width:32px;min-height:32px;cursor:pointer}.notice-banner{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--bg-surface);border-left:3px solid var(--accent-default);font:400 13px/18px var(--font-ui)}.notice-banner svg{flex:none;color:var(--accent-default)}.notice-banner--warn{border-left-color:var(--state-warn)}.notice-banner--warn svg{color:var(--state-warn)}.section__title{font:500 11px/14px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;margin:0;padding:var(--space-2) 0;color:var(--text-muted)}.section__body{border-radius:var(--radius-md);background:var(--bg-surface);overflow:hidden}.workout-card{--wc-type: var(--type-ruhe);display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--bg-surface);border-left:3px solid var(--wc-type);color:inherit;text-decoration:none}.workout-card--kraft{--wc-type: var(--type-kraft)}.workout-card--lauf{--wc-type: var(--type-lauf)}.workout-card--athletik{--wc-type: var(--type-athletik)}.workout-card--team{--wc-type: var(--type-team)}.workout-card--turnier{--wc-type: var(--type-turnier)}.workout-card--ruhe{--wc-type: var(--type-ruhe)}.workout-card--sonstiges{--wc-type: var(--type-sonstiges)}.workout-card--done,.workout-card--skipped{opacity:.75}.workout-card__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.workout-card__type{font:500 11px/14px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--wc-type)}.workout-card__title{font:600 18px/24px var(--font-ui)}.workout-card__meta,.workout-card__summary{font:400 13px/18px var(--font-ui);color:var(--text-muted)}.workout-card__status{flex:none;width:24px;height:24px;border-radius:50%;border:2px solid var(--bg-surface-2);display:flex;align-items:center;justify-content:center}.workout-card--done .workout-card__status{background:var(--state-done);border-color:var(--state-done);color:var(--accent-on)}.heute__list{display:flex;flex-direction:column;gap:var(--space-3)}.heute__item{display:flex;flex-direction:column;gap:var(--space-2)}.heute__list{background:var(--bg-base)}.woche__nav{display:flex;align-items:center;gap:var(--space-2)}.woche__nav button{width:var(--touch-min);height:var(--touch-min);border:0;border-radius:var(--radius-sm);background:var(--bg-surface);font-size:20px;cursor:pointer}.woche__today{font:400 13px/18px var(--font-ui);color:var(--accent-default);text-decoration:none;padding:0 var(--space-2)}.woche-day{display:flex;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--bg-surface)}.woche-day--past{opacity:.6}.woche-day--today{padding:var(--space-2);margin:0 calc(-1 * var(--space-2));border-radius:var(--radius-md);background:color-mix(in srgb,var(--accent-default) 10%,transparent);border-bottom:0}.woche-day__head{flex:none;width:44px;display:flex;flex-direction:column;gap:2px;padding-top:var(--space-2)}.woche-day__wd{font:500 11px/14px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.woche-day__date{font:600 16px/1 var(--font-num)}.woche-day__heute{align-self:flex-start;margin-top:2px;padding:3px 5px;border-radius:3px;background:var(--accent-default);color:var(--accent-on);font:600 10px/1 var(--font-ui);letter-spacing:.06em;text-transform:uppercase}.woche-day__list{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-2)}.woche-day__empty{padding-top:var(--space-2);color:var(--text-muted)}.move-sheet__info{margin:0;font:400 13px/18px var(--font-ui);color:var(--text-muted)}.move-sheet__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.move-sheet__wd{font:500 11px/14px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);text-align:center}.move-sheet__day{min-height:var(--touch-min);border:1px solid transparent;border-radius:var(--radius-sm);background:var(--bg-surface);font:600 14px/1 var(--font-num);cursor:pointer}.move-sheet__day--cur{border-color:var(--bg-surface-2);color:var(--text-muted)}.move-sheet__day--sel{background:var(--accent-default);color:var(--accent-on)}.type-legend{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);font:400 13px/18px var(--font-ui);color:var(--text-muted)}.type-legend span{display:inline-flex;align-items:center;gap:6px}.type-dot{width:10px;height:10px;border-radius:50%;flex:none;background:var(--type-ruhe)}.type-dot--kraft{background:var(--type-kraft)}.type-dot--lauf{background:var(--type-lauf)}.type-dot--athletik{background:var(--type-athletik)}.type-dot--team{background:var(--type-team)}.type-dot--turnier{background:var(--type-turnier)}.type-dot--ruhe{background:var(--type-ruhe)}.type-dot--sonstiges{background:var(--type-sonstiges)}.type-dot--test{background:var(--accent-default)}@media(min-width:861px){.plan .screen__header,.plan .plan__content{max-width:1240px;margin:0 auto}}.segmented{display:flex;padding:2px;border-radius:var(--radius-sm);background:var(--bg-surface)}.segmented button{min-height:36px;padding:0 var(--space-3);border:0;border-radius:6px;background:none;color:var(--text-muted);font:400 13px/18px var(--font-ui);cursor:pointer}.segmented .segmented--on{background:var(--bg-surface-2);color:var(--text-primary)}.plan-timeline{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--bg-surface)}.plan-timeline__track{position:relative;height:64px}.plan-timeline__phase{position:absolute;top:0;height:30px;padding:0 6px;border-radius:6px;display:flex;align-items:center;overflow:hidden;white-space:nowrap;background:var(--bg-surface-2);font:600 12px/1 var(--font-num);letter-spacing:.04em;text-transform:uppercase;box-shadow:inset 0 -3px 0 var(--tone)}.plan-timeline__phase--kraft{--tone: var(--type-kraft)}.plan-timeline__phase--lauf{--tone: var(--type-lauf)}.plan-timeline__phase--athletik{--tone: var(--type-athletik)}.plan-timeline__phase--ruhe{--tone: var(--type-ruhe)}.plan-timeline__phase--ruhe{color:var(--text-muted)}@media(min-width:861px){.plan-timeline__phase{font-size:14px;padding:0 8px}}.plan-timeline__ev{position:absolute;top:36px;width:2px;height:12px;border-radius:1px;background:var(--type-turnier)}.plan-timeline__ev--test{background:var(--accent-default)}.plan-timeline__ev--peak{width:4px;height:16px;top:34px}.plan-timeline__month{position:absolute;top:52px;font:500 11px/14px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.plan-timeline__today{position:absolute;top:-4px;bottom:14px;width:2px;background:var(--text-primary);opacity:.7}.plan-weeks{display:flex;flex-direction:column;gap:var(--space-2)}.plan-weeks__daynames{display:none}@media(min-width:861px){.plan-weeks__daynames{display:grid;grid-template-columns:150px repeat(7,minmax(0,1fr));gap:6px;position:sticky;top:0;z-index:5;padding:var(--space-2) 0;background:var(--bg-base)}.plan-weeks__daynames div{font:500 11px/14px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);padding-left:4px}}.plan-weeks__block{scroll-margin-top:var(--space-4)}@media(min-width:861px){.plan-weeks__block{scroll-margin-top:48px}}.plan-phase-head{display:flex;align-items:baseline;gap:var(--space-3);flex-wrap:wrap;margin:var(--space-4) 0 var(--space-2);padding-bottom:6px;border-bottom:1px solid var(--bg-surface-2)}.plan-phase-head h2{margin:0;font:600 24px/1 var(--font-num);text-transform:uppercase;letter-spacing:.03em}.plan-phase-head p{margin:0;font:400 13px/18px var(--font-ui);color:var(--text-muted)}.plan-week{display:flex;flex-direction:column;gap:4px;padding:var(--space-3);border-radius:var(--radius-md);background:var(--bg-surface)}.plan-week__meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px var(--space-3);padding:2px 2px var(--space-2);border-bottom:1px solid var(--bg-surface-2);color:inherit;text-decoration:none}.plan-week__num{font:600 22px/1 var(--font-num);font-variant-numeric:tabular-nums}.plan-week__dates{font:400 13px/18px var(--font-ui);color:var(--text-muted);font-variant-numeric:tabular-nums}.plan-week__label{font:400 13px/18px var(--font-ui);font-weight:500}.plan-week__tag{padding:4px 6px;border-radius:4px;background:var(--bg-surface-2);font:500 11px/14px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.plan-week__tag--t{background:color-mix(in srgb,var(--type-turnier) 16%,transparent);color:var(--type-turnier)}.plan-week__tag--r{background:color-mix(in srgb,var(--accent-default) 16%,transparent);color:var(--text-primary)}.plan-week__note{margin:0;padding:6px 2px 0;font:400 13px/18px var(--font-ui);color:var(--text-muted)}@media(min-width:861px){.plan-week{display:grid;grid-template-columns:150px repeat(7,minmax(0,1fr));gap:6px;padding:0;background:none}.plan-week__meta{flex-direction:column;align-items:flex-start;flex-wrap:nowrap;gap:3px;padding:var(--space-2) 6px 0 0;border:0}.plan-week__note{grid-column:2/-1;padding:0 4px}}.plan-day{display:flex;gap:var(--space-3);padding:6px 2px;border-radius:6px;min-width:0}.plan-day--empty{display:none}.plan-day--past{opacity:.55}.plan-day--today{background:color-mix(in srgb,var(--accent-default) 14%,transparent);padding-inline:6px}.plan-day__num{flex:none;width:40px;display:flex;flex-direction:column;gap:2px;font:600 15px/1 var(--font-num);font-variant-numeric:tabular-nums}.plan-day__num b{align-self:flex-start;margin-top:3px;padding:3px 5px;border-radius:3px;background:var(--accent-default);color:var(--accent-on);font:600 10px/1 var(--font-ui);letter-spacing:.06em;text-transform:uppercase}.plan-day__wd{font:500 11px/14px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.plan-day__list{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}@media(min-width:861px){.plan-day{flex-direction:column;gap:5px;min-height:84px;padding:7px;border:1px solid var(--bg-surface-2);border-radius:10px;background:var(--bg-surface)}.plan-day--empty{display:flex;background:transparent;border-style:dashed}.plan-day--today{border-color:var(--accent-default);box-shadow:0 0 0 1px var(--accent-default);background:var(--bg-surface);padding-inline:7px}.plan-day__num{flex-direction:row;justify-content:space-between;align-items:baseline;width:auto;color:var(--text-muted)}.plan-day__num b{margin-top:0}.plan-day--today .plan-day__num{color:var(--text-primary)}.plan-day__wd{display:none}}.plan-entry{--c: var(--type-ruhe);display:flex;gap:6px;align-items:flex-start;min-width:0;color:inherit;text-decoration:none}.plan-entry--kraft{--c: var(--type-kraft)}.plan-entry--lauf{--c: var(--type-lauf)}.plan-entry--athletik{--c: var(--type-athletik)}.plan-entry--team{--c: var(--type-team)}.plan-entry--turnier{--c: var(--type-turnier)}.plan-entry--ruhe{--c: var(--type-ruhe)}.plan-entry--sonstiges{--c: var(--type-sonstiges)}.plan-entry__bar{width:3px;align-self:stretch;border-radius:2px;background:var(--c);flex:none}.plan-entry__text{display:flex;flex-direction:column;min-width:0}.plan-entry__title{font-weight:600;font-size:13.5px;line-height:1.25;overflow-wrap:anywhere}.plan-entry__line{font-size:12.5px;line-height:1.3;color:var(--text-muted);overflow-wrap:anywhere}.plan-entry__check{color:var(--state-done)}.plan-entry--ruhe .plan-entry__title{font-weight:500;color:var(--text-muted)}.plan-entry--skipped .plan-entry__title{text-decoration:line-through;color:var(--text-muted)}.plan-entry--btn{width:100%;padding:var(--space-2) 0;border:0;background:none;text-align:left;cursor:pointer}@media(min-width:861px){.plan-entry__title{font-size:12.5px}.plan-entry__line{font-size:11.5px}}.plan-month{display:flex;flex-direction:column;gap:var(--space-3);max-width:640px}.plan-month__head{display:flex;align-items:center;gap:var(--space-2)}.plan-month__head h2{margin:0;flex:1;font:600 24px/1 var(--font-num)}.plan-month__head button{width:var(--touch-min);height:var(--touch-min);border:0;border-radius:var(--radius-sm);background:var(--bg-surface);font-size:20px;cursor:pointer}.plan-month__phase{padding:4px 6px;border-radius:4px;background:color-mix(in srgb,var(--type-lauf) 16%,transparent);color:var(--type-lauf);font:500 11px/14px var(--font-ui);letter-spacing:.04em;text-transform:uppercase}.plan-month__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.plan-month__wd{font:500 11px/14px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);text-align:center;padding:var(--space-1) 0}.plan-month__day{min-height:56px;padding:6px 4px;border:1px solid transparent;border-radius:var(--radius-sm);background:none;display:flex;flex-direction:column;align-items:flex-start;gap:4px;cursor:pointer}.plan-month__day--out{opacity:.35}.plan-month__day--t{background:color-mix(in srgb,var(--type-turnier) 22%,transparent)}.plan-month__day--test{box-shadow:inset 0 0 0 1px var(--accent-default)}.plan-month__day--today{background:var(--bg-surface-2)}.plan-month__day--sel{border-color:var(--accent-default)}.plan-month__n{font:600 16px/1 var(--font-num);display:flex;gap:4px}.plan-month__ok{color:var(--state-done);font-size:12px}.plan-month__bars{display:flex;flex-direction:column;gap:3px;width:100%}.plan-month__bar{display:block;width:100%;height:4px;border-radius:2px}.plan-month__panel{padding:var(--space-4);border-radius:var(--radius-lg);background:var(--bg-surface);display:flex;flex-direction:column;gap:var(--space-1)}.plan-month__panel h3{margin:0 0 var(--space-2);font:600 18px/24px var(--font-ui);display:flex;align-items:center;gap:var(--space-2)}.plan-month__heute{padding:3px 5px;border-radius:3px;background:var(--accent-default);color:var(--accent-on);font:600 10px/1 var(--font-ui);letter-spacing:.06em;text-transform:uppercase}.plan-month__evline{margin:0;font:400 13px/18px var(--font-ui);color:var(--text-muted)}.plan-month__row{display:flex;align-items:center;gap:var(--space-2)}.plan-month__move{flex:none;min-height:36px;padding:0 var(--space-3);border:0;border-radius:var(--radius-sm);background:var(--bg-surface-2);font:400 13px/18px var(--font-ui);cursor:pointer}.test-row+.test-row{border-top:1px solid var(--bg-surface-2)}.test-row__main{width:100%;display:grid;grid-template-columns:1fr auto;gap:2px var(--space-3);padding:var(--space-3) var(--space-4);border:0;background:none;text-align:left;cursor:pointer}.test-row__main:disabled{cursor:default}.test-row__name{font:400 15px/22px var(--font-ui)}.test-row__value{font:600 22px/28px var(--font-num);font-variant-numeric:tabular-nums;text-align:right;grid-row:span 2;align-self:center}.test-row__meta{font:400 13px/18px var(--font-ui);color:var(--text-muted)}.test-row__up{color:var(--state-done);font-weight:600}.test-row__down{color:var(--state-warn);font-weight:600}.test-row__history{margin:0;padding:0 var(--space-4) var(--space-3);list-style:none}.test-row__history li{display:flex;justify-content:space-between;font:400 13px/18px var(--font-ui);color:var(--text-muted);padding:2px 0}.test-input{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4)}.test-input+.test-input{border-top:1px solid var(--bg-surface-2)}.test-input__text{flex:1;min-width:0;display:flex;flex-direction:column}.test-input__name{font:400 15px/22px var(--font-ui)}.test-input__last{font:400 13px/18px var(--font-ui);color:var(--text-muted)}.test-input__field{width:110px;text-align:right;font:600 22px/28px var(--font-num);font-variant-numeric:tabular-nums}.list-row{display:flex;align-items:center;gap:var(--space-3);min-height:var(--touch-min);padding:var(--space-2) var(--space-4);color:inherit;text-decoration:none}.list-row+.list-row{border-top:1px solid var(--bg-surface-2)}.list-row--link:active{background:var(--bg-surface-2)}.list-row__leading{flex:none;display:flex}.list-row__text{flex:1;min-width:0;display:flex;flex-direction:column}.list-row__label{font:400 15px/22px var(--font-ui);overflow-wrap:anywhere}.list-row__sub{font:400 13px/18px var(--font-ui);color:var(--text-muted)}.list-row__value{font:400 13px/18px var(--font-ui);color:var(--text-muted);text-align:right;max-width:55%;overflow-wrap:anywhere}.list-row__chevron{color:var(--text-muted);font-size:20px;line-height:1}.exercise-figure{display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:var(--bg-base);overflow:hidden}.exercise-figure--small{width:48px;height:48px}.exercise-figure--large{width:100%;max-width:280px;aspect-ratio:1;margin:0 auto;border-radius:var(--radius-lg)}.exercise-figure img{width:100%;height:100%;object-fit:contain}.exercise-figure__empty{width:40%;height:40%;border-radius:50%;border:2px dashed var(--bg-surface-2)}.katalog__search{width:100%}.katalog__new{font:600 15px/22px var(--font-ui);color:var(--accent-default);text-decoration:none;padding:var(--space-2) 0 var(--space-2) var(--space-3)}.katalog__archived{font:400 13px/18px var(--font-ui);align-self:center;min-height:var(--touch-min);padding:0 var(--space-4);border:0;background:none;color:var(--text-muted);cursor:pointer}.chips{display:flex;gap:var(--space-2);overflow-x:auto;margin:0 calc(-1 * var(--space-4));padding:0 var(--space-4);scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:none;min-height:36px;padding:0 var(--space-3);border:1px solid var(--bg-surface-2);border-radius:18px;background:var(--bg-surface);font:400 13px/18px var(--font-ui);cursor:pointer;white-space:nowrap}.chip--active{background:var(--accent-default);border-color:var(--accent-default);color:var(--accent-on)}.chip__count{opacity:.6}.video-embed{display:flex;flex-direction:column;gap:var(--space-1)}.video-embed iframe,.video-embed__play{width:100%;aspect-ratio:16/9;border:0;border-radius:var(--radius-md);background:var(--bg-surface)}.video-embed--short iframe,.video-embed--short .video-embed__play{aspect-ratio:9/16;max-height:70vh;width:auto;align-self:center}.video-embed__play{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);color:var(--text-muted);font:400 13px/18px var(--font-ui);cursor:pointer}.video-embed--short .video-embed__play{min-width:200px}.video-embed__icon{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent-default);color:var(--accent-on);font-size:22px}.video-embed__ext{align-self:flex-end;font:400 13px/18px var(--font-ui);color:var(--text-muted);text-decoration:none}.progress-chart{margin:0;padding:var(--space-3) var(--space-3) var(--space-2);border-radius:var(--radius-md);background:var(--bg-surface)}.progress-chart__title{font:500 11px/14px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-1)}.progress-chart svg{display:block;width:100%;height:auto;touch-action:pan-y}.progress-chart__grid{stroke:var(--bg-surface-2);stroke-width:1}.progress-chart__axis{fill:var(--text-muted);font:400 10px/1 var(--font-ui);font-variant-numeric:tabular-nums}.progress-chart__line{fill:none;stroke:var(--type-kraft);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.progress-chart__dot{fill:var(--type-kraft);stroke:var(--bg-surface);stroke-width:2}.progress-chart__cross{stroke:var(--text-muted);stroke-width:1;stroke-dasharray:2 3}.progress-chart__label{fill:var(--text-primary);font:600 12px/1 var(--font-ui);font-variant-numeric:tabular-nums}.progress-chart__tip{margin:var(--space-1) 0 0;font:400 13px/18px var(--font-ui);color:var(--text-muted)}.progress-chart__tip b{color:var(--text-primary)}.progress-chart__empty{margin:0;font:400 13px/18px var(--font-ui);color:var(--text-muted)}.vorschau-item{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.vorschau-item+.vorschau-item{border-top:1px solid var(--bg-surface-2)}.vorschau-item--off{opacity:.5}.vorschau-item__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.vorschau-item__name{font:600 15px/22px var(--font-ui)}.vorschau-item__name a{color:inherit;text-decoration:none}.vorschau-item__ss{display:inline-block;margin-right:var(--space-2);padding:0 6px;border-radius:4px;background:var(--bg-surface-2);font:500 11px/14px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;line-height:18px}.vorschau-item__line{font:400 13px/18px var(--font-ui);color:var(--text-muted)}.vorschau-item__hint{font:400 13px/18px var(--font-ui);color:var(--accent-default)}.vorschau-item__done{font:400 13px/18px var(--font-ui);color:var(--state-done)}.vorschau-block__note{padding:var(--space-3) var(--space-4) 0;font:400 13px/18px var(--font-ui);color:var(--text-muted)}.set-row{display:flex;align-items:center;gap:var(--space-2);min-height:var(--set-row-h);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.set-row--active{background:var(--bg-surface-2)}.set-row__index{flex:none;width:24px;height:24px;border-radius:50%;background:var(--bg-surface-2);display:flex;align-items:center;justify-content:center;font:400 13px/18px var(--font-ui);color:var(--text-muted)}.set-row--active .set-row__index{background:var(--bg-base);color:var(--text-primary)}.set-row__target{flex:1;min-width:0;font:400 13px/18px var(--font-ui);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.set-row__values,.set-row__pair{display:flex;align-items:center;gap:var(--space-1)}.set-row__x{color:var(--text-muted);font:400 13px/18px var(--font-ui)}.set-row__box{min-width:48px;height:44px;padding:0 var(--space-2);border:1px solid transparent;border-radius:var(--radius-sm);background:var(--bg-base);font:600 22px/28px var(--font-num);font-variant-numeric:tabular-nums;cursor:pointer}.set-row__box--ghost{color:var(--text-muted)}.set-row__box--rpe{min-width:40px}.set-row__box--focus{border-color:var(--accent-default);color:var(--text-primary)}.set-row__check{flex:none;width:36px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--bg-surface-2)}.set-row--done .set-row__check{background:var(--state-done);color:var(--accent-on)}.kraft__content{padding-bottom:300px}.kraft-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4) var(--space-3);border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid transparent}.kraft-card--active{border-color:var(--bg-surface-2)}.kraft-card--plain{padding:var(--space-3) var(--space-4)}.kraft-card>summary{font:600 15px/22px var(--font-ui);cursor:pointer}.kraft-card__ss{font:500 11px/14px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--type-kraft);padding:0 var(--space-1)}.kraft__mobility{margin:var(--space-3) 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}.kraft__mobility li{display:flex;align-items:center;gap:var(--space-3);font:400 13px/18px var(--font-ui)}.kraft__mobility a{color:inherit;text-decoration:none}.kraft-item{display:flex;flex-direction:column;gap:var(--space-2)}.kraft-item+.kraft-item{padding-top:var(--space-3);border-top:1px solid var(--bg-surface-2)}.kraft-item--skipped{opacity:.6}.kraft-item__header{display:flex;gap:var(--space-3);align-items:flex-start;padding:0 var(--space-1)}.kraft-item__titles{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.kraft-item__name{font:600 18px/24px var(--font-ui);margin:0}.kraft-item__meta{font:400 13px/18px var(--font-ui);color:var(--text-muted)}.kraft-item__menu{flex:none;width:var(--touch-min);height:var(--touch-min);border:0;border-radius:var(--radius-sm);background:none;color:var(--text-muted);font-size:22px;cursor:pointer}.kraft-item__cue,.kraft-item__last,.kraft-item__note{margin:0;padding:0 var(--space-1);font:400 13px/18px var(--font-ui);color:var(--text-muted)}.kraft-item__cue{color:var(--text-primary)}.kraft-item__note{color:var(--accent-default)}.kraft-item__rows{display:flex;flex-direction:column;gap:2px}.kraft-item__link{align-self:flex-start;min-height:36px;padding:0 var(--space-2);border:0;background:none;color:var(--accent-default);font:400 13px/18px var(--font-ui);cursor:pointer}.kraft-panel{position:fixed;left:0;right:0;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + var(--space-2));z-index:20;max-width:640px;margin:0 auto;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);background:var(--bg-base);border-top:1px solid var(--bg-surface-2);box-shadow:0 -8px 24px #0006}.kraft-panel__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);font:400 13px/18px var(--font-ui);color:var(--text-muted)}.kraft-panel__fields{display:flex;gap:var(--space-1)}.kraft-panel__fields .chip{min-height:28px}.kraft-panel__actions{display:flex;gap:var(--space-2)}.kraft-panel__actions>:last-child{flex:1}.kraft-panel__actions>:first-child:not(:last-child){width:auto;flex:none}:root{--bg-base: #0e1013;--bg-surface: #171a1f;--bg-surface-2: #20242b;--text-primary: #f2f4f7;--text-muted: #9aa3ae;--accent-default: #c6f432;--accent-on: #0e1013;--type-kraft: #5b8cff;--type-lauf: #2dd4bf;--type-athletik: #f59e0b;--type-team: #a78bfa;--type-turnier: #f43f5e;--type-ruhe: #6b7280;--type-sonstiges: #6b7280;--state-done: #22c55e;--state-warn: #f59e0b;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--touch-min: 48px;--set-row-h: 56px;--nav-h: 56px;--font-ui: "Inter", system-ui, -apple-system, sans-serif;--font-num: "Barlow Condensed", "Inter", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg-base);color:var(--text-primary);font:400 15px/22px var(--font-ui);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}.screen{min-height:100%;padding-top:env(safe-area-inset-top);padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + var(--space-4))}.screen--no-nav{padding-bottom:env(safe-area-inset-bottom)}.screen__header{padding:var(--space-2) var(--space-4) var(--space-3)}.screen__title{font:600 24px/30px var(--font-ui);margin:0}.screen__subtitle{font:400 13px/18px var(--font-ui);margin:var(--space-1) 0 0;color:var(--text-muted)}.screen__content{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-1) var(--space-4)}.empty-state{padding:var(--space-6) var(--space-4);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-muted);text-align:center}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field__label{font:500 11px/14px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.field__input{min-height:var(--touch-min);padding:0 var(--space-4);border:1px solid var(--bg-surface-2);border-radius:var(--radius-md);background:var(--bg-surface)}.field__input:focus{outline:none;border-color:var(--accent-default)}.form-error{font:400 13px/18px var(--font-ui);margin:0;color:var(--state-warn)}.app-version{font:400 13px/18px var(--font-ui);color:var(--text-muted);text-align:center}.screen__back{font:400 13px/18px var(--font-ui);display:inline-block;padding:var(--space-1) 0;color:var(--accent-default);text-decoration:none}.screen__title-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.field__textarea{padding:var(--space-3) var(--space-4);resize:vertical;line-height:22px}select.field__input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.field--group{margin:0;padding:0;border:0;gap:var(--space-2)}.chips--wrap{flex-wrap:wrap;margin:0;padding:0;overflow:visible}.toggles{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4)}.toggle{display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch-min);font:400 13px/18px var(--font-ui)}.toggle input{width:20px;height:20px;accent-color:var(--accent-default)}.toggle:has(input:disabled){opacity:.5}.button-stack{display:flex;flex-direction:column;gap:var(--space-2)}.button-row{display:flex;gap:var(--space-2)}.button-row>*{flex:1}a.button,label.button{text-decoration:none}.note{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--bg-surface);border-left:3px solid var(--accent-default);font:400 13px/18px var(--font-ui);white-space:pre-line}.note--ok{border-left-color:var(--state-done)}.note--error{border-left-color:var(--state-warn);display:flex;flex-direction:column;gap:var(--space-2)}.note--error ul{margin:0;padding-left:var(--space-4)}.picker-row{display:block;width:100%;padding:0;border:0;background:none;text-align:left;cursor:pointer}.picker-row+.picker-row{border-top:1px solid var(--bg-surface-2)}.export-preview{margin:0;padding:var(--space-3);max-height:60vh;overflow:auto;border-radius:var(--radius-md);background:var(--bg-surface);font:400 12px/1.5 ui-monospace,SF Mono,Menlo,monospace;white-space:pre-wrap;word-break:break-word}.export-preview--secret{max-height:none;background:var(--bg-base);-webkit-user-select:all;user-select:all}.token-form{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.token-revoke{min-height:36px;padding:0 var(--space-3);border:0;border-radius:var(--radius-sm);background:var(--bg-surface-2);color:var(--state-warn);font:400 13px/18px var(--font-ui);cursor:pointer}.uebung__best{color:var(--text-primary);font:600 18px/1 var(--font-num)}.uebung__more{margin:var(--space-2) var(--space-4)}.mehr-dl{display:block;color:inherit;text-decoration:none}.mehr-dl+.mehr-dl{border-top:1px solid var(--bg-surface-2)}
