._backdrop_1e4fg_1{z-index:50;background:#0a0e1473;grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;padding:16px;display:grid;position:fixed;inset:0}._backdrop_1e4fg_1[data-variant=panel]{place-items:stretch end;padding:0}._box_1e4fg_18{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:min(520px,100%);max-height:100%;color:var(--text);grid-template-rows:auto minmax(0,1fr);display:grid;box-shadow:0 12px 40px #0000004d}._box_1e4fg_18:focus{outline:none}._backdrop_1e4fg_1[data-variant=panel] ._box_1e4fg_18{border-width:0 0 0 1px;border-radius:0;width:min(560px,100%);height:100%}._head_1e4fg_41{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;padding:12px 8px 10px 16px;display:grid}._title_1e4fg_50{padding-top:6px;font-size:1.15rem;line-height:1.3}._close_1e4fg_56{border-radius:var(--radius-small);width:44px;height:44px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;place-items:center;font-size:1.6rem;line-height:1;display:inline-grid}._close_1e4fg_56:hover{color:var(--text)}._body_1e4fg_75{overscroll-behavior:contain;align-content:start;gap:14px;min-width:0;padding:14px 16px 20px;display:grid;overflow-y:auto}@media (max-width:640px){._backdrop_1e4fg_1,._backdrop_1e4fg_1[data-variant=panel]{place-items:stretch stretch;padding:0}._box_1e4fg_18,._backdrop_1e4fg_1[data-variant=panel] ._box_1e4fg_18{border:0;border-radius:0;width:100%;height:100%}}._week_ujp17_1{gap:12px;min-width:0;display:grid}._weekNav_ujp17_8{justify-content:space-between;align-items:center;gap:8px;display:flex}._navButton_ujp17_15{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);width:44px;height:44px;color:var(--text);flex:none;place-items:center;display:inline-grid}._weekRange_ujp17_27{font-variant-numeric:tabular-nums;text-align:center;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:2px 12px;font-weight:600;display:flex}._currentLink_ujp17_38{font-size:.9rem;font-weight:400}._weekHeader_ujp17_43{gap:8px;display:grid}._weekLabel_ujp17_48{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}._labelType_ujp17_55{background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:.8rem;font-weight:600}._noLabel_ujp17_65{color:var(--muted);font-weight:400}._lastPlanned_ujp17_70{gap:4px;font-size:.9rem;display:grid}._plannedAt_ujp17_76{color:var(--muted)}._summary_ujp17_80{border:1px solid var(--border);border-left:4px solid var(--border);border-radius:var(--radius-small);background:var(--surface);padding:8px 10px}._summary_ujp17_80[data-new]{border-left-color:var(--accent)}._summaryTitle_ujp17_92{margin-right:6px;font-weight:600}._newBadge_ujp17_97{background:var(--accent);color:var(--accent-contrast);vertical-align:1px;border-radius:999px;margin-right:6px;padding:0 7px;font-size:.75rem;font-weight:700;display:inline-block}._summaryText_ujp17_109{display:block}._days_ujp17_114{grid-template-columns:repeat(7,minmax(0,1fr));align-items:start;gap:8px;display:grid}._day_ujp17_114{border:1px solid var(--border);border-top:4px solid var(--border);border-radius:var(--radius);background:var(--surface-sunken);-webkit-hyphens:auto;hyphens:auto;align-content:start;gap:8px;min-width:0;min-height:140px;padding:8px;font-size:.85rem;display:grid}._day_ujp17_114[data-today]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}._day_ujp17_114[data-race-priority=A]{background:var(--race-a-soft);border-top-color:var(--race-a)}._day_ujp17_114[data-race-priority=B]{background:var(--race-b-soft);border-top-color:var(--race-b)}._day_ujp17_114[data-race-priority=C]{background:var(--race-c-soft);border-top-color:var(--race-c)}._day_ujp17_114[data-blocked]{background:repeating-linear-gradient(135deg, var(--surface-sunken) 0 8px, var(--border) 8px 9px)}._dayHeader_ujp17_160{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2px 6px;display:flex}._dayTitle_ujp17_168{font-size:.9rem;line-height:1.25}._weekday_ujp17_173{display:block}._dayDate_ujp17_177{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:400}._todayBadge_ujp17_183{background:var(--accent);color:var(--accent-contrast);border-radius:999px;padding:0 7px;font-size:.72rem;font-weight:700}._race_ujp17_192,._blocked_ujp17_193,._extra_ujp17_194{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:6px;display:grid}._race_ujp17_192 svg,._blocked_ujp17_193 svg,._extra_ujp17_194 svg{margin-top:2px}._race_ujp17_192{font-weight:600}._race_ujp17_192[data-priority=A]{color:var(--race-a)}._race_ujp17_192[data-priority=B]{color:var(--race-b)}._race_ujp17_192[data-priority=C]{color:var(--race-c)}._raceName_ujp17_223{color:var(--text);display:block}._raceMeta_ujp17_228{font-size:.78rem;display:block}._blocked_ujp17_193{border-radius:var(--radius-small);background:var(--surface);border:1px dashed var(--muted);color:var(--muted);padding:6px 8px}._blockedLabel_ujp17_241{color:var(--text);font-weight:600;display:block}._empty_ujp17_247{color:var(--muted);font-size:.8rem}._restDay_ujp17_253{border:1px solid var(--border);border-left:3px solid var(--rest);border-radius:var(--radius-small);background:var(--rest-soft);min-width:0;color:var(--rest);align-items:center;gap:6px;padding:7px 8px;font-weight:600;line-height:1.3;display:flex}._restDay_ujp17_253 svg{flex:none}._units_ujp17_273,._extras_ujp17_274{gap:6px;margin:0;padding:0;list-style:none;display:grid}._unit_ujp17_273{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-small);background:var(--surface);min-width:0;box-shadow:var(--shadow);gap:3px;padding:7px 8px;display:grid}._unit_ujp17_273[data-status=done]{border-left-color:var(--ok)}._unit_ujp17_273[data-status=skipped]{border-left-color:var(--muted);border-left-style:dashed}._unit_ujp17_273[data-status=skipped] ._unitTitle_ujp17_303,._unit_ujp17_273[data-status=skipped] ._unitPlanned_ujp17_304{color:var(--muted)}._unitHead_ujp17_308{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:6px;display:grid}._sportIcon_ujp17_315{color:var(--muted);margin-top:1px;display:inline-flex}._unitTitle_ujp17_303{font-weight:600;line-height:1.3}._keyMarker_ujp17_326{color:var(--danger);white-space:nowrap;font-weight:700}._fixed_ujp17_332{color:var(--muted);margin-top:2px;display:inline-flex}._unitPlanned_ujp17_304{color:var(--text)}._unitStatus_ujp17_342{color:var(--muted);flex-wrap:wrap;align-items:center;gap:2px 5px;font-size:.78rem;display:flex}._unit_ujp17_273[data-status=done] ._unitStatus_ujp17_342{color:var(--ok)}._statusLabel_ujp17_355{font-weight:600}._actual_ujp17_359{color:var(--text);flex-basis:100%}._feedbackMarker_ujp17_365{border:1px solid var(--border);color:var(--text);font-variant-numeric:tabular-nums;border-radius:999px;padding:0 6px}._feedbackMarker_ujp17_365[data-pain]{border-color:var(--danger);color:var(--danger);font-weight:600}._extra_ujp17_194{border:1px dashed var(--border);border-radius:var(--radius-small);color:var(--muted);padding:4px 8px;font-size:.78rem}._extraTitle_ujp17_387{font-weight:600;display:block}._tip_ujp17_392{border-top:1px solid var(--border);gap:3px;padding-top:6px;font-size:.78rem;display:grid}._tipTitle_ujp17_400{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.7rem;font-weight:700}._tipContext_ujp17_408{font-weight:600}._tipSource_ujp17_412{color:var(--muted)}@media (max-width:640px){._days_ujp17_114{flex-direction:column;align-items:stretch;gap:10px;display:flex}._day_ujp17_114{order:var(--phone-order,0);-webkit-hyphens:manual;hyphens:manual;min-height:0;padding:10px 12px;font-size:.95rem}._day_ujp17_114[data-past]{opacity:.85}._dayTitle_ujp17_168{font-size:1rem}._weekday_ujp17_173{display:inline}._unit_ujp17_273{padding:9px 10px}._unitStatus_ujp17_342,._extra_ujp17_194,._tip_ujp17_392,._raceMeta_ujp17_228,._empty_ujp17_247{font-size:.85rem}._restDay_ujp17_253{white-space:nowrap;padding:4px 10px}._actual_ujp17_359{flex-basis:auto}}._legend_ujp17_469{color:var(--muted);flex-wrap:wrap;gap:4px 18px;margin:0;font-size:.9rem;display:flex}._legendItem_ujp17_478{align-items:center;gap:4px;display:inline-flex}._shortWalks_ujp17_484{color:var(--muted);margin:0;font-size:.9rem}._garminStale_ujp17_490{border:1px solid var(--border);border-left:4px solid var(--warn);border-radius:var(--radius-small);background:var(--surface);padding:6px 10px;font-size:.9rem}._garminStaleHint_ujp17_499{color:var(--muted)}._dayActions_ujp17_504{gap:4px;margin-left:auto;display:inline-flex}._dayButton_ujp17_510,._cardButton_ujp17_511{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);min-width:32px;min-height:32px;color:var(--muted);font:inherit;cursor:pointer;justify-content:center;align-items:center;gap:4px;padding:0 6px;font-size:.78rem;line-height:1;display:inline-flex}._dayButton_ujp17_510{font-size:1.1rem}._dayButton_ujp17_510:hover,._cardButton_ujp17_511:hover{color:var(--text);border-color:var(--muted)}._dayButton_ujp17_510[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}._unit_ujp17_273{position:relative}._unitLink_ujp17_550{color:inherit;-webkit-touch-callout:none;text-decoration:none}._unitLink_ujp17_550:after{content:"";border-radius:var(--radius-small);position:absolute;inset:0}._unitLink_ujp17_550:hover{text-decoration:underline}._unit_ujp17_273[data-movable]{cursor:grab;touch-action:manipulation;-webkit-user-select:none;user-select:none}._unit_ujp17_273[data-dragging]{opacity:.35}._unit_ujp17_273[data-drop-over]{box-shadow:0 -3px 0 0 var(--accent)}._unitOverlay_ujp17_582{cursor:grabbing;font-size:.85rem;box-shadow:0 8px 24px #00000040}._unitActions_ujp17_588{flex-wrap:wrap;justify-content:flex-end;gap:4px;margin-top:2px;display:flex}._unitActions_ujp17_588 ._cardButton_ujp17_511,._exportFailed_ujp17_597 ._cardButton_ujp17_511{z-index:1;position:relative}._dragHandle_ujp17_602{cursor:grab;touch-action:none;font-size:1rem}._exportFailed_ujp17_597{color:var(--danger);flex-wrap:wrap;align-items:center;gap:2px 6px;font-size:.78rem;display:flex}._exportFailed_ujp17_597 ._cardButton_ujp17_511{min-height:28px;color:var(--danger);border-color:currentColor}._days_ujp17_114[data-dragging] ._day_ujp17_114[data-drop=invalid]{opacity:.55}._days_ujp17_114[data-dragging] ._day_ujp17_114[data-drop=valid]{border-style:solid dashed dashed}._day_ujp17_114[data-drop=valid][data-drop-over]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}._day_ujp17_114[data-drop=invalid][data-drop-over]{border-color:var(--danger);box-shadow:0 0 0 2px var(--danger)}@media (min-width:641px){._moveText_ujp17_644{display:none}}._days_ujp17_114{touch-action:pan-y pinch-zoom}._selectField_ujp17_654 select{font:inherit;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);min-height:44px;color:var(--text);width:100%;padding:0 10px}._choice_ujp17_665{border:1px solid var(--border);border-left:4px solid var(--warn);border-radius:var(--radius-small);gap:10px;min-width:0;margin:0;padding:10px 12px;display:grid}._affected_ujp17_676{margin:0;padding-left:18px}._affectedFixed_ujp17_681{color:var(--muted);align-items:center;gap:3px;font-size:.85rem;display:inline-flex}._notice_ujp17_689{z-index:60;border:1px solid var(--danger);border-radius:var(--radius);background:var(--surface);width:max-content;max-width:calc(100vw - 24px);color:var(--text);align-items:center;gap:8px;padding:8px 8px 8px 14px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000040}._notice_ujp17_689[data-tone=success]{border-color:var(--ok)}._clearWeek_ujp17_712{flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:.9rem;display:flex}._clearWeekHint_ujp17_720{color:var(--muted)}@media (max-width:640px){._dayButton_ujp17_510,._cardButton_ujp17_511{min-width:40px;min-height:40px;font-size:.85rem}._dayButton_ujp17_510{font-size:1.2rem}._exportFailed_ujp17_597{font-size:.85rem}}._feedback_xl6d4_2{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface-sunken);gap:8px;min-width:0;padding:10px 12px;display:grid}._title_xl6d4_12{font-size:.95rem}._empty_xl6d4_16{justify-items:start;gap:8px;display:grid}._form_xl6d4_22{gap:8px;display:grid}._row_xl6d4_27{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}._select_xl6d4_33,._textarea_xl6d4_34{font:inherit;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);width:100%;color:var(--text);padding:8px 10px}._select_xl6d4_33{min-height:44px}._textarea_xl6d4_34{resize:vertical;min-height:72px;line-height:1.45}._summary_xl6d4_54{gap:4px;display:grid}._values_xl6d4_59{font-weight:600}._pain_xl6d4_63{color:var(--danger);font-weight:600}._note_xl6d4_68{white-space:pre-wrap;overflow-wrap:anywhere}._meta_f3usj_2{gap:6px;display:grid}._metaLine_f3usj_7{color:var(--muted);align-items:center;gap:8px;display:flex}._planned_f3usj_14{font-variant-numeric:tabular-nums;font-weight:600}._chips_f3usj_19{flex-wrap:wrap;gap:6px;display:flex}._chip_f3usj_19{border:1px solid var(--border);background:var(--surface-sunken);border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:.82rem;display:inline-flex}._chip_f3usj_19[data-status=done]{color:var(--ok);border-color:currentColor}._chip_f3usj_19[data-key]{color:var(--danger);border-color:currentColor;font-weight:600}._description_f3usj_47{white-space:pre-wrap}._label_f3usj_51{font-weight:600}._section_f3usj_55{border-top:1px solid var(--border);gap:10px;min-width:0;padding-top:12px;display:grid}._section_f3usj_55 h3{font-size:1rem}._confirm_f3usj_67{border:1px solid var(--danger);border-radius:var(--radius-small);background:var(--danger-soft);gap:8px;padding:10px 12px;display:grid}._activity_f3usj_76{justify-items:start;gap:6px;display:grid}._activities_f3usj_82{gap:6px;width:100%;margin:0;padding:0;list-style:none;display:grid}._activities_f3usj_82 li{border:1px dashed var(--border);border-radius:var(--radius-small);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 10px;padding:6px 8px;display:flex}._doneForm_f3usj_102{justify-items:start;gap:8px;display:grid}._doneForm_f3usj_102 ._row_f3usj_108{width:100%}._garminState_f3usj_112[data-state=failed],._garminState_f3usj_112[data-state=invalid]{border-radius:var(--radius-small);background:var(--danger-soft);color:var(--danger);padding:8px 10px}._garminState_f3usj_112[data-state=synced]{color:var(--ok)}._steps_f3usj_125{gap:4px;margin:0;padding:0;list-style:none;display:grid}._step_f3usj_125{border-left:3px solid var(--border);border-radius:var(--radius-small);background:var(--surface-sunken);grid-template-columns:minmax(84px,30%) minmax(0,1fr);gap:10px;padding:6px 10px;display:grid}._step_f3usj_125[data-step-type=active]{border-left-color:var(--accent)}._step_f3usj_125[data-step-type=warmup],._step_f3usj_125[data-step-type=cooldown]{border-left-color:var(--ok)}._stepType_f3usj_152{font-weight:600}._stepValues_f3usj_156{font-variant-numeric:tabular-nums}._repeat_f3usj_160{border-left:3px solid var(--accent);border-radius:var(--radius-small);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:4px 0 4px 8px;display:grid}._repeatCount_f3usj_170{font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:700}._form_f3usj_177 select,._form_f3usj_177 textarea,._form_f3usj_177 input[type=date]{font:inherit;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);min-height:44px;color:var(--text);width:100%;padding:0 10px}._form_f3usj_177 textarea{resize:vertical;padding:8px 10px}._row_f3usj_108{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}._stepsField_f3usj_202{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}._stepsEditor_f3usj_211{gap:10px;display:grid}._stepDraft_f3usj_216,._repeatDraft_f3usj_217{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface-sunken);gap:8px;min-width:0;margin:0;padding:8px 10px 10px;display:grid;position:relative}._repeatDraft_f3usj_217{border-left:3px solid var(--accent);background:0 0}._stepDraft_f3usj_216[aria-describedby]{border-color:var(--danger)}._stepLegend_f3usj_238{padding:0 4px;font-size:.9rem;font-weight:600}._stepActions_f3usj_244{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}._iconButton_f3usj_251,._textButton_f3usj_252{border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);min-width:36px;min-height:36px;color:var(--text);font:inherit;cursor:pointer;padding:0 8px;font-size:.85rem}._iconButton_f3usj_251:disabled{opacity:.4;cursor:default}._stepGrid_f3usj_270{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));align-items:end;gap:8px;display:grid}._small_f3usj_277,._wide_f3usj_278{gap:3px;min-width:0;font-size:.82rem;font-weight:600;display:grid}._wide_f3usj_278{grid-column:1/-1}._form_f3usj_177 ._small_f3usj_277 input,._form_f3usj_177 ._small_f3usj_277 select,._form_f3usj_177 ._wide_f3usj_278 input,._repeatDraft_f3usj_217>._small_f3usj_277 input{font:inherit;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);min-height:40px;color:var(--text);width:100%;padding:0 8px;font-weight:400}._repeatDraft_f3usj_217>._small_f3usj_277{max-width:200px}._inlineCheck_f3usj_309{align-items:center;gap:6px;min-height:40px;font-size:.85rem;display:flex}._inlineCheck_f3usj_309 input{width:18px;height:18px;accent-color:var(--accent)}._stepErrors_f3usj_323{border-radius:var(--radius-small);background:var(--danger-soft);color:var(--danger);margin:0;padding:6px 10px 6px 26px;font-size:.85rem}@media (max-width:640px){._step_f3usj_125{grid-template-columns:minmax(0,1fr);gap:0}}._replan_b8qji_1{justify-items:start;gap:8px;font-size:.9rem;display:grid}._status_b8qji_8{border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--radius-small);background:var(--surface);justify-items:start;gap:4px;width:100%;padding:8px 10px;display:grid}._status_b8qji_8[data-status=done]{border-left-color:var(--ok)}._statusTitle_b8qji_24{font-weight:600}._badge_b8qji_28{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:0 8px;font-weight:600;display:inline-block}._badge_b8qji_28[data-status=done]{color:var(--ok);background:0 0;border:1px solid}._group_b8qji_43{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}._reason_b8qji_52 textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);color:var(--text);resize:vertical;width:100%;padding:8px 10px}._fixedList_b8qji_63{gap:4px;margin:0;padding:0;list-style:none;display:grid}._fixedList_b8qji_63 li{border:1px solid var(--border);border-radius:var(--radius-small);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:6px;padding:5px 8px;display:grid}._fixedList_b8qji_63 svg{color:var(--muted);margin-top:3px}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f4f5f7;--surface:#fff;--surface-sunken:#eceff3;--text:#1b1f24;--muted:#56606c;--border:#d5dae1;--accent:#1d5fc4;--accent-contrast:#fff;--accent-soft:#e4eefc;--danger:#b3261e;--danger-soft:#fdecea;--ok:#1a7a3a;--warn:#9a5b00;--rest:#135a31;--rest-soft:#e3f4e8;--race-a:#c2261d;--race-a-soft:#fde7e5;--race-b:#a86200;--race-b-soft:#fff0d2;--race-c:#00756a;--race-c-soft:#dcf4f0;--radius:8px;--radius-small:5px;--shadow:0 1px 2px #10182814;--page-width:1400px;-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.45}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#111418;--surface:#1b2027;--surface-sunken:#151a20;--text:#e7eaee;--muted:#9ca6b3;--border:#333a45;--accent:#74abff;--accent-contrast:#0b1524;--accent-soft:#1c2c45;--danger:#ff8a80;--danger-soft:#40201e;--ok:#6fd08c;--warn:#ffc661;--rest:#7ed99a;--rest-soft:#17351f;--race-a:#ff8a80;--race-a-soft:#45201f;--race-b:#ffc661;--race-b-soft:#40300f;--race-c:#5fd3c0;--race-c-soft:#123a35;--shadow:none}}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;overflow-wrap:break-word;min-height:100dvh}h1,h2,h3,p{margin:0}h1{font-size:1.35rem;line-height:1.25}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--muted)}.button{font:inherit;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);min-height:40px;color:var(--text);cursor:pointer;padding:0 14px}.button:disabled{opacity:.6;cursor:progress}.button--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:600}.button--quiet{color:var(--muted);background:0 0;border-color:#0000;padding:0 8px}.button--quiet:hover{color:var(--text)}.field{gap:4px;display:grid}.field__label{font-size:.9rem;font-weight:600}.field input{font:inherit;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface);min-height:44px;color:var(--text);width:100%;padding:0 10px}.form-error{border-radius:var(--radius-small);background:var(--danger-soft);color:var(--danger);padding:8px 10px;font-size:.95rem}.app-header{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;position:sticky;top:0}.app-header__inner{max-width:var(--page-width);flex-wrap:wrap;align-items:center;gap:4px 20px;margin:0 auto;padding:6px 16px;display:flex}.app-header__brand{letter-spacing:.01em;font-weight:700}.app-header__tools{order:3;align-items:center;gap:8px;margin-left:auto;display:flex}.app-header__help{border-radius:var(--radius-small);min-height:40px;color:var(--muted);align-items:center;gap:4px;padding:0 6px;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.app-header__help:hover,.app-header__help.active{color:var(--accent)}.app-nav{order:2;gap:2px;min-width:0;display:flex}.app-nav__link{border-radius:var(--radius-small);min-height:40px;color:var(--muted);white-space:nowrap;align-items:center;padding:0 10px;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.app-nav__link:hover{color:var(--text)}.app-nav__link.active{color:var(--accent);background:var(--accent-soft)}.app-main{max-width:var(--page-width);margin:0 auto;padding:16px}.page{justify-items:start;gap:12px;display:grid}.page-state{text-align:center;color:var(--muted);padding:32px 16px}.lang-switch{border:1px solid var(--border);border-radius:var(--radius-small);display:inline-flex;overflow:hidden}.lang-switch__option{font:inherit;min-width:36px;min-height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:.8rem;font-weight:600}.lang-switch__option[aria-pressed=true]{background:var(--accent);color:var(--accent-contrast)}.source-label{border:1px solid var(--border);color:var(--muted);vertical-align:baseline;white-space:nowrap;border-radius:999px;margin-inline-start:6px;padding:0 6px;font-size:.72rem;font-weight:600;line-height:1.5;display:inline-block}.garmin-badge{border:1px solid var(--border);white-space:nowrap;color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:.8rem;display:inline-flex}.garmin-badge__name{color:var(--text);font-weight:600}.garmin-badge__dot{background:var(--muted);border-radius:50%;width:8px;height:8px}.garmin-badge[data-state=connected] .garmin-badge__dot{background:var(--ok)}.garmin-badge[data-state=sync_delayed] .garmin-badge__dot{background:var(--warn)}.garmin-badge[data-state=reauth_required] .garmin-badge__dot,.garmin-badge[data-state=disrupted] .garmin-badge__dot{background:var(--danger)}.login{min-height:100vh;grid-template-rows:auto 1fr;justify-items:center;min-height:100dvh;padding:16px;display:grid}.login__language{justify-self:end}.login__card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:380px;box-shadow:var(--shadow);align-self:center;gap:14px;margin-bottom:10vh;padding:24px;display:grid}.login__brand{color:var(--accent);font-weight:700}@media (max-width:640px){.app-header{position:static}.app-header__inner{gap:2px 12px;padding:6px 12px 0}.app-header__tools{order:2}.app-nav{scrollbar-width:thin;flex:1 0 100%;order:3;justify-content:space-between;overflow-x:auto}.app-nav__link{border-radius:var(--radius-small) var(--radius-small) 0 0;flex:1 0 auto;justify-content:center;padding:0 7px;font-size:.9rem}.app-header__help-text,.garmin-badge__status{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.app-main{padding:12px}}.login__language{align-items:center;gap:8px;display:flex}.login__card[data-wide]{max-width:640px;margin-bottom:24px}.form{gap:14px;display:grid}.form__links{flex-wrap:wrap;gap:4px 16px;font-size:.95rem;display:flex}.form__actions{flex-wrap:wrap;gap:8px;display:flex}.field__hint{color:var(--muted);font-size:.85rem}.field input[readonly]{background:var(--surface-sunken);color:var(--muted)}.field input[aria-invalid=true],.check input[aria-invalid=true]{outline:2px solid var(--danger);outline-offset:1px}.check{cursor:pointer;grid-template-columns:auto 1fr;align-items:start;gap:10px;display:grid}.check input{width:20px;height:20px;accent-color:var(--accent);margin:2px 0 0}.form-success{border-radius:var(--radius-small);background:var(--accent-soft);color:var(--text);padding:8px 10px;font-size:.95rem}.notice{border:1px solid var(--border);border-left:4px solid var(--warn);border-radius:var(--radius-small);background:var(--surface);padding:8px 10px;font-size:.95rem}.button--danger{background:var(--danger);border-color:var(--danger);color:var(--surface);font-weight:600}.consent{gap:12px;display:grid}.consent__box{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-sunken);gap:8px;padding:12px 14px;font-size:.95rem;display:grid}.consent__box h2,.consent__box h3,.consent__box h4,.settings-section h3{margin:0;font-size:1rem}.consent__box ul{gap:4px;margin:0;padding-left:20px;display:grid}.consent__version{color:var(--muted);font-size:.8rem}.prose{gap:4px;display:grid}.prose h2{margin:0;font-size:1.05rem}.page--settings{justify-items:stretch;max-width:720px}.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);gap:12px;padding:16px;scroll-margin-top:72px;display:grid}.settings-section h2{margin:0;font-size:1.15rem}.settings-section>.button{justify-self:start}.facts{gap:6px;margin:0;display:grid}.facts>div{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.facts dt{font-weight:600}.facts dd{margin:0}a.garmin-badge{text-decoration:none}.garmin-badge[data-state=connecting] .garmin-badge__dot,.garmin-badge[data-state=mfa_pending] .garmin-badge__dot{background:var(--accent)}.info-tip{vertical-align:middle;letter-spacing:normal;text-transform:none;font-size:.95rem;font-weight:400;line-height:1.4;display:inline-flex}.info-tip__button{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;margin:-6px -4px;padding:0;display:inline-grid}.info-tip__button:hover,.info-tip__button[aria-expanded=true]{color:var(--accent)}.info-tip__bubble{z-index:100;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:max-content;max-width:min(20rem,100vw - 16px);color:var(--text);text-align:start;white-space:normal;visibility:hidden;gap:6px;padding:10px 12px;display:grid;position:fixed;top:0;left:0;box-shadow:0 4px 16px #1018282e}.info-tip__bubble[data-placed]{visibility:visible}.info-tip__link{justify-self:start;font-weight:600}.with-tip{flex-wrap:wrap;align-items:center;gap:2px 6px;display:flex}.banner{background:var(--danger-soft);color:var(--danger);border-bottom:1px solid var(--border);text-align:center;padding:8px 16px;font-size:.95rem}@media (max-width:640px){.login__card{padding:18px 16px}.settings-section{padding:12px}.form__actions .button{flex:auto}.app-nav:has(a[href^=\/admin]){overflow-x:auto}.app-nav:has(a[href^=\/admin]) .app-nav__link{padding:0 1px;font-size:.8rem}}
