    :root { color-scheme: light; --control-height: 32px; --control-padding-x: 9px; --control-padding-y: 5px; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
    html { height: 100%; }
    body { height: 100%; margin: 0; background: #f6f7f4; color: #1f2722; overflow: hidden; display: flex; flex-direction: column; }
    header { background: #16332b; color: white; padding: 18px 24px; flex: 0 0 auto; z-index: 10; }
    .header-top { position: relative; display: flex; justify-content: space-between; gap: 16px; align-items: center; }
    .header-brand-row { display: flex; align-items: center; gap: 14px; flex: 1 1 auto; min-width: 0; }
    .header-centered-title { position: relative; width: 100%; }
    .header-centered-title .mobile-page-title-desktop { position: absolute; left: 50%; top: 50%; max-width: min(46vw, 420px); transform: translate(-50%, -50%); text-align: center; }
    .header-centered-title .desktop-language-switcher { margin-left: auto; }
    .desktop-header-actions { display: inline-flex; align-items: center; justify-content: flex-end; gap: 10px; flex: 0 1 auto; min-width: 0; margin-left: auto; }
    .desktop-header-coach { display: inline-flex; width: 72px; min-width: 72px; }
    .desktop-header-actions .logout-form { margin: 0; }
    .desktop-header-actions .desktop-logout-form button { height: 32px; min-height: 32px; padding: 0 10px; border: 1px solid rgba(255,255,255,.28); border-radius: 6px; background: transparent; color: white; font: inherit; font-size: 13px; cursor: pointer; }
    .desktop-header-actions .desktop-logout-form button:hover, .desktop-header-actions .desktop-logout-form button:focus { border-color: rgba(255,255,255,.7); background: rgba(255,255,255,.12); }
    .header-brand-link { position: relative; z-index: 2; display: inline-flex; align-items: center; gap: 10px; min-width: 0; color: inherit; text-decoration: none; }
    .header-logo { width: 36px; height: 36px; flex: 0 0 36px; border-radius: 8px; display: block; }
    header h1 { margin: 0; font-size: 22px; letter-spacing: 0; }
    .language-switcher, .theme-switcher { display: inline-flex; align-items: center; gap: 0; padding: 2px; border: 1px solid rgba(255,255,255,.28); border-radius: 6px; background: rgba(255,255,255,.08); }
    .language-switcher button, .theme-switcher button { min-width: 32px; height: 26px; padding: 0 8px; border: 0; border-radius: 4px; background: transparent; color: rgba(255,255,255,.76); font: inherit; font-size: 12px; font-weight: 900; cursor: pointer; }
    .desktop-language-switcher button { min-width: 54px; }
    .theme-switcher button { min-width: 54px; }
    .language-switcher button.is-active, .theme-switcher button.is-active { background: rgba(255,255,255,.9); color: #16332b; }
    .mobile-language-switcher, .mobile-theme-switcher { display: none; }
    .mobile-page-title { display: block; flex: 1 1 auto; min-width: 80px; max-width: none; color: rgba(255,255,255,.78); font-size: 16px; font-weight: 700; line-height: 1.2; overflow: hidden; pointer-events: none; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
    .mobile-page-title-link { display: block; min-width: 0; overflow: hidden; color: inherit; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
    .mobile-page-title-link:hover, .mobile-page-title-link:focus { color: white; text-decoration: none; }
    .mobile-page-title-link:focus-visible { outline: 2px solid rgba(255,255,255,.72); outline-offset: 3px; border-radius: 4px; }
    .mobile-page-title a, .mobile-page-title button, .mobile-page-title input, .mobile-page-title select, .mobile-page-title form { pointer-events: auto; }
    .portal-title-desktop-hidden { display: none; }
    .mobile-page-title-mobile { display: none; }
    .header-account { display: flex; align-items: center; justify-content: flex-end; gap: 10px; color: rgba(255,255,255,.82); font-size: 13px; min-width: 0; max-width: 520px; }
    .header-account-email { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    nav { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-top: 12px; }
    nav a, nav button { color: white; background: transparent; border: 1px solid rgba(255,255,255,.28); padding: 8px 10px; border-radius: 6px; text-decoration: none; font: inherit; cursor: pointer; }
    nav a.active { background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.7); }
    .desktop-primary-nav-badge { position: static; flex: 0 0 auto; min-width: 18px; height: 18px; padding: 0 5px; box-shadow: none; }
    @media (min-width: 761px) {
      body.portal-page:not(.ios-mobile):not(.android-mobile) nav .desktop-primary-nav-link { display: inline-flex; align-items: center; gap: 7px; }
    }
    nav form { margin: 0; }
    nav .logout-form { margin-left: auto; }
    nav .admin-link { margin-left: auto; }
    nav .desktop-portal-account-link { margin-left: auto; }
    nav .admin-link + .logout-form { margin-left: 0; }
    nav .admin-link + .desktop-portal-account-link, nav .desktop-portal-account-link + .logout-form { margin-left: 0; }
    .mobile-header-action, .mobile-menu-separator, .mobile-menu-language-separator, .mobile-portal-account-link, .mobile-menu-actions, .mobile-menu-copyright, .mobile-utility-link, .mobile-bottom-navigation { display: none; }
    .mobile-header-coach { position: relative; box-sizing: border-box; align-items: center; justify-content: center; width: 72px; min-width: 72px; height: 44px; min-height: 44px; padding: 0; overflow: visible; border: 0; border-radius: 10px; background: transparent; color: #ffffff; font-stretch: normal; letter-spacing: 0; box-shadow: none; cursor: pointer; text-decoration: none; }
    .mobile-header-coach-avatar { box-sizing: border-box; display: block; flex: 0 0 44px; width: 44px; height: 44px; overflow: hidden; border: 2px solid rgba(255,255,255,.5); border-radius: 50%; background: #0d4638; box-shadow: 0 2px 8px rgba(0,0,0,.2); }
    .mobile-header-coach-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
    .portal-notification-badge { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; min-width: 19px; height: 19px; padding: 0 5px; border: 0; border-radius: 999px; background: #e41e3f; color: #ffffff; font-size: 10px; font-weight: 900; line-height: 1; box-shadow: 0 2px 7px rgba(0,0,0,.3); }
    .portal-notification-badge[hidden] { display: none !important; }
    .attention-new-badge { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; min-width: 0; height: 17px; margin-left: 7px; padding: 0 6px; border: 0; border-radius: 999px; background: #e41e3f; color: #ffffff; font-size: 9px; font-weight: 950; letter-spacing: .035em; line-height: 1; text-transform: uppercase; vertical-align: middle; box-shadow: none; }
    .notification-navigation-dot { display: inline-block; flex: 0 0 auto; width: 7px; height: 7px; margin-left: 5px; border-radius: 50%; background: #e41e3f; box-shadow: none; vertical-align: middle; pointer-events: none; }
    .notification-navigation-dot[hidden] { display: none !important; }
    .mobile-header-coach-badge { position: absolute; z-index: 3; top: -4px; right: 8px; }
    .mobile-header-coach-task-spinner { position: absolute; z-index: 3; top: -3px; right: 8px; box-sizing: border-box; width: 20px; height: 20px; border: 3px solid rgba(255,255,255,.55); border-top-color: #ffffff; border-radius: 50%; background: #286a57; box-shadow: 0 2px 7px rgba(0,0,0,.3); animation: spin .8s linear infinite; }
    .mobile-header-coach-task-spinner[hidden] { display: none !important; }
    .mobile-header-coach-name { position: absolute; bottom: 1px; left: 50%; display: block; box-sizing: border-box; width: 68px; overflow: hidden; transform: translateX(-50%); padding: 1px 3px 2px; border-radius: 999px; background: rgba(6,24,18,.76); color: #ffffff; font-size: 9px; font-stretch: normal; font-weight: 850; letter-spacing: 0; line-height: 10px; text-align: center; text-overflow: ellipsis; text-shadow: 0 1px 2px rgba(0,0,0,.55); white-space: nowrap; }
    .mobile-header-coach[disabled], .mobile-header-coach[aria-disabled="true"] { opacity: .62; cursor: not-allowed; }
    .mobile-menu-toggle { display: none; align-items: center; gap: 8px; background: transparent; color: white; border: 1px solid rgba(255,255,255,.36); border-radius: 6px; padding: 8px 10px; }
    .mobile-menu-icon { position: relative; display: inline-block; width: 16px; height: 12px; border-top: 2px solid currentColor; border-bottom: 2px solid currentColor; }
    .mobile-menu-icon::before { content: ""; position: absolute; left: 0; top: 3px; width: 16px; border-top: 2px solid currentColor; }
    .maintenance-announcement { flex: 0 0 auto; margin: 18px -24px -18px; border-bottom: 1px solid #e1c36d; background: #fff8df; color: #3f3518; box-shadow: 0 7px 18px rgba(72, 59, 20, .08); z-index: 9; }
    .maintenance-announcement-inner { display: grid; grid-template-columns: 40px minmax(0, 1fr) 32px; gap: 13px; align-items: center; max-width: 1040px; box-sizing: border-box; margin: 0 auto; padding: 13px 24px; }
    .maintenance-announcement-active .maintenance-announcement-inner { grid-template-columns: 40px minmax(0, 1fr); }
    .maintenance-announcement-icon { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid #d2ac42; border-radius: 10px; background: #ffedb0; color: #765b12; }
    .maintenance-announcement-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
    .maintenance-announcement-copy { min-width: 0; }
    .maintenance-announcement-title { margin: 0 0 3px; color: #3d3214; font-size: 13px; font-weight: 900; line-height: 1.2; letter-spacing: .035em; text-transform: uppercase; }
    .maintenance-announcement-details { display: flex; align-items: baseline; gap: 9px 12px; min-width: 0; margin: 0; font-size: 14px; line-height: 1.4; }
    .maintenance-announcement-window { display: inline-flex; align-items: baseline; gap: 4px; flex: 0 1 auto; flex-wrap: wrap; color: #3d3214; font-weight: 850; }
    .maintenance-announcement-window > span { white-space: nowrap; }
    .maintenance-announcement-message { color: #615225; }
    .maintenance-announcement-close { display: inline-flex; align-items: center; justify-content: center; width: 32px; min-width: 32px; height: 32px; min-height: 32px; padding: 0; border: 1px solid rgba(118, 91, 18, .28); border-radius: 8px; background: transparent; color: #765b12; font: inherit; font-size: 23px; font-weight: 500; line-height: 1; box-shadow: none; cursor: pointer; }
    .maintenance-announcement-close:hover, .maintenance-announcement-close:focus { border-color: rgba(118, 91, 18, .55); background: rgba(255,255,255,.42); color: #4f3c0c; outline: none; }
    .maintenance-announcement-close:focus-visible { outline: 2px solid rgba(118, 91, 18, .28); outline-offset: 2px; }
    .maintenance-announcement-close[hidden] { display: none; }
    body.theme-dark.portal-page .maintenance-announcement { border-bottom-color: rgba(239, 197, 86, .32); background: #302912; color: #fff3c5; box-shadow: 0 8px 22px rgba(0, 0, 0, .2); }
    body.theme-dark.portal-page .maintenance-announcement-icon { border-color: rgba(239, 197, 86, .42); background: rgba(239, 197, 86, .13); color: #f3ce68; }
    body.theme-dark.portal-page .maintenance-announcement-title,
    body.theme-dark.portal-page .maintenance-announcement-window { color: #fff3c5; }
    body.theme-dark.portal-page .maintenance-announcement-message { color: rgba(255, 243, 197, .78); }
    body.theme-dark.portal-page .maintenance-announcement-close { border-color: rgba(243, 206, 104, .32); color: #f3ce68; }
    body.theme-dark.portal-page .maintenance-announcement-close:hover,
    body.theme-dark.portal-page .maintenance-announcement-close:focus { border-color: rgba(243, 206, 104, .58); background: rgba(255,255,255,.08); color: #fff3c5; }
    @media (prefers-color-scheme: dark) {
      body:not(.theme-light).portal-page .maintenance-announcement { border-bottom-color: rgba(239, 197, 86, .32); background: #302912; color: #fff3c5; box-shadow: 0 8px 22px rgba(0, 0, 0, .2); }
      body:not(.theme-light).portal-page .maintenance-announcement-icon { border-color: rgba(239, 197, 86, .42); background: rgba(239, 197, 86, .13); color: #f3ce68; }
      body:not(.theme-light).portal-page .maintenance-announcement-title,
      body:not(.theme-light).portal-page .maintenance-announcement-window { color: #fff3c5; }
      body:not(.theme-light).portal-page .maintenance-announcement-message { color: rgba(255, 243, 197, .78); }
      body:not(.theme-light).portal-page .maintenance-announcement-close { border-color: rgba(243, 206, 104, .32); color: #f3ce68; }
      body:not(.theme-light).portal-page .maintenance-announcement-close:hover,
      body:not(.theme-light).portal-page .maintenance-announcement-close:focus { border-color: rgba(243, 206, 104, .58); background: rgba(255,255,255,.08); color: #fff3c5; }
    }
    main { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; }
    .main-inner { max-width: 1040px; margin: 0 auto; padding: 24px; }
    .site-footer { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; gap: 16px; padding: 12px 24px; background: #102820; color: rgba(255,255,255,.8); font-size: 13px; box-shadow: 0 3px 0 #102820; }
    .site-footer a { color: white; text-decoration: none; }
    .site-footer a:hover { text-decoration: underline; }
    .footer-links { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: center; }
    .app-confirm-dialog { width: min(420px, calc(100vw - 32px)); max-width: none; padding: 0; border: 0; background: transparent; color: inherit; }
    .app-confirm-dialog::backdrop { background: rgba(10,24,18,.46); backdrop-filter: blur(2px); }
    .app-confirm-card { display: grid; gap: 14px; box-sizing: border-box; margin: 0; padding: 18px; border: 1px solid #d9e2d8; border-radius: 8px; background: #ffffff; color: #203028; box-shadow: 0 22px 58px rgba(31,39,34,.24); }
    .app-confirm-title { margin: 0; color: #203028; font-size: 14px; font-weight: 900; line-height: 1.2; text-transform: uppercase; }
    .app-confirm-message { margin: 0; color: #415047; font-size: 16px; font-weight: 750; line-height: 1.35; overflow-wrap: anywhere; }
    .app-confirm-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 2px; }
    .app-confirm-actions button { min-height: 36px; padding: 0 14px; }
    .app-confirm-actions button:focus-visible { outline: 3px solid rgba(79, 117, 34, .38); outline-offset: 2px; }
    .required-setup-ai-consent-dialog { width: min(560px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow-y: auto; }
    .required-setup-ai-consent-card { gap: 16px; }
    .required-setup-ai-consent-header { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 10px; }
    .required-setup-ai-consent-icon { color: #203028; }
    .required-setup-ai-consent-dialog .app-confirm-message { font-size: 14px; font-weight: 650; }
    .required-setup-ai-consent-copy { display: grid; gap: 8px; padding: 12px; border: 1px solid #d9e2d8; border-radius: 8px; background: #f7faf7; }
    .required-setup-ai-consent-copy p { margin: 0; color: #314239; font-size: 14px; line-height: 1.5; }
    .required-setup-ai-consent-copy small { color: #607067; font-size: 12px; line-height: 1.45; }
    .required-setup-ai-consent-copy a { font-weight: 800; }
    .app-feedback-dialog[data-kind="error"] .app-confirm-title { color: #9b2d30; }
    .garmin-auto-sync-dialog .app-confirm-actions { flex-wrap: wrap; }
    @media (max-width: 760px) {
      body.theme-dark .app-confirm-dialog::backdrop { background: rgba(0,0,0,.62); }
      body.theme-dark .app-confirm-card { border-color: rgba(194,224,132,.22); background: #102820; color: #eef7ef; box-shadow: 0 24px 68px rgba(0,0,0,.56); }
      body.theme-dark .app-confirm-title { color: rgba(238,247,239,.72); }
      body.theme-dark .app-confirm-message { color: #ffffff; }
      body.theme-dark .app-confirm-actions .secondary { border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.08); color: #c2e084; box-shadow: none; }
      body.theme-dark .app-confirm-actions .danger { border-color: rgba(194,224,132,.58); background: #c2e084; color: #102820; box-shadow: none; }
      body.theme-dark .required-setup-ai-consent-icon { background: #102820; color: #eef7ef; box-shadow: inset 0 0 0 1px rgba(194,224,132,.28); }
      body.theme-dark .required-setup-ai-consent-copy { border-color: rgba(255,255,255,.14); background: rgba(255,255,255,.06); }
      body.theme-dark .required-setup-ai-consent-copy p { color: #ffffff; }
      body.theme-dark .required-setup-ai-consent-copy small { color: rgba(238,247,239,.72); }
      body.theme-dark .app-feedback-dialog[data-kind="error"] .app-confirm-title { color: #ffb4b8; }
      body.theme-dark .app-confirm-actions button:focus-visible { outline-color: #c2e084; }
    }
    @media (max-width: 760px) and (prefers-color-scheme: dark) {
      body:not(.theme-light) .app-confirm-dialog::backdrop { background: rgba(0,0,0,.62); }
      body:not(.theme-light) .app-confirm-card { border-color: rgba(194,224,132,.22); background: #102820; color: #eef7ef; box-shadow: 0 24px 68px rgba(0,0,0,.56); }
      body:not(.theme-light) .app-confirm-title { color: rgba(238,247,239,.72); }
      body:not(.theme-light) .app-confirm-message { color: #ffffff; }
      body:not(.theme-light) .app-confirm-actions .secondary { border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.08); color: #c2e084; box-shadow: none; }
      body:not(.theme-light) .app-confirm-actions .danger { border-color: rgba(194,224,132,.58); background: #c2e084; color: #102820; box-shadow: none; }
      body:not(.theme-light) .required-setup-ai-consent-icon { background: #102820; color: #eef7ef; box-shadow: inset 0 0 0 1px rgba(194,224,132,.28); }
      body:not(.theme-light) .required-setup-ai-consent-copy { border-color: rgba(255,255,255,.14); background: rgba(255,255,255,.06); }
      body:not(.theme-light) .required-setup-ai-consent-copy p { color: #ffffff; }
      body:not(.theme-light) .required-setup-ai-consent-copy small { color: rgba(238,247,239,.72); }
      body:not(.theme-light) .app-feedback-dialog[data-kind="error"] .app-confirm-title { color: #ffb4b8; }
      body:not(.theme-light) .app-confirm-actions button:focus-visible { outline-color: #c2e084; }
    }
    .main-inner > h2 { margin: 0 0 12px; }
    .page-title-with-control { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
    .page-title-with-control h2 { margin: 0; }
    .page-title-with-control .page-intro-control { margin-bottom: 0; }
    .panel { background: white; border: 1px solid #dfe4dc; border-radius: 8px; padding: 18px; margin-bottom: 18px; }
    .privacy-policy h1 { margin: 0 0 10px; font-size: 28px; line-height: 1.15; }
    .auth-layout { display: flex; justify-content: center; padding: clamp(20px, 6vh, 56px) 0; }
    .auth-panel { width: 100%; max-width: 420px; box-sizing: border-box; margin: 0; padding: 26px; box-shadow: 0 16px 36px rgba(31,39,34,.08); }
    .auth-brand { display: grid; justify-items: center; gap: 8px; margin-bottom: 22px; text-align: center; }
    .auth-brand-logo { width: 64px; height: 64px; border-radius: 14px; display: block; }
    .auth-brand h2 { margin: 4px 0 0; color: #203028; font-size: 24px; line-height: 1.15; }
    .auth-brand-subtitle { max-width: 310px; margin: 0; color: #69766e; font-size: 13px; line-height: 1.45; }
    .auth-form { display: grid; gap: 12px; }
    .auth-field label { margin-top: 0; }
    .auth-field input { height: 38px; font-size: 15px; }
    .auth-note { margin: 2px 0 0; font-size: 13px; line-height: 1.45; }
    .auth-actions { margin-top: 4px; }
    .auth-actions button { width: 100%; min-height: 38px; font-weight: 800; }
    .auth-links { display: grid; gap: 8px; margin: 18px 0 0; text-align: center; font-size: 13px; }
    .auth-links p { margin: 0; }
    .mobile-app-login-link { display: flex; align-items: center; justify-content: center; gap: 12px; box-sizing: border-box; width: min(100%, 280px); min-height: 62px; margin: 0 auto; padding: 10px 18px; border: 1px solid #d6e0d6; border-radius: 10px; background: #ffffff; color: #203028; font-size: 17px; font-weight: 850; line-height: 1.2; text-decoration: none; box-shadow: 0 8px 20px rgba(31,39,34,.09); }
    .mobile-app-login-link:hover, .mobile-app-login-link:focus-visible { border-color: #286a57; color: #102820; outline: 3px solid rgba(40,106,87,.16); }
    .mobile-app-login-store-icon { width: 34px; height: 34px; flex: 0 0 auto; }
    .circle-x-button { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; min-width: 34px; min-height: 34px; border: 1px solid #c8d4ca; border-radius: 6px; background: white; color: #286a57; padding: 0; font-size: 0; line-height: 1; text-decoration: none; }
    .circle-x-button::before, .circle-x-button::after { content: ""; position: absolute; left: 50%; top: 50%; width: 15px; height: 2px; border-radius: 999px; background: currentColor; transform-origin: center; }
    .circle-x-button::before { transform: translate(-50%, -50%) rotate(45deg); }
    .circle-x-button::after { transform: translate(-50%, -50%) rotate(-45deg); }
    .circle-x-button:hover, .circle-x-button:focus { border-color: #286a57; color: #1f4f41; }
    .circle-x-button:disabled { opacity: .45; cursor: not-allowed; }
    .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
    .dashboard-toolbar { display: flex; justify-content: flex-end; margin-bottom: 10px; }
    .dashboard-add-widget { position: relative; }
    .dashboard-add-widget summary { cursor: pointer; color: #286a57; font-size: 13px; text-decoration: underline; }
    .dashboard-add-widget summary { display: inline-block; list-style: none; }
    .dashboard-add-widget summary::marker { content: ""; }
    .dashboard-add-widget summary::-webkit-details-marker { display: none; }
    .dashboard-add-widget-disabled { font-size: 13px; }
    .dashboard-add-widget-menu { position: absolute; top: calc(100% + 8px); right: 0; z-index: 20; display: grid; gap: 4px; width: max-content; max-width: min(260px, calc(100vw - 48px)); padding: 8px; border: 1px solid #dfe4dc; border-radius: 8px; background: white; box-shadow: 0 12px 26px rgba(31,39,34,.14); }
    .dashboard-add-widget-menu form { margin: 0; }
    .dashboard-add-widget-menu button { text-align: left; font-size: 13px; white-space: nowrap; }
    .dashboard-add-widget-empty { margin: 0; color: #69766e; font-size: 12px; line-height: 1.35; }
    .dashboard-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
    .dashboard-grid .panel { margin-bottom: 0; min-width: 0; }
    .dashboard-grid > .dashboard-widget { grid-column: 1 / -1; position: relative; border-radius: 18px; }
    .dashboard-widget > h2 { margin-top: 0; padding-right: 34px; }
    .dashboard-widget-hide-form { position: absolute; top: 12px; right: 14px; margin: 0; z-index: 2; }
    .dashboard-intro { grid-column: 1 / -1; }
    .dashboard-intro-control { grid-column: 1 / -1; display: flex; justify-content: flex-end; }
    .dashboard-grid > .dashboard-intro-control.intro-show-control { margin-bottom: -8px; }
    .page-intro-control { margin-bottom: 16px; }
    .intro-show-control.page-intro-control { margin-bottom: 8px; }
    .mobile-filter-toggle-control { display: none; }
    .dashboard-intro h2 { margin-top: 0; }
    .intro-welcome { margin: 0 0 12px; color: #415047; }
    .guide-panel { display: grid; gap: 14px; background: #f8faf7; border-color: #cfe0d3; }
    .guide-panel.has-intro-dismiss { position: relative; padding-right: 76px; }
    .guide-header { display: grid; gap: 4px; }
    .guide-eyebrow { margin: 0; color: #69766e; font-size: 13px; font-weight: 700; letter-spacing: 0; }
    .guide-title { margin: 0; font-size: 18px; line-height: 1.25; }
    .guide-subtitle { margin: 0; color: #56645c; font-size: 13px; line-height: 1.4; }
    .guide-list { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
    .guide-list li { position: relative; margin: 0; padding-left: 26px; font-size: 13px; line-height: 1.42; }
    .guide-list li::before { content: ""; position: absolute; left: 0; top: .58em; width: 8px; height: 8px; border-radius: 999px; background: #286a57; }
    .onboarding-steps { margin: 0; padding-left: 20px; }
    .onboarding-steps li { margin: 6px 0; }
    .onboarding-wizard { grid-column: 1 / -1; display: grid; gap: 16px; }
    .onboarding-wizard.has-intro-dismiss { position: relative; padding-top: 34px; }
    .wizard-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
    .wizard-header h2 { margin: 0 0 6px; }
    .wizard-header p { margin: 0; color: #415047; line-height: 1.45; }
    .wizard-eyebrow { margin: 0 0 4px; color: #69766e; font-size: 11px; font-weight: 900; letter-spacing: 0; text-transform: uppercase; }
    .intro-hide-form { position: absolute; top: 12px; right: 14px; margin: 0; }
    .guide-panel .form-actions, .onboarding-wizard .wizard-dismiss-actions { margin-top: 0; }
    .wizard-dismiss-form { margin: 0; }
    .wizard-progress { flex: 0 0 auto; min-width: 92px; padding: 10px 12px; border: 1px solid #cfe0d3; border-radius: 8px; background: #edf5ef; text-align: center; }
    .wizard-progress strong { display: block; font-size: 20px; line-height: 1; }
    .wizard-progress span { display: block; margin-top: 3px; color: #56645c; font-size: 12px; }
    .wizard-layout { display: block; }
    .wizard-track, .wizard-optional-panel { border: 1px solid #dfe4dc; border-radius: 8px; background: #fbfcfa; padding: 14px; }
    .wizard-track-title { margin: 0 0 12px; color: #56645c; font-size: 12px; font-weight: 800; letter-spacing: 0; }
    .wizard-optional-panel { display: grid; gap: 9px; border-style: dashed; background: #f8faf7; }
    .wizard-optional-panel .wizard-track-title { margin-bottom: 0; }
    .wizard-steps { display: flex; align-items: stretch; gap: 8px; margin: 0; padding: 0; list-style: none; }
    .wizard-step { flex: .78 1 0; display: grid; grid-template-columns: auto minmax(0, 1fr); align-content: start; gap: 8px; min-width: 0; padding: 10px; border: 1px solid #e4e9e2; border-radius: 8px; background: #f8faf7; }
    .wizard-step.is-active { flex: 1.52 1 0; }
    .wizard-step:last-child { border-bottom: 1px solid #e4e9e2; padding-bottom: 10px; }
    .wizard-step:first-child { padding-top: 10px; }
    .wizard-optional-panel .wizard-step { border-bottom: 0; padding: 0; }
    .wizard-step.is-active { border-color: #286a57; background: #eef7f1; box-shadow: inset 0 0 0 1px rgba(40,106,87,.18); }
    .wizard-step.is-complete { border-color: #cfe0d3; }
    .wizard-step.is-optional { color: #56645c; }
    .wizard-step.is-locked { color: #69766e; background: #f4f6f3; }
    .wizard-step-marker { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 999px; background: #dfe7dc; color: #203028; font-size: 12px; font-weight: 800; }
    .wizard-step.is-complete .wizard-step-marker { background: #286a57; color: white; }
    .wizard-step.is-active .wizard-step-marker { background: #286a57; color: white; }
    .wizard-step.is-optional .wizard-step-marker { background: #eef2ee; color: #56645c; }
    .wizard-step-body { display: grid; gap: 6px; min-width: 0; }
    .wizard-step-heading { display: grid; gap: 4px; }
    .wizard-step-heading h3 { margin: 0; font-size: 14px; line-height: 1.25; overflow-wrap: anywhere; }
    .wizard-step-heading span { color: #69766e; font-size: 12px; font-weight: 800; }
    .wizard-step p { margin: 0; color: #56645c; font-size: 12px; line-height: 1.38; }
    .wizard-step-link { color: #286a57; font-size: 12px; font-weight: 800; text-decoration: none; }
    .wizard-step-link:hover { text-decoration: underline; }
    .wizard-step:not(.is-active) .wizard-step-body { gap: 3px; }
    .wizard-step:not(.is-active) .wizard-step-heading h3 { font-size: 12px; }
    .wizard-step:not(.is-active) .wizard-step-heading span { font-size: 11px; }
    .wizard-step:not(.is-active) p, .wizard-step:not(.is-active) .wizard-step-link { display: none; }
    .wizard-next { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px; border: 1px solid #d8e0d6; border-radius: 8px; background: #f3f6f1; }
    .wizard-next.is-ready { border-color: #cfe0d3; background: #edf5ef; }
    .wizard-next div { display: grid; gap: 3px; min-width: 0; }
    .wizard-next strong { font-size: 14px; }
    .wizard-next span { color: #56645c; font-size: 13px; line-height: 1.35; }
    .wizard-next form { margin: 0; flex: 0 0 auto; }
    .wizard-next .wizard-next-actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
    .wizard-next .button, .wizard-next button { display: inline-flex; align-items: center; justify-content: center; height: 36px; min-height: 0; padding: 0 12px; box-sizing: border-box; white-space: nowrap; }
    .widget-heading { display: grid; gap: 2px; min-width: 0; }
    .widget-eyebrow { color: #69766e; font-size: 11px; font-weight: 900; text-transform: uppercase; letter-spacing: 0; }
    .widget-heading h2 { margin: 0; line-height: 1.15; }
    .dashboard-widget .insight-eyebrow, .dashboard-widget .widget-eyebrow, .dashboard-widget .wizard-eyebrow { color: #69766e; font-size: 11px; font-weight: 900; line-height: 1.2; letter-spacing: 0; text-transform: uppercase; }
    .dashboard-widget .insight-heading h2, .dashboard-widget .widget-heading h2, .dashboard-widget .wizard-header h2 { color: #203028; font-size: 24px; font-weight: 700; line-height: 1.15; }
    .today-training { grid-column: span 2; display: grid; gap: 18px; overflow: hidden; padding: 20px; border-color: #c1d8c8; border-radius: 18px; background: linear-gradient(135deg, #ffffff 0%, #f7fbf5 58%, #fff7ec 100%); box-shadow: 0 12px 28px rgba(31,39,34,.07); }
    .today-training-header { display: block; padding-right: 40px; }
    .today-training.has-no-widget-hide-control .today-training-header { padding-right: 0; }
    .training-window-frame { position: relative; min-width: 0; }
    .training-window-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; min-width: 0; padding-top: 6px; }
    .training-window-edge-hint { display: none; }
    .training-window-day { position: relative; display: grid; grid-template-rows: auto 24px 88px minmax(48px, auto) minmax(50px, auto); justify-items: center; align-content: start; gap: 4px; min-width: 0; min-height: 256px; box-sizing: border-box; padding: 11px 8px 10px; overflow: visible; border: 1px solid #dce7dc; border-radius: 17px; background: rgba(255,255,255,.84); color: #203028; text-align: center; text-decoration: none; box-shadow: 0 6px 16px rgba(31,52,40,.055); transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
    .training-window-day:hover, .training-window-day:focus-visible { z-index: 2; border-color: #8db9a1; outline: 0; transform: translateY(-3px); box-shadow: 0 12px 24px rgba(31,72,51,.13); }
    .training-window-day.is-today { z-index: 1; border-color: #286a57; background: linear-gradient(180deg, #f4fae7 0%, #ecf7df 100%); box-shadow: 0 10px 24px rgba(40,106,87,.2), inset 0 0 0 1px rgba(40,106,87,.08); transform: translateY(-5px); }
    .training-window-day.is-today:hover, .training-window-day.is-today:focus-visible { transform: translateY(-7px); box-shadow: 0 15px 30px rgba(40,106,87,.24), inset 0 0 0 1px rgba(40,106,87,.1); }
    .training-window-day.is-past { border-color: #e0e4e1; background: rgba(244,246,245,.86); color: #68736d; box-shadow: none; }
    .training-window-date { display: grid; justify-items: center; gap: 2px; min-width: 0; }
    .training-window-weekday { color: #6c7971; font-size: 10px; font-weight: 950; line-height: 1; letter-spacing: .06em; text-transform: uppercase; }
    .training-window-date time { display: inline-flex; align-items: baseline; justify-content: center; gap: 3px; min-width: 0; line-height: 1; }
    .training-window-date time strong { color: #203028; font-size: 24px; font-weight: 850; font-variant-numeric: tabular-nums; }
    .training-window-date time span { color: #77837b; font-size: 9px; font-weight: 950; letter-spacing: .04em; text-transform: uppercase; }
    .training-window-day.is-past .training-window-date time strong { color: #68736d; }
    .training-window-today-slot { display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 24px; }
    .training-window-today-label { display: inline-flex; align-items: center; justify-content: center; min-height: 20px; padding: 0 8px; border-radius: 999px; background: #286a57; color: #ffffff; font-size: 9px; font-weight: 950; line-height: 20px; letter-spacing: .055em; text-transform: uppercase; box-shadow: 0 4px 10px rgba(40,106,87,.22); }
    .training-window-today-spacer { display: block; width: 1px; height: 20px; }
    .training-window-icon-stage { position: relative; display: grid; place-items: center; align-self: center; width: 82px; height: 82px; overflow: visible; }
    .training-window-icon-shell { display: grid; place-items: center; width: 76px; height: 76px; border: 1px solid #cfe0d3; border-radius: 24px; background: linear-gradient(145deg, #f8fcf4, #e8f3ea); color: #286a57; box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 7px 14px rgba(40,106,87,.11); }
    .training-window-icon-shell .plan-activity-icon { width: 58px; height: 58px; opacity: .96; }
    .training-window-day.is-today .training-window-icon-shell { border-color: #286a57; background: linear-gradient(145deg, #dff0a9, #c2e084); color: #173f32; box-shadow: inset 0 1px 0 rgba(255,255,255,.56), 0 9px 20px rgba(40,106,87,.2); }
    .training-window-day.is-past .training-window-icon-shell { border-color: #d9dfdb; background: #edf0ee; color: #7f8983; box-shadow: inset 0 1px 0 rgba(255,255,255,.7); filter: grayscale(.8); }
    .training-window-day.is-rest .training-window-icon-shell { background: linear-gradient(145deg, #f7f4ec, #ece8dd); color: #747168; }
    .training-window-day.is-today.is-rest .training-window-icon-shell { background: linear-gradient(145deg, #dff0a9, #c2e084); color: #173f32; }
    .training-window-more { position: absolute; top: -2px; left: -3px; display: inline-grid; place-items: center; min-width: 25px; height: 25px; box-sizing: border-box; padding: 0 5px; border: 2px solid #ffffff; border-radius: 999px; background: #316d8f; color: #ffffff; font-size: 10px; font-weight: 950; line-height: 1; box-shadow: 0 4px 9px rgba(29,66,88,.25); }
    .training-window-record { position: absolute; top: -5px; right: -5px; display: grid; place-items: center; width: 34px; height: 38px; color: #705700; filter: none; }
    .training-window-record .personal-record-rosette { grid-area: 1 / 1; width: 34px; height: 38px; fill: #f2cf4a; filter: drop-shadow(0 3px 3px rgba(96,68,0,.24)); }
    .training-window-record > span { grid-area: 1 / 1; z-index: 1; margin-top: -5px; color: #5a4500; font-size: 9px; font-weight: 950; line-height: 1; }
    .training-window-copy { display: grid; align-content: start; justify-items: center; gap: 3px; min-width: 0; width: 100%; }
    .training-window-workout-title { display: -webkit-box; width: 100%; min-height: 30px; overflow: hidden; color: #203028; font-size: 12px; font-weight: 850; line-height: 1.25; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
    .training-window-sport { display: block; max-width: 100%; overflow: hidden; color: #6a766f; font-size: 9px; font-weight: 900; line-height: 1.1; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
    .training-window-day.is-past .training-window-workout-title { color: #69736d; }
    .training-window-metrics { display: flex; align-content: start; align-items: flex-start; justify-content: center; flex-wrap: wrap; gap: 4px; min-width: 0; width: 100%; min-height: 46px; }
    .training-window-metric { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; min-height: 22px; box-sizing: border-box; padding: 3px 7px; overflow: hidden; border: 1px solid #cfe0d3; border-radius: 999px; background: #edf5ef; color: #286a57; font-size: 10px; font-weight: 950; line-height: 1; text-overflow: ellipsis; white-space: nowrap; }
    .training-window-day.is-past .training-window-metric { border-color: #d9dfdb; background: #ecefed; color: #737d77; }
    .training-window-day.is-today .training-window-metric { border-color: rgba(40,106,87,.28); background: rgba(255,255,255,.68); color: #1f5b49; }
    .summary-panel { display: grid; gap: 14px; background: linear-gradient(180deg, #ffffff 0%, #f7faf6 100%); border-color: #cfe0d3; }
    .summary-panel h2 { margin-bottom: 0; }
    .summary-list { display: grid; gap: 0; }
    .summary-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 11px 0; border-bottom: 1px solid #e7ece5; color: inherit; text-decoration: none; }
    .summary-item:hover .summary-item-title { color: #286a57; text-decoration: underline; text-underline-offset: 3px; }
    .summary-item:last-child { border-bottom: 0; padding-bottom: 0; }
    .summary-item-title { display: flex; align-items: center; gap: 8px; min-width: 0; color: #203028; font-weight: 800; }
    .summary-dot { flex: 0 0 auto; width: 9px; height: 9px; border-radius: 999px; background: #286a57; box-shadow: 0 0 0 3px rgba(40,106,87,.12); }
    .summary-item.is-needed .summary-dot { background: #a85d2a; box-shadow: 0 0 0 3px rgba(168,93,42,.12); }
    .summary-item-note { display: block; margin-top: 3px; color: #69766e; font-size: 12px; line-height: 1.35; }
    .summary-pill { justify-self: end; border: 1px solid #ccd7ce; border-radius: 999px; padding: 5px 9px; background: #eef2ee; color: #203028; font-size: 12px; font-weight: 800; white-space: nowrap; }
    .summary-pill.is-ready { border-color: #cfe0d3; background: #edf5ef; color: #286a57; }
    .summary-pill.is-needed { border-color: #ebd5c4; background: #fff4eb; color: #8a4a22; }
    .daily-insights { --insight-action-height: 36px; grid-column: span 2; display: grid; grid-template-columns: minmax(286px, .82fr) minmax(0, 1.65fr); gap: 12px; overflow: hidden; padding: 18px; border-color: #c6d8cd; background: linear-gradient(135deg, #ffffff 0%, #f6faf2 58%, #fff8ef 100%); box-shadow: 0 8px 18px rgba(31,39,34,.05); }
    .daily-insights > * { min-width: 0; }
    .daily-insights .insight-header, .daily-insights .insight-loading, .daily-insights .insight-coach-comment { grid-column: 1 / -1; }
    .daily-insights .insight-score-row { grid-column: 1; }
    .daily-insights .insight-metrics { grid-column: 2; }
    .daily-insights .insight-plan-update, .daily-insights .insight-plan-message { grid-column: 1 / -1; grid-row: 4; align-self: center; margin-right: 128px; }
    .daily-insights .insight-plan-message { justify-self: end; }
    .daily-insights .insight-actions { grid-column: 1 / -1; grid-row: 4; align-self: center; justify-self: end; }
    .insight-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
    .insight-heading { display: grid; gap: 2px; min-width: 0; }
    .insight-eyebrow { color: #69766e; font-size: 11px; font-weight: 900; text-transform: uppercase; letter-spacing: 0; }
    .insight-header h2 { margin: 0; line-height: 1.15; }
    .insight-cache-label { position: absolute; top: 18px; right: 56px; display: inline-flex; align-items: center; justify-content: flex-end; max-width: calc(100% - 102px); color: #96a098; font-size: 12px; font-weight: 800; line-height: 1.25; text-align: right; }
    body.theme-dark.portal-page .insight-cache-label { color: #56645c; }
    @media (prefers-color-scheme: dark) {
      body:not(.theme-light).portal-page .insight-cache-label { color: #56645c; }
    }
    .dashboard-widget.has-no-widget-hide-control .insight-cache-label { top: 18px; right: 18px; min-height: 0; max-width: calc(100% - 56px); }
    .insight-cache-label.is-updating { top: 13px; min-height: 24px; gap: 6px; }
    .dashboard-widget.has-no-widget-hide-control .insight-cache-label.is-updating { top: 13px; min-height: 24px; }
    .today-training .insight-cache-label { top: 20px; }
    .today-training .insight-cache-label.is-updating { top: 15px; }
    .onboarding-wizard:has(.wizard-progress) .insight-cache-label { right: 154px; }
    .insight-cache-mobile { display: none; }
    .insight-empty { margin: 0; font-size: 13px; line-height: 1.45; }
    .insight-loading { display: flex; align-items: center; gap: 10px; padding: 11px 12px; border: 1px solid #d6e3d7; border-radius: 8px; background: rgba(255,255,255,.7); }
    .insight-loading div { display: grid; gap: 3px; min-width: 0; }
    .insight-loading strong { font-size: 14px; }
    .insight-loading span:not(.insight-loader) { color: #56645c; font-size: 13px; line-height: 1.35; }
    .insight-loader { flex: 0 0 auto; width: 22px; height: 22px; border: 3px solid #d5e2d6; border-top-color: #286a57; border-radius: 50%; animation: spin .8s linear infinite; }
    .insight-loader-small { width: 12px; height: 12px; border-width: 2px; }
    .insight-score-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; align-items: stretch; }
    .insight-score { position: relative; display: grid; align-content: center; gap: 3px; min-width: 0; min-height: 78px; padding: 8px 10px; border: 1px solid #d6e3d7; border-radius: 8px; background: rgba(255,255,255,.78); }
    .insight-score::before { content: ""; position: absolute; inset: 7px auto 7px 7px; width: 3px; border-radius: 999px; background: #286a57; }
    .insight-score span { padding-left: 10px; color: #69766e; font-size: 11px; font-weight: 900; text-transform: uppercase; letter-spacing: 0; }
    .insight-score strong { padding-left: 10px; color: #203028; font-size: 18px; line-height: 1.08; overflow-wrap: normal; word-break: normal; }
    .insight-score:first-child strong { font-size: 26px; }
    .insight-score em { padding-left: 10px; color: #286a57; font-size: 12px; font-style: normal; font-weight: 900; }
    .insight-score-recovery { align-content: start; padding-top: 22.5px; }
    .insight-score-recovery::after { content: "\\00a0"; visibility: hidden; padding-left: 10px; font-size: 12px; line-height: 1.2; }
    .insight-score-recovery > strong { transform: translateY(1px); }
    .insight-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; align-content: stretch; }
    .insight-metric { --metric-color: #286a57; position: relative; display: grid; align-content: space-between; gap: 4px; min-height: 78px; padding: 8px; overflow: hidden; border: 1px solid #d8e3d9; border-radius: 8px; background: rgba(255,255,255,.84); box-shadow: inset 0 1px 0 rgba(255,255,255,.75); }
    .insight-metric-label { color: #69766e; font-size: 10px; font-weight: 900; line-height: 1.12; text-transform: uppercase; letter-spacing: 0; }
    .insight-metric strong { color: #203028; font-size: 20px; line-height: 1; overflow-wrap: anywhere; }
    .insight-metric small { color: #56645c; font-size: 10px; font-weight: 800; line-height: 1.2; }
    .insight-metric em { color: #69766e; font-size: 10px; font-style: normal; font-weight: 900; text-transform: uppercase; }
    .insight-metric.is-empty { color: #69766e; background: rgba(248,250,247,.82); }
    .insight-metric.is-empty .insight-ring, .insight-metric.is-empty .insight-sleep-track, .insight-metric.is-empty .insight-hr-track { opacity: .55; }
    .insight-metric-sleep { grid-template-rows: auto minmax(18px, 1fr) auto auto; background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(242,247,242,.88)); }
    .insight-metric-sleep strong { align-self: end; }
    .insight-sleep-track { height: 9px; overflow: hidden; border-radius: 999px; background: #e3e9e2; box-shadow: inset 0 0 0 1px rgba(32,48,40,.04); }
    .insight-sleep-track span { display: block; width: 100%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #b66a2c 0%, #b8a54b 28%, #4f925a 70%, #286a57 100%); clip-path: inset(0 calc(100% - var(--metric-percent)) 0 0 round 999px); }
    .insight-metric-gauge { justify-items: center; text-align: center; }
    .insight-metric-gauge .insight-metric-label { justify-self: start; text-align: left; }
    .insight-metric-body { --metric-color: #286a57; --ring-gradient: conic-gradient(#b66a2c 0%, #b8a54b 28%, #4f925a 70%, #286a57 100%); }
    .insight-metric-stress { --metric-color: #b66a2c; --ring-gradient: conic-gradient(#286a57 0%, #4f925a 45%, #b8a54b 72%, #b66a2c 100%); }
    .insight-ring { position: relative; display: grid; place-items: center; width: 50px; aspect-ratio: 1; border-radius: 50%; background: conic-gradient(var(--metric-color) var(--metric-percent), #e4e9e2 0); }
    .insight-metric-body .insight-ring, .insight-metric-stress .insight-ring { background: #e4e9e2; }
    .insight-metric-body .insight-ring::after, .insight-metric-stress .insight-ring::after { content: ""; position: absolute; inset: 0; z-index: 0; border-radius: 50%; background: var(--ring-gradient); -webkit-mask: conic-gradient(#000 0 var(--metric-percent), transparent 0); mask: conic-gradient(#000 0 var(--metric-percent), transparent 0); }
    .insight-ring::before { content: ""; position: absolute; inset: 6px; z-index: 1; border-radius: 50%; background: rgba(255,255,255,.96); box-shadow: inset 0 0 0 1px #e0e7dd; }
    .insight-ring strong, .insight-ring em { position: relative; z-index: 2; display: block; }
    .insight-ring strong { align-self: end; font-size: 17px; }
    .insight-ring em { align-self: start; margin-top: 1px; }
    .insight-metric-body .insight-ring strong { align-self: center; }
    .insight-metric-hr { grid-template-rows: auto minmax(18px, 1fr) auto auto; }
    .insight-metric-hr strong { align-self: end; display: flex; align-items: baseline; gap: 4px; }
    .insight-hr-track { position: relative; height: 10px; overflow: hidden; border-radius: 999px; background: #e3e9e2; box-shadow: inset 0 0 0 1px rgba(32,48,40,.04); }
    .insight-hr-track span { position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(90deg, #286a57 0%, #4f925a 45%, #b8a54b 72%, #b66a2c 100%); clip-path: inset(0 calc(100% - var(--hr-position)) 0 0 round 999px); }
    .insight-coach-comment { display: grid; gap: 2px; padding: 8px 10px; border: 1px solid #d6e3d7; border-radius: 8px; background: rgba(255,255,255,.68); }
    .insight-coach-comment strong { color: #415047; font-size: 11px; font-weight: 900; text-transform: uppercase; letter-spacing: 0; }
    .insight-coach-comment span { color: #203028; font-size: 12px; line-height: 1.35; }
    .insight-plan-update { display: grid; gap: 3px; padding: 9px 11px; border: 1px solid #d6e3d7; border-radius: 8px; background: rgba(255,255,255,.78); }
    .insight-plan-update-compact { box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; gap: 10px; height: var(--insight-action-height); min-height: var(--insight-action-height); padding: 0 10px; }
    .insight-plan-update-compact.is-no-change { padding-top: 0; padding-bottom: 0; }
    .insight-plan-update.is-needed { border-color: #ebd5c4; background: #fff8f0; }
    .insight-plan-update strong { flex: 0 0 auto; font-size: 13px; white-space: nowrap; }
    .insight-plan-update span { min-width: 0; overflow: hidden; color: #56645c; font-size: 12px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
    .insight-plan-message { margin-top: 0; margin-bottom: 0; color: #56645c; font-size: 12px; font-weight: 800; line-height: 1.35; text-align: right; }
    .insight-actions { justify-content: flex-end; margin-top: 0; }
    .insight-actions .button, .insight-actions button { align-self: center; display: inline-flex; align-items: center; justify-content: center; height: var(--insight-action-height, 36px); min-height: 0; padding: 0 12px; }
    .dashboard-widget .button:not(.circle-x-button), .dashboard-widget button:not(.circle-x-button):not(.intro-hide-button) { border-color: #286a57; background: #286a57; color: #ffffff; font-weight: 850; box-shadow: 0 6px 14px rgba(40,106,87,.14); }
    .race-readiness { grid-column: span 1; display: grid; align-content: start; gap: 12px; overflow: hidden; border-color: #d8d0bf; background: linear-gradient(145deg, #ffffff 0%, #f8faf7 54%, #fff6ea 100%); box-shadow: 0 8px 18px rgba(31,39,34,.05); }
    .race-readiness .insight-header { padding-right: 34px; }
    .race-readiness-body { display: grid; grid-template-columns: minmax(250px, 320px) minmax(0, 1fr); align-items: center; gap: 32px; }
    .race-readiness-top { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px; min-width: 0; }
    .race-gauge { --race-score: 0%; position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; width: 106px; aspect-ratio: 1; border-radius: 50%; background: conic-gradient(#286a57 var(--race-score), #e4e9e2 0); text-align: center; }
    .race-gauge::before { content: ""; position: absolute; inset: 8px; border-radius: 50%; background: rgba(255,255,255,.96); box-shadow: inset 0 0 0 1px #e0e7dd; }
    .race-gauge strong, .race-gauge span { position: relative; z-index: 1; display: block; }
    .race-gauge strong { color: #203028; font-size: 24px; line-height: 1; }
    .race-gauge span { max-width: 76px; color: #286a57; font-size: 11px; font-weight: 900; line-height: 1.1; text-transform: uppercase; }
    .race-event { display: grid; gap: 4px; min-width: 0; }
    .race-event h3 { margin: 0; color: #203028; font-size: 18px; line-height: 1.2; overflow-wrap: anywhere; }
    .race-event span { color: #286a57; font-size: 13px; font-weight: 900; }
    .race-event em { color: #56645c; font-size: 12px; font-style: normal; line-height: 1.35; overflow-wrap: anywhere; }
    .race-prep-bars { display: grid; gap: 9px; min-width: 0; }
    .race-prep-row { display: grid; gap: 5px; }
    .race-prep-label { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
    .race-prep-copy { display: block; min-width: 0; }
    .race-prep-copy span { color: #415047; font-size: 12px; font-weight: 900; line-height: 1.2; }
    .race-prep-copy em { color: #69766e; font-size: 11px; font-style: normal; font-weight: 600; line-height: 1.28; }
    .race-prep-copy em::before { content: " - "; }
    .race-prep-label strong { flex: 0 0 auto; color: #69766e; font-size: 11px; font-weight: 800; text-align: right; }
    .race-prep-track { height: 8px; overflow: hidden; border-radius: 999px; background: #e4e9e2; }
    .race-prep-track span { display: block; width: 100%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #c58a35 0%, #b8a54b 28%, #4f925a 70%, #286a57 100%); clip-path: inset(0 calc(100% - var(--bar)) 0 0 round 999px); }
    .race-coach-comment { background: rgba(255,255,255,.76); }
    .race-empty { display: grid; gap: 4px; padding: 12px; border: 1px solid #d6e3d7; border-radius: 8px; background: rgba(255,255,255,.76); }
    .race-empty strong { color: #203028; font-size: 14px; }
    .race-empty span { color: #56645c; font-size: 13px; line-height: 1.4; }
    .dashboard-widget.is-access-required .race-empty { grid-column: 1 / -1; }
    .dashboard-widget.is-access-required .insight-actions { grid-column: 1 / -1; grid-row: auto; align-self: center; justify-self: end; }
    .daily-insights.is-access-required { grid-template-columns: minmax(0, 1fr); }
    .recent-activity { position: relative; grid-column: span 1; display: grid; align-content: start; gap: 12px; overflow: hidden; border-color: #bfd6cf; background: linear-gradient(145deg, #ffffff 0%, #f2faf6 48%, #fff7e9 100%); box-shadow: 0 12px 26px rgba(31,39,34,.08); }
    .recent-activity .insight-header { padding-right: 34px; }
    .recent-activity .insight-coach-comment { border-color: #bfd6cf; background: #f5fbf7; box-shadow: none; }
    .recent-activity-top { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: stretch; padding: 10px; border: 1px solid #d3e1d7; border-radius: 8px; background: rgba(255,255,255,.78); }
    .recent-activity-title { display: grid; gap: 5px; min-width: 0; }
    .recent-activity-title-tags { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
    .recent-activity-sport, .recent-activity-status { justify-self: start; display: inline-flex; align-items: center; min-height: 22px; padding: 0 8px; border-radius: 999px; font-size: 11px; font-weight: 900; text-transform: uppercase; white-space: nowrap; }
    .recent-activity-sport { border: 1px solid #d6e3d5; background: rgba(255,255,255,.82); color: #415047; }
    .recent-activity-status { border: 1px solid #d4dfd5; background: #fffaf2; color: #7a5a23; }
    .recent-activity-status.is-planned { background: #f8faf7; color: #56645c; border-color: #d8e0d6; }
    .recent-activity-status.is-revised { background: #e8f2ff; color: #316d8f; border-color: #c8dff2; }
    .recent-activity-status.is-matched, .recent-activity-status.is-completed { background: #e5f4e9; color: #286a57; border-color: #c7dfcd; }
    .recent-activity-status.is-partial { background: #fff2cc; color: #8a5b00; border-color: #ead38d; }
    .recent-activity-status.is-skipped { background: #fde7f1; color: #9d1f5d; border-color: #ef9ec7; }
    .recent-activity-status.is-unplanned { background: #f1e7de; color: #7c4d25; border-color: #dcc6b4; }
    .recent-activity-status.is-neutral { background: #eef2ee; color: #56645c; border-color: #d9dfd8; }
    .recent-activity-title h3 { display: flex; align-items: center; gap: 5px; min-width: 0; margin: 0; color: #203028; font-size: 18px; line-height: 1.2; overflow-wrap: anywhere; }
    .recent-activity-title h3 .plan-activity-icon { flex: 0 0 auto; width: 21px; height: 21px; color: #286a57; stroke-width: 2.25; transform: translateY(1px); }
    .recent-activity-title h3 span { min-width: 0; overflow-wrap: anywhere; }
    .recent-activity-plan-context { justify-self: start; color: #69766e; font-size: 12px; font-weight: 800; line-height: 1.25; }
    .recent-activity-date { justify-self: end; align-self: start; display: inline-flex; align-items: center; justify-content: center; min-height: 28px; padding: 0; color: #69766e; font-size: 12px; font-weight: 900; line-height: 1; white-space: nowrap; }
    .recent-activity-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
    .recent-activity-metric { --activity-accent: #286a57; position: relative; display: grid; align-content: space-between; gap: 5px; min-height: 78px; padding: 10px 8px 9px; overflow: hidden; border: 1px solid #d8e3d9; border-radius: 8px; background: rgba(255,255,255,.86); box-shadow: inset 0 1px 0 rgba(255,255,255,.76); }
    .recent-activity-metric-distance, .recent-activity-metric-pace, .recent-activity-metric-speed { --activity-accent: #286a57; }
    .recent-activity-metric-duration { --activity-accent: #4f925a; }
    .recent-activity-metric-distance::before, .recent-activity-metric-pace::before, .recent-activity-metric-speed::before, .recent-activity-metric-duration::before { content: ""; position: absolute; inset: 8px auto 8px 7px; width: 3px; border-radius: 999px; background: var(--activity-accent); }
    .recent-activity-metric-distance > span, .recent-activity-metric-distance > strong, .recent-activity-metric-distance > small,
    .recent-activity-metric-pace > span, .recent-activity-metric-pace > strong, .recent-activity-metric-pace > small,
    .recent-activity-metric-speed > span, .recent-activity-metric-speed > strong, .recent-activity-metric-speed > small,
    .recent-activity-metric-duration > span, .recent-activity-metric-duration > strong, .recent-activity-metric-duration > small { padding-left: 9px; }
    .recent-activity-metric-distance, .recent-activity-metric-pace, .recent-activity-metric-speed { align-content: start; grid-template-rows: minmax(12px, auto) 32px minmax(1px, auto); }
    .recent-activity-metric-distance > span, .recent-activity-metric-pace > span, .recent-activity-metric-speed > span { grid-row: 1; }
    .recent-activity-metric-distance > strong, .recent-activity-metric-pace > strong, .recent-activity-metric-speed > strong { grid-row: 2; align-self: end; }
    .recent-activity-metric-distance > small, .recent-activity-metric-pace > small, .recent-activity-metric-speed > small { grid-row: 3; }
    .recent-activity-metric-load { --activity-accent: #c58a35; }
    .recent-activity-metric-heart { --activity-accent: #a85d2a; }
    .recent-activity-metric-elevation { --activity-accent: #4f7f8d; }
    .recent-activity-metric-calories { --activity-accent: #7b7f35; }
    .recent-activity-metric span { color: #69766e; font-size: 10px; font-weight: 900; line-height: 1.12; text-transform: uppercase; }
    .recent-activity-metric strong { color: #203028; font-size: 17px; line-height: 1; overflow-wrap: anywhere; }
    .recent-activity-value-with-icon { display: inline-flex; align-items: center; gap: 5px; min-width: 0; }
    .recent-activity-value-with-icon svg { flex: 0 0 auto; width: 19px; height: 19px; color: var(--activity-accent); stroke-width: 2.35; }
    .recent-activity-value-with-icon svg.recent-activity-icon-mountain { width: 24px; height: 24px; }
    .recent-activity-value-with-icon span { min-width: 0; color: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; text-transform: none; overflow-wrap: anywhere; }
    .recent-activity-metric-load { justify-items: center; text-align: center; }
    .recent-activity-metric-load > span { justify-self: start; text-align: left; }
    .recent-activity-load-ring { --activity-load: 0%; position: relative; justify-self: center; display: grid; place-items: center; width: 42px; aspect-ratio: 1; border-radius: 50%; background: conic-gradient(#c58a35 var(--activity-load), #e2e9e0 0); }
    .recent-activity-load-ring::before { content: ""; position: absolute; inset: 5px; border-radius: 50%; background: rgba(255,255,255,.96); box-shadow: inset 0 0 0 1px #e0e7dd; }
    .recent-activity-load-ring strong { position: relative; z-index: 1; color: #203028; font-size: 14px; line-height: 1; }
    .recent-activity-meter { height: 8px; overflow: hidden; border-radius: 999px; background: #e2e9e0; box-shadow: inset 0 0 0 1px rgba(32,48,40,.04); }
    .recent-activity-meter span { display: block; width: 100%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #4f925a 0%, #b8a54b 52%, #b66a2c 100%); clip-path: inset(0 calc(100% - var(--activity-meter)) 0 0 round 999px); }
    .recent-activity-metric-heart .recent-activity-meter span { background: linear-gradient(90deg, #286a57 0%, #4f925a 45%, #b8a54b 72%, #b66a2c 100%); }
    .recent-activity-metric small { color: #56645c; font-size: 10px; font-weight: 800; line-height: 1.25; }
    .recent-activity-metric.is-empty { color: #69766e; background: rgba(255,255,255,.86); }
    .recent-activity-feedback { display: grid; gap: 3px; padding: 8px 10px; border: 1px solid #d6e3d7; border-radius: 8px; background: rgba(255,255,255,.72); }
    .recent-activity-feedback strong { color: #415047; font-size: 11px; font-weight: 900; text-transform: uppercase; }
    .recent-activity-feedback span { color: #203028; font-size: 12px; line-height: 1.35; }
    .nutrition-weight { grid-column: span 2; display: grid; grid-template-columns: minmax(220px, .72fr) minmax(0, 1.35fr); gap: 12px; overflow: hidden; border-color: #cdd8c7; background: linear-gradient(145deg, #ffffff 0%, #f7faf6 48%, #f0f5ed 100%); box-shadow: 0 8px 18px rgba(31,39,34,.05); }
    .nutrition-weight .insight-header, .nutrition-weight .insight-loading, .nutrition-weight .insight-coach-comment, .nutrition-weight .nutrition-actions { grid-column: 1 / -1; }
    .nutrition-score-card { grid-column: 1; grid-row: 2; display: grid; grid-template-columns: auto minmax(0, 1fr); align-content: start; gap: 10px; min-width: 0; }
    .nutrition-score-gauge { --nutrition-score: 0%; position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; width: 128px; aspect-ratio: 1; border-radius: 50%; background: conic-gradient(#286a57 var(--nutrition-score), #e4e9e2 0); text-align: center; }
    .nutrition-score-gauge::before { content: ""; position: absolute; inset: 9px; border-radius: 50%; background: rgba(255,255,255,.96); box-shadow: inset 0 0 0 1px #e0e7dd; }
    .nutrition-score-gauge strong, .nutrition-score-gauge span { position: relative; z-index: 1; display: block; }
    .nutrition-score-gauge strong { color: #203028; font-size: 27px; line-height: 1; }
    .nutrition-score-gauge span { max-width: 86px; color: #286a57; font-size: 11px; font-weight: 900; line-height: 1.12; text-transform: uppercase; }
    .nutrition-score-explain { align-self: center; display: grid; gap: 4px; color: #56645c; font-size: 12px; line-height: 1.35; }
    .nutrition-score-explain strong { color: #203028; font-size: 13px; line-height: 1.25; }
    .nutrition-goal-note { grid-column: 1; grid-row: 3; align-self: center; display: grid; gap: 4px; padding: 9px 10px; border: 1px solid #d9e4d7; border-radius: 8px; background: rgba(255,255,255,.74); }
    .nutrition-goal-note strong { color: #203028; font-size: 13px; line-height: 1.25; }
    .nutrition-goal-note span { color: #56645c; font-size: 12px; line-height: 1.35; }
    .nutrition-detail-grid { grid-column: 2; grid-row: 2; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; min-width: 0; }
    .nutrition-metric { display: grid; align-content: space-between; gap: 5px; min-height: 92px; padding: 9px; border: 1px solid #d8e3d9; border-radius: 8px; background: rgba(255,255,255,.8); }
    .nutrition-metric span { color: #69766e; font-size: 10px; font-weight: 900; line-height: 1.12; text-transform: uppercase; }
    .nutrition-metric strong { display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px; color: #203028; font-size: 20px; line-height: 1; overflow-wrap: anywhere; }
    .nutrition-metric strong em { color: #69766e; font-size: 10px; font-style: normal; font-weight: 900; letter-spacing: 0; text-transform: uppercase; }
    .nutrition-weight-rate { color: #56645c; font-size: 11px; font-weight: 800; }
    .nutrition-metric small { color: #56645c; font-size: 11px; font-weight: 700; line-height: 1.25; }
    .nutrition-eta-break { display: inline; }
    .nutrition-macro-panel { grid-column: 2; grid-row: 3; align-self: center; display: grid; gap: 8px; padding: 10px; border: 1px solid #d8e3d9; border-radius: 8px; background: rgba(255,255,255,.76); }
    .nutrition-macro-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
    .nutrition-macro-head strong { color: #203028; font-size: 13px; }
    .nutrition-macro-head span { color: #69766e; font-size: 11px; font-weight: 800; text-align: right; }
    .nutrition-macro-bar { display: flex; height: 12px; overflow: hidden; border-radius: 999px; background: #e4e9e2; }
    .nutrition-macro-bar span { display: block; height: 100%; }
    .nutrition-macro-carbs { width: var(--macro-carbs); background: #286a57; }
    .nutrition-macro-protein { width: var(--macro-protein); background: #5d8f42; }
    .nutrition-macro-fat { width: var(--macro-fat); background: #b8a54b; }
    .nutrition-macro-legend { display: flex; flex-wrap: wrap; gap: 8px 12px; color: #56645c; font-size: 11px; font-weight: 800; }
    .nutrition-macro-legend span { display: inline-flex; align-items: center; gap: 5px; }
    .nutrition-macro-legend span::before { content: ""; width: 8px; height: 8px; border-radius: 999px; background: var(--legend-color); }
    .nutrition-review { grid-column: 1 / -1; border: 1px solid #d8e3d9; border-radius: 8px; background: rgba(255,255,255,.76); overflow: hidden; }
    .nutrition-review summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; min-height: 42px; padding: 0 9px 0 10px; cursor: pointer; list-style: none; }
    .nutrition-review summary::-webkit-details-marker { display: none; }
    .nutrition-review-heading { display: grid; gap: 2px; min-width: 0; }
    .nutrition-review-title { color: #203028; font-size: 13px; font-weight: 900; line-height: 1.2; }
    .nutrition-review summary em { color: #69766e; font-size: 11px; font-style: normal; font-weight: 850; line-height: 1.2; }
    .nutrition-review-toggle { display: inline-flex; align-items: center; justify-content: center; min-width: 64px; min-height: 28px; padding: 0 10px; border: 1px solid #cfe0d3; border-radius: 7px; background: #edf5ef; color: #286a57; font-size: 12px; font-weight: 900; line-height: 1; text-align: center; }
    .nutrition-review-toggle-hide { display: none; }
    .nutrition-review[open] .nutrition-review-toggle-show { display: none; }
    .nutrition-review[open] .nutrition-review-toggle-hide { display: inline; }
    .nutrition-review form { display: grid; gap: 8px; margin: 0; padding: 0 9px 9px; }
    .nutrition-review p { margin: 0; padding: 8px 9px; border: 1px solid #d8e3d9; border-radius: 8px; background: #f4f8f4; color: #415047; font-size: 11px; font-weight: 750; line-height: 1.35; }
    .nutrition-review-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; align-items: stretch; }
    .nutrition-review-row { display: grid; grid-template-rows: 18px 44px 24px; gap: 5px; min-width: 0; height: 105px; padding: 7px; border: 1px solid #d2ded2; border-radius: 8px; background: #f9fbf8; box-shadow: inset 0 1px 0 rgba(255,255,255,.82); }
    .nutrition-review-row.needs-review { border-color: #c8b967; background: #fff9ea; }
    .nutrition-review-day { display: flex; align-items: baseline; justify-content: space-between; gap: 5px; min-width: 0; padding-bottom: 4px; border-bottom: 1px solid #e2e9e0; }
    .nutrition-review-day span { color: #69766e; font-size: 9px; font-weight: 950; line-height: 1; text-transform: uppercase; }
    .nutrition-review-day strong { color: #203028; font-size: 11px; line-height: 1; text-align: right; white-space: nowrap; }
    .nutrition-review-intake { display: grid; grid-template-rows: 17px 20px; gap: 5px; min-width: 0; }
    .nutrition-review-intake > strong { color: #203028; font-size: 15px; line-height: 1; overflow-wrap: anywhere; }
    .nutrition-review-nutrients { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3px; }
    .nutrition-review-nutrients span { display: flex; align-items: center; justify-content: center; min-width: 0; height: 20px; padding: 0 2px; border-radius: 6px; color: #203028; font-size: 8.5px; font-weight: 900; line-height: 1; text-align: center; white-space: nowrap; overflow: hidden; font-variant-numeric: tabular-nums; }
    .nutrition-review-nutrients span:nth-child(1) { background: #dcefe6; color: #235b4c; }
    .nutrition-review-nutrients span:nth-child(2) { background: #e7efd9; color: #4f6b2d; }
    .nutrition-review-nutrients span:nth-child(3) { background: #f4ebc8; color: #6f5d20; }
    .nutrition-review-spacer { display: none; }
    .nutrition-status-options { align-self: end; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; min-width: 0; overflow: hidden; border: 1px solid #ccd9ce; border-radius: 7px; background: #edf2ec; }
    .nutrition-status-options label { position: relative; display: grid; place-items: center; min-width: 0; min-height: 25px; margin: 0; padding: 0 3px; border: 0; border-right: 1px solid #ccd9ce; background: transparent; color: #56645c; font-size: 9px; font-weight: 900; line-height: 1.05; text-align: center; cursor: pointer; }
    .nutrition-status-options label:last-child { border-right: 0; }
    .nutrition-status-options input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; }
    .nutrition-status-options label:has(input:checked) { background: #286a57; color: #ffffff; box-shadow: none; }
    .nutrition-review-actions { display: flex; justify-content: flex-end; }
    .nutrition-review-actions button { min-height: 32px; padding: 0 12px; }
    .nutrition-actions { justify-content: flex-end; margin-top: 0; }
    .nutrition-actions .button, .nutrition-actions button { align-self: center; display: inline-flex; align-items: center; justify-content: center; height: 36px; min-height: 0; padding: 0 12px; box-sizing: border-box; }
    .gpt-actions { flex-wrap: nowrap; }
    .garmin-helper { font-size: 12px; line-height: 1.35; }
    .gpt-helper { font-size: 12px; line-height: 1.35; }
    .main-inner:has(.garmin-page) { max-width: 1080px; }
    .garmin-page, .garmin-page * { box-sizing: border-box; }
    .garmin-page { display: grid; gap: 14px; }
    .garmin-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 20px 22px; overflow: hidden; border: 1px solid #cbdceb; border-radius: 8px; background: linear-gradient(135deg, #ffffff 0%, #f4f9fd 58%, #fff7ec 100%); box-shadow: 0 12px 26px rgba(31,39,34,.07); }
    .garmin-hero-main { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: center; min-width: 0; }
    .garmin-hero-logo { display: block; width: 54px; height: 54px; border-radius: 8px; object-fit: contain; background: #ffffff; box-shadow: inset 0 0 0 1px #c8dff2; }
    .garmin-hero-copy { display: grid; gap: 5px; min-width: 0; }
    .garmin-hero h2 { margin: 0; color: #203028; font-size: 28px; line-height: 1.08; }
    .garmin-hero p { max-width: 620px; margin: 0; color: #56645c; font-size: 14px; line-height: 1.45; }
    .garmin-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr); gap: 14px; align-items: start; }
    .garmin-panel { display: grid; gap: 14px; min-width: 0; margin: 0; padding: 18px; border: 1px solid #dfe4dc; border-radius: 8px; background: #ffffff; box-shadow: 0 8px 18px rgba(31,39,34,.045); }
    .garmin-form-panel { border-color: #c8dff2; box-shadow: 0 10px 22px rgba(49,109,143,.08); }
    .garmin-state-panel { border-color: #cfe0d3; box-shadow: inset 3px 0 0 #286a57, 0 10px 22px rgba(40,106,87,.08); }
    .garmin-paid-required { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: center; min-width: 0; padding: 14px 16px; border: 1px solid #ead38d; border-radius: 8px; background: #fff8ed; box-shadow: 0 8px 18px rgba(122,75,0,.06); }
    .garmin-paid-required-copy { display: grid; gap: 3px; min-width: 0; }
    .garmin-paid-required-copy h3 { margin: 0; color: #7a4b00; font-size: 15px; line-height: 1.25; }
    .garmin-paid-required-copy p { margin: 0; color: #6e5a36; font-size: 13px; line-height: 1.4; }
    .garmin-paid-required-action { justify-self: end; white-space: nowrap; }
    .garmin-hero, .garmin-form-panel, .garmin-paid-required { border-width: 2px; }
    .garmin-panel h3 { margin: 0; color: #203028; font-size: 20px; line-height: 1.2; }
    .garmin-panel p { margin: 0; color: #56645c; font-size: 13px; line-height: 1.45; }
    .garmin-form { display: grid; gap: 12px; }
    .garmin-field { display: grid; gap: 6px; min-width: 0; }
    .garmin-field label { margin: 0; color: #415047; font-size: 12px; font-weight: 900; letter-spacing: 0; text-transform: uppercase; }
    .garmin-field input { height: 40px; border-color: #c8d5cc; border-radius: 8px; font-size: 15px; }
    .garmin-field input:focus { outline: 2px solid rgba(49,109,143,.22); outline-offset: 1px; border-color: #316d8f; }
    .garmin-secret-input { -webkit-text-security: disc; text-security: disc; }
    .garmin-security-note { display: grid; gap: 5px; padding: 11px 12px; border: 1px solid #d7e2d7; border-radius: 8px; background: #f8faf7; }
    .garmin-security-note strong { color: #203028; font-size: 13px; line-height: 1.25; }
    .garmin-security-note span { color: #56645c; font-size: 12px; line-height: 1.4; }
    .garmin-form-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; margin-top: 2px; }
    .garmin-form-actions button, .garmin-form-actions .button, .garmin-paid-required .garmin-paid-required-action { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 0 14px; font-weight: 850; }
    .garmin-form-actions button, .garmin-paid-required .garmin-paid-required-action { box-shadow: 0 8px 18px rgba(49,109,143,.18); }
    .garmin-form-actions .secondary { box-shadow: none; }
    .garmin-support { display: grid; gap: 10px; min-width: 0; }
    .garmin-info-card { display: grid; gap: 8px; padding: 14px; border: 1px solid #dfe7dc; border-radius: 8px; background: #fbfcfb; }
    .garmin-info-card.is-blue { border-color: #c8dff2; background: #f4f9fd; }
    .garmin-info-card h3 { margin: 0; color: #203028; font-size: 15px; line-height: 1.25; }
    .garmin-info-card p { margin: 0; color: #56645c; font-size: 12px; line-height: 1.42; }
    .garmin-benefits { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
    .garmin-benefits li { position: relative; min-height: 20px; padding-left: 28px; color: #415047; font-size: 13px; font-weight: 750; line-height: 1.35; }
    .garmin-benefits li::before { content: ""; position: absolute; left: 0; top: 1px; width: 18px; height: 18px; border-radius: 999px; background: #286a57; box-shadow: 0 3px 8px rgba(40,106,87,.18); }
    .garmin-benefits li::after { content: ""; position: absolute; left: 6px; top: 4px; width: 5px; height: 9px; border: solid #ffffff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
    .garmin-status-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 11px 12px; border: 1px solid #d7e2d7; border-radius: 8px; background: #f8faf7; }
    .garmin-status-row span { color: #69766e; font-size: 12px; font-weight: 900; text-transform: uppercase; }
    .garmin-status-row strong { color: #203028; font-size: 14px; line-height: 1.25; text-align: right; overflow-wrap: anywhere; }
    .garmin-connected-actions { justify-content: flex-end; }
    .garmin-connected-actions .button, .garmin-connected-actions button { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 0 14px; font-weight: 850; }
    .garmin-connected-actions form { margin: 0; }
    .heading-note { color: #69766e; font-size: .72em; font-weight: 600; }
    .main-inner:has(.account-page) { max-width: 1120px; }
    .account-page, .account-page * { box-sizing: border-box; }
    .account-page { display: grid; gap: 14px; }
    .account-top-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; align-items: start; }
    .account-top-row .account-hero { order: 1; }
    .account-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: start; padding: 20px 22px; overflow: hidden; border: 2px solid #c9d8ce; border-radius: 8px; background: linear-gradient(135deg, #ffffff 0%, #f5faf6 52%, #fff7ec 100%); box-shadow: 0 12px 26px rgba(31,39,34,.07); }
    .account-hero-copy { display: grid; gap: 5px; min-width: 0; }
    .account-hero h2 { margin: 0; color: #203028; font-size: 26px; line-height: 1.1; }
    .account-hero p { margin: 0; }
    .account-hero-copy > p:last-child { width: 100%; max-width: none; color: #56645c; font-size: 14px; line-height: 1.45; }
    .billing-plans-hero { width: 100%; max-width: 760px; margin: 0 auto; padding: 4px 0 6px; border: 0; border-radius: 0; background: transparent; box-shadow: none; text-align: center; }
    .billing-plans-hero .account-hero-copy { justify-items: center; gap: 12px; }
    .billing-plans-hero h2 { font-size: 34px; line-height: 1.05; }
    .billing-plans-hero .account-hero-copy > p:last-child { max-width: 640px; }
    .account-eyebrow { margin: 0; color: #69766e; font-size: 11px; font-weight: 900; letter-spacing: 0; text-transform: uppercase; }
    .account-card-grid, .account-secondary-grid, .account-danger-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
    .account-card { display: grid; align-content: start; gap: 12px; min-width: 0; min-height: 226px; padding: 16px; overflow: hidden; border: 1px solid #dfe4dc; border-radius: 8px; background: white; box-shadow: 0 8px 18px rgba(31,39,34,.045); }
    .account-card-access { border-color: #cddfce; background: linear-gradient(180deg, #ffffff 0%, #f7fbf5 100%); }
    .account-card-garmin { border-color: #cbdceb; background: linear-gradient(180deg, #ffffff 0%, #f4f9fd 100%); }
    .account-card-gpt { border-color: #e0d5c3; background: linear-gradient(180deg, #ffffff 0%, #fff8ef 100%); }
    .account-card-coach { border-color: #d3d9e8; background: linear-gradient(180deg, #ffffff 0%, #f7f8fc 100%); }
    .account-card-preferences { border-color: #d9d6c7; background: linear-gradient(180deg, #ffffff 0%, #faf9f3 100%); }
    .account-card-top { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: start; }
    .account-card-top h2 { margin: 1px 0 0; font-size: 18px; line-height: 1.18; }
    .account-card-icon { display: block; flex: 0 0 34px; align-self: start; justify-self: start; width: 34px; min-width: 34px; max-width: 34px; height: 34px; min-height: 34px; max-height: 34px; aspect-ratio: 1 / 1; border-radius: 8px; object-fit: contain; background: #ffffff; box-shadow: inset 0 0 0 1px rgba(207,224,211,.9); }
    .account-card-garmin .account-card-icon { box-shadow: inset 0 0 0 1px #c8dff2; }
    .account-card-gpt .account-card-icon { box-shadow: inset 0 0 0 1px #cfe9df; }
    .account-card-coach .account-card-icon { box-shadow: inset 0 0 0 1px #ccd5e7; }
    .account-card-coach .account-coach-avatar { border-radius: 8px; object-fit: cover; }
    .account-card-preferences .account-card-icon { box-shadow: inset 0 0 0 1px #ded9bd; }
    .account-danger-zone .account-card-icon { box-shadow: inset 0 0 0 1px #edc7c7; }
    .account-card-icon svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2.1; stroke-linecap: round; stroke-linejoin: round; }
    .account-coach-icon { display: inline-flex; align-items: center; justify-content: center; color: #30446b; }
    .account-coach-icon svg { fill: none; stroke: none; }
    .coach-icon-backdrop { fill: #eef3fb; }
    .coach-icon-head, .coach-icon-body { fill: #30446b; }
    .coach-icon-bubble { fill: #5d6f98; }
    .coach-icon-check { fill: none; stroke: #ffffff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
    .account-delete-icon { display: inline-flex; align-items: center; justify-content: center; color: #8f2e2e; }
    .account-delete-icon svg { fill: none; stroke: none; }
    .delete-icon-backdrop { fill: #fff0f0; }
    .delete-icon-bin { fill: #9b2d2d; }
    .delete-icon-lid, .delete-icon-handle, .delete-icon-line { fill: none; stroke: #9b2d2d; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
    .account-preferences-icon { display: inline-flex; align-items: center; justify-content: center; color: #746a2e; }
    .preferences-icon-backdrop { fill: #f6f1d9; }
    .preferences-icon-mark { fill: none; stroke: #746a2e; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
    .coach-settings-page { display: grid; gap: 16px; }
    .coach-settings-dialog { position: fixed; inset: var(--account-dialog-top, 136px) auto auto 50%; z-index: 101; width: min(430px, calc(100vw - 28px)); max-width: none; max-height: calc(100vh - var(--account-dialog-top, 136px) - 22px); margin: 0; padding: 0; border: 0; background: transparent; color: inherit; overflow: visible; transform: translateX(-50%); }
    .coach-settings-dialog::backdrop { background: rgba(10,24,18,.48); backdrop-filter: blur(2px); }
    .coach-settings-form { display: grid; gap: 0; }
    .coach-settings-card { box-sizing: border-box; max-height: calc(100vh - var(--account-dialog-top, 136px) - 22px); margin: 0; overflow: auto; border: 1px solid #d9e2d8; border-radius: 8px; background: #ffffff; color: #203028; box-shadow: 0 22px 58px rgba(31,39,34,.24); }
    .coach-settings-panel { display: grid; gap: 12px; padding: 16px; }
    .coach-settings-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
    .coach-settings-header > div { display: flex; align-items: center; gap: 9px; min-width: 0; }
    .coach-settings-header .account-card-icon { width: 64px; min-width: 64px; max-width: 64px; height: 64px; min-height: 64px; max-height: 64px; }
    .coach-settings-avatar { border-radius: 8px; object-fit: cover; }
    .coach-settings-identity-copy { display: grid; justify-items: start; gap: 6px; min-width: 0; }
    .coach-settings-avatar-change { color: #286a57; font-size: 13px; font-weight: 750; line-height: 1.25; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; white-space: nowrap; }
    .coach-settings-avatar-change:hover { color: #174f3f; }
    .coach-settings-avatar-change:focus-visible { border-radius: 3px; outline: 2px solid rgba(40,106,87,.24); outline-offset: 2px; }
    .coach-settings-header h2 { margin: 0; font-size: 18px; font-weight: 700; line-height: 1.2; }
    .coach-settings-header p { margin: 2px 0 0; color: #69766e; font-size: 12px; line-height: 1.25; }
    .coach-settings-close { position: relative; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 34px; min-width: 34px; height: 34px; min-height: 0; padding: 0; border-radius: 6px; font-size: 24px; font-weight: 500; line-height: 1; box-shadow: none; }
    @media (min-width: 761px) {
      .coach-settings-close { font-size: 0; }
      .coach-settings-close::before,
      .coach-settings-close::after { content: ""; position: absolute; left: 50%; top: 50%; width: 15px; height: 2px; border-radius: 999px; background: currentColor; transform-origin: center; }
      .coach-settings-close::before { transform: translate(-50%, -50%) rotate(45deg); }
      .coach-settings-close::after { transform: translate(-50%, -50%) rotate(-45deg); }
    }
    .coach-settings-close:focus { border-color: #9fbead; outline: 2px solid rgba(40,106,87,.18); outline-offset: 1px; }
    .coach-name-field { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 10px; align-items: center; }
    .coach-name-field label, .coach-fieldset legend { color: #405149; font-size: 14px; font-weight: 650; line-height: 1.25; }
    .coach-name-field input { width: 100%; max-width: 100%; height: 38px; box-sizing: border-box; padding-top: 7px; padding-bottom: 7px; font: inherit; font-weight: 600; }
    .coach-fieldset { display: grid; gap: 8px; min-width: 0; margin: 0; padding: 0; border: 0; }
    .coach-fieldset legend { padding: 0; }
    .coach-option-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; padding: 0; border: 0; border-radius: 6px; background: transparent; }
    .coach-option { position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: 0; min-height: 38px; padding: 0 7px; border: 1px solid #cbd4cb; border-radius: 6px; background: transparent; color: #56645c; cursor: pointer; text-align: center; box-shadow: none; transition: border-color .15s ease, background .15s ease, color .15s ease, box-shadow .15s ease; }
    .coach-option input { position: absolute; opacity: 0; pointer-events: none; }
    .coach-option:has(input:checked) { border-color: #286a57; background: #286a57; color: #ffffff; box-shadow: 0 6px 14px rgba(40,106,87,.14); }
    .coach-option strong { color: inherit; font-size: 14px; font-weight: 650; line-height: 1.12; overflow-wrap: anywhere; }
    .coach-choice-note { display: grid; align-items: center; min-height: 42px; padding: 9px 10px; border: 1px solid #dfe7dc; border-radius: 8px; background: #fbfcfb; color: #56645c; font-size: 12px; font-weight: 500; line-height: 1.3; }
    .coach-choice-note-text { display: none; }
    .coach-personality-field:has(.coach-option-neutral input:checked) .coach-choice-note-neutral,
    .coach-personality-field:has(.coach-option-direct input:checked) .coach-choice-note-direct,
    .coach-personality-field:has(.coach-option-supportive input:checked) .coach-choice-note-supportive,
    .coach-form-field:has(.coach-option-impersonal input:checked) .coach-choice-note-impersonal,
    .coach-form-field:has(.coach-option-masculine input:checked) .coach-choice-note-masculine,
    .coach-form-field:has(.coach-option-feminine input:checked) .coach-choice-note-feminine { display: block; }
    .coach-language-panel { padding-top: 12px; border-top: 0; background: linear-gradient(180deg, #fbfcfb 0%, #ffffff 100%); }
    .coach-language-panel .coach-fieldset { gap: 8px; }
    .actions.coach-settings-actions { position: sticky; bottom: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 8px; padding: 8px 16px 16px; border-top: 0; background: linear-gradient(180deg, rgba(255,255,255,.82) 0%, #ffffff 34%); }
    .actions.coach-settings-actions button { min-height: 42px; padding: 0 10px; font-weight: 700; }
    .actions.coach-settings-actions button:not(.secondary) { width: 100%; }
    .coach-wording-dialog { position: fixed; inset: 0; z-index: 100; box-sizing: border-box; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(21, 31, 25, .38); backdrop-filter: blur(2px); color: inherit; }
    .coach-wording-card { position: absolute; top: var(--account-dialog-top, 136px); left: 50%; display: grid; gap: 14px; box-sizing: border-box; width: min(430px, calc(100vw - 28px)); max-height: calc(100vh - var(--account-dialog-top, 136px) - 22px); margin: 0; padding: 18px; overflow: auto; border: 1px solid #d9e2db; border-radius: 8px; background: #ffffff; color: #203028; box-shadow: 0 22px 48px rgba(31,39,34,.24); transform: translateX(-50%); }
    .coach-wording-header { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: start; }
    .coach-wording-header h2 { margin: 1px 0 0; font-size: 21px; line-height: 1.2; }
    .coach-popup-options { display: grid; gap: 8px; }
    .coach-popup-option { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 16px; row-gap: 0; align-items: start; padding: 10px; border: 1px solid #dfe6df; border-radius: 8px; background: #fbfcfb; cursor: pointer; }
    @media (min-width: 761px) {
      .coach-popup-option { align-items: center; }
      .coach-popup-option input { -webkit-appearance: none; appearance: none; box-sizing: border-box; display: block; width: 18px; min-width: 18px; max-width: 18px; height: 18px; min-height: 18px; max-height: 18px; aspect-ratio: 1 / 1; margin: 0 0 0 2px; padding: 0; border: 2px solid #8aa096; border-radius: 50%; background: #ffffff; box-shadow: inset 0 0 0 4px #ffffff; cursor: pointer; }
      .coach-popup-option input:checked { border-color: #286a57; background: #286a57; }
      .coach-popup-option input:focus-visible { outline: 2px solid rgba(40,106,87,.2); outline-offset: 2px; }
    }
    .coach-popup-option:has(input:checked) { border-color: #286a57; background: #f0f7f2; }
    .coach-popup-option span { display: grid; gap: 3px; min-width: 0; }
    .coach-popup-option strong { color: #203028; font-size: 13px; line-height: 1.2; }
    .coach-popup-option small { color: #607067; font-size: 12px; line-height: 1.35; }
    .coach-popup-actions { justify-content: stretch; margin-top: 10px; }
    .coach-popup-actions button { width: 100%; min-height: 42px; font-size: 14px; font-weight: 850; }
    .account-chip { justify-self: end; max-width: 132px; overflow: hidden; border: 1px solid #d6ded4; border-radius: 999px; padding: 5px 8px; background: #eef2ee; color: #56645c; font-size: 12px; font-weight: 900; line-height: 1.1; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
    .account-chip.is-positive { border-color: #cfe0d3; background: #edf5ef; color: #286a57; }
    .account-chip.is-negative { border-color: #ebd5c4; background: #fff4eb; color: #8a4a22; }
    .account-chip.is-neutral { border-color: #c8dff2; background: #eef7ff; color: #316d8f; }
    .account-detail-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; min-height: 38px; padding: 9px 10px; border: 1px solid rgba(216,227,217,.9); border-radius: 8px; background: rgba(255,255,255,.72); }
    .account-detail-row span { color: #69766e; font-size: 12px; font-weight: 900; text-transform: uppercase; }
    .account-detail-row strong { color: #203028; font-size: 13px; line-height: 1.2; text-align: right; overflow-wrap: anywhere; }
    .account-detail-row.is-alert { border-color: #ead38d; background: #fff2cc; }
    .account-detail-row.is-alert span, .account-detail-row.is-alert strong { color: #7a520d; }
    .account-detail-row.account-detail-message { grid-template-columns: minmax(0, 1fr); }
    .account-detail-row.account-detail-message strong { text-align: left; }
    .account-coach-summary .account-coach-name { min-width: 0; color: #203028; font-size: 13px; font-weight: 900; line-height: 1.2; text-transform: none; overflow-wrap: anywhere; }
    .account-coach-summary strong { white-space: nowrap; }
    .account-preferences-list { display: grid; gap: 8px; }
    .account-garmin-auto-sync-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; min-height: 42px; padding: 8px 9px 8px 10px; border: 1px solid rgba(189,215,234,.95); border-radius: 8px; background: rgba(255,255,255,.72); }
    .account-garmin-auto-sync-label { min-width: 0; color: #405149; font-size: 12px; font-weight: 750; line-height: 1.3; }
    .account-garmin-auto-sync-toggle { position: relative; display: block; width: 46px; min-width: 46px; height: 28px; margin: 0; cursor: pointer; }
    .account-garmin-auto-sync-toggle input { -webkit-appearance: none; appearance: none; display: block; width: 46px; min-width: 46px; height: 28px; margin: 0; padding: 0; border: 1px solid #c8d5cc; border-radius: 999px; background: #e6ece8; box-shadow: inset 0 1px 2px rgba(31,39,34,.08); cursor: pointer; transition: border-color .15s ease, background .15s ease; }
    .account-garmin-auto-sync-toggle input::after { content: ""; display: block; width: 22px; height: 22px; margin: 2px; border-radius: 50%; background: #ffffff; box-shadow: 0 2px 5px rgba(31,39,34,.2); transition: transform .15s ease; }
    .account-garmin-auto-sync-toggle input:checked { border-color: #286a57; background: #286a57; }
    .account-garmin-auto-sync-toggle input:checked::after { transform: translateX(18px); }
    .account-garmin-auto-sync-toggle input:focus-visible { outline: 2px solid rgba(40,106,87,.22); outline-offset: 2px; }
    .account-ai-consent-form { display: grid; gap: 8px; min-height: 42px; padding: 8px 9px 9px 10px; border: 1px solid rgba(189,215,234,.95); border-radius: 8px; background: rgba(255,255,255,.72); }
    .account-ai-consent-control-row { position: relative; min-height: 28px; padding-right: 58px; }
    .account-ai-consent-control-row .account-garmin-auto-sync-label { display: block; padding-top: 6px; }
    .account-ai-consent-control-row .account-garmin-auto-sync-toggle { position: absolute; top: 0; right: 0; }
    .account-ai-consent-copy { display: grid; gap: 5px; min-width: 0; padding-top: 8px; border-top: 1px solid rgba(216,227,217,.86); }
    .account-ai-consent-copy p { margin: 0; color: #405149; font-size: 11.5px; line-height: 1.4; }
    .account-ai-consent-copy small { color: #607067; font-size: 10.5px; line-height: 1.4; }
    .account-ai-consent-copy small a { font-weight: 800; }
    .account-ai-consent-icon { display: inline-flex; align-items: center; justify-content: center; }
    .account-ai-consent-icon svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
    .account-preference-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; min-height: 42px; padding: 8px 9px 8px 10px; border: 1px solid rgba(216,227,217,.9); border-radius: 8px; background: rgba(255,255,255,.72); }
    @media (min-width: 761px) {
      .account-preference-row.account-theme-preference-row { display: none; }
    }
    .account-preference-label { min-width: 0; color: #69766e; font-size: 12px; font-weight: 900; line-height: 1.2; text-transform: uppercase; }
    .account-preference-switch { display: inline-grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3px; width: 180px; min-width: 180px; padding: 3px; border: 1px solid #d8dece; border-radius: 7px; background: rgba(255,255,255,.82); box-shadow: inset 0 1px 0 rgba(255,255,255,.72); }
    .account-preference-switch button { display: inline-flex; align-items: center; justify-content: center; min-width: 0; height: 28px; min-height: 0; padding: 0 8px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: #56645c; font: inherit; font-size: 12px; font-weight: 900; line-height: 1; box-shadow: none; cursor: pointer; }
    .account-preference-switch button:hover, .account-preference-switch button:focus { border-color: #c8d5cc; background: #f8faf7; color: #203028; outline: none; }
    .account-preference-switch button:focus-visible { outline: 2px solid rgba(40,106,87,.18); outline-offset: 1px; }
    .account-preference-switch button.is-active { border-color: #286a57; background: #286a57; color: #ffffff; }
    .account-automatic-reviews-form { display: flex; justify-content: flex-end; margin: 0; }
    .account-actions { margin-top: auto; }
    .account-actions .button, .account-actions button { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 0 12px; font-weight: 800; }
    .account-subscription-actions { gap: 8px; align-items: center; }
    .account-trial-form { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
    .account-subscription-actions .button, .account-subscription-actions button { min-width: 197px; }
    .account-trial-note { color: #69766e; font-size: 12px; font-weight: 800; line-height: 1.2; white-space: nowrap; }
    .account-actions .is-disabled { position: relative; gap: 6px; border: 1px solid #e0e6e1; background: #f7f9f7; color: #9aa59d; box-shadow: inset 0 0 0 1px rgba(255,255,255,.75); cursor: not-allowed; }
    .account-actions .is-disabled::before { content: "!"; display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border: 1px solid #d9dfd8; border-radius: 999px; background: #ffffff; color: #9aa59d; font-size: 11px; font-weight: 900; line-height: 1; }
    .account-actions .is-disabled:hover::after, .account-actions .is-disabled:focus::after { content: attr(data-tooltip); position: absolute; bottom: calc(100% + 7px); left: 50%; z-index: 3; width: max-content; max-width: 220px; transform: translateX(-50%); padding: 6px 8px; border: 1px solid #dfe4dc; border-radius: 6px; background: #ffffff; color: #56645c; font-size: 11px; font-weight: 800; line-height: 1.25; text-align: center; box-shadow: 0 8px 18px rgba(31,39,34,.12); }
    .billing-currency-row { width: 100%; max-width: 760px; margin: 0 auto 24px; display: flex; justify-content: center; align-items: center; }
    .billing-plan-deck { width: 100%; max-width: 1120px; margin: 2px auto 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
    .billing-period-row { width: 100%; max-width: 760px; margin: 24px auto 0; display: flex; justify-content: center; align-items: center; }
    .billing-period-switch, .billing-currency-switch { display: inline-grid; gap: 4px; justify-self: center; padding: 4px; border: 1px solid #d7e2d7; border-radius: 999px; background: #ffffff; box-shadow: 0 10px 24px rgba(31,39,34,.07); }
    .billing-period-switch { grid-template-columns: repeat(2, minmax(92px, 1fr)); min-width: 250px; }
    .billing-currency-switch { grid-template-columns: repeat(var(--billing-currency-count, 3), minmax(56px, 1fr)); min-width: 0; }
    .billing-period-switch button, .billing-currency-switch button { min-height: 34px; border-radius: 999px; border-color: transparent; background: transparent; color: #56645c; font-size: 13px; font-weight: 900; box-shadow: none; }
    .billing-period-switch button.is-active, .billing-currency-switch button.is-active { border-color: #286a57; background: #286a57; color: #ffffff; }
    .billing-plan-card { position: relative; display: grid; align-content: start; gap: 14px; min-height: 0; padding: 22px; overflow: hidden; border: 1px solid #d9e2d8; border-radius: 8px; background: #ffffff; box-shadow: 0 18px 42px rgba(31,39,34,.10); }
    .billing-plan-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; background: #286a57; }
    .billing-plan-card.is-pro { border-color: #c8dff2; background: linear-gradient(180deg, #ffffff 0%, #f4f9fd 72%, #fff7ea 100%); box-shadow: 0 22px 52px rgba(49,109,143,.15); }
    .billing-plan-card.is-pro::before { background: #316d8f; }
    .billing-plan-card.is-elite { border-color: #dfce87; background: linear-gradient(180deg, #ffffff 0%, #fffbef 68%, #f5f9e9 100%); box-shadow: 0 22px 52px rgba(139,105,24,.16); }
    .billing-plan-card.is-elite::before { background: #9a7316; }
    .billing-plan-top { display: grid; gap: 10px; min-width: 0; }
    .billing-plan-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; min-width: 0; }
    .billing-plan-name { display: flex; align-items: center; gap: 10px; min-width: 0; }
    .billing-plan-mark { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 8px; background: #286a57; color: #ffffff; }
    .billing-plan-card.is-pro .billing-plan-mark { background: #316d8f; }
    .billing-plan-card.is-elite .billing-plan-mark { background: #9a7316; }
    .billing-plan-mark svg { width: 17px; height: 17px; display: block; stroke: currentColor; }
    .billing-plan-name h2 { margin: 0; color: #151c19; font-size: 31px; line-height: 1; }
    .billing-plan-card .account-chip { position: static; max-width: none; }
    .billing-plan-summary { margin: 0; color: #56645c; font-size: 13px; font-weight: 700; line-height: 1.4; }
    .billing-plan-divider { height: 1px; background: #e5ebe4; }
    .billing-plan-primary-price { display: grid; gap: 3px; }
    .billing-plan-primary-price strong { color: #151c19; font-size: 36px; line-height: 1; letter-spacing: 0; }
    .billing-plan-primary-price span { color: #69766e; font-size: 13px; font-weight: 800; }
    .billing-store-price { display: inline-flex; align-items: center; min-height: 1em; min-width: 72px; }
    .billing-store-price[hidden] { display: none; }
    .billing-plan-primary-price .billing-store-price { min-height: 36px; min-width: 112px; }
    .billing-price-spinner { display: inline-block; width: .72em; height: .72em; border: 2px solid rgba(40,106,87,.22); border-top-color: #286a57; border-radius: 999px; animation: billing-price-spin .75s linear infinite; }
    .billing-plan-card.is-pro .billing-price-spinner { border-color: rgba(49,109,143,.22); border-top-color: #316d8f; }
    .billing-plan-card.is-elite .billing-price-spinner { border-color: rgba(154,115,22,.22); border-top-color: #9a7316; }
    @keyframes billing-price-spin { to { transform: rotate(360deg); } }
    .billing-plan-prices { display: grid; }
    .billing-plan-checkout-option { margin: 0; }
    .billing-plan-checkout-option[hidden] { display: none; }
    .billing-plan-checkout-option button, button.billing-plan-checkout-option { width: 100%; min-height: 34px; padding: 0 9px; font-weight: 850; }
    .billing-plan-checkout-option button:not(.secondary), button.billing-plan-checkout-option:not(.secondary) { border-color: #286a57; background: #286a57; color: #ffffff; box-shadow: 0 8px 18px rgba(40,106,87,.18); }
    .billing-plan-card.is-pro .billing-plan-checkout-option button:not(.secondary), .billing-plan-card.is-pro button.billing-plan-checkout-option:not(.secondary) { border-color: #316d8f; background: #316d8f; box-shadow: 0 8px 18px rgba(49,109,143,.18); }
    .billing-plan-card.is-elite .billing-plan-checkout-option button:not(.secondary), .billing-plan-card.is-elite button.billing-plan-checkout-option:not(.secondary) { border-color: #9a7316; background: #9a7316; box-shadow: 0 8px 18px rgba(139,105,24,.2); }
    .billing-plan-feature-block { display: grid; gap: 9px; margin-top: 0; }
    .billing-plan-feature-block h3 { margin: 0; color: #203028; font-size: 12px; font-weight: 900; line-height: 1.2; }
    .billing-plan-features { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
    .billing-plan-features li { display: block; position: relative; min-height: 18px; padding-left: 26px; color: #56645c; font-size: 13px; font-weight: 700; line-height: 1.25; }
    .billing-plan-features li::before { content: "✓"; display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 999px; background: #edf5ef; color: #286a57; font-size: 11px; font-weight: 900; }
    .billing-plan-features li::before { position: absolute; left: 0; top: -.5px; }
    .billing-plan-card.is-pro .billing-plan-features li::before { background: #eaf5ff; color: #316d8f; }
    .billing-plan-card.is-elite .billing-plan-features li::before { background: #fff4cf; color: #8b6712; }
    .billing-difference-word { display: inline; padding: 1px 4px; border-radius: 5px; background: #eef7ff; color: #255b78; font-weight: 900; }
    .billing-plan-return { justify-self: center; color: #286a57; font-size: 13px; font-weight: 850; text-decoration: none; }
    .billing-plan-return:hover, .billing-plan-return:focus { text-decoration: underline; }
    .billing-legal-links { justify-self: center; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 10px; margin: 0; color: #69766e; font-size: 12px; font-weight: 800; line-height: 1.35; text-align: center; }
    .billing-legal-links a { color: #286a57; text-decoration: underline; text-underline-offset: 2px; }
    .billing-legal-links a:hover, .billing-legal-links a:focus { color: #1f5949; }
    .account-danger-zone { display: grid; align-content: start; gap: 12px; min-width: 0; min-height: 226px; padding: 16px; border: 1px solid #ead1d1; border-radius: 8px; background: #fffafa; box-shadow: 0 8px 18px rgba(31,39,34,.045); }
    .account-danger-zone .account-card-top { grid-template-columns: auto minmax(0, 1fr); }
    .account-danger-zone h2 { margin: 2px 0 0; font-size: 18px; }
    .account-danger-zone form { margin: auto 0 0; }
    .mini-table th, .mini-table td { font-size: 13px; }
    .mini-table .empty-row, .plan-table .empty-row { color: #69766e; text-align: center; }
    .admin-table th, .admin-table td { font-size: 13px; vertical-align: middle; }
    .admin-table th { padding-right: 6px; padding-left: 6px; }
    .admin-table { table-layout: fixed; }
    .admin-table .col-email { width: 13%; }
    .admin-table .col-registered { width: 9%; }
    .admin-table .col-email-delivery { width: 15%; }
    .admin-table .col-subscription { width: 18%; }
    .admin-table .col-garmin { width: 9%; }
    .admin-table .col-admin { width: 5%; }
    .admin-table .col-last-used { width: 10%; }
    .admin-table .col-last-gpt { width: 10%; }
    .admin-table .col-action { width: 11%; }
    .admin-table select { min-width: 112px; }
    .admin-table .admin-status-cell select { min-width: 0; }
    .admin-table .email-cell { overflow-wrap: anywhere; }
    .admin-table .garmin-status-cell { overflow-wrap: anywhere; }
    @media (min-width: 761px) {
      .admin-table .admin-status-heading, .admin-table .admin-status-cell { padding-right: 4px; padding-left: 4px; }
      .admin-table .admin-status-cell select { padding-right: 2px; padding-left: 2px; font-size: 12px; }
      .admin-table .garmin-status-cell { padding-right: 6px; padding-left: 6px; }
    }
    .email-verification-state { display: block; margin-top: 3px; font-size: 12px; color: #69766e; }
    .admin-table .timestamp-cell { min-width: 88px; white-space: nowrap; }
    .timestamp-time { display: block; color: #69766e; margin-top: 2px; }
    .admin-table .admin-status-cell { width: 72px; }
    .admin-table .action-cell { min-width: 158px; }
    .admin-row-actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
    .admin-row-actions button { flex: 0 0 auto; height: 30px; min-height: 30px; font-size: 12px; }
    .admin-row-actions .secondary { width: 92px; min-width: 92px; padding: 0 8px; }
    .admin-row-actions .icon-button { width: 30px; min-width: 30px; height: 30px; padding: 0; font-size: 14px; }
    .admin-row-actions .delete-button-label { display: none; }
    .admin-row-actions .delete-button-icon { display: inline; }
    .admin-trial-dialog-card { gap: 12px; }
    .admin-trial-dialog-target { margin: -4px 0 2px; color: inherit; font-size: 13px; font-weight: 800; opacity: .72; overflow-wrap: anywhere; }
    .admin-trial-dialog-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .admin-trial-dialog-field { display: grid; gap: 5px; min-width: 0; color: inherit; font-size: 12px; font-weight: 850; }
    .admin-trial-dialog-field > span { opacity: .72; }
    .admin-trial-dialog-field input, .admin-trial-dialog-field select { width: 100%; min-width: 0; }
    .admin-subscription-display { display: grid; gap: 3px; min-width: 140px; }
    .admin-subscription-display strong { color: #203028; font-size: 13px; line-height: 1.2; }
    .admin-subscription-display small { color: #69766e; font-size: 12px; line-height: 1.25; white-space: normal; overflow-wrap: anywhere; }
    .admin-tabs { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; border-bottom: 1px solid #dfe7dc; }
    .admin-tab { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 0 12px; border: 1px solid transparent; border-bottom: 0; border-radius: 8px 8px 0 0; color: #56645c; font-weight: 800; text-decoration: none; }
    .admin-tab-label-mobile { display: none; }
    .admin-tab:hover { color: #286a57; background: #f8faf7; }
    .admin-tab.is-active { border-color: #dfe7dc; background: white; color: #1f2722; }
    .usage-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 16px; }
    .usage-stat { display: grid; gap: 5px; min-height: 78px; padding: 12px; border: 1px solid #dfe7dc; border-radius: 8px; background: #fbfcfa; }
    .usage-stat span { color: #69766e; font-size: 11px; font-weight: 900; text-transform: uppercase; }
    .usage-stat strong { color: #203028; font-size: 22px; line-height: 1; overflow-wrap: anywhere; }
    .usage-stat small { color: #56645c; font-size: 12px; line-height: 1.25; }
    .usage-report-section { margin-top: 16px; }
    .usage-report-section h2 { margin: 0 0 10px; font-size: 18px; }
    .usage-table th, .usage-table td { white-space: nowrap; }
    .usage-table tbody td { font-size: 12px; line-height: 1.25; }
    .usage-table .wide-cell { min-width: 190px; white-space: normal; overflow-wrap: anywhere; }
    .usage-table .number-heading, .usage-table .number-cell { text-align: right; font-variant-numeric: tabular-nums; }
    .table-scroll.delivery-failures-table-scroll { overflow: visible; }
    .delivery-failures-table { width: 100%; table-layout: fixed; }
    .delivery-failures-table .col-recipient { width: 14%; }
    .delivery-failures-table .col-status { width: 12%; }
    .delivery-failures-table .col-smtp-status { width: 8%; }
    .delivery-failures-table .col-diagnostic { width: 32%; }
    .delivery-failures-table .col-event { width: 14%; }
    .delivery-failures-table .col-account-result { width: 20%; }
    .delivery-failures-table th, .delivery-failures-table td {
      min-width: 0;
      white-space: normal;
      overflow-wrap: anywhere;
      word-break: break-word;
    }
    .delivery-failures-table .timestamp-cell { min-width: 0; white-space: normal; }
    .delivery-failures-table a { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; overflow-wrap: anywhere; word-break: break-all; }
    .usage-user-row, .usage-purpose-row { cursor: pointer; }
    .usage-user-row:hover td, .usage-purpose-row:hover td { background: #f8faf7; }
    .usage-user-cell, .usage-purpose-cell { display: flex; align-items: center; gap: 8px; min-width: 0; }
    .usage-expand-button { flex: 0 0 auto; width: 24px; height: 24px; border: 1px solid #ccd7ce; border-radius: 6px; background: #fff; color: #203028; font-weight: 900; line-height: 1; }
    .usage-expand-button:hover { border-color: #286a57; color: #286a57; }
    .usage-user-email, .usage-purpose-label { min-width: 0; overflow-wrap: anywhere; }
    .usage-user-detail-row[hidden], .usage-purpose-detail-row[hidden] { display: none; }
    .usage-user-detail-cell, .usage-purpose-detail-cell { padding: 0 9px 12px; background: #fbfcfa; }
    .usage-detail-motion { overflow: hidden; }
    .usage-detail-table { margin: 0; background: #fbfcfa; }
    .usage-detail-table th, .usage-detail-table td { font-size: 12px; background: #fbfcfa; }
    .usage-error-text { max-width: 360px; white-space: normal; overflow-wrap: anywhere; }
    .maintenance-admin-status { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
    .maintenance-admin-status > div { display: grid; gap: 5px; min-width: 0; }
    .maintenance-admin-status form { flex: 0 0 auto; margin: 0; }
    .maintenance-admin-eyebrow { color: #69766e; font-size: 11px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
    .maintenance-admin-status h2, .maintenance-admin-form h2, .maintenance-admin-preview h2 { margin: 0; font-size: 18px; }
    .maintenance-admin-window { display: flex; align-items: baseline; gap: 6px; min-width: 0; color: #56645c; font-size: 13px; line-height: 1.4; flex-wrap: wrap; }
    .maintenance-admin-form { display: grid; gap: 14px; }
    .maintenance-admin-form > div > p { margin: 5px 0 0; color: #69766e; font-size: 13px; line-height: 1.4; }
    .maintenance-admin-form form { display: grid; gap: 12px; }
    .maintenance-admin-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .maintenance-admin-field { min-width: 0; margin: 0; padding: 0; border: 0; }
    .maintenance-admin-field legend { width: 100%; margin: 0; padding: 0; color: #415047; font-size: 13px; font-weight: 700; }
    .maintenance-admin-picker-parts { display: grid; grid-template-columns: minmax(0, 3fr) minmax(8ch, 2fr); gap: 8px; }
    .maintenance-admin-picker-parts input { min-width: 0; min-inline-size: 0; margin-top: 5px; }
    @media (max-width: 760px) {
      body.theme-dark.portal-page .maintenance-admin-field legend { color: rgba(238,247,239,.68); }
    }
    @media (max-width: 760px) and (prefers-color-scheme: dark) {
      body:not(.theme-light).portal-page .maintenance-admin-field legend { color: rgba(238,247,239,.68); }
    }
    .maintenance-admin-preview { margin-top: 16px; }
    .maintenance-admin-preview > h2 { margin-bottom: 10px; }
    .maintenance-preview-shell { overflow: hidden; border: 1px solid #e1c36d; border-radius: 8px; }
    .maintenance-preview-shell .maintenance-announcement { margin: 0; border-bottom: 0; box-shadow: none; }
    .maintenance-preview-shell .maintenance-announcement-close[aria-disabled="true"] { pointer-events: none; }
    .maintenance-preview-actions { align-items: center; margin-top: 10px; }
    .maintenance-preview-actions > span { color: #56645c; font-size: 13px; font-weight: 800; line-height: 32px; }
    .maintenance-preview-actions .maintenance-preview-language { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 32px; box-sizing: border-box; padding: 0 10px; background: #286a57; color: #fff; font-size: 12px; font-weight: 900; line-height: 1; }
    .maintenance-preview-actions .maintenance-preview-language:hover,
    .maintenance-preview-actions .maintenance-preview-language:focus-visible { background: #205747; color: #fff; outline: none; }
    .maintenance-audit-section .usage-table td { white-space: nowrap; }
    .admin-sort { display: inline-flex; align-items: center; gap: 2px; color: inherit; white-space: nowrap; }
    .admin-sort-label { color: inherit; text-decoration: none; }
    .admin-sort-label.active { text-decoration: underline; text-underline-offset: 3px; }
    .admin-sort-arrows { display: inline-flex; gap: 1px; }
    .admin-sort-arrow { color: #9aa59d; text-decoration: none; font-size: 11px; line-height: 1; padding: 0 1px; }
    .admin-sort-arrow.active { color: #1f2722; font-weight: 700; }
    .admin-sort-arrow:hover { color: #286a57; }
    label { display: block; font-size: 13px; font-weight: 700; margin: 10px 0 5px; color: #415047; }
    input, textarea, select { width: 100%; box-sizing: border-box; border: 1px solid #cbd4cb; border-radius: 6px; padding: 9px 10px; color: #203028; font: inherit; background: white; }
    input, select { height: var(--control-height); padding: var(--control-padding-y) var(--control-padding-x); }
    input[type="date"] { display: block; min-width: 0; min-inline-size: 0; max-width: 100%; inline-size: 100%; }
    body:is(.ios-mobile,.android-mobile) input[type="date"] { -webkit-appearance: none; appearance: none; }
    body:is(.ios-mobile,.android-mobile) input[type="date"], body:is(.ios-mobile,.android-mobile) input[type="time"], body:is(.ios-mobile,.android-mobile) input[type="datetime-local"] { color-scheme: light; }
    body:is(.ios-mobile,.android-mobile).theme-dark input[type="date"], body:is(.ios-mobile,.android-mobile).theme-dark input[type="time"], body:is(.ios-mobile,.android-mobile).theme-dark input[type="datetime-local"] { color-scheme: dark; }
    @media (prefers-color-scheme: dark) {
      body:is(.ios-mobile,.android-mobile):not(.theme-light) input[type="date"], body:is(.ios-mobile,.android-mobile):not(.theme-light) input[type="time"], body:is(.ios-mobile,.android-mobile):not(.theme-light) input[type="datetime-local"] { color-scheme: dark; }
    }
    input[type="date"]::-webkit-date-and-time-value { min-width: 0; color: inherit; text-align: left; }
    input[type="checkbox"] { width: auto; height: auto; padding: 0; }
    input[type="hidden"] { height: auto; }
    textarea { min-height: 76px; resize: vertical; }
    button, .button { display: inline-block; border: 0; background: #286a57; color: white; border-radius: 6px; padding: 7px 11px; font: inherit; line-height: 1.2; text-decoration: none; cursor: pointer; }
    .link-button { background: transparent; color: #286a57; border: 0; padding: 0; text-decoration: underline; }
    form[action$="/intro/show"] .link-button { font-size: 12px; line-height: 1.2; }
    button:disabled, textarea:disabled { opacity: .72; cursor: not-allowed; }
    .button-spinner { display: none; width: 14px; height: 14px; margin-right: 8px; border: 2px solid rgba(255,255,255,.5); border-top-color: white; border-radius: 50%; vertical-align: -2px; animation: spin .8s linear infinite; }
    button.loading { cursor: wait; }
    button.loading .button-spinner { display: inline-block; }
    .plan-calendar-nav-feedback { position: relative; }
    .plan-calendar-nav-overlay { position: absolute; inset: 0; z-index: 30; display: grid; place-items: center; box-sizing: border-box; border-radius: inherit; background: rgba(255,255,255,.94); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .08s ease; }
    .plan-calendar-nav-feedback.is-plan-calendar-nav-loading > .plan-calendar-nav-overlay { opacity: 1; visibility: visible; }
    .plan-calendar-nav-spinner { width: 16px; height: 16px; box-sizing: border-box; border: 2px solid rgba(40,106,87,.24); border-top-color: #286a57; border-radius: 50%; animation: spin .7s linear infinite; }
    @media (max-width: 760px) and (prefers-color-scheme: dark) {
      body.portal-page:not(.theme-light) .plan-calendar-nav-overlay { background: rgba(20,49,40,.94); }
      body.portal-page:not(.theme-light) .plan-calendar-nav-spinner { border-color: rgba(255,255,255,.3); border-top-color: #fff; }
    }
    @media (max-width: 760px) {
      body.theme-dark.portal-page .plan-calendar-nav-overlay { background: rgba(20,49,40,.94); }
      body.theme-dark.portal-page .plan-calendar-nav-spinner { border-color: rgba(255,255,255,.3); border-top-color: #fff; }
    }
    @keyframes spin { to { transform: rotate(360deg); } }
    .secondary { background: #eef2ee; color: #203028; border: 1px solid #ccd7ce; }
    .danger { background: #9b2d2d; }
    .danger:hover, .danger:focus { background: #842525; }
    .account-panel-description { margin: 4px 0 12px; color: #69766e; font-size: 12px; line-height: 1.4; }
    .account-status-positive { color: #1d6b3a; }
    .account-status-negative { color: #9b2d2d; }
    .muted { color: #69766e; }
    .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
    .athlete-destination-navigation.training-progress-period-selector {
      --progress-surface: #ffffff;
      --progress-surface-soft: #f3f7f3;
      --progress-border: #dce6dd;
      --progress-muted: #66756d;
      --progress-accent: #286a57;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      width: min(100%, 540px);
      margin: 0 auto 14px;
    }
    @media (max-width: 760px) {
      body.theme-dark.portal-page .athlete-destination-navigation {
        --progress-surface: rgba(17,39,31,.95);
        --progress-surface-soft: rgba(255,255,255,.055);
        --progress-border: rgba(255,255,255,.12);
        --progress-muted: rgba(238,247,239,.62);
        --progress-accent: #c2e084;
      }
    }

/* Calendar-year Progress view. */
.training-progress-period-selector {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: min(100%, 480px);
}
.training-progress-year-state,
.training-progress-mobile-year-state {
  color: var(--progress-muted);
  font-size: 10px;
  font-weight: 800;
  line-height: 1.25;
}
.training-progress-week-nav.training-progress-week-nav-desktop > div {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0;
}
.training-progress-year-period {
  display: inline-flex;
  flex: 0 1 auto;
  flex-direction: column;
  align-items: center;
  gap: 1px;
  min-width: 0;
  text-align: center;
}
.training-progress-year-period > strong {
  display: inline-flex;
  align-items: center;
}
.training-progress-period-separator {
  flex: 0 0 auto;
  margin: 0 12px;
  color: var(--progress-muted);
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1;
}
.training-progress-week-nav-desktop .training-progress-current {
  align-self: stretch;
  display: inline-flex;
  align-items: center;
  min-height: 24px;
}
.training-progress-year-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
}
.training-progress-year-kpis > div {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--progress-border);
  border-radius: 14px;
  background: var(--progress-surface-soft);
}
.training-progress-year-kpis dt {
  color: var(--progress-muted);
  font-size: 10px;
  font-weight: 850;
  line-height: 1.2;
  text-transform: uppercase;
}
.training-progress-year-kpis dd {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px;
  margin: 6px 0 0;
  color: var(--progress-text);
  font-size: 21px;
  font-weight: 950;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}
.training-progress-year-kpis dd small {
  color: var(--progress-accent);
  font-size: 11px;
  font-weight: 900;
}
.training-progress-year-coverage-note {
  margin: 12px 0 0;
  color: var(--progress-muted);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.4;
}
.training-progress-year-metric-toggle {
  display: inline-grid;
  grid-template-columns: repeat(3, auto);
  gap: 2px;
  padding: 2px;
  border: 1px solid var(--progress-border);
  border-radius: 10px;
  background: var(--progress-surface-soft);
}
.training-progress-year-metric-toggle button {
  min-height: 30px;
  padding: 0 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--progress-muted);
  font: inherit;
  font-size: 10px;
  font-weight: 900;
  cursor: pointer;
}
.training-progress-year-metric-toggle button.is-active {
  background: var(--progress-accent);
  color: var(--progress-surface);
}
.training-progress-year-metric-toggle button:disabled {
  opacity: .45;
  cursor: not-allowed;
}
.training-progress-year-metric-toggle button:focus-visible,
.training-progress-year-month:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--progress-accent) 35%, transparent);
  outline-offset: 2px;
}
.training-progress-year-chart {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: end;
  gap: 7px;
  min-height: 210px;
  padding: 14px 8px 0;
  border-bottom: 1px solid var(--progress-border);
}
.training-progress-year-month {
  display: grid;
  grid-template-rows: 154px auto auto;
  gap: 5px;
  min-width: 0;
  padding: 0 1px 7px;
  border: 0;
  border-radius: 8px 8px 0 0;
  background: transparent;
  color: var(--progress-text);
  font: inherit;
  cursor: pointer;
}
.training-progress-year-month:hover,
.training-progress-year-month[aria-pressed="true"] {
  background: color-mix(in srgb, var(--progress-accent) 8%, transparent);
}
.training-progress-year-month-plot {
  position: relative;
  display: block;
  align-self: stretch;
}
.training-progress-year-month-stack {
  position: absolute;
  right: 8%;
  bottom: 0;
  left: 8%;
  display: flex;
  flex-direction: column-reverse;
  height: max(2px, var(--year-month-height));
  overflow: hidden;
  border-radius: 5px 5px 2px 2px;
  background: #dfe8e1;
}
.training-progress-year-month-stack > span {
  flex: 0 0 var(--year-segment);
  min-height: 3px;
  box-sizing: border-box;
  background: var(--year-sport-color, #59656b);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.9),
    inset 0 -1px 0 rgba(15,39,31,.25);
}
[data-active-year-metric="time"] [data-year-metric-panel]:not([data-year-metric-panel="time"]),
[data-active-year-metric="sessions"] [data-year-metric-panel]:not([data-year-metric-panel="sessions"]),
[data-active-year-metric="distance"] [data-year-metric-panel]:not([data-year-metric-panel="distance"]) {
  display: none;
}
[data-active-year-metric="time"] .training-progress-year-month-sport:not([data-year-sport-metrics~="time"]),
[data-active-year-metric="sessions"] .training-progress-year-month-sport:not([data-year-sport-metrics~="sessions"]),
[data-active-year-metric="distance"] .training-progress-year-month-sport:not([data-year-sport-metrics~="distance"]) {
  display: none;
}
.training-progress-year-month.is-future { opacity: .42; cursor: default; }
.training-progress-year-month.is-future .training-progress-year-month-plot {
  background: repeating-linear-gradient(-45deg, transparent 0 5px, color-mix(in srgb, var(--progress-muted) 14%, transparent) 5px 6px);
}
.training-progress-year-month.is-unknown .training-progress-year-month-stack {
  background: repeating-linear-gradient(45deg, #d7dfd9 0 4px, #bfcac2 4px 7px);
}
.training-progress-year-month.is-cutoff .training-progress-year-month-stack {
  outline: 2px dashed var(--progress-accent);
  outline-offset: 2px;
}
.training-progress-year-month-label {
  overflow: hidden;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  text-overflow: ellipsis;
}
.training-progress-year-month-state {
  overflow: hidden;
  color: var(--progress-muted);
  font-size: 7px;
  font-weight: 800;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.training-progress-year-month-detail {
  min-height: 164px;
  margin: 14px 0 0;
}
.training-progress-year-month-panel[hidden] {
  display: none;
}
.training-progress-year-month-panel {
  padding: 16px;
  border: 1px solid var(--progress-border);
  border-radius: 16px;
  background: var(--progress-surface-soft);
  color: var(--progress-text);
}
.training-progress-year-month-panel-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  background: transparent;
}
.training-progress-year-month-panel-heading > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.training-progress-year-month-panel-heading time {
  color: var(--progress-text);
  font-size: 17px;
  font-weight: 950;
  line-height: 1.1;
}
.training-progress-year-month-panel-heading > div > span {
  color: var(--progress-muted);
  font-size: 9px;
  font-weight: 850;
  line-height: 1.2;
  text-transform: uppercase;
}
.training-progress-year-month-panel-heading > strong {
  flex: 0 0 auto;
  max-width: 70%;
  overflow: hidden;
  color: var(--progress-accent);
  font-size: 18px;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.training-progress-year-month-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 14px 0 0;
}
.training-progress-year-month-kpis > div {
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid var(--progress-border);
  border-radius: 11px;
  background: var(--progress-surface);
}
.training-progress-year-month-kpis dt {
  color: var(--progress-muted);
  font-size: 8px;
  font-weight: 850;
  line-height: 1.15;
  text-transform: uppercase;
}
.training-progress-year-month-kpis dd {
  min-width: 0;
  margin: 5px 0 0;
  color: var(--progress-text);
  font-size: 13px;
  font-weight: 950;
  line-height: 1.25;
  font-variant-numeric: tabular-nums;
}
.training-progress-year-month-execution dd {
  display: flex;
  flex-wrap: wrap;
  gap: 3px 8px;
  font-size: 10px;
}
.training-progress-year-month-execution dd > span {
  display: inline-flex;
  align-items: baseline;
  gap: 3px;
  color: var(--progress-muted);
}
.training-progress-year-month-execution dd b {
  color: var(--progress-text);
  font-size: 12px;
}
.training-progress-year-month-sports {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 7px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}
.training-progress-year-month-sports:empty {
  display: none;
}
.training-progress-year-month-sport {
  --year-sport-color: #89928e;
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid color-mix(in srgb, var(--year-sport-color) 58%, var(--progress-border));
  border-radius: 11px;
  background: color-mix(in srgb, var(--year-sport-color) 5%, var(--progress-surface));
}
.training-progress-year-month-swatch {
  width: 14px;
  height: 14px;
  box-sizing: border-box;
  border: 2px solid var(--progress-surface);
  border-radius: 50%;
  background: var(--year-sport-color);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--year-sport-color) 82%, var(--progress-text));
}
.training-progress-year-month-sport > strong {
  min-width: 0;
  overflow: hidden;
  font-size: 11px;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.training-progress-year-month-sport-value {
  color: var(--progress-text);
  font-size: 12px;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.training-progress-year-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--progress-border);
  border-radius: 12px;
}
.training-progress-year-table-wrap table {
  width: 100%;
  border-collapse: collapse;
  color: var(--progress-text);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}
.training-progress-year-table-wrap caption {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}
.training-progress-year-table-wrap th,
.training-progress-year-table-wrap td {
  padding: 8px;
  border-bottom: 1px solid var(--progress-border);
  text-align: right;
  white-space: nowrap;
}
.training-progress-year-table-wrap th:first-child { text-align: left; }
.training-progress-year-table-wrap thead th {
  color: var(--progress-muted);
  font-size: 8px;
  text-transform: uppercase;
}
.training-progress-year-family + .training-progress-year-family {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--progress-border);
}
.training-progress-year-family-heading {
  margin: 0 0 10px;
}
.training-progress-year-family-heading h3 {
  margin: 0;
  color: var(--progress-muted);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.training-progress-year-family-summary {
  margin: 3px 0 0;
  color: var(--progress-muted);
  font-size: 10px;
  font-weight: 750;
  line-height: 1.3;
}
.training-progress-year-sport-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.training-progress-year-sport-card {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--progress-border);
  border-radius: 15px;
  background: var(--progress-surface-soft);
}
.training-progress-year-sport-card.is-primary {
  border-color: color-mix(in srgb, var(--progress-accent) 45%, var(--progress-border));
}
.training-progress-year-sport-heading {
  display: flex;
  align-items: center;
  gap: 8px;
}
.training-progress-year-sport-heading > span,
.training-progress-year-sport-heading .training-progress-sport-icon,
.training-progress-year-sport-heading .plan-activity-icon {
  width: 28px;
  height: 28px;
}
.training-progress-year-sport-heading > div {
  min-width: 0;
}
.training-progress-year-sport-heading h4 {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  color: var(--progress-text);
  font-size: 14px;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.training-progress-year-sport-card dl {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
  margin: 12px 0;
}
.training-progress-year-sport-card dt {
  overflow: hidden;
  color: var(--progress-muted);
  font-size: 7px;
  font-weight: 850;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}
.training-progress-year-sport-card dd {
  overflow: hidden;
  margin: 3px 0 0;
  color: var(--progress-text);
  font-size: 10px;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.training-progress-year-sport-card dd small {
  display: block;
  overflow: hidden;
  margin-top: 2px;
  color: var(--progress-muted);
  font-size: 7px;
  font-weight: 800;
  text-overflow: ellipsis;
}
.training-progress-year-sport-strip {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: end;
  gap: 2px;
  height: 28px;
}
.training-progress-year-sport-strip span {
  height: max(2px, var(--year-sport-month));
  border-radius: 2px 2px 0 0;
  background: var(--progress-accent);
  opacity: .8;
}
.training-progress-page .training-progress-status-list {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 15px;
}
.training-progress-page .training-progress-status-list li {
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid transparent;
  border-radius: 10px;
  line-height: 1.2;
}
.training-progress-page .training-progress-status-list li.is-completed {
  --training-progress-status-accent: #286a57;
  border-color: #c7dfcd;
  background: #e5f4e9;
  color: #19362d;
}
.training-progress-page .training-progress-status-list li.is-partial {
  --training-progress-status-accent: #8a5b00;
  border-color: #ead38d;
  background: #fff2cc;
  color: #3d3218;
}
.training-progress-page .training-progress-status-list li.is-skipped {
  --training-progress-status-accent: #9d1f5d;
  border-color: #ef9ec7;
  background: #fde7f1;
  color: #462735;
}
.training-progress-page .training-progress-status-list li.is-unplanned {
  --training-progress-status-accent: #7c4d25;
  border-color: #dcc6b4;
  background: #f1e7de;
  color: #3d3026;
}
.training-progress-page .training-progress-status-list li .training-progress-status-dot {
  background: var(--training-progress-status-accent);
}
.training-progress-page .training-progress-status-list .training-progress-status-label {
  min-width: 0;
  color: inherit;
  overflow-wrap: anywhere;
}
.training-progress-page .training-progress-status-list strong {
  color: inherit;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}
.training-progress-page .training-progress-execution-recovery {
  margin: 14px 0 0;
}
.training-progress-page .training-progress-execution-recovery > div {
  display: flex;
  flex: 1;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
}
.training-progress-page .training-progress-execution-recovery > div > span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.training-progress-page .training-progress-execution-recovery b {
  font-variant-numeric: tabular-nums;
}
body.theme-dark.portal-page .training-progress-page .training-progress-status-list li.is-completed {
  --training-progress-status-accent: #74eba4;
  border-color: rgba(116,235,164,.68);
  background: rgba(116,235,164,.24);
  color: #f1f8f3;
}
body.theme-dark.portal-page .training-progress-page .training-progress-status-list li.is-partial {
  --training-progress-status-accent: #ffc756;
  border-color: rgba(255,199,86,.68);
  background: rgba(255,199,86,.26);
  color: #fff9ea;
}
body.theme-dark.portal-page .training-progress-page .training-progress-status-list li.is-skipped {
  --training-progress-status-accent: #ff77b2;
  border-color: rgba(255,119,178,.66);
  background: rgba(255,119,178,.24);
  color: #fff2f8;
}
body.theme-dark.portal-page .training-progress-page .training-progress-status-list li.is-unplanned {
  --training-progress-status-accent: #ef8e56;
  border-color: rgba(239,142,86,.66);
  background: rgba(239,142,86,.24);
  color: #fff4ed;
}
.training-progress-year-roadmap ol {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.training-progress-year-roadmap ol > li {
  padding: 12px 14px;
  border: 1px solid var(--progress-border);
  border-radius: 12px;
  background: var(--progress-surface-soft);
}
.training-progress-year-roadmap-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 30px;
  box-sizing: border-box;
  padding: 5px 9px;
  border: 1px solid color-mix(in srgb, var(--progress-accent) 30%, var(--progress-border));
  border-radius: 999px;
  background: color-mix(in srgb, var(--progress-accent) 8%, var(--progress-surface));
  color: var(--progress-accent);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.1;
  text-decoration: none;
  white-space: nowrap;
}
.training-progress-year-roadmap-link .training-progress-action-icon {
  width: 15px;
  height: 15px;
}
.training-progress-year-roadmap-link:hover,
.training-progress-year-roadmap-link:focus-visible {
  border-color: color-mix(in srgb, var(--progress-accent) 65%, var(--progress-border));
  background: color-mix(in srgb, var(--progress-accent) 14%, var(--progress-surface));
  outline: 0;
}
.training-progress-year-roadmap-link:focus-visible {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--progress-accent) 22%, transparent);
}
.training-progress-year-roadmap time {
  display: block;
  color: var(--progress-muted);
  font-size: 9px;
  font-weight: 800;
}
.training-progress-year-roadmap strong {
  display: block;
  margin-top: 3px;
  color: var(--progress-text);
}
.training-progress-year-roadmap li ul {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 7px 0 0;
  padding: 0;
  list-style: none;
}
.training-progress-year-roadmap li li {
  padding: 3px 7px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--progress-accent) 10%, transparent);
  color: var(--progress-muted);
  font-size: 9px;
}
.training-progress-review:is([data-progress-review-source="available-after-year-end"], [data-progress-review-source="available-after-period-end"]) {
  border-color: var(--progress-border);
  background: var(--progress-surface-soft);
  color: var(--progress-text);
}
.training-progress-review:is([data-progress-review-source="available-after-year-end"], [data-progress-review-source="available-after-period-end"]) h2 {
  color: var(--progress-muted);
}
.training-progress-review:is([data-progress-review-source="available-after-year-end"], [data-progress-review-source="available-after-period-end"]) .training-progress-review-availability-title {
  grid-column: 1 / -1;
  margin: 2px 0 0;
  color: var(--progress-text);
  font-size: 16px;
  font-weight: 950;
  line-height: 1.2;
  letter-spacing: -.015em;
}
.training-progress-review:is([data-progress-review-source="available-after-year-end"], [data-progress-review-source="available-after-period-end"]) .training-progress-review-copy {
  margin-top: 0;
  color: var(--progress-muted);
  font-size: 13px;
  line-height: 1.5;
}
@media (min-width: 761px) {
  body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-page > .training-progress-period-selector {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-year-overview,
  body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-year-months,
  body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-year-sports,
  body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-year-roadmap {
    grid-column: 1 / -1;
  }
  body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-year-execution {
    grid-column: 1 / span 7;
  }
  body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-year-story > .training-progress-records {
    grid-column: 8 / -1;
  }
  body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-year-story > .training-progress-review {
    grid-column: 1 / -1;
  }
  body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-year-story > .training-progress-actions {
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-year-story > .training-progress-actions > a[href="/roadmap"] {
    display: flex;
  }
}
@media (max-width: 760px) {
  .training-progress-year-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .training-progress-year-kpis > div { padding: 11px; }
  .training-progress-year-kpis dd { font-size: 17px; }
  .training-progress-year-months .training-progress-section-heading {
    align-items: flex-start;
    flex-direction: column;
  }
  .training-progress-year-chart {
    gap: 2px;
    min-height: 180px;
    padding-right: 0;
    padding-left: 0;
  }
  .training-progress-year-month { grid-template-rows: 128px auto auto; }
  .training-progress-year-month-stack { right: 5%; left: 5%; }
  .training-progress-year-month-label { font-size: 8px; }
  .training-progress-year-month-state { display: none; }
  .training-progress-year-month-panel { padding: 12px; }
  .training-progress-year-month-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .training-progress-year-month-sports { grid-template-columns: 1fr; }
  .training-progress-page .training-progress-status-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .training-progress-year-table-wrap table { font-size: 9px; }
  .training-progress-year-table-wrap th,
  .training-progress-year-table-wrap td { padding: 6px 4px; }
  .training-progress-year-sport-grid { grid-template-columns: 1fr; }
  .training-progress-year-sport-card dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .week-arrow-row-mobile.training-progress-mobile-year-nav {
    grid-template-rows: minmax(44px, auto);
  }
  .training-progress-mobile-year-nav .mobile-week-period {
    flex-direction: column;
    gap: 1px;
    text-align: center;
  }
  .training-progress-mobile-year-state {
    display: block;
    width: 100%;
    white-space: normal;
    text-align: center;
  }
  .training-progress-mobile-year-nav .mobile-week-separator { margin: 0 10px; }
}
body.theme-dark.portal-page .training-progress-year-kpis > div,
body.theme-dark.portal-page .training-progress-year-sport-card,
body.theme-dark.portal-page .training-progress-year-roadmap ol > li,
body.theme-dark.portal-page .training-progress-review:is([data-progress-review-source="available-after-year-end"], [data-progress-review-source="available-after-period-end"]) {
  background: rgba(255,255,255,.055);
}
body.theme-dark.portal-page .training-progress-year-month-stack {
  background: rgba(255,255,255,.15);
}
@media (prefers-color-scheme: dark) {
  body:not(.theme-light).portal-page .training-progress-year-kpis > div,
  body:not(.theme-light).portal-page .training-progress-year-sport-card,
  body:not(.theme-light).portal-page .training-progress-year-roadmap ol > li,
  body:not(.theme-light).portal-page .training-progress-review:is([data-progress-review-source="available-after-year-end"], [data-progress-review-source="available-after-period-end"]) {
    background: rgba(255,255,255,.055);
  }
  body:not(.theme-light).portal-page .training-progress-year-month-stack {
    background: rgba(255,255,255,.15);
  }
  body:not(.theme-light).portal-page .training-progress-page .training-progress-status-list li.is-completed {
    --training-progress-status-accent: #74eba4;
    border-color: rgba(116,235,164,.68);
    background: rgba(116,235,164,.24);
    color: #f1f8f3;
  }
  body:not(.theme-light).portal-page .training-progress-page .training-progress-status-list li.is-partial {
    --training-progress-status-accent: #ffc756;
    border-color: rgba(255,199,86,.68);
    background: rgba(255,199,86,.26);
    color: #fff9ea;
  }
  body:not(.theme-light).portal-page .training-progress-page .training-progress-status-list li.is-skipped {
    --training-progress-status-accent: #ff77b2;
    border-color: rgba(255,119,178,.66);
    background: rgba(255,119,178,.24);
    color: #fff2f8;
  }
  body:not(.theme-light).portal-page .training-progress-page .training-progress-status-list li.is-unplanned {
    --training-progress-status-accent: #ef8e56;
    border-color: rgba(239,142,86,.66);
    background: rgba(239,142,86,.24);
    color: #fff4ed;
  }
}
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .athlete-destination-navigation {
      --progress-surface: rgba(17,39,31,.95);
      --progress-surface-soft: rgba(255,255,255,.055);
      --progress-border: rgba(255,255,255,.12);
      --progress-muted: rgba(238,247,239,.62);
      --progress-accent: #c2e084;
    }
    @media (max-width: 760px) and (prefers-color-scheme: dark) {
      body:not(.theme-light).portal-page .athlete-destination-navigation {
        --progress-surface: rgba(17,39,31,.95);
        --progress-surface-soft: rgba(255,255,255,.055);
        --progress-border: rgba(255,255,255,.12);
        --progress-muted: rgba(238,247,239,.62);
        --progress-accent: #c2e084;
      }
    }
    @media (prefers-color-scheme: dark) {
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .athlete-destination-navigation {
        --progress-surface: rgba(17,39,31,.95);
        --progress-surface-soft: rgba(255,255,255,.055);
        --progress-border: rgba(255,255,255,.12);
        --progress-muted: rgba(238,247,239,.62);
        --progress-accent: #c2e084;
      }
    }
    @media (min-width: 761px) {
      body.portal-page:not(.ios-mobile):not(.android-mobile) .athlete-destination-navigation.training-progress-period-selector {
        display: flex;
        justify-content: flex-start;
        gap: 26px;
        width: 100%;
        margin: 0 0 22px;
        padding: 0;
        border: 0;
        border-bottom: 1px solid #d8e2da;
        border-radius: 0;
        background: transparent;
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .athlete-destination-navigation.training-progress-period-selector a {
        position: relative;
        flex: 0 0 auto;
        min-height: 46px;
        padding: 0 3px;
        border-radius: 0;
        background: transparent;
        color: #68766f;
        font-size: 13px;
        letter-spacing: .01em;
        box-shadow: none;
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .athlete-destination-navigation.training-progress-period-selector a::after {
        position: absolute;
        right: 0;
        bottom: -1px;
        left: 0;
        height: 3px;
        border-radius: 999px 999px 0 0;
        background: transparent;
        content: "";
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .athlete-destination-navigation.training-progress-period-selector a:hover,
      body.portal-page:not(.ios-mobile):not(.android-mobile) .athlete-destination-navigation.training-progress-period-selector a:focus-visible {
        color: #286a57;
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .athlete-destination-navigation.training-progress-period-selector a.is-active {
        background: transparent;
        color: #1f4538;
        box-shadow: none;
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .athlete-destination-navigation.training-progress-period-selector a.is-active::after {
        background: #286a57;
      }
    }
    .profile-form { display: grid; gap: 0; }
    .profile-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); align-items: start; gap: 16px; }
    .profile-section-nav { display: grid; gap: 7px; margin: 0; align-self: start; }
    .profile-section-tab { min-height: 58px; width: 100%; display: grid; gap: 7px; align-items: start; padding: 10px 11px 10px 17px; border: 1px solid #d9e2db; border-radius: 8px; background: white; color: #203028; text-align: left; }
    .profile-section-tab-main { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: start; }
    .profile-section-tab strong { display: block; overflow: hidden; font-size: 13px; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
    .profile-section-tab small { display: block; margin-top: 3px; color: #69766e; font-size: 11px; font-weight: 700; line-height: 1.25; }
    .profile-section-tab-count { min-width: 36px; padding: 4px 6px; border-radius: 999px; background: #f0f4f1; color: #405149; font-size: 11px; font-weight: 900; text-align: center; }
    .profile-section-tab.is-active { border-color: #b8d2c3; background: #edf5ef; }
    .profile-section-tab.is-active .profile-section-tab-count { background: #286a57; color: white; }
    .profile-section-panels { min-width: 0; }
    .profile-section { position: relative; display: none; min-height: 0; margin-bottom: 0; padding: 18px; }
    .profile-section.is-active { display: block; }
    .profile-section-accordion { display: none; }
    .profile-section-header { display: grid; gap: 6px; margin-bottom: 14px; padding-bottom: 14px; border-bottom: 1px solid #e6ece7; }
    .profile-section-title-row { display: grid; grid-template-columns: minmax(0, 1fr) max-content; align-items: start; gap: 12px; }
    .profile-section-title { flex: 1 1 auto; display: grid; gap: 4px; min-width: 0; }
    .profile-section h2 { margin: 0; font-size: 20px; line-height: 1.2; }
    .profile-section-note { margin: 0; width: 100%; color: #69766e; font-size: 12px; line-height: 1.4; }
    .athlete-records-page { display: grid; gap: 14px; margin-bottom: 0; }
    .athlete-records-page-header { display: grid; gap: 4px; }
    .athlete-records-page-title-row { display: grid; grid-template-columns: minmax(0, 1fr) max-content; align-items: start; gap: 12px; }
    .athlete-records-page-header h2 { margin: 0; font-size: 20px; line-height: 1.2; }
    .athlete-records-page-header p { margin: 0; color: #69766e; font-size: 12px; line-height: 1.4; }
    @media (max-width: 760px) {
      body.theme-dark.portal-page .athlete-records-page-header h2 { color: #eef7ef; }
      body.theme-dark.portal-page .athlete-records-page-header p { color: rgba(238,247,239,.68); }
    }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .athlete-records-page-header h2 { color: #eef7ef; }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .athlete-records-page-header p { color: rgba(238,247,239,.68); }
    @media (max-width: 760px) and (prefers-color-scheme: dark) {
      body:not(.theme-light).portal-page .athlete-records-page-header h2 { color: #eef7ef; }
      body:not(.theme-light).portal-page .athlete-records-page-header p { color: rgba(238,247,239,.68); }
    }
    @media (prefers-color-scheme: dark) {
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .athlete-records-page-header h2 { color: #eef7ef; }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .athlete-records-page-header p { color: rgba(238,247,239,.68); }
    }
    .profile-section-tags { display: flex; flex-wrap: nowrap; justify-content: flex-end; gap: 6px; }
    .profile-section-tab-tags { justify-content: flex-start; gap: 5px; }
    .profile-section-tab-tags .section-badge { padding: 3px 6px; font-size: 10px; }
    .section-badge { flex: 0 0 auto; display: inline-block; border-radius: 999px; padding: 4px 9px; font-size: 11px; font-weight: 900; background: #eef2ee; color: #415047; border: 1px solid #ccd7ce; }
    .section-badge-needed { background: #edf5ef; color: #286a57; border-color: #cfe0d3; }
    .section-badge-optional { background: #e8f1f8; color: #315f86; border-color: #c8d8e5; }
    .section-badge-high-value { background: #fff1dc; color: #a65f16; border-color: #e8d0ad; }
    .section-badge-safety { background: #fae8e8; color: #9b3d3d; border-color: #edcaca; }
    .section-badge-garmin { background: #eef2ee; color: #415047; border-color: #ccd7ce; }
    .section-badge-auto-updated { background: #e4f4e9; color: #286a57; border-color: #b9d7c2; }
    .profile-minimum-section { border-color: #cfe0d3; }
    .profile-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
    .profile-records { grid-column: 1 / -1; display: grid; gap: 14px; min-width: 0; }
    .profile-records-empty-state { grid-column: 1 / -1; min-height: 72px; display: grid; place-items: center; border: 1px dashed #d7e1d9; border-radius: 8px; color: #69766e; }
    .profile-record-sport { overflow: hidden; border: 1px solid #dce5de; border-radius: 9px; background: #ffffff; }
    .profile-record-sport-summary { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 12px 14px; border-bottom: 1px solid transparent; background: #f5f8f5; color: #29483d; cursor: pointer; list-style: none; }
    .profile-record-sport-summary::-webkit-details-marker { display: none; }
    .profile-record-sport[open] > .profile-record-sport-summary { border-bottom-color: #e3eae4; }
    .profile-record-sport-heading { display: flex; align-items: center; gap: 8px; min-width: 0; }
    .profile-record-sport h3 { flex: 0 1 auto; min-width: 0; margin: 0; color: inherit; font-size: 14px; }
    .profile-record-sport-new { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; }
    .profile-record-sport-new[hidden] { display: none; }
    .profile-record-sport-new-count { position: static; min-width: 22px; height: 22px; padding: 0 6px; border-width: 0; box-shadow: none; }
    .profile-record-sport-count { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 22px; padding: 0 6px; border: 1px solid #cbd9ce; border-radius: 999px; background: #ffffff; color: #52665b; font-size: 10px; font-weight: 900; line-height: 1; }
    .profile-record-sport-chevron { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; color: #286a57; font-size: 0; line-height: 1; }
    .profile-record-sport-chevron::before { content: ""; width: 7px; height: 7px; margin-top: -4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .16s ease, margin .16s ease; }
    .profile-record-sport[open] .profile-record-sport-chevron::before { margin-top: 4px; transform: rotate(225deg); }
    .profile-record-table-scroll { max-width: 100%; overflow-x: auto; }
    .profile-record-table { width: 100%; min-width: 620px; border-collapse: collapse; table-layout: fixed; }
    .profile-record-table th, .profile-record-table td { padding: 11px 14px; border-bottom: 1px solid #e7ede8; text-align: left; vertical-align: top; }
    .profile-record-table thead th { background: #fbfcfb; color: #68766d; font-size: 10px; font-weight: 900; letter-spacing: .035em; text-transform: uppercase; }
    .profile-record-table thead th:first-child, .profile-record-table tbody th { width: 27%; }
    .profile-record-table tbody th { color: #203028; font-size: 13px; }
    .profile-record-table tbody tr:last-child th, .profile-record-table tbody tr:last-child td { border-bottom: 0; }
    .profile-record-value { display: grid; grid-template-columns: max-content minmax(0, 1fr) auto; gap: 3px 9px; align-items: baseline; min-width: 0; }
    .profile-record-value strong { color: #173f32; font-size: 14px; font-variant-numeric: tabular-nums; }
    .profile-record-value time { color: #6a776f; font-size: 11px; font-weight: 800; white-space: nowrap; }
    .profile-record-value a, .profile-record-value > span { grid-column: 1 / 3; overflow: hidden; color: #286a57; font-size: 11px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
    .profile-record-value .personal-record-exclusion-button { grid-column: 3; grid-row: 1 / span 2; align-self: center; }
    .profile-record-action-stack { grid-column: 3; grid-row: 1 / span 2; display: grid; align-self: center; justify-items: center; gap: 3px; }
    .profile-record-action-stack .personal-record-exclusion-button { grid-column: auto; grid-row: auto; }
    .profile-record-new-badge { margin-left: 0; }
    .profile-record-empty { color: #9aa59e; }
    .profile-record-exclusions { border-top: 1px solid #e3eae4; }
    .profile-record-exclusions > summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 14px; color: #5d6d63; cursor: pointer; font-size: 11px; font-weight: 900; list-style: none; text-transform: uppercase; }
    .profile-record-exclusions > summary::-webkit-details-marker { display: none; }
    .profile-record-exclusions > summary b { display: inline-flex; align-items: center; justify-content: center; min-width: 23px; height: 20px; padding: 0 5px; border-radius: 999px; background: #edf2ee; font-size: 10px; }
    .profile-record-exclusions > ul { margin: 0; padding: 0 14px; list-style: none; }
    .profile-record-excluded-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid #e7ede8; }
    .profile-record-excluded-value { display: flex; flex-wrap: wrap; gap: 3px 9px; align-items: baseline; min-width: 0; }
    .profile-record-excluded-value strong { color: #33463b; font-size: 12px; }
    .profile-record-excluded-value b { color: #173f32; font-size: 12px; font-variant-numeric: tabular-nums; }
    .profile-record-excluded-value time { color: #6a776f; font-size: 10px; font-weight: 800; }
    .profile-record-excluded-value a, .profile-record-excluded-value > span { flex-basis: 100%; overflow: hidden; color: #286a57; font-size: 10px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
    @media (max-width: 760px) {
      body.theme-dark.portal-page .profile-record-sport { border-color: rgba(255,255,255,.13); background: rgba(18,37,30,.9); }
      body.theme-dark.portal-page .profile-record-sport-summary, body.theme-dark.portal-page .profile-record-table thead th { border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.05); color: #eef7ef; }
      body.theme-dark.portal-page .profile-record-sport-count { border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.07); color: #eef7ef; }
      body.theme-dark.portal-page .profile-record-table th, body.theme-dark.portal-page .profile-record-table td, body.theme-dark.portal-page .profile-record-table tr { border-color: rgba(255,255,255,.12); }
      body.theme-dark.portal-page .profile-record-table tbody th, body.theme-dark.portal-page .profile-record-value strong { color: #ffffff; }
      body.theme-dark.portal-page .profile-record-value time, body.theme-dark.portal-page .profile-record-table td::before { color: rgba(238,247,239,.68); }
      body.theme-dark.portal-page .profile-record-value a, body.theme-dark.portal-page .profile-record-value > span { color: #c2e084; }
      body.theme-dark.portal-page .profile-record-exclusions, body.theme-dark.portal-page .profile-record-excluded-item { border-color: rgba(255,255,255,.12); }
      body.theme-dark.portal-page .profile-record-exclusions > summary, body.theme-dark.portal-page .profile-record-excluded-value time { color: rgba(238,247,239,.68); }
      body.theme-dark.portal-page .profile-record-exclusions > summary b { background: rgba(255,255,255,.08); color: #eef7ef; }
      body.theme-dark.portal-page .profile-record-excluded-value strong, body.theme-dark.portal-page .profile-record-excluded-value b { color: #ffffff; }
      body.theme-dark.portal-page .profile-record-excluded-value a, body.theme-dark.portal-page .profile-record-excluded-value > span { color: #c2e084; }
      body.theme-dark.portal-page .profile-records-empty-state { border-color: rgba(255,255,255,.18); color: rgba(238,247,239,.68); }
    }
    @media (max-width: 760px) and (prefers-color-scheme: dark) {
      body:not(.theme-light).portal-page .profile-record-sport { border-color: rgba(255,255,255,.13); background: rgba(18,37,30,.9); }
      body:not(.theme-light).portal-page .profile-record-sport-summary, body:not(.theme-light).portal-page .profile-record-table thead th { border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.05); color: #eef7ef; }
      body:not(.theme-light).portal-page .profile-record-sport-count { border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.07); color: #eef7ef; }
      body:not(.theme-light).portal-page .profile-record-table th, body:not(.theme-light).portal-page .profile-record-table td, body:not(.theme-light).portal-page .profile-record-table tr { border-color: rgba(255,255,255,.12); }
      body:not(.theme-light).portal-page .profile-record-table tbody th, body:not(.theme-light).portal-page .profile-record-value strong { color: #ffffff; }
      body:not(.theme-light).portal-page .profile-record-value time, body:not(.theme-light).portal-page .profile-record-table td::before { color: rgba(238,247,239,.68); }
      body:not(.theme-light).portal-page .profile-record-value a, body:not(.theme-light).portal-page .profile-record-value > span { color: #c2e084; }
      body:not(.theme-light).portal-page .profile-record-exclusions, body:not(.theme-light).portal-page .profile-record-excluded-item { border-color: rgba(255,255,255,.12); }
      body:not(.theme-light).portal-page .profile-record-exclusions > summary, body:not(.theme-light).portal-page .profile-record-excluded-value time { color: rgba(238,247,239,.68); }
      body:not(.theme-light).portal-page .profile-record-exclusions > summary b { background: rgba(255,255,255,.08); color: #eef7ef; }
      body:not(.theme-light).portal-page .profile-record-excluded-value strong, body:not(.theme-light).portal-page .profile-record-excluded-value b { color: #ffffff; }
      body:not(.theme-light).portal-page .profile-record-excluded-value a, body:not(.theme-light).portal-page .profile-record-excluded-value > span { color: #c2e084; }
      body:not(.theme-light).portal-page .profile-records-empty-state { border-color: rgba(255,255,255,.18); color: rgba(238,247,239,.68); }
    }
    .profile-field:nth-last-child(1):nth-child(odd) { grid-column: 1 / -1; min-height: 0; align-self: start; }
    .profile-field { min-width: 0; min-height: 178px; padding: 14px; border: 1px solid #e2e9e3; border-radius: 8px; background: #fbfcfb; }
    .profile-field h3 { margin: 0; font-size: 13px; color: #405149; }
    .profile-field-progression-strategy { min-height: 150px; }
    .profile-slider-control { display: grid; gap: 10px; margin-top: 10px; }
    .profile-slider-top { display: flex; align-items: center; justify-content: flex-end; min-height: 20px; }
    .profile-slider-value-label { color: #405149; font-size: 12px; font-weight: 800; }
    .profile-slider-value-label output { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; margin-left: 4px; padding: 2px 7px; border: 1px solid #d7e0d9; border-radius: 6px; background: #ffffff; color: #203028; font-size: 12px; line-height: 1.2; }
    .profile-range { height: 28px; padding: 0; accent-color: #286a57; }
    .profile-slider-anchors { position: relative; min-height: 34px; color: #5e6c64; }
    .profile-slider-anchor { position: absolute; left: var(--slider-anchor-position); display: grid; gap: 3px; min-width: 0; width: min(120px, 25%); text-align: center; transform: translateX(-50%); }
    .profile-slider-anchor:first-child { left: calc(var(--slider-anchor-position) + 4px); text-align: left; transform: translateX(0); }
    body.safari-desktop .profile-slider-anchor:first-child { left: calc(var(--slider-anchor-position) + 8px); }
    .profile-slider-anchor:nth-child(2) { left: calc(var(--slider-anchor-position) + 2px); }
    .profile-slider-anchor:last-child { text-align: right; transform: translateX(-100%); }
    .profile-slider-anchor strong { color: #203028; font-size: 12px; line-height: 1.1; }
    .profile-slider-anchor small { font-size: 11px; font-weight: 700; line-height: 1.2; overflow-wrap: anywhere; }
    .profile-description { margin: 6px 0 9px; min-height: 34px; font-size: 12px; line-height: 1.35; }
    .profile-examples { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; margin: 0 0 10px; color: #69766e; font-size: 12px; line-height: 1.35; }
    .profile-example-label { font-weight: 700; }
    .profile-example { border: 1px solid #a8c6af; border-radius: 999px; padding: 4px 7px; background: #e8f3eb; color: #286a57; font: inherit; font-size: 11px; font-weight: 800; text-decoration: none; cursor: pointer; }
    .profile-example:hover { background: #dfeae2; color: #203028; }
    .profile-power-toggle { display: flex; align-items: center; gap: 7px; width: fit-content; max-width: 100%; margin: 8px 0 0; color: #405149; font-size: 12px; font-weight: 800; line-height: 1.3; }
    .profile-power-toggle[hidden] { display: none; }
    .profile-power-toggle input { flex: 0 0 auto; margin: 0; }
    .profile-primary-power-toggle { margin-top: 10px; }
    .profile-modality-power-controls { display: grid; gap: 5px; margin-top: 7px; }
    .profile-modality-power-toggle { margin-top: 0; margin-left: 24px; }
    .profile-zone-settings { grid-column: 1 / -1; display: grid; gap: 12px; min-width: 0; }
    .profile-zone-garmin-toggle { display: flex; align-items: center; gap: 9px; min-height: 42px; margin: 2px 0 10px; padding: 6px 0; border: 0; border-radius: 0; background: transparent; color: #29483d; font-size: 13px; font-weight: 850; line-height: 1.3; }
    .profile-zone-garmin-toggle input { flex: 0 0 auto; width: 17px; height: 17px; margin: 0; accent-color: #286a57; }
    .profile-zone-sports { display: grid; gap: 18px; min-width: 0; }
    .profile-zone-sports[hidden],
    .profile-zone-sport[hidden],
    .profile-zone-group[hidden],
    .profile-zone-inputs[hidden] { display: none; }
    .profile-zone-sport { display: grid; gap: 20px; min-width: 0; padding: 0 0 18px; border: 0; border-radius: 0; background: transparent; }
    .profile-zone-sport + .profile-zone-sport { padding-top: 18px; border-top: 1px solid #e2e9e3; }
    .profile-zone-sport:last-child { padding-bottom: 0; }
    .profile-zone-sport[data-profile-zone-sport="cycling"].has-cycling-power-zones { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
    .profile-zone-sport[data-profile-zone-sport="running"] { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
    .profile-zone-group { min-width: 0; margin: 0; padding: 14px; border: 1px solid #e2e9e3; border-radius: 8px; background: #fbfcfb; }
    .profile-zone-group legend { float: left; width: 100%; margin: 0 0 8px; padding: 0; color: #405149; font-size: 13px; font-weight: 700; }
    .profile-zone-group legend + * { clear: both; }
    .profile-zone-inputs { display: grid; gap: 8px; min-width: 0; }
    .actions.profile-zone-group-save { display: none; }
    .profile-zone-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; min-width: 0; }
    .profile-zone-input { display: grid; gap: 5px; min-width: 0; margin: 0; color: #5c6b62; font-size: 11px; font-weight: 800; line-height: 1.25; }
    .profile-zone-maximum { display: grid; gap: 5px; min-width: 0; color: #5c6b62; font-size: 11px; font-weight: 800; line-height: 1.25; }
    .profile-zone-input-control { display: grid; grid-template-columns: minmax(0, 1fr) max-content; align-items: center; gap: 5px; }
    .profile-zone-output-control { display: grid; grid-template-columns: minmax(0, 1fr) max-content; align-items: center; gap: 5px; }
    .profile-zone-input input { width: 100%; min-width: 0; height: 36px; padding: 7px 8px; font-size: 13px; font-variant-numeric: tabular-nums; }
    .profile-zone-maximum output { display: flex; align-items: center; width: 100%; min-width: 0; height: 36px; box-sizing: border-box; padding: 7px 8px; border: 1px solid #d7e0d9; border-radius: 6px; background: #edf2ee; color: #435048; font-size: 13px; font-weight: 750; font-variant-numeric: tabular-nums; }
    .profile-zone-input small,
    .profile-zone-maximum small { color: #6d7a72; font-size: 10px; font-weight: 900; }
    .profile-field input, .profile-field textarea, .profile-field select { font-size: 13px; font-weight: 400; }
    .profile-field textarea { min-height: 72px; }
    .profile-sport-select[multiple] { min-height: 180px; }
    .profile-desktop-multiselect { display: none; }
    .profile-desktop-multiselect.is-invalid { border-color: #b42318 !important; box-shadow: 0 0 0 2px rgba(180, 35, 24, 0.14) !important; }
    .profile-desktop-multiselect-item { display: grid; gap: 4px; }
    @media (hover: hover) and (pointer: fine) {
      .profile-supporting-modalities-select.profile-desktop-multiselect-ready { display: none; }
      .profile-desktop-multiselect { display: grid; gap: 4px; min-height: 180px; overflow: visible; padding: 8px; border: 1px solid #d7e0d9; border-radius: 8px; background: #ffffff; color: #203028; font-size: 13px; line-height: 1.25; }
      .profile-desktop-multiselect-group { padding: 0 2px 4px; color: #405149; font-size: 12px; font-weight: 900; }
      .profile-desktop-multiselect-option { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 30px; padding: 5px 7px; border: 0; border-radius: 6px; background: transparent; color: inherit; font: inherit; font-weight: 700; line-height: 1.25; text-align: left; cursor: pointer; }
      .profile-desktop-multiselect-option::before { content: ''; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 15px; height: 15px; border: 1px solid #aab9ae; border-radius: 4px; background: #ffffff; color: #ffffff; font-size: 11px; font-weight: 900; line-height: 1; }
      .profile-desktop-multiselect-option:hover { background: #eef4f0; }
      .profile-desktop-multiselect-option.is-selected { background: #edf5ef; color: #203028; }
      .profile-desktop-multiselect-option.is-selected::before { content: '✓'; border-color: #286a57; background: #286a57; }
      .profile-desktop-multiselect-option:focus-visible { outline: 2px solid #7fac8a; outline-offset: 1px; }
      .profile-desktop-multiselect:focus-within { border-color: #93ad9a; box-shadow: 0 0 0 2px rgba(40, 106, 87, 0.12); }
    }
    body.android-mobile.portal-page .profile-supporting-modalities-select.profile-desktop-multiselect-ready { display: none; }
    body.android-mobile.portal-page .profile-desktop-multiselect { display: grid; gap: 4px; min-height: 180px; overflow: visible; padding: 8px; border: 1px solid #d7e0d9; border-radius: 8px; background: #ffffff; color: #203028; font-size: 13px; line-height: 1.25; }
    body.android-mobile.portal-page .profile-desktop-multiselect-option { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 30px; padding: 5px 7px; border: 0; border-radius: 6px; background: transparent; color: inherit; font: inherit; font-weight: 700; line-height: 1.25; text-align: left; cursor: pointer; }
    body.android-mobile.portal-page .profile-desktop-multiselect-option::before { content: ''; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 15px; height: 15px; border: 1px solid #aab9ae; border-radius: 4px; background: #ffffff; color: #ffffff; font-size: 11px; font-weight: 900; line-height: 1; }
    body.android-mobile.portal-page .profile-desktop-multiselect-option:hover { background: #eef4f0; }
    body.android-mobile.portal-page .profile-desktop-multiselect-option.is-selected { background: #edf5ef; color: #203028; }
    body.android-mobile.portal-page .profile-desktop-multiselect-option.is-selected::before { content: '✓'; border-color: #286a57; background: #286a57; }
    body.android-mobile.portal-page .profile-desktop-multiselect-option:focus-visible { outline: 2px solid #7fac8a; outline-offset: 1px; }
    body.android-mobile.portal-page .profile-desktop-multiselect:focus-within { border-color: #93ad9a; box-shadow: 0 0 0 2px rgba(40, 106, 87, 0.12); }
    body.android-mobile.portal-page.theme-dark .profile-desktop-multiselect { border-color: rgba(194,224,132,.22); background: #10261f; color: #eef7ef; }
    body.android-mobile.portal-page.theme-dark .profile-desktop-multiselect-option::before { border-color: rgba(238,247,239,.48); background: rgba(255,255,255,.08); }
    body.android-mobile.portal-page.theme-dark .profile-desktop-multiselect-option:hover,
    body.android-mobile.portal-page.theme-dark .profile-desktop-multiselect-option.is-selected { background: rgba(194,224,132,.14); color: #eef7ef; }
    body.android-mobile.portal-page.theme-dark .profile-desktop-multiselect-option.is-selected::before { border-color: #c2e084; background: #c2e084; color: #10261f; }
    body.ios-mobile.portal-page .profile-supporting-modalities-select.profile-desktop-multiselect-ready { display: none; }
    body.ios-mobile.portal-page .profile-desktop-multiselect { display: grid; gap: 4px; min-height: 180px; overflow: visible; padding: 8px; border: 1px solid #d7e0d9; border-radius: 8px; background: #ffffff; color: #203028; font-size: 13px; line-height: 1.25; }
    body.ios-mobile.portal-page .profile-desktop-multiselect-option { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 30px; padding: 5px 7px; border: 0; border-radius: 6px; background: transparent; color: inherit; font: inherit; font-weight: 700; line-height: 1.25; text-align: left; cursor: pointer; }
    body.ios-mobile.portal-page .profile-desktop-multiselect-option::before { content: ''; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 15px; height: 15px; border: 1px solid #aab9ae; border-radius: 4px; background: #ffffff; color: #ffffff; font-size: 11px; font-weight: 900; line-height: 1; }
    body.ios-mobile.portal-page .profile-desktop-multiselect-option:hover { background: #eef4f0; }
    body.ios-mobile.portal-page .profile-desktop-multiselect-option.is-selected { background: #edf5ef; color: #203028; }
    body.ios-mobile.portal-page .profile-desktop-multiselect-option.is-selected::before { content: '✓'; border-color: #286a57; background: #286a57; }
    body.ios-mobile.portal-page .profile-desktop-multiselect-option:focus-visible { outline: 2px solid #7fac8a; outline-offset: 1px; }
    body.ios-mobile.portal-page .profile-desktop-multiselect:focus-within { border-color: #93ad9a; box-shadow: 0 0 0 2px rgba(40, 106, 87, 0.12); }
    body.ios-mobile.portal-page.theme-dark .profile-desktop-multiselect { border-color: rgba(194,224,132,.22); background: #10261f; color: #eef7ef; }
    body.ios-mobile.portal-page.theme-dark .profile-desktop-multiselect-option::before { border-color: rgba(238,247,239,.48); background: rgba(255,255,255,.08); }
    body.ios-mobile.portal-page.theme-dark .profile-desktop-multiselect-option:hover,
    body.ios-mobile.portal-page.theme-dark .profile-desktop-multiselect-option.is-selected { background: rgba(194,224,132,.14); color: #eef7ef; }
    body.ios-mobile.portal-page.theme-dark .profile-desktop-multiselect-option.is-selected::before { border-color: #c2e084; background: #c2e084; color: #10261f; }
    .profile-section-save { align-items: center; justify-content: flex-end; margin-top: 14px; }
    .profile-save-message { margin-right: auto; color: #286a57; font-size: 13px; font-weight: 700; }
    .profile-save-message.is-error { color: #9b2d2d; }
    .goal-examples { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin: 0 0 12px; padding: 10px 12px; border: 1px solid #dfe7dc; border-radius: 8px; background: #f8faf7; color: #69766e; font-size: 13px; }
    .goal-examples .profile-example-label { margin-right: 2px; color: #415047; }
    .new-record-control { margin: 12px 0; }
    .new-record-control[hidden] { display: none; }
    .new-record-control[hidden] + .goals-list, .new-record-control[hidden] + .events-list { margin-top: 12px; }
    .add-record-button { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 34px; padding: 4px 12px; border: 1px dashed #b7c7ba; border-radius: 8px; background: #f8faf7; color: #286a57; font-size: 20px; font-weight: 800; line-height: 1; }
    .add-record-button:hover { background: #edf5ef; border-color: #93ad9a; color: #203028; }
    .draft-record-row[hidden] { display: none; }
    .draft-actions { display: flex; gap: 8px; align-items: center; justify-content: center; }
    .draft-actions-stacked { flex-direction: column; }
    .draft-actions-inline { justify-content: flex-end; }
    .draft-action-button { display: inline-flex; align-items: center; justify-content: center; width: auto; min-width: 74px; height: 32px; padding: 0 11px; border: 1px solid #c8d0c8; border-radius: 6px; background: #eef2ee; color: #56645c; font-size: 12px; font-weight: 800; line-height: 1; }
    .draft-action-button:hover { background: #dfe4dc; color: #203028; }
    .goal-save-button, .event-save-button, .new-goal-card .draft-action-button:last-child, .new-event-card .draft-action-button:last-child { border-color: #286a57; background: #286a57; color: white; }
    .goal-save-button:hover, .event-save-button:hover, .new-goal-card .draft-action-button:last-child:hover, .new-event-card .draft-action-button:last-child:hover { border-color: #1f4f41; background: #1f4f41; color: white; }
    .table-scroll { overflow-x: auto; margin-bottom: 12px; }
    .table-scroll table { margin-bottom: 0; }
    .table-actions { justify-content: flex-end; margin-top: 12px; }
    .filter-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; margin-bottom: 12px; padding: 12px; background: #f8faf7; border: 1px solid #dfe7dc; border-radius: 8px; }
    .filter-bar label { display: flex; flex-direction: column; gap: 5px; margin: 0; font-size: 12px; line-height: 14px; }
    .filter-bar input, .filter-bar select { min-width: 0; height: var(--control-height); font-size: 13px; padding: 6px var(--control-padding-x); }
    .filter-bar label { flex: 0 1 140px; }
    .filter-bar .filter-search { flex: 1 1 220px; }
    .goal-filter-bar, .event-filter-bar { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(112px, 140px) minmax(112px, 140px) auto; align-items: end; gap: 10px; padding: 10px; background: #fbfcfa; border-color: #d4ded4; box-shadow: 0 1px 0 rgba(24, 44, 35, 0.04); }
    .goal-filter-bar { grid-template-columns: minmax(220px, 1fr) minmax(112px, 140px) minmax(112px, 140px) auto; }
    .goal-filter-bar label, .event-filter-bar label { flex: none; min-width: 0; gap: 6px; color: #415047; font-size: 11px; font-weight: 800; line-height: 1; text-transform: uppercase; }
    .goal-filter-bar .filter-search, .event-filter-bar .filter-search { flex: none; }
    .goal-filter-bar input, .goal-filter-bar select, .event-filter-bar input, .event-filter-bar select { width: 100%; background: white; border-color: #c9d3c9; }
    body.ios-mobile.portal-page .goal-filter-bar select, body.ios-mobile.portal-page .event-filter-bar select { font-weight: 400; }
    .goal-filter-bar .filter-search input, .event-filter-bar .filter-search input { font-weight: 400; }
    .goal-filter-bar .filter-search input::placeholder, .event-filter-bar .filter-search input::placeholder { font-weight: 400; }
    .goal-filter-bar .filter-actions, .event-filter-bar .filter-actions { padding-top: 0; align-items: end; }
    .mobile-filter-panel-shell { display: grid; min-width: 0; }
    .mobile-collapsible-filter { scroll-margin-top: 12px; }
    .admin-filter-bar { flex-wrap: wrap; overflow-x: visible; }
    .admin-filter-bar label { flex: 0 1 100px; min-width: 88px; }
    .admin-filter-bar .filter-search { flex: 1 1 150px; min-width: 140px; }
    .admin-filter-bar .filter-actions { flex: 0 0 auto; }
    .filter-actions { display: flex; gap: 8px; align-items: center; justify-content: flex-end; padding-top: 19px; }
    .filter-actions button { height: var(--control-height); padding-top: 0; padding-bottom: 0; }
    .goal-filter-bar .filter-actions .filter-submit-button, .event-filter-bar .filter-actions .filter-submit-button { display: inline-flex; align-items: center; justify-content: center; height: 32px; padding: 0 11px; border: 1px solid #286a57; border-radius: 6px; background: #286a57; color: white; font-size: 12px; font-weight: 800; line-height: 1; text-transform: uppercase; }
    .goal-filter-bar .filter-actions .filter-submit-button:hover, .event-filter-bar .filter-actions .filter-submit-button:hover { border-color: #1f4f41; background: #1f4f41; color: white; }
    .goal-filter-bar .filter-actions .clear-filter-button, .event-filter-bar .filter-actions .clear-filter-button { display: inline-flex; align-items: center; justify-content: center; width: auto; min-width: 74px; height: 32px; padding: 0 11px; border: 1px solid #c8d0c8; border-radius: 6px; background: #eef2ee; color: #56645c; font-size: 12px; font-weight: 800; line-height: 1; text-transform: uppercase; }
    .goal-filter-bar .filter-actions .clear-filter-button:hover, .event-filter-bar .filter-actions .clear-filter-button:hover { background: #dfe4dc; color: #203028; }
    .filter-count { font-size: 12px; color: #69766e; white-space: nowrap; }
    .goals-table, .events-table, .plan-table { border-collapse: separate; border-spacing: 0 6px; background: transparent; }
    .goals-table thead { display: none; }
    .goals-table tbody tr, .events-table tbody tr, .plan-table tbody tr { background: white; }
    .goals-table td, .events-table td, .plan-table td {
      border-top: 1px solid #dfe4dc;
      border-bottom: 1px solid #dfe4dc;
      background: white;
    }
    .goals-table td:first-child, .events-table td:first-child, .plan-table td:first-child {
      border-left: 1px solid #dfe4dc;
      border-top-left-radius: 8px;
      border-bottom-left-radius: 8px;
    }
    .goals-table td:last-child, .events-table td:last-child, .plan-table td:last-child {
      border-right: 1px solid #dfe4dc;
      border-top-right-radius: 8px;
      border-bottom-right-radius: 8px;
    }
    .goals-table input, .goals-table textarea, .goals-table select { min-width: 120px; }
    .goals-table textarea { min-height: 54px; }
    .goals-table .short-name { min-width: 150px; }
    .goals-table .description { min-width: 260px; }
    .goals-table .priority { min-width: 48px; width: 48px; padding-left: 8px; padding-right: 8px; }
    .goals-table td { vertical-align: top; padding-top: 14px; padding-bottom: 14px; }
    .goals-table input, .goals-table textarea, .goals-table select { font-size: 13px; font-weight: 400; }
    .goals-table .row-actions { padding-top: 31px; vertical-align: top; }
    .row-actions { width: 84px; text-align: center; vertical-align: middle; }
    .icon-button { display: inline-flex; align-items: center; justify-content: center; width: auto; min-width: 74px; height: 32px; padding: 0 11px; border: 1px solid #c8d0c8; border-radius: 6px; background: #eef2ee; color: #56645c; font-size: 12px; font-weight: 800; line-height: 1; }
    .icon-button:hover { background: #dfe4dc; color: #203028; }
    .delete-button-icon { display: none; }
    .context-row-past { background: #f0f2ef; }
    .context-row-past td { background: #f0f2ef; border-color: #d6ded4; color: #788078; }
    .context-row-past input, .context-row-past textarea, .context-row-past select { background: #f7f8f6; border-color: #d1d8d1; color: #6e766e; }
    .context-row-past td:not(.row-actions):not(.goal-cell) > *,
    .context-row-past .goal-cell > .stacked-field > .inline-label,
    .context-row-past .goal-cell .events-meta-row > .inline-label { opacity: .62; }
    .events-table input, .events-table textarea, .events-table select { min-width: 110px; }
    .events-table textarea { min-height: 54px; }
    .events-table .event-name { min-width: 280px; }
    .events-table .description { min-width: 280px; }
    .events-table .goal-description { min-width: 280px; }
    .events-table .priority { min-width: 64px; width: 64px; padding-left: 8px; padding-right: 8px; }
    .events-table .number { min-width: 58px; }
    .events-table .course-cell { width: 132px; }
    .events-table .event-cell, .events-table .goal-cell { width: 320px; }
    .race-checkbox-label { display: inline-flex; align-items: center; gap: 7px; margin: 0; font-size: 12px; font-weight: 700; color: #56645c; }
    .race-checkbox-label input { flex: 0 0 auto; margin: 0; }
    .race-checkbox-text { min-width: 0; }
    .required-label-text { display: inline-flex; align-items: baseline; gap: 3px; white-space: nowrap; }
    .required-marker { color: #9d3f35; font-family: Arial, sans-serif; font-size: 15px; font-weight: 700; line-height: 1; }
    .race-required-marker[hidden] { display: none; }
    .events-form.was-validated input:required:invalid,
    .events-form.was-validated select:required:invalid,
    .events-form.was-validated textarea:required:invalid {
      border-color: #b23a2d;
      background: #fff7f4;
      box-shadow: 0 0 0 2px rgba(178,58,45,.12);
    }
    .events-form.was-validated .inline-label:has(input:required:invalid),
    .events-form.was-validated .inline-label:has(select:required:invalid),
    .events-form.was-validated .inline-label:has(textarea:required:invalid) {
      color: #8f2f25;
    }
    .events-table input[type="checkbox"] { min-width: 0; }
    .events-table td { vertical-align: top; padding-top: 14px; padding-bottom: 14px; }
    .events-meta-row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: start; }
    .events-action-label { display: grid; align-items: start; justify-items: end; padding-top: 17px; text-align: right; }
    .events-table input, .events-table textarea, .events-table select { background: rgba(255,255,255,.92); }
    .goals-list, .events-list { display: grid; gap: 12px; margin-bottom: 12px; }
    .goals-form > .table-actions, .events-form > .table-actions { display: none; }
    .goals-empty, .events-empty { margin: 0; padding: 18px; border: 1px dashed #cbd7ce; border-radius: 8px; background: #f8faf7; color: #56645c; font-size: 13px; line-height: 1.4; }
    .goal-card, .event-card { overflow: hidden; border: 1px solid #dfe4dc; border-radius: 8px; background: white; }
    .goal-card[open], .event-card[open] { border-width: 2px; border-color: #316d8f; box-shadow: inset 0 0 0 1px rgba(49,109,143,.35); background: #fbfcfb; }
    .goal-card[open] { border-color: #7fac8a; box-shadow: inset 0 0 0 1px rgba(40,106,87,.2); }
    .goal-card.context-row-past, .event-card.context-row-past { background: #f0f2ef; border-color: #d6ded4; }
    .goal-card.context-row-past .goal-editor, .event-card.context-row-past .event-editor { background: #f0f2ef; color: #788078; }
    .goal-card.context-row-past input, .goal-card.context-row-past textarea, .goal-card.context-row-past select, .goal-card.context-row-past .android-select-trigger, .event-card.context-row-past input, .event-card.context-row-past textarea, .event-card.context-row-past select, .event-card.context-row-past .android-select-trigger { background: #f7f8f6; border-color: #d1d8d1; color: #6e766e; }
    .goal-card summary, .event-card summary { list-style: none; }
    .goal-card summary::-webkit-details-marker, .event-card summary::-webkit-details-marker { display: none; }
    .goal-summary { position: relative; display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 14px; align-items: start; padding: 14px 52px 14px 14px; background: white; cursor: pointer; }
    .event-summary { position: relative; display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 14px; align-items: start; padding: 14px 52px 14px 14px; background: white; cursor: pointer; }
    .goal-card.context-row-past:not([open]) .goal-summary,
    .event-card.context-row-past:not([open]) .event-summary { background: #f0f2ef; color: #788078; }
    .goal-card[open] .goal-summary,
    .event-card[open] .event-summary { border-bottom: 1px solid #e5ebe3; background: white; }
    .goal-date-tile,
    .event-date-tile { display: grid; align-content: center; justify-items: center; width: 54px; height: 58px; border: 1px solid #cfd8cf; border-radius: 8px; background: #fbfcfa; }
    .goal-date-tile span,
    .event-date-tile span { color: #69766e; font-size: 11px; font-weight: 900; line-height: 1; text-transform: uppercase; }
    .goal-date-tile strong,
    .event-date-tile strong { margin-top: 4px; color: #203028; font-size: 22px; line-height: 1; }
    .goal-summary-toggle-icon,
    .event-summary-toggle-icon { position: absolute; top: 12px; right: 12px; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border: 1px solid #d9e2db; border-radius: 7px; color: #286a57; font-size: 18px; font-weight: 900; line-height: 1; }
    .goal-summary-toggle-icon::before,
    .event-summary-toggle-icon::before { content: ""; width: 7px; height: 7px; margin-top: -4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform 180ms ease, margin 180ms ease; }
    .goal-card[open] .goal-summary-toggle-icon::before,
    .event-card[open] .event-summary-toggle-icon::before { content: ""; margin-top: 4px; transform: rotate(225deg); }
    .goal-card:not([open]) .goal-summary-toggle-icon::before,
    .event-card:not([open]) .event-summary-toggle-icon::before { content: ""; margin-top: -4px; transform: rotate(45deg); }
    .goal-summary-main,
    .event-summary-main { min-width: 0; }
    .goal-title-line,
    .event-title-line { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; min-width: 0; margin-bottom: 6px; }
    .goal-title-first-row,
    .goal-title-badge-row,
    .event-title-first-row,
    .event-title-badge-row { display: contents; }
    .goal-title-primary,
    .event-title-primary { display: inline-flex; flex: 0 1 auto; align-items: center; gap: 7px; min-width: 0; max-width: 100%; }
    .event-title-icon { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 19px; height: 19px; color: #9d6430; font-size: 13px; line-height: 1; }
    .goal-title-line strong,
    .event-title-line strong { min-width: 0; color: #203028; font-size: 15px; line-height: 1.2; overflow-wrap: anywhere; }
    .goal-badge,
    .event-badge { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; min-height: 22px; border: 1px solid #b8c5bb; border-radius: 999px; padding: 0 8px; background: #eef2ee; color: #56645c; font-size: 11px; font-weight: 900; line-height: 1; white-space: nowrap; }
    .goal-badge-text,
    .event-badge-text { display: block; line-height: 1.2; }
    @media (min-width: 761px) {
      .goal-badge,
      .event-badge { box-sizing: border-box; height: 22px; min-height: 22px; }
      .goal-badge-text,
      .event-badge-text { transform: translateY(-1px); }
    }
    .goal-badge-priority-a,
    .event-badge-priority-a { border-color: #d8a9a1; background: #faece8; color: #9d3f35; }
    .goal-badge-priority-b,
    .event-badge-priority-b { border-color: #dec08c; background: #fff3df; color: #a7651f; }
    .goal-badge-priority-c,
    .event-badge-priority-c { border-color: #a9c2d8; background: #eaf1f7; color: #315e88; }
    .event-badge-type,
    .goal-badge-sport,
    .event-badge-sport { border-color: #a8c6af; background: #e8f3eb; color: #286a57; }
    .goal-badge-upcoming, .event-badge-upcoming { border-color: #a8c6af; background: #e8f3eb; color: #286a57; }
    .goal-badge-overdue { border-color: #c2cac3; background: #eef0ee; color: #788078; }
    .goal-badge-past,
    .event-badge-past { border-color: #c2cac3; background: #eef0ee; color: #788078; }
    .goal-meta-line,
    .event-meta-line { display: flex; flex-wrap: wrap; gap: 7px; color: #69766e; font-size: 12px; line-height: 1.3; }
    .goal-meta-line span:not(:last-child)::after,
    .event-meta-line span:not(:last-child)::after { content: "|"; margin-left: 7px; color: #a7b0aa; }
    .goal-summary-note,
    .event-summary-note { display: block; min-width: 0; max-width: 100%; overflow: hidden; color: #415047; font-size: 12px; line-height: 1.35; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
    .goal-summary-note strong,
    .event-summary-note strong { color: #56645c; font-size: 11px; text-transform: uppercase; }
    .goal-summary-note span,
    .event-summary-note span { min-width: 0; }
    .goal-editor,
    .event-editor { display: grid; gap: 12px; padding: 14px; background: #fbfcfa; }
    .goal-editor-grid,
    .event-editor-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 10px; align-items: start; }
    .goal-editor-grid .inline-label,
    .event-editor-grid .inline-label { min-width: 0; margin-top: 0; }
    .goal-editor-grid input, .goal-editor-grid textarea, .goal-editor-grid select,
    .event-editor-grid input, .event-editor-grid textarea, .event-editor-grid select { min-width: 0; width: 100%; background: rgba(255,255,255,.96); }
    .goal-field-name { grid-column: 1 / span 4; grid-row: 1; }
    .goal-field-sport { grid-column: 5 / span 4; grid-row: 1; }
    .goal-field-sport .goal-sport-select { min-width: 28ch; }
    .goal-field-priority { grid-column: 9 / span 1; grid-row: 1; }
    .goal-field-date { grid-column: 10 / span 3; grid-row: 1; }
    .goal-field-description { grid-column: 1 / -1; grid-row: 2; }
    .goal-field-description textarea { min-height: 82px; }
    .event-editor-grid .race-toggle { width: auto; min-width: 0; }
    .event-field-name { grid-column: 1 / span 4; grid-row: 1; }
    .event-field-start { grid-column: 1 / span 2; grid-row: 2; }
    .event-field-end { grid-column: 3 / span 2; grid-row: 2; }
    .event-field-elevation { grid-column: 5 / span 2; grid-row: 1; }
    .event-field-distance { grid-column: 7 / span 2; grid-row: 1; }
    .event-field-sport { grid-column: 9 / span 2; grid-row: 1; }
    .event-field-race { grid-column: 11; grid-row: 1; align-self: end; justify-self: start; justify-content: flex-start; width: auto; gap: 4px; min-height: var(--control-height); padding-bottom: 6px; white-space: nowrap; }
    .event-field-priority { grid-column: 12; grid-row: 1; }
    .event-field-description { grid-column: 5 / span 4; grid-row: 2; }
    .event-field-goal { grid-column: 9 / span 4; grid-row: 2; }
    .event-field-description textarea, .event-field-goal textarea { min-height: 72px; }
    .goal-editor-actions, .event-editor-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 120px)); justify-content: flex-end; gap: 8px; }
    .goal-editor-actions button, .event-editor-actions button { width: 100%; min-width: 0; }
    .goal-editor-actions > button, .event-editor-actions > button { display: inline-flex; align-items: center; justify-content: center; height: 32px; padding: 0 11px; border-radius: 6px; font-size: 12px; font-weight: 800; line-height: 1; }
    .record-delete-button-icon { display: none; align-items: center; justify-content: center; width: 17px; height: 17px; }
    .record-delete-button-icon svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
    .new-goal-card .draft-actions-inline, .new-event-card .draft-actions-inline { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 120px) minmax(0, 120px); justify-content: flex-end; gap: 8px; }
    .new-goal-card .draft-action-button, .new-event-card .draft-action-button { width: 100%; min-width: 0; }
    .goal-card.new-goal-card,
    .event-card.new-event-card { border-style: dashed; border-color: #b7c7ba; background: #f8faf7; }
    .plan-table th, .plan-table td { font-size: 13px; }
    .plan-table .date-cell { width: 125px; }
    .plan-table .session-cell { width: 230px; }
    .plan-table .load-cell { width: 160px; }
    .plan-table .details-cell { min-width: 300px; }
    .plan-table .status-cell { width: 180px; }
    .plan-table .plan-row-dimmed td:not(.status-cell) > .stacked-field { opacity: .58; }
    .plan-table .plan-row-today td { background: #f8faf7; }
    .plan-table #current-day { scroll-margin-top: 18px; }
    .plan-title-row { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
    .plan-title-row h2 { margin: 0; }
    .page-title-row { margin-bottom: 12px; }
    .plan-last-updated { color: #69766e; font-size: 12px; font-weight: 400; }
    .plan-unavailable { display: grid; gap: 4px; margin: 16px 0 14px; padding: 12px 14px; background: #f3f6f1; border: 1px solid #d8e0d6; border-radius: 8px; color: #203028; }
    .plan-unavailable.has-action { grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 12px 14px; }
    .plan-unavailable-copy { display: grid; gap: 4px; min-width: 0; }
    .plan-unavailable-action { justify-self: end; display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 0 14px; box-sizing: border-box; text-align: center; white-space: nowrap; background: #286a57; color: #ffffff; font-weight: 850; box-shadow: 0 6px 14px rgba(40,106,87,.14); }
    .plan-unavailable span { color: #69766e; font-size: 13px; line-height: 1.4; }
    .plan-coach-eyebrow { margin: 0; color: #69766e; font-size: 11px; font-weight: 900; text-transform: uppercase; }
    .plan-guidance { margin-top: 16px; margin-bottom: 14px; }
    .plan-guidance textarea { min-height: 120px; }
    .plan-guidance textarea::placeholder, .plan-review-dialog textarea::placeholder { color: #8d9890; font-weight: 500; opacity: .68; }
    .plan-guidance.is-disabled textarea { background: #f4f6f3; }
    .plan-guidance-meta { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 6px; font-size: 12px; color: #69766e; }
    .plan-guidance .form-actions { display: flex; justify-content: flex-end; }
    .plan-guidance .plan-actions { align-items: flex-end; justify-content: space-between; gap: 12px; }
    .plan-actions button { white-space: nowrap; }
    .mobile-plan-date-break { display: none; }
    .plan-progress { margin-top: 14px; padding: 12px 14px; background: #f8faf7; border: 1px solid #dfe7dc; border-radius: 8px; }
    .plan-progress[hidden] { display: none; }
    .plan-progress-header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
    .plan-progress-label { color: #203028; font-size: 13px; font-weight: 700; }
    .plan-progress-percent { color: #69766e; font-size: 12px; white-space: nowrap; }
    .plan-progress-track { height: 8px; overflow: hidden; background: #e5ece5; border-radius: 999px; }
    .plan-progress-fill { width: 0; height: 100%; background: #286a57; border-radius: inherit; }
    .plan-update-progress-popup { position: fixed; top: var(--plan-garmin-sync-popup-top, 74px); left: 50%; z-index: 56; display: none; justify-content: center; width: min(100% - 24px, 1180px); transform: translateX(-50%); pointer-events: none; }
    .plan-update-progress-popup[hidden] { display: none; }
    .plan-update-progress-popup:not([hidden]) { display: flex; }
    .plan-update-progress-popup-inner,
    .plan-garmin-sync-popup-inner { position: relative; display: grid; gap: 10px; width: min(100%, 420px); max-width: 100%; padding: 12px 48px 12px 16px; border: 2px solid #286a57; border-radius: 8px; background: #ffffff; color: #203028; box-shadow: 0 16px 36px rgba(20,36,26,.22), 0 0 0 3px rgba(40,106,87,.12); pointer-events: auto; }
    .plan-update-progress-popup-main,
    .plan-garmin-sync-popup-main { display: grid; gap: 8px; min-width: 0; }
    .plan-update-progress-popup-row,
    .plan-garmin-sync-popup-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; min-width: 0; }
    .plan-update-progress-popup-label,
    .plan-garmin-sync-popup-label { color: #203028; font-size: 15px; font-weight: 800; line-height: 1.2; }
    .plan-update-progress-popup-percent,
    .plan-garmin-sync-popup-percent { color: #69766e; font-size: 12px; font-weight: 800; line-height: 1.2; }
    .plan-update-progress-popup .plan-progress-track,
    .plan-garmin-sync-popup .plan-progress-track { width: 100%; }
    .plan-update-progress-popup-message { display: none; gap: 5px; padding-top: 2px; }
    .plan-update-progress-popup-message .plan-coach-eyebrow { margin: 0; }
    .plan-update-progress-popup-message h2 { margin: 0; color: #203028; font-size: 18px; line-height: 1.2; }
    .plan-update-progress-popup-message p:last-child { margin: 0; color: #415047; font-size: 13px; line-height: 1.45; }
    .plan-update-progress-popup-actions { display: none; gap: 8px; }
    .plan-update-external-cancel-form { display: none; margin: 0; }
    .plan-update-progress-popup[data-plan-job-id^="external-gpt:"]:not(.is-complete) .plan-update-external-cancel-form { display: block; }
    .plan-update-progress-popup-close,
    .plan-background-popup-close { position: absolute; top: 8px; right: 8px; display: inline-flex; align-items: center; justify-content: center; width: 30px; min-width: 30px; height: 30px; min-height: 30px; margin: 0; padding: 0; border-radius: 6px; font-size: 22px; line-height: 1; box-shadow: none; }
    .plan-update-progress-popup-action { width: 100%; min-height: 42px; }
    [data-plan-update-cancel][hidden], [data-plan-update-cancel-error][hidden] { display: none !important; }
    .plan-update-progress-popup-retry { display: none; align-items: center; justify-content: center; gap: 8px; }
    .plan-update-progress-popup-reload { display: none; align-items: center; justify-content: center; gap: 8px; }
    .plan-update-progress-popup-retry .detail-action-icon,
    .plan-update-progress-popup-reload .detail-action-icon { width: 18px; height: 18px; }
    .plan-update-progress-popup.is-error .plan-update-progress-popup-retry { display: inline-flex; }
    .plan-update-progress-popup.is-error .plan-update-progress-popup-inner { border-color: #d97706; background: #fff8ed; box-shadow: 0 16px 36px rgba(82,45,9,.22), 0 0 0 3px rgba(217,119,6,.14); }
    .plan-update-progress-popup.is-error .plan-coach-eyebrow { color: #b45309; }
    .plan-update-progress-popup.is-complete .plan-update-progress-popup-inner { gap: 12px; padding: 15px 48px 16px 16px; }
    .plan-update-progress-popup.is-complete .plan-update-progress-popup-main { display: none; }
    .plan-update-progress-popup.is-complete .plan-update-progress-popup-message,
    .plan-update-progress-popup.is-complete .plan-update-progress-popup-actions,
    .plan-update-progress-popup.is-complete .plan-update-progress-popup-close { display: grid; }
    .plan-update-progress-popup.is-complete .plan-update-progress-popup-close { display: inline-flex; }
    .plan-update-progress-popup.is-status-error .plan-coach-eyebrow,
    .plan-update-progress-popup.is-status-error .plan-update-progress-popup-retry { display: none; }
    .plan-update-progress-popup.is-status-error .plan-update-progress-popup-reload { display: inline-flex; }
    .plan-update-result-dialog { width: min(600px, calc(100vw - 40px)); max-width: none; padding: 0; border: 0; background: transparent; color: #203028; }
    .plan-update-result-dialog::backdrop { background: rgba(10,24,18,.54); backdrop-filter: blur(3px); }
    .plan-update-result-card { overflow: hidden; border: 1px solid #d5e2d8; border-radius: 18px; background: #ffffff; box-shadow: 0 28px 72px rgba(16,38,28,.28); }
    .plan-update-result-header { display: grid; grid-template-columns: 54px minmax(0, 1fr) 36px; align-items: center; gap: 13px; padding: 20px 20px 15px; border-bottom: 1px solid #e2ebe4; }
    .plan-update-result-header > div { min-width: 0; }
    .plan-update-result-header .plan-coach-eyebrow { margin: 0 0 5px; color: #286a57; }
    .plan-update-result-header h2 { margin: 0; color: #203028; font-size: 22px; line-height: 1.2; overflow-wrap: anywhere; }
    .plan-update-result-avatar { display: block; width: 52px; height: 52px; border: 2px solid #bcd7c7; border-radius: 50%; object-fit: cover; }
    .plan-update-result-close { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; min-height: 0; padding: 0; border-radius: 8px; font-size: 24px; line-height: 1; box-shadow: none; }
    .plan-update-result-text { min-height: 72px; margin: 0; padding: 20px; color: #415047; font-size: 15px; line-height: 1.55; white-space: pre-wrap; }
    .plan-update-result-actions { display: flex; justify-content: flex-end; padding: 0 20px 20px; }
    .plan-update-result-actions button { min-width: 112px; min-height: 40px; }
    .plan-garmin-sync-popup { position: fixed; top: var(--plan-garmin-sync-popup-top, 74px); left: 50%; z-index: 55; display: flex; justify-content: center; width: min(100% - 24px, 1180px); transform: translateX(-50%); pointer-events: none; }
    .plan-garmin-sync-popup[hidden] { display: none; }
    .global-plan-update-card { display: contents; }
    .global-plan-update-card > .plan-progress { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
    .plan-garmin-sync-spinner { flex: 0 0 auto; width: 18px; height: 18px; border: 2px solid rgba(40,106,87,.22); border-top-color: #286a57; border-radius: 50%; animation: spin .8s linear infinite; }
    .plan-refresh-status { display: flex; align-items: center; gap: 9px; margin: 16px 0 14px; padding: 12px 14px; background: #f3f8f5; border: 1px solid #cfe0d3; border-radius: 8px; color: #203028; font-size: 13px; font-weight: 800; line-height: 1.35; }
    .plan-refresh-status span:last-child { min-width: 0; }
    .plan-popup-spacer[hidden] { display: none; }
    .main-inner:has(.plan-page) { max-width: 1180px; }
    @media (min-width: 761px) {
      .main-inner:has(.plan-page) { padding-top: 16px; }
      .main-inner:has(.plan-page) .plan-page { gap: 10px; }
      .plan-page .plan-unavailable,
      .plan-page .plan-guidance { margin-top: 0; margin-bottom: 0; }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .plan-page > .plan-guidance { display: contents; }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .plan-page > .plan-guidance > .plan-comments-panel,
      body.portal-page:not(.ios-mobile):not(.android-mobile) .plan-page > .plan-guidance > .plan-update-footer,
      body.portal-page:not(.ios-mobile):not(.android-mobile) .plan-page > .plan-guidance > .plan-progress { display: none !important; }
    }
    .plan-page, .plan-page * { box-sizing: border-box; }
    .plan-page { display: grid; gap: 14px; }
    #current-day, #today, .plan-day-anchor { scroll-margin-top: 18px; }
    .plan-page .button, .plan-page button { font-weight: 800; }
    .plan-update-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px 12px; margin: 0; padding: 10px 12px; border: 1px solid #dfe4dc; border-radius: 8px; background: white; }
    .plan-page .plan-update-card { margin: 0; }
    .plan-update-card.is-disabled { opacity: .78; }
    .plan-update-card.is-disabled.is-progressing { opacity: 1; }
    .plan-update-card > .plan-unavailable { grid-column: 1 / -1; margin: 0; }
    .plan-comments-toggle { display: inline-flex; align-items: center; justify-content: flex-start; min-height: 34px; width: auto; border: 1px solid #cbd4cb; background: white; color: #286a57; font-size: 13px; font-weight: 900; }
    .plan-comments-toggle:hover, .plan-comments-toggle:focus { border-color: #9fbead; background: #f8faf7; color: #1f4f41; }
    .plan-review-action { gap: 7px; border-color: #286a57; background: #286a57; color: #ffffff; font-weight: 850; box-shadow: 0 6px 14px rgba(40,106,87,.14); }
    .plan-review-action > .detail-action-icon { width: 18px; height: 18px; stroke-width: 2.2; }
    .plan-review-action.loading > .detail-action-icon { display: none; }
    .plan-review-action[data-plan-update-submit][disabled],
    .plan-review-action[data-plan-update-submit][aria-disabled="true"],
    .plan-review-action[data-plan-review-open][disabled],
    .plan-review-action[data-plan-review-open][aria-disabled="true"] { opacity: .72; cursor: not-allowed; }
    .plan-review-action[data-plan-chat-open][disabled],
    .plan-review-action[data-plan-chat-open][aria-disabled="true"] { opacity: 1; cursor: not-allowed; }
    .plan-update-card.is-progressing .plan-review-action[data-plan-chat-open][disabled],
    .plan-update-card.is-progressing .plan-review-action[data-plan-chat-open][aria-disabled="true"] { opacity: .72; cursor: not-allowed; }
    .plan-update-card.is-progressing [data-plan-chat-open] { pointer-events: auto; }
    .plan-update-card .plan-actions .plan-review-action-mobile { display: none; }
    .plan-update-card .plan-actions .plan-review-action-desktop { display: inline-flex; }
    .plan-review-action-label-mobile { display: none; }
    .plan-review-action-label-desktop { display: inline; }
    .plan-usage-counter-mobile,
    .plan-review-usage-counter-mobile { display: none; }
    .plan-usage-counter-desktop,
    .plan-review-usage-counter-desktop { display: inline; }
    .plan-comments-panel { grid-column: 1 / -1; }
    .plan-comments-panel label { margin-top: 0; }
    .plan-comments-panel textarea { min-height: 78px; resize: vertical; }
    .plan-chat-history { --plan-chat-scroll-surface: #f8faf7; --plan-chat-scroll-surface-clear: rgba(248,250,247,0); --plan-chat-scroll-thumb: #7da58f; --plan-chat-scroll-thumb-height: 34px; --plan-chat-scroll-thumb-top: 10px; box-sizing: border-box; display: grid; grid-template-columns: minmax(0, 1fr); gap: 9px; width: 100%; max-width: 100%; min-width: 0; min-height: 128px; max-height: 340px; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; scrollbar-gutter: stable; scrollbar-width: thin; scrollbar-color: #7da58f transparent; margin-bottom: 10px; padding: 10px; border: 1px solid #dfe7dc; border-radius: 8px; background: #f8faf7; }
    .plan-chat-history::-webkit-scrollbar { width: 8px; }
    .plan-chat-history::-webkit-scrollbar-track { background: transparent; }
    .plan-chat-history::-webkit-scrollbar-thumb { border: 2px solid #f8faf7; border-radius: 999px; background: #7da58f; }
    .plan-chat-history.is-scrollable { background:
      linear-gradient(#f8faf7 30%, rgba(248,250,247,0)) top,
      linear-gradient(rgba(248,250,247,0), #f8faf7 70%) bottom,
      radial-gradient(farthest-side at 50% 0, rgba(32,48,40,.22), rgba(32,48,40,0)) top,
      radial-gradient(farthest-side at 50% 100%, rgba(32,48,40,.2), rgba(32,48,40,0)) bottom;
      background-color: #f8faf7;
      background-repeat: no-repeat;
      background-size: 100% 18px, 100% 18px, 100% 10px, 100% 10px;
      background-attachment: local, local, scroll, scroll;
    }
    .plan-chat-older-button { justify-self: center; min-height: 28px; padding: 0 8px; font-size: 12px; }
    .plan-chat-empty { margin: 0; color: #69766e; font-size: 13px; text-align: center; }
    .plan-chat-conversation-divider { display: grid; grid-template-columns: minmax(20px, 1fr) auto minmax(20px, 1fr); align-items: center; gap: 8px; width: 100%; color: #69766e; }
    .plan-chat-conversation-divider > span { height: 1px; background: #d6dfd7; }
    .plan-chat-conversation-divider strong { font-size: 11px; font-weight: 800; white-space: nowrap; }
    .plan-chat-message { display: grid; gap: 4px; max-width: 88%; min-width: 0; }
    .plan-chat-message-proposal { gap: 7px; }
    .plan-chat-status-error[hidden] { display: none; }
    .plan-chat-message-user { justify-self: end; }
    .plan-chat-message-coach,
    .plan-chat-message-system { justify-self: start; }
    .plan-chat-message-meta { display: flex; align-items: baseline; gap: 8px; color: #69766e; font-size: 11px; font-weight: 850; }
    .plan-chat-message-user .plan-chat-message-meta { justify-content: flex-end; }
    .plan-chat-message-meta time { font-weight: 650; opacity: .82; }
    .plan-chat-bubble { display: grid; gap: 4px; padding: 9px 10px; border: 1px solid #d9e2d8; border-radius: 8px; background: #ffffff; color: #203028; line-height: 1.35; overflow-wrap: anywhere; }
    .plan-chat-message-user .plan-chat-bubble { border-color: #b9d4c6; background: #eaf5ed; }
    .plan-chat-message-coach.is-updated .plan-chat-bubble { border-color: #9fc7ad; background: #edf7f0; }
    .plan-chat-message.is-error .plan-chat-bubble { border-color: #d97706; background: #fff1dc; }
    .plan-chat-message.is-pending .plan-chat-bubble { color: #56645c; }
    .coach-chat-responding-dots { display: inline-block; font-weight: 800; letter-spacing: .04em; white-space: nowrap; }
    .coach-chat-responding-dots span:nth-child(2) { animation: coach-chat-responding-dot-two 1.8s steps(1, end) infinite; }
    .coach-chat-responding-dots span:nth-child(3) { animation: coach-chat-responding-dot-three 1.8s steps(1, end) infinite; }
    @keyframes coach-chat-responding-dot-two {
      0%, 32%, 100% { opacity: 0; }
      33%, 99% { opacity: 1; }
    }
    @keyframes coach-chat-responding-dot-three {
      0%, 65%, 100% { opacity: 0; }
      66%, 99% { opacity: 1; }
    }
    .plan-chat-message[data-plan-timeline-progress] { width: 100%; }
    .plan-timeline-progress-heading { display: flex; align-items: center; gap: 8px; min-width: 0; }
    .plan-timeline-progress-heading strong { min-width: 0; }
    .plan-timeline-progress-heading output { margin-left: auto; color: #69766e; font-size: 11px; font-weight: 850; white-space: nowrap; }
    .plan-timeline-progress-spinner { flex: 0 0 auto; width: 18px; height: 18px; border: 2px solid rgba(40,106,87,.22); border-top-color: #286a57; border-radius: 50%; animation: spin .8s linear infinite; }
    .plan-timeline-progress-track { width: 100%; height: 9px; overflow: hidden; border-radius: 999px; background: #e5ece5; }
    .plan-timeline-progress-fill { width: 0; height: 100%; border-radius: inherit; background: #286a57; transition: width .2s ease; }
    .plan-chat-bubble strong { font-size: 12px; line-height: 1.25; }
    .plan-chat-bubble p { margin: 0; font-size: 13px; white-space: pre-line; }
    .coach-chat-rich-text { display: grid; gap: 7px; font-size: 13px; line-height: 1.42; }
    .coach-chat-rich-text :is(p, ul, ol) { margin: 0; }
    .coach-chat-rich-text :is(ul, ol) { display: grid; gap: 4px; padding-left: 20px; }
    .coach-chat-rich-text li { padding-left: 1px; }
    .coach-chat-rich-text strong { font-size: inherit; line-height: inherit; }
    .plan-update-retry,
    .plan-update-status-inline-reload { display: inline-flex; align-items: center; justify-content: center; gap: 7px; justify-self: start; min-height: 36px; margin-top: 4px; padding: 0 12px; background: #286a57; color: #ffffff; font-weight: 850; }
    .plan-update-retry .detail-action-icon,
    .plan-update-status-inline-reload .detail-action-icon { width: 17px; height: 17px; }
    .coach-plan-update-proposal { display: grid; gap: 7px; margin-top: 4px; padding: 10px; border: 1px solid #ced9cf; border-radius: 8px; background: #fbfcfa; color: #203028; }
    .plan-chat-message-proposal .coach-plan-update-proposal { margin-top: 0; }
    .coach-plan-update-proposal.is-unused { opacity: .64; filter: saturate(.45); background: #f1f3f1; }
    .coach-plan-update-proposal strong { font-size: 12px; }
    .coach-plan-update-proposal p { margin: 0; font-size: 13px; line-height: 1.4; white-space: pre-line; overflow-wrap: anywhere; }
    .coach-plan-update-proposal-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
    .coach-plan-update-proposal-actions button { width: auto; min-height: 34px; padding: 0 10px; font-size: 12px; }
    .plan-review-dialog { width: min(430px, calc(100vw - 28px)); max-width: none; padding: 0; border: 0; background: transparent; color: inherit; }
    .plan-review-dialog:focus { outline: none; }
    .plan-review-dialog::backdrop { background: rgba(10,24,18,.5); backdrop-filter: blur(2px); }
    .plan-review-card { display: grid; gap: 12px; box-sizing: border-box; max-height: calc(100dvh - 36px); overflow: auto; margin: 0; padding: 16px; border: 1px solid #d9e2d8; border-radius: 8px; background: #ffffff; color: #203028; box-shadow: 0 22px 58px rgba(31,39,34,.24); }
    .plan-review-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
    .plan-review-title { display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: center; justify-items: start; column-gap: 12px; flex: 1 1 auto; min-width: 0; }
    .plan-review-avatar { grid-column: 1; display: block; align-self: center; width: 64px; height: 64px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 1px rgba(40,106,87,.2), 0 4px 12px rgba(31,39,34,.13); }
    .plan-review-header h2 { grid-column: 2; align-self: center; min-width: 0; max-width: 100%; margin: 0; overflow: hidden; font-size: 18px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
    .plan-review-title-actions { position: relative; display: flex; align-items: center; align-self: center; flex: 0 0 auto; line-height: 0; }
    .plan-review-menu-toggle { -webkit-appearance: none; appearance: none; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; flex: 0 0 36px; width: 36px; min-width: 36px; height: 36px; min-height: 36px; padding: 0; border: 1px solid #d5ddd7; border-radius: 6px; background: #ffffff; color: #3b4b42; box-shadow: none; cursor: pointer; }
    .plan-review-menu-toggle .detail-action-menu-dots { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; }
    .plan-review-menu-toggle .detail-action-menu-dots span { width: 3px; height: 3px; border-radius: 50%; background: currentColor; }
    .plan-review-menu { position: absolute; z-index: 30; top: calc(100% + 6px); right: 0; display: grid; min-width: 210px; padding: 5px; border: 1px solid #d5ddd7; border-radius: 8px; background: #ffffff; box-shadow: 0 14px 32px rgba(31,39,34,.2); }
    .plan-review-menu[hidden] { display: none; }
    .plan-review-menu :is(a, button) { display: flex; align-items: center; justify-content: flex-start; box-sizing: border-box; gap: 9px; width: 100%; min-height: 38px; padding: 7px 10px; border: 0; border-radius: 6px; background: transparent; color: #203028; font-size: 13px; font-weight: 750; text-align: left; text-decoration: none; box-shadow: none; }
    .plan-review-menu .detail-action-icon { flex: 0 0 17px; width: 17px; height: 17px; }
    .plan-review-menu :is(a, button):is(:hover, :focus-visible) { background: #eef5ef; color: #1f4f41; }
    .plan-review-close { -webkit-appearance: none; appearance: none; position: relative; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; flex: 0 0 36px; width: 36px; min-width: 36px; height: 36px; min-height: 36px; padding: 0; border-radius: 6px; font-size: 24px; line-height: 1; box-shadow: none; cursor: pointer; }
    @media (min-width: 761px) {
      .plan-review-close { font-size: 0; }
      .plan-review-close::before,
      .plan-review-close::after { content: ""; position: absolute; left: 50%; top: 50%; width: 15px; height: 2px; border-radius: 999px; background: currentColor; transform-origin: center; }
      .plan-review-close::before { transform: translate(-50%, -50%) rotate(45deg); }
      .plan-review-close::after { transform: translate(-50%, -50%) rotate(-45deg); }
      .plan-review-dialog textarea { font-size: 13px; }
    }
    .plan-review-note { margin: 0; color: #56645c; font-size: 13px; line-height: 1.35; }
    .plan-review-consent-action { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; width: 100%; min-height: 42px; font-weight: 850; text-align: center; }
    .plan-review-dialog label { display: grid; gap: 6px; margin: 0; color: #56645c; font-size: 12px; font-weight: 800; }
    .plan-review-dialog textarea { min-height: 90px; resize: vertical; font-weight: 400; }
    body.ios-mobile.portal-page .plan-review-dialog {
      box-sizing: border-box;
      height: fit-content;
      max-height: none;
      overflow: visible;
    }
    body.ios-mobile.portal-page .plan-review-card {
      width: 100%;
      max-height: calc(
        100vh
        - max(12px, env(safe-area-inset-top))
        - max(12px, env(safe-area-inset-bottom))
      );
      max-height: calc(
        100dvh
        - max(12px, env(safe-area-inset-top))
        - max(12px, env(safe-area-inset-bottom))
      );
    }
    body.ios-mobile.portal-page .plan-review-dialog textarea { font-size: 16px; }
    .plan-review-composer { display: grid; gap: 5px; }
    .plan-review-meta { display: flex; justify-content: space-between; align-items: center; gap: 10px; color: #69766e; font-size: 11px; line-height: 1.2; }
    .plan-review-actions { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: 8px; }
    .plan-review-actions.has-chat-send { grid-template-columns: minmax(0, 1fr) max-content; align-items: end; gap: 12px; }
    .plan-review-action-stack { display: grid; gap: 5px; min-width: 0; }
    .plan-review-action-stack.is-plan-update { justify-items: start; }
    .plan-review-action-stack.is-chat-send { justify-items: end; }
    .plan-review-action-stack .plan-review-usage-counter { max-width: 100%; color: #69766e; font-size: 11px; line-height: 1.2; }
    .plan-review-action-stack.is-plan-update .plan-review-usage-counter { text-align: left; }
    .plan-review-action-stack.is-chat-send .plan-review-usage-counter { text-align: right; }
    .plan-review-actions.plan-update-only .plan-review-action-stack.is-plan-update { justify-items: end; }
    .plan-review-actions.plan-update-only .plan-review-usage-counter { text-align: right; }
    .plan-review-cancel { width: auto; min-width: 0; min-height: 42px; padding: 0 10px; font-size: 14px; white-space: nowrap; }
    .plan-review-submit,
    .plan-review-send { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding-inline: 14px; font-size: 15px; line-height: 1.15; }
    .plan-review-submit { width: auto; max-width: 100%; justify-self: start; }
    .plan-review-send { width: auto; min-width: 94px; }
    .plan-review-submit,
    .plan-review-submit span,
    .plan-review-send span { min-width: 0; white-space: nowrap; }
    .plan-review-send { white-space: nowrap; }
    .plan-review-actions.has-chat-send .plan-review-action-stack.is-plan-update { width: 100%; justify-items: stretch; }
    .plan-review-actions.has-chat-send .plan-review-action-stack.is-chat-send { width: auto; justify-self: end; }
    .plan-review-actions.has-chat-send .plan-review-submit { width: 100%; min-width: 0; }
    .plan-review-actions.has-chat-send .plan-review-send { width: auto; min-width: 94px; }
    .plan-review-send .plan-review-send-icon { flex: 0 0 auto; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
    .plan-review-usage-counter[hidden] { display: none !important; }
    .plan-review-submit[aria-disabled="true"],
    .plan-review-submit:disabled,
    .plan-review-send[aria-disabled="true"],
    .plan-review-send:disabled,
    .plan-update-retry:disabled { border: 1px solid #d5ddd7; background: #edf1ee; color: #77837b; box-shadow: none; opacity: 1; cursor: default; }
    .plan-review-dialog textarea:disabled { cursor: default; }
    .plan-review-submit.loading[aria-disabled="true"] { cursor: wait; }
    .plan-update-footer { display: contents; }
    .plan-update-card.is-collapsed .plan-update-footer { grid-column: 1 / -1; display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
    .plan-update-card.is-collapsed .plan-guidance-meta { display: flex; align-items: center; justify-content: flex-end; }
    .plan-update-card.is-collapsed .plan-actions { display: flex; flex-direction: row; align-items: center; justify-content: flex-end; gap: 8px; }
    .plan-update-card .plan-guidance-meta { grid-column: 2; display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-top: 0; color: #69766e; font-size: 12px; }
    .plan-update-card .plan-actions { grid-column: 3; display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-top: 0; }
    .plan-update-card .plan-last-updated { display: none; }
    .plan-update-card:not(.is-collapsed) .plan-comments-toggle { grid-column: 1 / -1; width: 100%; justify-content: flex-start; }
    .plan-update-card:not(.is-collapsed) .plan-update-footer { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 10px; margin-top: -4px; }
    .plan-update-card:not(.is-collapsed) .plan-guidance-meta { display: contents; }
    .plan-update-card:not(.is-collapsed) .plan-char-counter { grid-column: 1 / -1; min-width: 0; align-self: start; line-height: 1.2; }
    .plan-update-card:not(.is-collapsed) .plan-usage-counter { grid-column: 1; justify-self: end; align-self: center; white-space: nowrap; }
    .plan-update-card:not(.is-collapsed) .plan-actions { grid-column: 2; align-self: center; }
    .plan-update-card .plan-progress { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
    .plan-update-card.is-progressing .plan-comments-panel { display: none; }
    .plan-update-card.is-progressing .plan-update-footer { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
    .plan-update-card.is-progressing .plan-actions { display: flex; justify-content: flex-end; }
    .plan-update-card .plan-actions button { display: inline-flex; align-items: center; justify-content: center; height: 36px; min-height: 0; padding: 0 12px; box-sizing: border-box; font-size: 13px; box-shadow: 0 6px 14px rgba(40,106,87,.14); }
    .plan-char-counter[hidden] { display: none; }
    .plan-review-meta .plan-char-counter[data-plan-review-char-counter] { display: inline-block; min-height: 1.2em; }
    .calendar-panel, .selected-panel { border: 1px solid #dfe4dc; border-radius: 8px; background: white; }
    .calendar-panel { padding: 12px; }
    .calendar-header { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: start; gap: 14px; margin-bottom: 8px; }
    .calendar-title-row { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
    .calendar-title strong { display: block; font-size: 18px; line-height: 1.2; }
    .calendar-title-desktop { display: inline; }
    .calendar-title-mobile { display: none; }
    .calendar-title > span { display: block; margin-top: 2px; color: #69766e; font-size: 12px; }
    .calendar-title .calendar-range { white-space: nowrap; }
    .calendar-title .calendar-range-mobile, .plan-calendar-mobile { display: none; }
    .calendar-legend-toggle { display: inline-flex; align-items: center; justify-content: center; min-height: 24px; padding: 2px 8px; border: 1px solid #d7e2d7; border-radius: 6px; background: #f6f8f4; color: #56645c; font: inherit; font-size: 11px; font-weight: 850; line-height: 1.15; text-decoration: none; box-shadow: inset 0 1px 0 rgba(255,255,255,.72); cursor: pointer; white-space: nowrap; }
    .calendar-legend-toggle:hover, .calendar-legend-toggle:focus { border-color: #c7d6ca; background: #edf5ef; color: #415047; outline: none; box-shadow: inset 0 1px 0 rgba(255,255,255,.82); }
    .calendar-legend-toggle:focus-visible { outline: 2px solid rgba(40,106,87,.18); outline-offset: 2px; }
    .calendar-legend-toggle span { display: inline; margin: 0; color: inherit; font: inherit; }
    .calendar-last-updated { align-self: center; color: #69766e; font-size: 12px; font-weight: 400; white-space: nowrap; }
    .calendar-last-updated[hidden] { display: none; }
    .calendar-nav { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
    .nav-group { display: flex; align-items: center; gap: 6px; }
    .nav-group.navigate { margin-left: 10px; }
    .calendar-selects select { min-height: 34px; min-width: 96px; padding: 6px 28px 6px 10px; border: 1px solid #b9c8bd; border-radius: 6px; background: white; color: #203028; font: inherit; font-size: 13px; font-weight: 800; }
    .calendar-nav .button { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 7px 11px; border: 1px solid #b9c8bd; border-radius: 6px; font-size: 13px; font-weight: 800; text-decoration: none; }
    .calendar-nav .today-button { background: #286a57; color: #ffffff; border-color: #286a57; font-size: 16px; box-shadow: 0 6px 14px rgba(40,106,87,.14); }
    .calendar-nav .today-button:hover, .calendar-nav .today-button:focus { background: #1f4f41; border-color: #1f4f41; color: #ffffff; }
    .legend { grid-column: 1 / -1; grid-row: 2; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 8px; width: auto; margin: -2px 0 -4px; color: #69766e; font-size: 12px; }
    .legend[hidden] { display: none; }
    .legend-status { display: inline-flex; align-items: center; justify-content: center; min-height: 22px; padding: 1px 9px 3px; border: 1px solid transparent; border-radius: 999px; font-size: 11.5px; font-weight: 700; line-height: 1.2; white-space: nowrap; }
    .calendar-grid-wrap, .day-list-wrap { display: grid; gap: 8px; }
    .week-arrow-row { display: grid; grid-template-columns: 1fr; gap: 8px; }
    .week-arrow-row-mobile { display: none; }
    .calendar-grid-stage, .day-list-stage { position: relative; min-width: 0; }
    .calendar-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; isolation: isolate; }
    .calendar-week-row { grid-column: 1; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; min-width: 0; }
    .calendar-week-row.is-phase-covered { opacity: .28; }
    .plan-phase-overlay { z-index: 4; display: grid; place-items: center; box-sizing: border-box; min-width: 0; overflow: hidden; border: 1px solid rgba(111,145,123,.62); border-radius: 16px; background: rgba(226,239,230,.36); color: #203028; box-shadow: 0 16px 38px rgba(30,51,40,.14), inset 0 1px 0 rgba(255,255,255,.58); pointer-events: none; }
    .plan-phase-overlay.is-desktop { position: relative; grid-column: 1; align-self: stretch; min-height: 128px; margin: 10px calc(10.7143% - 3.857px); padding: 10px 16px; }
    .plan-phase-overlay.is-desktop.phase-overlay-span-2 { min-height: 204px; }
    .plan-phase-overlay.is-desktop.phase-overlay-span-3 { min-height: 266px; }
    .plan-phase-overlay.is-mobile { position: absolute; inset: 4px; align-items: start; padding: 12px; }
    .plan-phase-overlay-card { position: relative; display: grid; gap: 8px; box-sizing: border-box; width: min(800px, 100%); max-height: 100%; min-width: 0; overflow: auto; padding: 14px 58px 14px 16px; border: 1px solid rgba(113,148,125,.46); border-radius: 12px; background: rgba(255,255,255,.46); box-shadow: 0 10px 28px rgba(42,67,53,.11); pointer-events: auto; }
    .plan-phase-overlay.is-desktop.phase-overlay-span-1 .plan-phase-overlay-card { grid-template-columns: minmax(0, 1fr) auto; gap: 7px 12px; padding: 10px 52px 10px 12px; }
    .plan-phase-overlay.is-desktop.phase-overlay-span-1 .plan-phase-overlay-heading { grid-column: 1 / -1; }
    .plan-phase-overlay.is-desktop.phase-overlay-span-1 .plan-phase-overlay-summary-grid { grid-column: 1; }
    .plan-phase-overlay.is-desktop.phase-overlay-span-1 .plan-phase-overlay-supporting { display: none; }
    .plan-phase-overlay.is-desktop.phase-overlay-span-1 .plan-phase-overlay-actions { grid-column: 2; align-self: end; }
    .plan-phase-overlay-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; min-width: 0; }
    .plan-phase-overlay-heading > div:first-child { min-width: 0; }
    .plan-phase-overlay-eyebrow, .plan-phase-overlay-card h3 { display: block; margin: 0; color: #607168; font-size: 10px; font-weight: 900; letter-spacing: .055em; line-height: 1.15; text-transform: uppercase; }
    .plan-phase-overlay[data-roadmap-phase-type] .plan-phase-overlay-eyebrow { color: #9a4d12; }
    .plan-phase-overlay-card h3.season-roadmap-phase-label-purpose { color: #286a57; }
    .plan-phase-overlay-card h3.season-roadmap-phase-label-direction { color: #315e88; }
    .plan-phase-overlay-card h3.season-roadmap-phase-label-themes { color: #875000; }
    .plan-phase-overlay-title-row { min-width: 0; margin-top: 3px; }
    .plan-phase-overlay-card h2 { min-width: 0; margin: 3px 0 0; color: #203028; font-size: clamp(19px, 2.2vw, 24px); line-height: 1.14; overflow-wrap: anywhere; }
    .plan-phase-overlay-title-row h2 { margin-top: 0; }
    .plan-phase-overlay-week { display: grid; flex: 0 0 auto; justify-items: end; gap: 2px; padding: 6px 9px; border: 1px solid rgba(40,106,87,.2); border-radius: 9px; background: rgba(255,255,255,.62); color: #286a57; text-align: right; }
    .plan-phase-overlay-week strong { font-size: 13px; line-height: 1.1; white-space: nowrap; }
    .plan-phase-overlay-week span { color: #69766e; font-size: 9px; font-weight: 750; white-space: nowrap; }
    .plan-phase-overlay-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; min-width: 0; }
    .plan-phase-overlay-summary-grid > section { min-width: 0; padding: 8px 9px; border: 1px solid rgba(143,164,151,.28); border-radius: 9px; background: rgba(255,255,255,.48); }
    .plan-phase-overlay-card p { margin: 4px 0 0; color: #405149; font-size: 12px; line-height: 1.35; }
    .plan-phase-overlay-summary-grid p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
    .plan-phase-overlay-volume { color: #607168 !important; font-size: 11px !important; }
    .plan-phase-overlay-supporting { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; min-width: 0; }
    .plan-phase-overlay-supporting section { min-width: 0; }
    .plan-phase-overlay-supporting ul { display: flex; flex-wrap: wrap; gap: 5px; margin: 5px 0 0; padding: 0; list-style: none; }
    .plan-phase-overlay .season-roadmap-source-chip { min-width: 0; max-width: 100%; padding: 4px 7px; overflow: hidden; border: 1px solid rgba(105,128,115,.24); border-radius: 999px; background: rgba(255,255,255,.58); color: #405149; font-size: 10px; font-weight: 750; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
    .plan-phase-overlay-themes .season-roadmap-theme-pill { --roadmap-theme-background: #eef2ee; --roadmap-theme-border: #c8d9cc; --roadmap-theme-ink: #385b4d; min-width: 0; max-width: 100%; padding: 4px 7px; overflow: hidden; border: 1px solid var(--roadmap-theme-border); border-radius: 999px; background: var(--roadmap-theme-background); color: var(--roadmap-theme-ink); font-size: 10px; font-weight: 750; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
    .plan-phase-overlay-themes .season-roadmap-theme-pill-endurance { --roadmap-theme-background: #e6f1f7; --roadmap-theme-border: #bdd7e2; --roadmap-theme-ink: #245f78; }
    .plan-phase-overlay-themes .season-roadmap-theme-pill-strength { --roadmap-theme-background: #f0eafb; --roadmap-theme-border: #d3c2e8; --roadmap-theme-ink: #614384; }
    .plan-phase-overlay-themes .season-roadmap-theme-pill-recovery { --roadmap-theme-background: #e4f4ef; --roadmap-theme-border: #b7d8cf; --roadmap-theme-ink: #176b62; }
    .plan-phase-overlay-themes .season-roadmap-theme-pill-race { --roadmap-theme-background: #f9e7e5; --roadmap-theme-border: #e6b7b3; --roadmap-theme-ink: #913b35; }
    .plan-phase-overlay-themes .season-roadmap-theme-pill-fueling { --roadmap-theme-background: #fff3df; --roadmap-theme-border: #e6c894; --roadmap-theme-ink: #805015; }
    .plan-phase-overlay-themes .season-roadmap-theme-pill-technique { --roadmap-theme-background: #e5f4e9; --roadmap-theme-border: #c7dfcd; --roadmap-theme-ink: #286a57; }
    .plan-phase-overlay-actions { display: flex; justify-content: flex-end; }
    .plan-phase-overlay-close { position: absolute; z-index: 3; top: 16px; right: 16px; }
    .plan-phase-overlay-cancel { display: none; }
    .plan-phase-overlay-roadmap-button { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 6px 13px; border: 1px solid #286a57; border-radius: 8px; background: #286a57; color: #ffffff !important; font: inherit; font-size: 12px; font-weight: 900; line-height: 1.1; text-decoration: none; box-shadow: 0 6px 14px rgba(40,106,87,.16); cursor: pointer; }
    .plan-phase-overlay-roadmap-button:hover, .plan-phase-overlay-roadmap-button:focus { border-color: #1f4f41; background: #1f4f41; color: #ffffff; outline: none; }
    .plan-phase-overlay-roadmap-button:focus-visible { box-shadow: 0 0 0 3px rgba(49,109,143,.22); }
    .plan-phase-overlay.has-no-roadmap .plan-phase-overlay-card,
    .plan-phase-overlay.has-roadmap-gap .plan-phase-overlay-card { max-width: 620px; }
    .plan-phase-overlay-summary { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
    .week-arrow { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 30px; border: 1px solid #ccd2cc; border-radius: 6px; background: #f1f2f0; color: #4f5d55; font-size: 12px; font-weight: 900; line-height: 1.2; text-decoration: none; }
    .week-arrow > span:not([data-plan-calendar-loading-overlay]) { display: inline-block; }
    .week-arrow:hover, .week-arrow:focus { border-color: #b9c0b9; background: #e6e8e5; color: #334039; }
    .calendar-day { min-height: 78px; overflow: hidden; padding: 7px; border: 1px solid #e0e6df; border-radius: 8px; background: #fbfcfb; cursor: pointer; }
    .calendar-day.has-plan, .day-row.has-plan { background: #f8faf7; }
    .calendar-day.is-planned-rest, .day-row.is-planned-rest { background: #f8faf7; }
    .calendar-day.is-today, .day-row.is-today { background: #f8faf7; border-color: #cfd8cf; }
    .calendar-day.is-selected, .day-row.is-selected, .day-row.is-collapsed-selected { border-color: #316d8f; box-shadow: inset 0 0 0 1px #316d8f; background: #fbfcfb; }
    .calendar-day.is-today.is-selected, .day-row.is-today.is-selected, .day-row.is-today.is-collapsed-selected { background: #fbfcfb; }
    .day-row.is-selected.is-switching-away { border-color: #e0e6df; box-shadow: none; background: #f8faf7; }
    .day-row.is-today.is-selected.is-switching-away { border-color: #cfd8cf; background: #f8faf7; }
    .calendar-day.is-outside-horizon { background: white; }
    .calendar-day.is-outside-horizon .day-num, .calendar-day.is-outside-horizon .day-weekday, .calendar-day.is-outside-horizon .day-month { color: #9aa39b; }
    .day-number { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: baseline; gap: 6px; width: 100%; padding: 0; border: 0; background: transparent; color: #203028; font: inherit; font-weight: 800; text-align: left; text-decoration: none; }
    .day-weekday { justify-self: end; color: #69766e; font-size: 11px; font-weight: 900; line-height: 1; text-transform: uppercase; }
    .day-month { justify-self: center; color: #69766e; font-size: 11px; font-weight: 900; line-height: 1; text-transform: uppercase; }
    .day-workouts { display: grid; gap: 4px; min-width: 0; overflow: hidden; margin-top: 6px; }
    .calendar-pill, .workout-pill, .workout-switch { position: relative; box-sizing: border-box; max-width: 100%; overflow: hidden; color: #56645c; text-decoration: none; }
    .calendar-pill { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 5px; min-width: 0; width: 100%; min-height: 26px; padding: 3px 7px 3px 10px; border: 1px solid transparent; border-radius: 999px; font: inherit; font-size: 11.5px; font-weight: 700; line-height: 1.2; text-align: left; }
    .calendar-pill span, .workout-pill span, .workout-switch span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .calendar-pill span { line-height: 1.2; }
    .calendar-pill > span { transform: translateY(-1px); }
    .calendar-pill .plan-activity-icon, .workout-pill .plan-activity-icon, .workout-switch .plan-activity-icon { width: 16px; height: 16px; opacity: .86; transform: scale(1.1875); transform-origin: center; }
    .workout-switch .plan-activity-icon { width: 14px; height: 14px; transform: scale(1.1429); }
    .calendar-pill .plan-activity-icon { justify-self: end; width: 16px; height: 16px; opacity: .94; transform: scale(1.125); transform-origin: center; --sport-icon-stroke: currentColor; --sport-icon-stroke-width: .24px; }
    .calendar-pill-markers { display: inline-flex; align-items: center; justify-content: flex-end; gap: 4px; overflow: visible !important; transform: none !important; }
    .calendar-personal-record-badge { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 1px; overflow: visible !important; color: #806300; font-size: 8px; font-weight: 900; line-height: 1; }
    .calendar-personal-record-badge .personal-record-rosette { width: 14px; height: 14px; }
    .calendar-personal-record-count { overflow: visible; color: #6d5300; line-height: 1; transform: translateY(-1px); }
    .workout-pill .plan-activity-icon { flex: 0 0 auto; justify-self: end; margin-left: auto; }
    .workout-switch .plan-activity-icon { justify-self: end; }
    .selected-summary .workout-switch { grid-template-columns: max-content 14px; max-width: none; }
    .selected-summary .workout-switch span { overflow: visible; text-overflow: clip; }
    .calendar-pill.is-calendar-seen, .workout-pill.is-calendar-seen, .workout-switch.is-calendar-seen { font-weight: 450; }
    .calendar-pill.is-calendar-unseen, .workout-pill.is-calendar-unseen, .workout-switch.is-calendar-unseen { font-weight: 850; }
    .plan-calendar-rest-placeholder { cursor: default; opacity: .84; }
    .plan-activity-icon { flex: 0 0 auto; }
    .plan-activity-icon-mobility, .plan-activity-icon-yoga, .plan-activity-icon-pilates { scale: 1.15; transform-origin: center; }
    .plan-activity-icon .plan-activity-icon-modifier { stroke-width: 1.35; }
    .calendar-day.is-today .day-num, .day-row.is-today .date-lockup strong { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; text-decoration-color: #8b958d; }
    .no-workout { color: #9aa39b; font-size: 12px; }
    .legend-status.is-planned, .calendar-pill.is-planned, .workout-pill.is-planned, .workout-switch.is-planned, .detail-status.is-planned { background: #f8faf7; color: #56645c; border-color: #d8e0d6; }
    .detail-status.is-planned { background: #e8f2ff; color: #316d8f; border-color: #c8dff2; }
    .legend-status.is-revised, .calendar-pill.is-revised, .workout-switch.is-revised, .detail-status.is-revised { background: #e8f2ff; color: #316d8f; border-color: #c8dff2; }
    .legend-status.is-completed, .calendar-pill.is-completed, .workout-pill.is-completed, .workout-switch.is-completed, .detail-status.is-completed { background: #e5f4e9; color: #286a57; border-color: #c7dfcd; }
    .legend-status.is-partial, .calendar-pill.is-partial, .workout-pill.is-partial, .workout-switch.is-partial, .detail-status.is-partial { background: #fff2cc; color: #8a5b00; border-color: #ead38d; }
    .legend-status.is-skipped, .calendar-pill.is-skipped, .workout-pill.is-skipped, .detail-status.is-skipped, .workout-switch.is-skipped { background: #fde7f1; color: #9d1f5d; border-color: #ef9ec7; }
    .legend-status.is-unplanned, .calendar-pill.is-unplanned, .workout-pill.is-unplanned, .workout-switch.is-unplanned, .detail-status.is-unplanned { background: #f1e7de; color: #7c4d25; border-color: #dcc6b4; }
    .calendar-pill.is-neutral, .workout-pill.is-neutral, .workout-switch.is-neutral, .detail-status.is-neutral { background: #eef2ee; color: #56645c; border-color: #d9dfd8; }
    .selected-panel { margin-top: 10px; padding: 14px 16px; }
    .selected-panel.is-today .workout-detail { background: #fbfcfb; border-color: #dfe4dc; }
    .selected-header { display: grid; grid-template-columns: max-content minmax(0, 1fr) auto; align-items: flex-start; gap: 12px; margin-bottom: 10px; }
    .selected-title strong { display: block; font-size: 18px; line-height: 1.2; }
    .selected-title span { display: block; margin-top: 3px; color: #69766e; font-size: 13px; }
    .selected-summary { display: flex; flex-wrap: wrap; align-items: center; align-content: flex-start; justify-content: flex-end; gap: 6px 8px; min-width: 0; color: #69766e; font-size: 12px; }
    .workout-switch { display: inline-grid; grid-template-columns: minmax(0, 1fr) 14px; align-items: center; justify-content: flex-start; gap: 5px; min-height: 22px; padding: 2px 7px 2px 10px; border: 1px solid #d8e0d6; border-radius: 999px; background: #f8faf7; color: #56645c; font: inherit; font-size: 12px; font-weight: 700; line-height: 1; }
    .calendar-pill.is-clicked, .workout-pill.is-clicked, .calendar-day.is-today .calendar-pill.is-clicked, .day-row.is-today .workout-pill.is-clicked { border-color: #316d8f; box-shadow: inset 0 0 0 1px #316d8f, 0 0 0 1px rgba(49,109,143,.2); }
    .workout-switch.is-active { border-color: #316d8f; box-shadow: 0 0 0 1px rgba(49,109,143,.18); }
    .workout-detail { padding: 12px 14px; border: 1px solid #dfe4dc; border-radius: 8px; background: #fbfcfb; }
    .workout-detail[hidden] { display: none; }
    .detail-heading { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: auto auto; align-items: start; gap: 8px 20px; margin-bottom: 12px; border-bottom: 1px solid #d8e0d6; }
    .detail-title { grid-column: 1 / 3; grid-row: 1; min-width: 0; }
    .detail-kicker { display: block; color: #56645c; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 0; }
    .detail-title-row { display: flex; align-items: center; gap: 8px; min-width: 0; margin-top: 3px; }
    .detail-panel-heading { display: grid; gap: 3px; min-width: 0; margin-bottom: 2px; padding: 0 0 10px; border-bottom: 1px solid #d8e0d6; }
    .detail-panel-kicker { display: block; min-width: 0; color: #56645c; font-size: 12px; font-weight: 800; letter-spacing: 0; text-transform: uppercase; }
    .detail-panel-title-row { display: flex; align-items: center; gap: 8px; min-width: 0; }
    .detail-panel-title-row h3 { flex: 1 1 auto; }
    .personal-record-trigger { position: relative; box-sizing: border-box; display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; width: 34px; height: 30px; margin: 0; padding: 0; border: 1px solid #ddc56d; border-radius: 7px; background: #fff8d9; color: #886d08; cursor: pointer; box-shadow: none; }
    .personal-record-trigger:hover, .personal-record-trigger:focus-visible { border-color: #b99924; background: #fff1b4; color: #684f00; outline: none; box-shadow: 0 0 0 2px rgba(185,153,36,.18); }
    .personal-record-trigger > span { position: absolute; right: -5px; top: -7px; display: inline-flex; align-items: center; justify-content: center; min-width: 17px; height: 17px; box-sizing: border-box; padding: 0 4px; border: 2px solid #ffffff; border-radius: 999px; background: #286a57; color: #ffffff; font-size: 9px; font-weight: 900; line-height: 1; }
    .personal-record-trigger > span > b { display: inline-flex; align-items: center; justify-content: center; width: 100%; height: 100%; margin: 0; font: inherit; font-variant-numeric: tabular-nums; line-height: 1; text-align: center; }
    @media (min-width: 761px) {
      body.portal-page .personal-record-trigger > span { width: 18px; min-width: 18px; max-width: 18px; height: 18px; min-height: 18px; max-height: 18px; padding: 0; border-radius: 50%; }
      body.safari-desktop.portal-page .personal-record-trigger > span > b { transform: translateX(.75px); }
      body.portal-page .workout-detail .personal-record-trigger,
      body.portal-page .workout-detail .detail-action-menu-toggle { width: 34px; height: 34px; }
      body.portal-page .workout-detail .detail-action-menu { align-self: center; width: 34px; height: 34px; }
      body.portal-page .workout-detail .detail-action-menu-toggle { vertical-align: top; }
    }
    .personal-record-rosette { width: 21px; height: 21px; fill: #f2cf4a; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
    .season-roadmap-open { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 0 14px; border: 1px solid #286a57; border-radius: 6px; background: #286a57; color: #ffffff; font: inherit; font-size: 13px; font-weight: 850; line-height: 1; box-shadow: 0 6px 14px rgba(40,106,87,.14); cursor: pointer; }
    .season-roadmap-open:hover, .season-roadmap-open:focus-visible { border-color: #1f4f41; background: #1f4f41; color: #ffffff; outline: none; }
    .season-roadmap-open:focus-visible { box-shadow: 0 0 0 3px rgba(49,109,143,.22); }
    .season-roadmap-open-mobile { display: none; }
    .desktop-roadmap-notification-badge { position: static; flex: 0 0 auto; min-width: 18px; height: 18px; padding: 0 5px; box-shadow: none; }
    @media (min-width: 761px) {
      body.portal-page:not(.ios-mobile):not(.android-mobile) .season-roadmap-open-desktop { gap: 7px; }
    }
    body:is(.ios-mobile,.android-mobile) .desktop-roadmap-notification-badge { display: none !important; }
    .season-roadmap-dialog { width: min(1080px, calc(100vw - 40px)); max-width: none; max-height: calc(100dvh - 40px); padding: 0; border: 0; background: transparent; color: #203028; }
    .season-roadmap-dialog::backdrop { background: rgba(10,24,18,.54); backdrop-filter: blur(3px); }
    .main-inner:has(.season-roadmap-page) { max-width: 1080px; }
    .season-roadmap-page { width: 100%; color: #203028; }
    .season-roadmap-card { display: grid; grid-template-rows: auto minmax(0, 1fr); width: 100%; max-height: calc(100dvh - 40px); overflow: hidden; border: 1px solid #d9e2d8; border-radius: 12px; background: #ffffff; color: #203028; box-shadow: 0 24px 68px rgba(31,39,34,.28); }
    .season-roadmap-page .season-roadmap-card { display: block; max-height: none; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
    .season-roadmap-page .season-roadmap-body { overflow: visible; padding: 0; }
    .season-roadmap-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 17px 20px; border-bottom: 1px solid #e0e8e1; }
    .season-roadmap-header h2 { margin: 0; font-size: 22px; line-height: 1.2; }
    .season-roadmap-close { display: inline-flex; align-items: center; justify-content: center; width: 36px; min-width: 36px; height: 36px; min-height: 36px; padding: 0; font-size: 24px; line-height: 1; }
    .season-roadmap-body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 22px; }
    .season-roadmap-overview { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin-bottom: 20px; }
    .season-roadmap-summary, .season-roadmap-meta, .season-roadmap-update { margin: 0; padding: 16px 18px; border: 1px solid #d5e0d7; border-radius: 9px; background: #ffffff; box-shadow: 0 3px 10px rgba(31,59,43,.09); }
    .season-roadmap-summary h3, .season-roadmap-update h3 { margin: 0; color: #286a57; font-size: 13px; font-weight: 900; letter-spacing: .02em; text-transform: uppercase; }
    .season-roadmap-summary p, .season-roadmap-update p { margin: 8px 0 0; color: #415047; font-size: 14px; line-height: 1.5; }
    .season-roadmap-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
    .season-roadmap-meta > div { min-width: 0; }
    .season-roadmap-meta dt { color: #286a57; font-size: 10px; font-weight: 900; letter-spacing: .045em; text-transform: uppercase; }
    .season-roadmap-phase-card dt { font-size: 10px; font-weight: 900; letter-spacing: .045em; text-transform: uppercase; }
    .season-roadmap-meta dd, .season-roadmap-phase-card dd { margin: 4px 0 0; color: #203028; font-size: 13px; line-height: 1.4; }
    .season-roadmap-update { display: grid; grid-template-columns: minmax(190px, .25fr) minmax(0, 1fr); gap: 18px; align-items: start; }
    .season-roadmap-update time { display: block; margin-top: 5px; color: #69766e; font-size: 12px; font-weight: 750; }
    .season-roadmap-update p { margin-top: 0; }
    .season-roadmap-source-list { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; padding: 0; list-style: none; }
    .season-roadmap-source-chip { min-width: 0; padding: 4px 7px; border: 1px solid #cfe0d3; border-radius: 999px; background: #edf7f0; color: #245b4c; font-size: 11px; font-weight: 800; overflow-wrap: anywhere; }
    .season-roadmap-source-chip.is-event { border-color: #e5ceb1; background: #fff6e9; color: #81511b; }
    .season-roadmap-timeline { --season-roadmap-line-top: 25px; --season-roadmap-line-bottom: 25px; --season-roadmap-rail-x: 15px; position: relative; display: grid; gap: 11px; margin: 0; padding: 0; list-style: none; }
    .season-roadmap-timeline::before { content: ""; position: absolute; z-index: 0; top: var(--season-roadmap-line-top); bottom: var(--season-roadmap-line-bottom); left: calc(var(--season-roadmap-rail-x) - 1px); width: 2px; background: #d8e2da; pointer-events: none; }
    .season-roadmap-phase { --roadmap-phase-header: #f3f7f4; --roadmap-phase-border: #d9e3db; --roadmap-phase-content: #ffffff; --season-roadmap-node-y: 25px; position: relative; display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 9px; }
    .season-roadmap-phase[data-season-roadmap-target-phase] { scroll-margin-block-start: 14px; }
    .season-roadmap-phase-node { position: absolute; z-index: 1; top: var(--season-roadmap-node-y); left: var(--season-roadmap-rail-x); box-sizing: border-box; width: 15px; height: 15px; margin: 0; transform: translate(-50%, -50%); border: 2.5px solid #ffffff; border-radius: 999px; background: #91a198; box-shadow: 0 0 0 1.5px #d8e2da; }
    .season-roadmap-phase.is-current .season-roadmap-phase-node { background: #286a57; box-shadow: 0 0 0 2.5px rgba(40,106,87,.22); }
    .season-roadmap-phase-card { grid-column: 2; min-width: 0; overflow: hidden; padding: 0; border: 1px solid var(--roadmap-phase-border); border-radius: 9px; background: var(--roadmap-phase-content); box-shadow: 0 3px 10px rgba(31,59,43,.09); }
    .season-roadmap-phase.is-current .season-roadmap-phase-card { border-color: #286a57; background: var(--roadmap-phase-content); box-shadow: inset 0 0 0 1px rgba(40,106,87,.12), 0 3px 10px rgba(31,59,43,.09); }
    .season-roadmap-phase-accordion-heading { margin: 0; }
    .season-roadmap-phase-toggle { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px 10px; align-items: center; box-sizing: border-box; width: 100%; min-height: 0; padding: 14px 15px; border: 0; border-radius: 0; background: var(--roadmap-phase-header); color: inherit; font: inherit; text-align: left; box-shadow: none; cursor: default; pointer-events: none; }
    .season-roadmap-phase-toggle:hover, .season-roadmap-phase-toggle:focus { border: 0; background: var(--roadmap-phase-header); color: inherit; box-shadow: none; }
    .season-roadmap-phase-toggle:focus-visible { outline: 2px solid #286a57; outline-offset: -3px; }
    .season-roadmap-phase-heading { position: static; grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0; border: 0; background: transparent; color: #69766e; font-size: 11px; font-weight: 800; box-shadow: none; }
    .season-roadmap-phase-title-row { display: flex; align-items: center; gap: 7px; min-width: 0; }
    .event-title-icon.season-roadmap-phase-title-icon { width: 21px; height: 21px; font-size: 17px; }
    .season-roadmap-phase-title { min-width: 0; color: #203028; font-size: 17px; font-weight: 850; line-height: 1.25; }
    .season-roadmap-phase-indicator { display: none; align-items: center; justify-content: center; width: 24px; height: 24px; color: #286a57; transition: transform 220ms cubic-bezier(.2,.8,.2,1); }
    .season-roadmap-phase-indicator::before { content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translate(-1px, -1px); }
    .season-roadmap-phase-panel { display: grid; grid-template-rows: 1fr; background: var(--roadmap-phase-content); opacity: 1; }
    .season-roadmap-phase-panel-inner { min-height: 0; overflow: hidden; padding: 0; }
    .season-roadmap-phase-content { box-sizing: border-box; padding: 12px 15px 14px; border-top: 1px solid var(--roadmap-phase-border); background: var(--roadmap-phase-content); }
    .season-roadmap-current-badge { flex: 0 0 auto; padding: 4px 7px; border-radius: 999px; background: #286a57; color: #ffffff; font-size: 10px; font-weight: 900; text-transform: uppercase; }
    .season-roadmap-phase-card dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; }
    .season-roadmap-phase-card dl > div { min-width: 0; }
    .season-roadmap-volume-direction { margin: 6px 0 0; color: #56645c; font-size: 12px; }
    .season-roadmap-phase-label-purpose { color: #286a57; }
    .season-roadmap-phase-label-direction { color: #315e88; }
    .season-roadmap-phase-label-themes { color: #875000; }
    .season-roadmap-phase-themes { margin-top: 12px; }
    .season-roadmap-phase-themes h4 { margin: 0 0 6px; font-size: 10px; font-weight: 900; letter-spacing: .045em; text-transform: uppercase; }
    .season-roadmap-phase-themes ul { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; padding: 0; list-style: none; }
    .season-roadmap-phase-themes .season-roadmap-theme-pill { --roadmap-theme-background: #eef2ee; --roadmap-theme-border: #c8d9cc; --roadmap-theme-ink: #385b4d; padding: 4px 8px; border: 1px solid var(--roadmap-theme-border); border-radius: 999px; background: var(--roadmap-theme-background); color: var(--roadmap-theme-ink); font-size: 11px; font-weight: 750; }
    .season-roadmap-phase-themes .season-roadmap-theme-pill-endurance { --roadmap-theme-background: #e6f1f7; --roadmap-theme-border: #bdd7e2; --roadmap-theme-ink: #245f78; }
    .season-roadmap-phase-themes .season-roadmap-theme-pill-strength { --roadmap-theme-background: #f0eafb; --roadmap-theme-border: #d3c2e8; --roadmap-theme-ink: #614384; }
    .season-roadmap-phase-themes .season-roadmap-theme-pill-recovery { --roadmap-theme-background: #e4f4ef; --roadmap-theme-border: #b7d8cf; --roadmap-theme-ink: #176b62; }
    .season-roadmap-phase-themes .season-roadmap-theme-pill-race { --roadmap-theme-background: #f9e7e5; --roadmap-theme-border: #e6b7b3; --roadmap-theme-ink: #913b35; }
    .season-roadmap-phase-themes .season-roadmap-theme-pill-fueling { --roadmap-theme-background: #fff3df; --roadmap-theme-border: #e6c894; --roadmap-theme-ink: #805015; }
    .season-roadmap-phase-themes .season-roadmap-theme-pill-technique { --roadmap-theme-background: #e5f4e9; --roadmap-theme-border: #c7dfcd; --roadmap-theme-ink: #286a57; }
    .season-roadmap-event-list { display: grid; gap: 5px; margin: 12px 0 0; padding: 0; list-style: none; }
    .season-roadmap-event-marker { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 7px; align-items: center; padding: 7px 9px; border: 1px solid #e5ceb1; border-radius: 7px; background: #fff6e9; color: #704817; font-size: 12px; }
    .season-roadmap-event-dot { width: 8px; height: 8px; border-radius: 999px; background: #c27621; }
    .season-roadmap-event-name { min-width: 0; font-weight: 850; overflow-wrap: anywhere; }
    .season-roadmap-event-marker time { font-weight: 750; white-space: nowrap; }
    .season-roadmap-empty { display: grid; justify-items: start; gap: 11px; padding: 28px; border: 1px dashed #cbd7ce; border-radius: 9px; background: #f8faf7; }
    .season-roadmap-empty strong { font-size: 20px; }
    .season-roadmap-empty p { max-width: 620px; margin: 0; color: #56645c; line-height: 1.5; }
    .season-roadmap-empty-actions { display: flex; flex-wrap: wrap; gap: 8px; }
    .season-roadmap-mobile-actions { display: none; }
    @media (max-width: 760px) {
    body.theme-dark.portal-page .season-roadmap-card { border-color: #425047; background: #202b25; color: #edf4ef; }
    body.theme-dark.portal-page .season-roadmap-page .season-roadmap-card { border: 0; background: transparent; }
    body.theme-dark.portal-page .season-roadmap-header { border-color: #425047; background: #202b25; }
    body.theme-dark.portal-page .season-roadmap-summary,
    body.theme-dark.portal-page .season-roadmap-meta,
    body.theme-dark.portal-page .season-roadmap-update,
    body.theme-dark.portal-page .season-roadmap-empty { border-color: #425047; background: #26342d; }
    body.theme-dark.portal-page .season-roadmap-phase { --roadmap-phase-header: rgba(255,255,255,.05); --roadmap-phase-border: rgba(255,255,255,.12); --roadmap-phase-content: #1c3629; }
    body.theme-dark.portal-page .season-roadmap-phase-card { border-color: var(--roadmap-phase-border); background: var(--roadmap-phase-content); box-shadow: none; }
    body.theme-dark.portal-page .season-roadmap-summary,
    body.theme-dark.portal-page .season-roadmap-meta,
    body.theme-dark.portal-page .season-roadmap-update { box-shadow: none; }
    body.theme-dark.portal-page .season-roadmap-summary p,
    body.theme-dark.portal-page .season-roadmap-update p,
    body.theme-dark.portal-page .season-roadmap-empty p,
    body.theme-dark.portal-page .season-roadmap-volume-direction { color: #b7c3ba; }
    body.theme-dark.portal-page .season-roadmap-meta dt,
    body.theme-dark.portal-page .season-roadmap-summary h3,
    body.theme-dark.portal-page .season-roadmap-update h3 { color: #c2e084; }
    body.theme-dark.portal-page .season-roadmap-phase-label-purpose { color: #91e1d7; }
    body.theme-dark.portal-page .season-roadmap-phase-label-direction { color: #b9e7ff; }
    body.theme-dark.portal-page .season-roadmap-phase-label-themes { color: #ffd08c; }
    body.theme-dark.portal-page .season-roadmap-phase-heading,
    body.theme-dark.portal-page .season-roadmap-update time { color: #aebbb2; }
    body.theme-dark.portal-page .season-roadmap-meta dd,
    body.theme-dark.portal-page .season-roadmap-phase-card dd { color: #edf4ef; }
    body.theme-dark.portal-page .season-roadmap-phase-title { color: #edf4ef; }
    body.theme-dark.portal-page .season-roadmap-phase-indicator { color: #c2e084; }
    body.theme-dark.portal-page .season-roadmap-phase.is-current .season-roadmap-phase-card { border-color: #9bd5ad; background: var(--roadmap-phase-content); box-shadow: inset 0 0 0 1px rgba(155,213,173,.12); }
    body.theme-dark.portal-page .season-roadmap-current-badge { background: #c2e084; color: #163126; }
    body.theme-dark.portal-page .season-roadmap-phase-node { border-color: #202b25; }
    body.theme-dark.portal-page .season-roadmap-phase.is-current .season-roadmap-phase-node { background: #c2e084; box-shadow: 0 0 0 2.5px rgba(194,224,132,.36); }
    body.theme-dark.portal-page .season-roadmap-timeline::before { background: #536158; }
    body.theme-dark.portal-page .season-roadmap-phase-themes .season-roadmap-theme-pill { --roadmap-theme-background: rgba(170,182,176,.13); --roadmap-theme-border: rgba(170,182,176,.36); --roadmap-theme-ink: #d7ded9; }
    body.theme-dark.portal-page .season-roadmap-phase-themes .season-roadmap-theme-pill-endurance { --roadmap-theme-background: rgba(93,194,255,.17); --roadmap-theme-border: rgba(93,194,255,.46); --roadmap-theme-ink: #b9e7ff; }
    body.theme-dark.portal-page .season-roadmap-phase-themes .season-roadmap-theme-pill-strength { --roadmap-theme-background: rgba(177,139,230,.18); --roadmap-theme-border: rgba(192,159,237,.48); --roadmap-theme-ink: #d8bef8; }
    body.theme-dark.portal-page .season-roadmap-phase-themes .season-roadmap-theme-pill-recovery { --roadmap-theme-background: rgba(68,200,182,.17); --roadmap-theme-border: rgba(104,216,200,.46); --roadmap-theme-ink: #91e1d7; }
    body.theme-dark.portal-page .season-roadmap-phase-themes .season-roadmap-theme-pill-race { --roadmap-theme-background: rgba(255,105,95,.18); --roadmap-theme-border: rgba(255,128,119,.5); --roadmap-theme-ink: #ffb4ad; }
    body.theme-dark.portal-page .season-roadmap-phase-themes .season-roadmap-theme-pill-fueling { --roadmap-theme-background: rgba(255,174,64,.18); --roadmap-theme-border: rgba(255,190,100,.5); --roadmap-theme-ink: #ffd08c; }
    body.theme-dark.portal-page .season-roadmap-phase-themes .season-roadmap-theme-pill-technique { --roadmap-theme-background: rgba(116,235,164,.17); --roadmap-theme-border: rgba(116,235,164,.46); --roadmap-theme-ink: #a7f3c5; }
    body.theme-dark.portal-page .season-roadmap-source-chip { border-color: #4f6c5d; background: #2d463a; color: #d4eadb; }
    body.theme-dark.portal-page .season-roadmap-source-chip.is-event,
    body.theme-dark.portal-page .season-roadmap-event-marker { border-color: #7a6545; background: #3c3326; color: #f0d39e; }
    body.theme-dark.portal-page .season-roadmap-event-dot { background: #d69a43; }
    body.theme-dark.portal-page .season-roadmap-body { --season-roadmap-scroll-surface: #202b25; --season-roadmap-scroll-thumb: rgba(194,224,132,.62); }
    }
    @media (max-width: 760px) and (prefers-color-scheme: dark) {
      body:not(.theme-light).portal-page .season-roadmap-card { border-color: #425047; background: #202b25; color: #edf4ef; }
      body:not(.theme-light).portal-page .season-roadmap-page .season-roadmap-card { border: 0; background: transparent; }
      body:not(.theme-light).portal-page .season-roadmap-header { border-color: #425047; background: #202b25; }
      body:not(.theme-light).portal-page .season-roadmap-summary,
      body:not(.theme-light).portal-page .season-roadmap-meta,
      body:not(.theme-light).portal-page .season-roadmap-update,
      body:not(.theme-light).portal-page .season-roadmap-empty { border-color: #425047; background: #26342d; }
      body:not(.theme-light).portal-page .season-roadmap-phase { --roadmap-phase-header: rgba(255,255,255,.05); --roadmap-phase-border: rgba(255,255,255,.12); --roadmap-phase-content: #1c3629; }
      body:not(.theme-light).portal-page .season-roadmap-phase-card { border-color: var(--roadmap-phase-border); background: var(--roadmap-phase-content); box-shadow: none; }
      body:not(.theme-light).portal-page .season-roadmap-summary,
      body:not(.theme-light).portal-page .season-roadmap-meta,
      body:not(.theme-light).portal-page .season-roadmap-update { box-shadow: none; }
      body:not(.theme-light).portal-page .season-roadmap-summary p,
      body:not(.theme-light).portal-page .season-roadmap-update p,
      body:not(.theme-light).portal-page .season-roadmap-empty p,
      body:not(.theme-light).portal-page .season-roadmap-volume-direction { color: #b7c3ba; }
      body:not(.theme-light).portal-page .season-roadmap-meta dt,
      body:not(.theme-light).portal-page .season-roadmap-summary h3,
      body:not(.theme-light).portal-page .season-roadmap-update h3 { color: #c2e084; }
      body:not(.theme-light).portal-page .season-roadmap-phase-label-purpose { color: #91e1d7; }
      body:not(.theme-light).portal-page .season-roadmap-phase-label-direction { color: #b9e7ff; }
      body:not(.theme-light).portal-page .season-roadmap-phase-label-themes { color: #ffd08c; }
      body:not(.theme-light).portal-page .season-roadmap-phase-heading,
      body:not(.theme-light).portal-page .season-roadmap-update time { color: #aebbb2; }
      body:not(.theme-light).portal-page .season-roadmap-meta dd,
      body:not(.theme-light).portal-page .season-roadmap-phase-card dd { color: #edf4ef; }
      body:not(.theme-light).portal-page .season-roadmap-phase-title { color: #edf4ef; }
      body:not(.theme-light).portal-page .season-roadmap-phase-indicator { color: #c2e084; }
      body:not(.theme-light).portal-page .season-roadmap-phase.is-current .season-roadmap-phase-card { border-color: #9bd5ad; background: var(--roadmap-phase-content); box-shadow: inset 0 0 0 1px rgba(155,213,173,.12); }
      body:not(.theme-light).portal-page .season-roadmap-current-badge { background: #c2e084; color: #163126; }
      body:not(.theme-light).portal-page .season-roadmap-phase-node { border-color: #202b25; }
      body:not(.theme-light).portal-page .season-roadmap-phase.is-current .season-roadmap-phase-node { background: #c2e084; box-shadow: 0 0 0 2.5px rgba(194,224,132,.36); }
      body:not(.theme-light).portal-page .season-roadmap-timeline::before { background: #536158; }
      body:not(.theme-light).portal-page .season-roadmap-phase-themes .season-roadmap-theme-pill { --roadmap-theme-background: rgba(170,182,176,.13); --roadmap-theme-border: rgba(170,182,176,.36); --roadmap-theme-ink: #d7ded9; }
      body:not(.theme-light).portal-page .season-roadmap-phase-themes .season-roadmap-theme-pill-endurance { --roadmap-theme-background: rgba(93,194,255,.17); --roadmap-theme-border: rgba(93,194,255,.46); --roadmap-theme-ink: #b9e7ff; }
      body:not(.theme-light).portal-page .season-roadmap-phase-themes .season-roadmap-theme-pill-strength { --roadmap-theme-background: rgba(177,139,230,.18); --roadmap-theme-border: rgba(192,159,237,.48); --roadmap-theme-ink: #d8bef8; }
      body:not(.theme-light).portal-page .season-roadmap-phase-themes .season-roadmap-theme-pill-recovery { --roadmap-theme-background: rgba(68,200,182,.17); --roadmap-theme-border: rgba(104,216,200,.46); --roadmap-theme-ink: #91e1d7; }
      body:not(.theme-light).portal-page .season-roadmap-phase-themes .season-roadmap-theme-pill-race { --roadmap-theme-background: rgba(255,105,95,.18); --roadmap-theme-border: rgba(255,128,119,.5); --roadmap-theme-ink: #ffb4ad; }
      body:not(.theme-light).portal-page .season-roadmap-phase-themes .season-roadmap-theme-pill-fueling { --roadmap-theme-background: rgba(255,174,64,.18); --roadmap-theme-border: rgba(255,190,100,.5); --roadmap-theme-ink: #ffd08c; }
      body:not(.theme-light).portal-page .season-roadmap-phase-themes .season-roadmap-theme-pill-technique { --roadmap-theme-background: rgba(116,235,164,.17); --roadmap-theme-border: rgba(116,235,164,.46); --roadmap-theme-ink: #a7f3c5; }
      body:not(.theme-light).portal-page .season-roadmap-source-chip { border-color: #4f6c5d; background: #2d463a; color: #d4eadb; }
      body:not(.theme-light).portal-page .season-roadmap-source-chip.is-event,
      body:not(.theme-light).portal-page .season-roadmap-event-marker { border-color: #7a6545; background: #3c3326; color: #f0d39e; }
      body:not(.theme-light).portal-page .season-roadmap-event-dot { background: #d69a43; }
      body:not(.theme-light).portal-page .season-roadmap-body { --season-roadmap-scroll-surface: #202b25; --season-roadmap-scroll-thumb: rgba(194,224,132,.62); }
    }
    .personal-record-dialog { --personal-record-dialog-viewport-height: 100dvh; width: min(520px, calc(100vw - 28px)); max-width: none; padding: 0; border: 0; background: transparent; color: inherit; }
    dialog.personal-record-dialog { max-height: calc(var(--personal-record-dialog-viewport-height, 100dvh) - 28px); overflow: hidden; }
    .personal-record-dialog::backdrop { background: rgba(10,24,18,.5); backdrop-filter: blur(2px); }
    .personal-record-sync-dialog { position: fixed; inset: var(--personal-record-dialog-viewport-top, 0px) 0 auto; z-index: 1200; display: grid; place-items: center; box-sizing: border-box; width: auto; max-width: none; height: var(--personal-record-dialog-viewport-height, 100dvh); max-height: none; margin: 0; padding: 14px; overflow: hidden; background: rgba(10,24,18,.5); backdrop-filter: blur(2px); }
    .personal-record-sync-dialog.personal-record-dialog { max-height: none; }
    .personal-record-sync-dialog[hidden] { display: none; }
    .personal-record-dialog > .personal-record-dialog-card { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; min-height: 0; max-height: calc(var(--personal-record-dialog-viewport-height, 100dvh) - 28px); }
    .personal-record-sync-dialog > .personal-record-dialog-card { width: min(520px, calc(100vw - 28px)); max-height: 100%; }
    .personal-record-dialog > .personal-record-dialog-card > .personal-record-modal-list { min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; touch-action: pan-y; }
    .personal-record-dialog-card { position: relative; z-index: 1; overflow: hidden; border: 1px solid #d9e2d8; border-radius: 10px; background: #ffffff; color: #203028; box-shadow: 0 22px 58px rgba(31,39,34,.24); }
    .personal-record-confetti-canvas { position: fixed; z-index: 1301; inset: 0; width: 100%; height: 100%; pointer-events: none; }
    .personal-record-confetti-piece { position: fixed; z-index: 2; left: var(--confetti-origin-x); top: var(--confetti-origin-y); width: var(--confetti-width); height: var(--confetti-height); border-radius: var(--confetti-radius); background: var(--confetti-color); opacity: 0; pointer-events: none; transform: translate3d(0,0,0) rotate(0deg) scale(.25); backface-visibility: hidden; will-change: transform, opacity; }
    .personal-record-confetti-piece.is-active { animation: personal-record-confetti-move var(--confetti-duration) cubic-bezier(.08,.72,.12,1) var(--confetti-delay) forwards, personal-record-confetti-fade var(--confetti-duration) linear var(--confetti-delay) forwards; }
    @keyframes personal-record-confetti-move {
      0% { transform: translate3d(0,0,0) rotate(0deg) scale(.25); }
      100% { transform: translate3d(var(--confetti-end-x),var(--confetti-end-y),0) rotate(var(--confetti-end-rotation)) scale(.9); }
    }
    @keyframes personal-record-confetti-fade {
      0% { opacity: 0; }
      7% { opacity: 1; }
      54% { opacity: 1; }
      100% { opacity: 0; }
    }
    @media (prefers-reduced-motion: reduce) {
      body:not(.android-webview) .coach-chat-responding-dots span { opacity: 1; animation: none !important; }
      .personal-record-confetti-piece { display: none; animation: none; }
      .season-roadmap-phase-panel, .season-roadmap-phase-indicator { transition-duration: .01ms !important; }
    }
    .personal-record-dialog-header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 11px; align-items: center; padding: 16px; border-bottom: 1px solid #e0e8e1; }
    .personal-record-dialog-header h2 { margin: 0; font-size: 19px; line-height: 1.2; }
    .personal-record-dialog-mark { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 9px; background: #fff3bd; color: #806300; }
    .personal-record-dialog-mark .personal-record-rosette { width: 25px; height: 25px; }
    .personal-record-dialog-close { width: 34px; min-width: 34px; height: 34px; min-height: 34px; padding: 0; font-size: 22px; line-height: 1; }
    .personal-record-exclusion-button { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; box-sizing: border-box; width: 30px; min-width: 30px; height: 30px; min-height: 30px; margin: 0; padding: 0; border: 1px solid #d7e0d9; border-radius: 7px; background: #f7f9f7; color: #6d7871; box-shadow: none; font-size: 11px; font-weight: 900; line-height: 1; text-transform: none; }
    .personal-record-exclusion-button:hover, .personal-record-exclusion-button:focus-visible { border-color: #b76464; background: #fff4f4; color: #9d3535; }
    .personal-record-exclusion-button:disabled { opacity: .55; cursor: wait; }
    .personal-record-exclusion-button svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
    .personal-record-exclusion-button.is-restore { width: auto; min-width: 0; padding: 0 10px; border-color: #bcd1c3; background: #f1f7f3; color: #286a57; }
    .personal-record-exclusion-button.is-restore:hover, .personal-record-exclusion-button.is-restore:focus-visible { border-color: #286a57; background: #e5f1e9; color: #1e5948; }
    .personal-record-modal-list { display: grid; gap: 0; margin: 0; padding: 0 16px; list-style: none; }
    .personal-record-modal-item { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 5px 10px; align-items: center; padding: 13px 0; border-bottom: 1px solid #e4ebe5; }
    .personal-record-modal-item:last-child { border-bottom: 0; }
    .personal-record-modal-item > span:first-child { display: grid; gap: 2px; min-width: 0; }
    .personal-record-modal-item strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .personal-record-modal-item small { color: #6b776f; font-size: 11px; font-weight: 700; }
    .personal-record-modal-result { font-variant-numeric: tabular-nums; font-weight: 900; white-space: nowrap; }
    .personal-record-modal-scopes { grid-column: 1 / -1; display: flex; gap: 6px; flex-wrap: wrap; }
    .personal-record-scope { display: inline-flex; align-items: center; min-height: 20px; padding: 1px 7px; border-radius: 999px; font-size: 10px; font-weight: 900; text-transform: uppercase; }
    .personal-record-scope.is-all-time { background: #fff0ac; color: #6d5300; }
    .personal-record-scope.is-year { background: #e9f5ff; color: #225b82; }
    .personal-record-sync-activity-list { padding: 0 16px; }
    .personal-record-sync-activity { padding: 0; border-bottom: 2px solid #d1ddd3; }
    .personal-record-sync-activity:last-child { border-bottom: 0; }
    .personal-record-sync-activity.is-expanded:not(:last-child) { border-bottom-color: #91aa98; }
    .personal-record-sync-activity-disclosure { margin: 0; }
    .personal-record-sync-activity-summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; box-sizing: border-box; width: 100%; min-height: 0; margin: 0; padding: 14px 0; border: 0; border-radius: 0; background: transparent; color: inherit; box-shadow: none; font: inherit; text-align: left; text-transform: none; cursor: pointer; appearance: none; }
    .personal-record-sync-activity-summary:hover { border-color: transparent; background: transparent; color: inherit; box-shadow: none; }
    .personal-record-sync-activity-summary::after { content: '+'; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; width: 28px; height: 28px; border: 1px solid #cbd9ce; border-radius: 999px; background: #f4f8f5; color: #286a57; font-size: 18px; font-weight: 800; line-height: 1; }
    .personal-record-sync-activity-disclosure.is-open > .personal-record-sync-activity-summary::after { content: '−'; }
    .personal-record-sync-activity-summary:focus-visible { border-radius: 5px; outline: 2px solid rgba(40,106,87,.22); outline-offset: 3px; }
    .personal-record-sync-activity-heading { display: grid; grid-template-columns: 34px minmax(0, 1fr); column-gap: 10px; row-gap: 3px; align-items: center; min-width: 0; }
    .personal-record-sync-activity-title { grid-column: 2; min-width: 0; color: #203028; font-size: 15px; font-weight: 900; line-height: 1.25; }
    .personal-record-sync-activity-title > strong { display: block; overflow-wrap: anywhere; white-space: normal; }
    .personal-record-sync-activity-badge { position: relative; display: inline-flex; grid-column: 1; grid-row: 1 / span 2; align-items: center; justify-content: center; width: 34px; height: 34px; color: #806300; }
    .personal-record-sync-activity-badge .personal-record-rosette { width: 32px; height: 32px; fill: #f2cf4a; }
    .personal-record-sync-activity-badge > b { position: absolute; right: -7px; top: -7px; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; min-width: 19px; height: 19px; padding: 0 4px; border: 2px solid #ffffff; border-radius: 999px; background: #286a57; color: #ffffff; font-size: 9px; font-weight: 900; line-height: 1; }
    .personal-record-sync-activity-heading > small { grid-column: 2; color: #6b776f; font-size: 11px; font-weight: 700; }
    .personal-record-sync-activity.is-single > .personal-record-sync-activity-heading { padding-top: 14px; }
    .personal-record-sync-activity-body { display: grid; gap: 5px; padding: 0 0 14px; }
    .personal-record-sync-activity-body-clip { min-height: 0; }
    .personal-record-sync-activity-body-clip[hidden] { display: none; }
    .personal-record-sync-activity.is-single > .personal-record-sync-activity-body { padding-top: 10px; }
    .personal-record-sync-record-list { padding: 0; border-top: 1px solid #e4ebe5; }
    .personal-record-sync-activity-link { justify-self: end; }
    .personal-record-sync-activity-link[aria-disabled="true"],
    .personal-record-sync-dialog [data-personal-record-see-all][aria-disabled="true"] { pointer-events: none; cursor: wait; opacity: .82; }
    .personal-record-sync-activity-link.loading .button-spinner { display: inline-block; flex: 0 0 auto; }
    @media (max-width: 760px) {
      .personal-record-dialog-header h2 { font-size: 21px; }
      .personal-record-dialog-mark .personal-record-rosette { width: 30px; height: 30px; }
      .personal-record-sync-activity-title { font-size: 17px; }
      .personal-record-sync-activity-heading > small { font-size: 12px; }
      .personal-record-sync-activity-summary::after { width: 32px; height: 32px; font-size: 20px; }
      .personal-record-modal-item strong,
      .personal-record-modal-result { font-size: 17px; }
      .personal-record-modal-item small { font-size: 12px; }
      .personal-record-scope { min-height: 24px; font-size: 13px; line-height: 1.2; }
      .personal-record-dialog-actions > button,
      .personal-record-dialog-actions .button { font-size: 14px; }
      .expanded-workout .personal-record-trigger .personal-record-rosette { width: 30px; height: 30px; }
      .expanded-workout .personal-record-trigger > span { right: -9px; top: -9px; min-width: 22px; height: 22px; padding: 0 5px; font-size: 12px; }
      dialog.personal-record-dialog { max-height: calc(var(--personal-record-dialog-viewport-height, 100dvh) - 16px); }
      .personal-record-dialog > .personal-record-dialog-card { max-height: calc(var(--personal-record-dialog-viewport-height, 100dvh) - 16px); }
      .personal-record-sync-dialog { padding: max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom)); }
      body.android-mobile .personal-record-sync-dialog { padding: 6px; }
      .personal-record-sync-dialog > .personal-record-dialog-card { align-self: center; width: 100%; max-height: 100%; }
      .personal-record-sync-dialog .personal-record-dialog-header { gap: 9px; padding: 10px 12px; }
      .personal-record-sync-dialog .personal-record-dialog-header h2 { font-size: 21px; }
      .personal-record-sync-dialog .personal-record-dialog-mark { width: 30px; height: 30px; }
      .personal-record-sync-dialog .personal-record-dialog-mark .personal-record-rosette { width: 23px; height: 23px; }
      .personal-record-sync-dialog .personal-record-dialog-close { width: 30px; min-width: 30px; height: 30px; min-height: 30px; }
      .personal-record-sync-dialog .personal-record-sync-activity-list { padding: 0 12px; }
      .personal-record-sync-dialog .personal-record-sync-activity-summary { gap: 9px; padding: 10px 0; }
      .personal-record-sync-dialog .personal-record-sync-activity-title { font-size: 17px; }
      .personal-record-sync-dialog .personal-record-sync-activity-heading > small { font-size: 12px; }
      .personal-record-sync-dialog .personal-record-modal-item { padding: 10px 0; }
      .personal-record-sync-dialog .personal-record-modal-item strong,
      .personal-record-sync-dialog .personal-record-modal-result { font-size: 17px; }
      .personal-record-sync-dialog .personal-record-modal-item small { font-size: 12px; }
      .personal-record-sync-dialog .personal-record-scope { min-height: 24px; font-size: 13px; line-height: 1.2; }
      .personal-record-sync-dialog .personal-record-dialog-actions { padding: 10px 12px 12px; }
      .personal-record-sync-dialog .personal-record-sync-activity-link,
      .personal-record-sync-dialog .personal-record-dialog-actions > button,
      .personal-record-sync-dialog .personal-record-dialog-actions .button { width: auto; min-width: 0; min-height: 40px; padding: 0 14px; font-size: 14px; line-height: 1.2; }
    }
    .personal-record-dialog-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px 16px; border-top: 1px solid #e0e8e1; }
    .personal-record-dialog-actions > button, .personal-record-dialog-actions .button { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding-top: 0; padding-bottom: 0; }
    .personal-record-sync-dialog .personal-record-sync-activity-link,
    .personal-record-sync-dialog .personal-record-dialog-actions > button,
    .personal-record-sync-dialog .personal-record-dialog-actions .button { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; width: auto; min-width: 0; min-height: 38px; padding: 0 14px; font-size: 14px; line-height: 1.2; text-align: center; }
    @media (max-width: 760px) and (prefers-color-scheme: dark) {
      body:not(.theme-light).portal-page .personal-record-trigger { border-color: #7b6927; background: #3a3218; color: #fff0a3; }
      body:not(.theme-light).portal-page .personal-record-trigger .personal-record-rosette { fill: #d0a51b; }
      body:not(.theme-light).portal-page .personal-record-trigger .personal-record-rosette path:last-child { fill: none; }
      body:not(.theme-light).portal-page .personal-record-trigger > span { border-color: #202b25; background: #9bd5ad; color: #163327; }
      body:not(.theme-light).portal-page .workout-pill .calendar-personal-record-badge,
      body:not(.theme-light).portal-page .workout-pill .calendar-personal-record-count { color: #fff; text-shadow: 0 1px 1px rgba(0, 0, 0, .62); }
      body:not(.theme-light).portal-page .workout-pill .calendar-personal-record-badge .personal-record-rosette { fill: #d0a51b; color: #fff0a3; }
      body:not(.theme-light).portal-page .personal-record-dialog-card { border-color: #425047; background: #202b25; color: #edf4ef; }
      body:not(.theme-light).portal-page .detail-note-dialog-card { border-color: #425047; background: #202b25; color: #edf4ef; }
      body:not(.theme-light).portal-page .detail-note-saved-at { color: #aebbb2; }
      body:not(.theme-light).portal-page .detail-note-save-review-usage { color: #aebbb2; }
      body:not(.theme-light).portal-page .detail-note-error { color: #ffb4b4; }
      body:not(.theme-light).portal-page .personal-record-dialog-header, body:not(.theme-light).portal-page .personal-record-dialog-actions, body:not(.theme-light).portal-page .personal-record-modal-item { border-color: #425047; }
      body:not(.theme-light).portal-page .personal-record-exclusion-button { border-color: #536158; background: #28362f; color: #c6d0c9; }
      body:not(.theme-light).portal-page .personal-record-exclusion-button:hover, body:not(.theme-light).portal-page .personal-record-exclusion-button:focus-visible { border-color: #d28787; background: #472d2d; color: #ffd1d1; }
      body:not(.theme-light).portal-page .personal-record-exclusion-button.is-restore { border-color: #587c68; background: #263c31; color: #bfe8ce; }
      body:not(.theme-light).portal-page .personal-record-modal-item small { color: #aebbb2; }
      body:not(.theme-light).portal-page .personal-record-scope.is-all-time { background: #4b4019; color: #ffe78c; }
      body:not(.theme-light).portal-page .personal-record-scope.is-year { background: #203847; color: #b9e1ff; }
      body:not(.theme-light).portal-page .personal-record-sync-activity { border-color: #536158; }
      body:not(.theme-light).portal-page .personal-record-sync-activity.is-expanded:not(:last-child) { border-color: #7b9483; }
      body:not(.theme-light).portal-page .personal-record-sync-activity-title { color: #edf4ef; }
      body:not(.theme-light).portal-page .personal-record-sync-activity-badge { color: #fff0a3; }
      body:not(.theme-light).portal-page .personal-record-sync-activity-badge .personal-record-rosette { fill: #d0a51b; }
      body:not(.theme-light).portal-page .personal-record-sync-activity-badge > b { border-color: #202b25; background: #9bd5ad; color: #163327; }
      body:not(.theme-light).portal-page .personal-record-sync-activity-heading > small { color: #aebbb2; }
      body:not(.theme-light).portal-page .personal-record-sync-activity-summary::after { border-color: #536158; background: #28362f; color: #bfe8ce; }
      body:not(.theme-light).portal-page .personal-record-sync-record-list { border-color: #425047; }
    }
    .detail-heading h3,
    .detail-panel-heading h3 { display: flex; align-items: center; gap: 8px; min-width: 0; margin: 0; font-size: 19px; line-height: 1.2; }
    .detail-heading h3 .plan-activity-icon,
    .detail-panel-heading h3 .plan-activity-icon { align-self: center; width: 21px; height: 21px; color: #286a57; stroke-width: 2.25; transform: translateY(1px); }
    .detail-heading h3 > span,
    .detail-panel-heading h3 > span { min-width: 0; overflow-wrap: anywhere; }
    .detail-action-menu { position: relative; z-index: 24; flex: 0 0 auto; margin-left: 1px; font-size: 14px; }
    .detail-action-menu[open] { z-index: 26; }
    .detail-action-menu-toggle { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 28px; margin: 0; padding: 0; border: 1px solid transparent; border-radius: 6px; background: transparent; color: #111111; cursor: pointer; list-style: none; }
    .detail-action-menu-toggle::-webkit-details-marker { display: none; }
    .detail-action-menu-toggle:focus-visible, .detail-action-menu[open] > .detail-action-menu-toggle { border-color: #c7d6ca; background: #edf5ef; color: #203028; outline: none; }
    .detail-action-menu-toggle:focus-visible { box-shadow: 0 0 0 2px rgba(40,106,87,.18); }
    .detail-action-menu-toggle.is-disabled { color: #aab2ac; cursor: default; opacity: .72; }
    .detail-action-menu-dots { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; width: 20px; height: 20px; color: #000000; }
    .detail-action-menu-dots > span { display: block; width: 4px; height: 4px; border-radius: 999px; background: currentColor; }
    .detail-action-menu-dots.is-disabled { color: #aab2ac; }
    .detail-action-icon { display: block; flex: 0 0 auto; width: 20px; height: 20px; }
    .detail-action-menu-popup { position: absolute; top: calc(100% + 6px); right: 0; bottom: auto; z-index: 30; display: grid; min-width: 210px; overflow: hidden; padding: 5px; border: 1px solid #cbd7ce; border-radius: 8px; background: #ffffff; box-shadow: 0 12px 28px rgba(31,39,34,.18); }
    .detail-action-menu.is-positioned-above .detail-action-menu-popup { top: auto; bottom: calc(100% + 6px); }
    .detail-action-menu-item { display: flex; align-items: center; justify-content: flex-start; gap: 10px; box-sizing: border-box; width: 100%; min-height: 38px; padding: 7px 10px; border: 0; border-radius: 6px; background: transparent; color: #203028; font: inherit; font-size: 13px; font-weight: 800; line-height: 1.25; text-align: left; text-decoration: none; white-space: nowrap; box-shadow: none; cursor: pointer; }
    .detail-action-menu-item:focus-visible { background: #edf5ef; color: #1f4f41; outline: none; }
    .detail-action-menu-item[aria-disabled="true"] { color: #8b978f; cursor: wait; opacity: .72; }
    .detail-action-menu-item .detail-action-icon { width: 19px; height: 19px; color: #286a57; }
    @media (hover: hover) and (pointer: fine) {
      .detail-action-menu-toggle:hover { border-color: #c7d6ca; background: #edf5ef; color: #203028; outline: none; }
      .detail-action-menu-toggle.is-disabled:hover { border-color: transparent; background: transparent; color: #aab2ac; }
      .detail-action-menu-item:hover { background: #edf5ef; color: #1f4f41; outline: none; }
    }
    @media (max-width: 760px) {
      body.theme-dark.portal-page .detail-action-menu-popup { border-color: #425047; background: #202b25; box-shadow: 0 14px 30px rgba(0,0,0,.38); }
      body.theme-dark.portal-page .detail-action-menu-item { color: #edf4ef; }
      body.theme-dark.portal-page .detail-action-menu-item:focus-visible { background: #2d3d34; color: #ffffff; }
      body.theme-dark.portal-page .detail-action-menu-toggle { border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.08); color: #b7d9c3; }
      body.theme-dark.portal-page .detail-action-menu-toggle.is-disabled { color: #74867b; }
      body.theme-dark.portal-page .detail-action-menu-dots.is-active { color: #b7d9c3; }
      body.theme-dark.portal-page .detail-action-menu-dots.is-disabled { color: #74867b; }
      body.theme-dark.portal-page .detail-action-menu-item .detail-action-icon { color: #9bd5ad; }
      body.theme-dark.portal-page .personal-record-trigger { border-color: #7b6927; background: #3a3218; color: #fff0a3; }
      body.theme-dark.portal-page .personal-record-trigger .personal-record-rosette { fill: #d0a51b; }
      body.theme-dark.portal-page .personal-record-trigger .personal-record-rosette path:last-child { fill: none; }
      body.theme-dark.portal-page .personal-record-trigger > span { border-color: #202b25; background: #9bd5ad; color: #163327; }
      body.theme-dark.portal-page .workout-pill .calendar-personal-record-badge,
      body.theme-dark.portal-page .workout-pill .calendar-personal-record-count { color: #fff; text-shadow: 0 1px 1px rgba(0, 0, 0, .62); }
      body.theme-dark.portal-page .workout-pill .calendar-personal-record-badge .personal-record-rosette { fill: #d0a51b; color: #fff0a3; }
      body.theme-dark.portal-page .personal-record-dialog-card { border-color: #425047; background: #202b25; color: #edf4ef; }
      body.theme-dark.portal-page .detail-note-dialog-card { border-color: #425047; background: #202b25; color: #edf4ef; }
      body.theme-dark.portal-page .detail-note-saved-at { color: #aebbb2; }
      body.theme-dark.portal-page .detail-note-save-review-usage { color: #aebbb2; }
      body.theme-dark.portal-page .detail-note-error { color: #ffb4b4; }
      body.theme-dark.portal-page .personal-record-dialog-header,
      body.theme-dark.portal-page .personal-record-dialog-actions,
      body.theme-dark.portal-page .personal-record-modal-item { border-color: #425047; }
      body.theme-dark.portal-page .personal-record-exclusion-button { border-color: #536158; background: #28362f; color: #c6d0c9; }
      body.theme-dark.portal-page .personal-record-exclusion-button:hover, body.theme-dark.portal-page .personal-record-exclusion-button:focus-visible { border-color: #d28787; background: #472d2d; color: #ffd1d1; }
      body.theme-dark.portal-page .personal-record-exclusion-button.is-restore { border-color: #587c68; background: #263c31; color: #bfe8ce; }
      body.theme-dark.portal-page .personal-record-modal-item small { color: #aebbb2; }
      body.theme-dark.portal-page .personal-record-scope.is-all-time { background: #4b4019; color: #ffe78c; }
      body.theme-dark.portal-page .personal-record-scope.is-year { background: #203847; color: #b9e1ff; }
      body.theme-dark.portal-page .personal-record-sync-activity { border-color: #536158; }
      body.theme-dark.portal-page .personal-record-sync-activity.is-expanded:not(:last-child) { border-color: #7b9483; }
      body.theme-dark.portal-page .personal-record-sync-activity-title { color: #edf4ef; }
      body.theme-dark.portal-page .personal-record-sync-activity-badge { color: #fff0a3; }
      body.theme-dark.portal-page .personal-record-sync-activity-badge .personal-record-rosette { fill: #d0a51b; }
      body.theme-dark.portal-page .personal-record-sync-activity-badge > b { border-color: #202b25; background: #9bd5ad; color: #163327; }
      body.theme-dark.portal-page .personal-record-sync-activity-heading > small { color: #aebbb2; }
      body.theme-dark.portal-page .personal-record-sync-activity-summary::after { border-color: #536158; background: #28362f; color: #bfe8ce; }
      body.theme-dark.portal-page .personal-record-sync-record-list { border-color: #425047; }
      body.theme-dark.portal-page .detail-action-menu-toggle:focus-visible,
      body.theme-dark.portal-page .detail-action-menu[open] > .detail-action-menu-toggle { border-color: #536259; background: #2d3d34; color: #ffffff; }
    }
    .detail-heading-review { grid-column: 3 / 5; grid-row: 1; display: grid; gap: 7px; box-sizing: border-box; width: min(100%, 530px); min-width: 0; min-height: 34px; overflow: visible; padding-right: 96px; align-self: start; color: #56645c; font-size: 12px; line-height: 1.35; }
    .detail-heading-review strong { display: block; margin-bottom: 2px; color: #914711; font-size: 11px; font-weight: 900; text-transform: uppercase; }
    .detail-heading-review span { display: block; overflow: visible; overflow-wrap: anywhere; }
    .detail-heading-review .coach-review-pending a[data-plan-chat-open] { display: inline-block; overflow-wrap: normal; white-space: nowrap; }
    .detail-heading-review .attention-new-badge { display: inline-flex; overflow: visible; overflow-wrap: normal; }
    .detail-heading-review em { display: block; margin-top: 3px; color: #69766e; font-size: 11px; font-style: normal; font-weight: 700; }
    .detail-status { display: inline-flex; grid-column: 4; grid-row: 1; align-items: center; justify-self: end; min-height: 26px; padding: 4px 9px; border: 1px solid transparent; border-radius: 999px; font-size: 12px; font-weight: 700; white-space: nowrap; }
    .detail-heading.is-matched .detail-heading-review { grid-column: 1 / 4; width: 100%; padding-right: 0; }
    .detail-tabs { display: grid; gap: 0; }
    .detail-tab-input { display: none; }
    .detail-view-actions { grid-column: 1 / 4; grid-row: 2; display: inline-flex; align-items: flex-end; justify-content: flex-start; gap: 8px; min-width: 0; }
    .detail-tab-list { display: inline-flex; align-items: flex-end; gap: 2px; width: fit-content; box-sizing: border-box; padding: 0; border: 0; border-radius: 0; background: transparent; margin: 2px 0 -1px; }
    .detail-tab { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-width: 110px; min-height: 32px; padding: 5px 14px; border: 1px solid transparent; border-bottom: 0; border-radius: 6px 6px 0 0; color: #4f5d55; font-size: 12px; font-weight: 900; cursor: pointer; }
    .detail-tab[aria-disabled="true"] { color: #8b978f; cursor: default; opacity: .7; }
    .detail-tab-panel { display: none; }
    .detail-tab-input-plan:checked ~ .detail-heading .detail-tab-plan,
    .detail-tab-input-execution:checked ~ .detail-heading .detail-tab-execution { background: #fbfcfb; border-color: #d8e0d6; color: #203028; box-shadow: 0 1px 0 #fbfcfb; }
    .detail-tab-input-plan:checked ~ .detail-tab-panel-plan,
    .detail-tab-input-execution:checked ~ .detail-tab-panel-execution { display: grid; gap: 10px; }
    @supports selector(.workout-detail:has(.detail-tab-input:checked)) {
      .workout-detail.has-matched-tabs:not(:has(.detail-tab-input:checked)) .detail-tab-execution { background: #fbfcfb; border-color: #d8e0d6; color: #203028; box-shadow: 0 1px 0 #fbfcfb; }
      .workout-detail.has-matched-tabs:not(:has(.detail-tab-input:checked)) .detail-tab-panel-execution { display: grid; gap: 10px; }
    }
    .detail-tab-panel.is-single-view { display: grid; gap: 10px; }
    .detail-tab-panel { padding: 0; border: 0; border-radius: 0; background: transparent; }
    .detail-note-dialog { width: min(520px, calc(100vw - 28px)); max-width: none; padding: 0; border: 0; background: transparent; color: inherit; }
    .detail-note-dialog::backdrop { background: rgba(10,24,18,.5); backdrop-filter: blur(2px); }
    .detail-note-dialog-card { display: grid; gap: 14px; box-sizing: border-box; max-height: calc(100dvh - 28px); overflow: auto; padding: 16px; border: 1px solid #d9e2d8; border-radius: 10px; background: #ffffff; color: #203028; box-shadow: 0 22px 58px rgba(31,39,34,.24); }
    .detail-note-dialog-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
    .detail-note-dialog-header h2 { min-width: 0; margin: 0; font-size: 19px; line-height: 1.2; }
    .detail-note-dialog-x-close { margin-left: auto; }
    .detail-note-editor { display: grid; gap: 10px; }
    .detail-note-editor textarea { box-sizing: border-box; width: 100%; min-height: 132px; resize: vertical; }
    .detail-note-saved-at { margin: -2px 0 0; color: #69766e; font-size: 12px; font-weight: 700; line-height: 1.3; }
    .detail-note-error { margin: -2px 0 0; color: #a12828; font-size: 12px; font-weight: 800; line-height: 1.35; }
    .detail-note-editor > .message.message-warning.detail-note-running-notice { margin: 0; padding: 8px 10px; border-left: 0; border-radius: 6px; font-size: 12px; font-weight: 800; line-height: 1.35; }
    .detail-note-dialog-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 8px; }
    .detail-note-save-button,
    .detail-note-save-review-button { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-width: 0; min-height: 42px; padding: 0 10px; font-size: 13px; font-weight: 850; line-height: 1.15; white-space: nowrap; }
    .detail-note-save-review-control { display: grid; gap: 4px; min-width: 0; }
    .detail-note-save-review-usage { display: block; max-width: 100%; color: #69766e; font-size: 10px; font-weight: 700; line-height: 1.15; text-align: center; white-space: normal; }
    .detail-note-save-review-usage .plan-review-usage-counter-desktop,
    .detail-note-save-review-usage .plan-review-usage-counter-mobile { font-size: inherit; line-height: inherit; text-align: center; white-space: normal; }
    .detail-note-unsaved-dialog .app-confirm-actions { flex-wrap: wrap; }
    .detail-empty { margin: 0; color: #69766e; font-size: 13px; line-height: 1.4; }
    .execution-visual { display: grid; gap: 10px; margin-bottom: 10px; }
    .execution-note-grid { grid-template-columns: minmax(0, 1fr); }
    .execution-note-grid[hidden] { display: none; }
    .detail-item.detail-activity-note strong { color: #914711; }
    .detail-activity-note span { white-space: pre-wrap; }
    .execution-summary-row { display: grid; gap: 10px; align-items: stretch; }
    .execution-summary-title { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; min-width: 0; padding: 10px 12px; border: 1px solid #d8e3d9; border-radius: 8px; background: linear-gradient(145deg, #ffffff 0%, #f6faf7 100%); }
    .execution-summary-title strong { display: block; min-width: 0; color: #203028; font-size: 16px; line-height: 1.25; overflow-wrap: anywhere; }
    .execution-summary-meta { flex: 0 0 auto; color: #56645c; font-size: 12px; font-weight: 850; line-height: 1.2; white-space: nowrap; }
    .execution-summary-meta-label { color: #69766e; font-size: 10px; font-weight: 900; text-transform: uppercase; }
    .execution-summary-meta-value { color: #203028; font-weight: 900; }
    .execution-plan-comparison { display: grid; gap: 7px; min-width: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
    .execution-plan-comparison-aggregate { gap: 8px; padding: 0; border: 0; }
    .execution-comparison-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
    .execution-comparison-card { display: grid; gap: 6px; min-width: 0; padding: 8px; border: 1px solid #e1e8df; border-radius: 7px; background: #f8faf7; }
    .execution-comparison-card-top { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; min-width: 0; }
    .execution-comparison-card-top span { min-width: 0; color: #56645c; font-size: 11px; font-weight: 900; line-height: 1.1; overflow-wrap: anywhere; }
    .execution-comparison-card-top strong { flex: 0 0 auto; color: #203028; font-size: 12px; line-height: 1.1; white-space: nowrap; }
    .execution-comparison-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
    .execution-comparison-values span { display: grid; gap: 2px; min-width: 0; }
    .execution-comparison-values em { color: #69766e; font-size: 10px; font-style: normal; font-weight: 900; line-height: 1.1; text-transform: uppercase; }
    .execution-comparison-values strong { color: #203028; font-size: 13px; line-height: 1.1; overflow-wrap: anywhere; }
    .execution-comparison-bars { display: grid; gap: 3px; min-width: 0; }
    .execution-comparison-bar { position: relative; display: block; height: 5px; overflow: hidden; border-radius: 999px; background: #e6ede6; }
    .execution-comparison-bar::before { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--comparison-bar); border-radius: inherit; }
    .execution-comparison-bar.is-plan::before { background: #b7c9bf; }
    .execution-comparison-bar.is-execution::before { background: #47b889; }
    .execution-comparison-bar em { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .execution-components { display: grid; gap: 7px; min-width: 0; }
    .execution-component-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
    .execution-component-item { min-width: 0; }
    .execution-component-body { display: grid; gap: 7px; min-width: 0; }
    .execution-component-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 16px; }
    .execution-analysis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; align-items: stretch; }
    .execution-analysis-no-comparison { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .execution-route, .execution-laps { min-width: 0; border: 1px solid #d8e3d9; border-radius: 8px; background: rgba(255,255,255,.82); }
    .execution-route { display: grid; gap: 8px; padding: 10px; }
    .execution-panel-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
    .execution-panel-heading span { color: #69766e; font-size: 10px; font-weight: 900; line-height: 1.1; text-transform: uppercase; }
    .execution-panel-heading strong { color: #203028; font-size: 13px; line-height: 1.2; text-align: right; }
    .execution-route-map { position: relative; display: block; width: 100%; min-height: 148px; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 8px; background: #dce7dd; touch-action: none; }
    .execution-route-zoom-layer { position: absolute; inset: 0; transform-origin: 50% 50%; will-change: transform; }
    .execution-route-tiles { position: absolute; inset: 0; }
    .execution-route-tiles img { position: absolute; max-width: none; pointer-events: none; user-select: none; }
    .execution-route-overlay { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
    .execution-route-overlay polyline { fill: none; stroke: #286a57; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 1px 2px rgba(32,48,40,.22)); }
    .execution-route-reset { position: absolute; z-index: 2; top: 8px; right: 8px; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; min-height: 0; padding: 0; border: 0; border-radius: 999px; background: transparent; color: #203028; box-shadow: none; cursor: pointer; -webkit-tap-highlight-color: transparent; }
    .execution-route-reset svg { width: 25px; height: 25px; fill: none; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
    .execution-route-reset-shadow { stroke: rgba(255,255,255,.96); stroke-width: 4.1; filter: drop-shadow(0 1px 1px rgba(32,48,40,.24)); }
    .execution-route-reset-mark { stroke: currentColor; stroke-width: 1.25; }
    .execution-route-reset-dot { fill: currentColor; stroke: none; }
    .execution-route-reset:hover { color: #286a57; }
    .execution-route-reset:focus-visible { outline: 2px solid rgba(40,106,87,.86); outline-offset: 2px; }
    .execution-route-attribution { position: absolute; right: 4px; bottom: 3px; padding: 1px 4px; border-radius: 4px; background: rgba(255,255,255,.8); color: #4c5851; font-size: 9px; font-weight: 800; line-height: 1.2; }
    .execution-route-start { fill: #ffffff; stroke: #286a57; stroke-width: 3; }
    .execution-route-finish { fill: #c58a35; stroke: #ffffff; stroke-width: 2; }
    .execution-route-progress { display: none; fill: #316d8f; stroke: #ffffff; stroke-width: 2.5; filter: drop-shadow(0 2px 3px rgba(32,48,40,.28)); }
    .execution-route-progress.is-active { display: block; }
    .execution-route-empty { align-content: start; min-height: 164px; }
    .execution-route-empty p { margin: 0; color: #69766e; font-size: 12px; font-weight: 700; line-height: 1.35; }
    .execution-chart { display: grid; gap: 8px; min-width: 0; padding: 10px; border: 1px solid #d8e3d9; border-radius: 8px; background: rgba(255,255,255,.82); }
    .execution-chart-controls { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: nowrap; }
    .execution-chart-metrics { display: flex; align-items: center; justify-content: center; gap: 6px 8px; flex-wrap: wrap; width: 100%; overflow-x: visible; }
    .execution-chart label { display: inline-flex; align-items: center; gap: 5px; margin: 0; color: #56645c; font-size: 11px; font-weight: 900; line-height: 1.1; white-space: nowrap; }
    .execution-chart input { flex: 0 0 auto; width: auto; height: auto; margin: 0; accent-color: var(--metric-color, #286a57); }
    .execution-chart-stage { position: relative; min-width: 0; max-width: 100%; height: 300px; overflow: hidden; }
    .execution-chart-svg { display: block; width: 100%; height: 100%; border-radius: 8px; background: #f5f8f5; touch-action: none; }
    .execution-chart-svg .chart-grid { stroke: rgba(49,109,143,.14); stroke-width: 1; }
    .execution-chart-svg .chart-scale { stroke: rgba(32,48,40,.24); stroke-width: 1; }
    .execution-chart-svg .chart-axis-title { font-size: 9px; font-weight: 900; text-transform: uppercase; }
    .execution-chart-svg .chart-axis-label, .execution-chart-svg .chart-horizontal-label { font-size: 10.5px; font-weight: 850; }
    .execution-chart-svg .chart-horizontal-label { fill: #69766e; }
    .execution-chart-svg .chart-line { fill: none; stroke-width: .85; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
    .execution-chart-svg .chart-cursor { stroke: #203028; stroke-width: 1.5; stroke-dasharray: 4 4; }
    .execution-chart-tooltip { position: absolute; z-index: 2; box-sizing: border-box; min-width: 136px; max-width: 210px; overflow: hidden; padding: 7px 8px; border: 1px solid #c9d6cc; border-radius: 7px; background: rgba(255,255,255,.96); color: #203028; font-size: 11px; font-weight: 800; line-height: 1.35; box-shadow: 0 8px 18px rgba(31,39,34,.14); pointer-events: none; }
    .execution-chart-tooltip strong { display: block; margin-bottom: 2px; color: #203028; font-size: 12px; }
    .execution-chart-tooltip span { display: block; color: #56645c; }
    .execution-laps { display: grid; gap: 8px; padding: 10px; }
    .execution-laps-scroll { overflow-x: auto; }
    .execution-laps-table { min-width: 560px; margin: 0; border-collapse: collapse; background: transparent; }
    .execution-laps-table th, .execution-laps-table td { padding: 7px 8px; border-bottom: 1px solid #e1e8df; font-size: 12px; line-height: 1.25; white-space: nowrap; }
    .execution-laps-table th { color: #69766e; font-size: 10px; font-weight: 900; text-transform: uppercase; }
    .execution-laps-heading-mobile { display: none; }
    .execution-laps-value-mobile { display: none; }
    .execution-laps-table td { color: #203028; font-weight: 750; }
    .detail-grid { display: grid; gap: 10px 20px; }
    .compact-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 12px; }
    .plan-summary-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 0; }
    .text-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .detail-tab-panel-plan .text-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .detail-tab-panel-plan .detail-details,
    .detail-tab-panel-plan .detail-fueling { grid-column: span 2; }
    .structured-workout-list { margin: -2px 0 12px; padding: 0; border-top: 1px solid #e8ece6; border-bottom: 1px solid #e8ece6; }
    .structured-workout-list ol { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
    .structured-workout-item { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 8px; align-items: start; min-width: 0; padding: 10px 0; border-bottom: 1px solid #eef2ec; }
    .structured-workout-list.is-single .structured-workout-item { grid-template-columns: minmax(0, 1fr); }
    .structured-workout-item:last-child { border-bottom: 0; }
    .structured-workout-index { color: #69766e; font-size: 11px; font-weight: 900; line-height: 1.3; text-align: right; }
    .structured-workout-body { display: grid; gap: 7px; min-width: 0; }
    .structured-workout-title { min-width: 0; color: #203028; font-size: 14px; font-weight: 850; line-height: 1.3; overflow-wrap: anywhere; }
    .structured-workout-summary { min-width: 0; color: #56645c; font-size: 12px; font-weight: 750; line-height: 1.35; overflow-wrap: anywhere; }
    .structured-workout-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 16px; margin-bottom: 0; }
    .structured-workout-repeat-substep .structured-workout-metrics .detail-target-power,
    .structured-workout-repeat-substep .structured-workout-metrics .detail-target-pace,
    .structured-workout-repeat-substep .structured-workout-metrics .detail-target-hr-zone,
    .structured-workout-repeat-substep .structured-workout-metrics .detail-target-cadence,
    .structured-workout-repeat-substep .structured-workout-metrics .detail-target-elevation,
    .structured-workout-repeat-substep .structured-workout-metrics .detail-target-note { grid-column: 1 / -1; }
    .structured-workout-leg-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; margin-bottom: 0; }
    .structured-workout-leg-overview .detail-mobile-leg-target { display: none; }
    .detail-tab-panel-plan .structured-workout-leg-overview .detail-fueling { grid-column: auto; }
    .structured-workout-details { gap: 8px 20px; }
    .structured-workout-list.is-blocks { margin: 2px 0 14px; border: 0; }
    .structured-workout-list.is-blocks ol { gap: 10px; }
    .structured-workout-block { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 0; border-bottom: 0; }
    .structured-workout-block-heading { display: flex; flex-wrap: nowrap; align-items: center; gap: 6px; min-width: 0; padding: 10px 12px; border: 1px solid #d8e3d9; border-radius: 8px; background: #ffffff; color: #203028; box-shadow: 0 1px 0 rgba(32,48,40,.04); }
    .structured-workout-block-heading strong { flex: 1 1 auto; min-width: 0; color: #203028; font-size: 14px; font-weight: 850; line-height: 1.25; overflow-wrap: anywhere; }
    .structured-workout-block-heading span { flex: 0 0 auto; color: #56645c; font-size: 12px; font-weight: 850; line-height: 1.2; white-space: nowrap; }
    .structured-workout-block-heading span + span::before { content: "|"; margin-right: 6px; color: #9aa89e; font-weight: 900; }
    .structured-workout-repeat-icon { flex: 0 0 18px; width: 18px; height: 18px; color: #286a57; stroke-width: 2.35; }
    .structured-workout-repeat-count { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; padding: 2px 7px; border: 1px solid #9fc3aa; border-radius: 999px; background: #ffffff; color: #286a57; font-size: 12px; font-weight: 950; line-height: 1.1; }
    .structured-workout-block-heading .structured-workout-repeat-count + span::before { content: none; margin-right: 0; }
    .structured-workout-block-heading .leg-accordion-icon { flex: 0 0 22px; margin-left: 0; }
    .structured-workout-substeps { display: grid; gap: 8px; min-width: 0; margin: 2px 0 0 12px; padding: 0 0 0 12px; border-left: 2px solid #e0e9e1; list-style: none; }
    .structured-workout-list .structured-workout-substeps { gap: 8px; }
    .structured-workout-list.has-leg-panels .structured-workout-leg-panel > .structured-workout-body > .structured-workout-substeps { margin-left: 0; padding-left: 0; border-left: 0; }
    .structured-workout-substep { display: grid; gap: 7px; min-width: 0; }
    .structured-workout-substep .structured-workout-block-heading { padding: 8px 10px; background: #fbfdfb; }
    .structured-workout-substep .structured-workout-block-heading strong { font-size: 13px; }
    .structured-workout-leg-substep > .structured-workout-step-panel:not([open]) .structured-workout-block-heading { background: #ffffff; }
    .structured-workout-repeat-substep > .structured-workout-step-panel:not([open]) .structured-workout-block-heading { padding: 7px 10px; border-color: #d4e4d8; background: #ffffff; box-shadow: none; }
    .structured-workout-repeat-substep > .structured-workout-step-panel:not([open]) .structured-workout-block-heading strong { font-size: 13px; font-weight: 800; }
    .structured-workout-repeat-group { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 8px; border: 1px dashed #b9d4c0; border-radius: 8px; background: #f5fbf7; }
    .structured-workout-repeat-panel { display: grid; gap: 0; min-width: 0; }
    .structured-workout-repeat-group > .structured-workout-repeat-panel > .leg-accordion-summary .structured-workout-block-heading { border-color: #b9d4c0; background: #edf7f0; box-shadow: none; }
    .structured-workout-repeat-group > .structured-workout-repeat-panel > .leg-accordion-summary .structured-workout-block-heading > span:not(.structured-workout-repeat-count):last-of-type { margin-left: auto; text-align: right; }
    .structured-workout-repeat-body { display: grid; gap: 8px; min-width: 0; padding-top: 8px; }
    .structured-workout-repeat-body > .structured-workout-substeps { margin: 2px 0 0; padding: 0 13px; border-left: 0; }
    .structured-workout-accordion-entry { display: block; padding: 0; }
    .structured-workout-list.is-accordion { margin: 2px 0 14px; border: 0; }
    .structured-workout-list.is-accordion ol { gap: 8px; }
    .leg-accordion-item { min-width: 0; }
    .leg-accordion-item[open] { overflow: hidden; border: 1px solid #b8d0c1; border-radius: 8px; background: rgba(255,255,255,.72); }
    .structured-workout-leg-panel[open] { background: #f8fcf9; box-shadow: 0 2px 6px rgba(32,48,40,.08); }
    .structured-workout-step-panel[open] { border-color: #bfd7c5; background: #ffffff; box-shadow: 0 1px 3px rgba(32,48,40,.08); }
    .structured-workout-list.has-leg-panels .structured-workout-step-panel[open] { border-left-width: 1px; border-left-color: #bfd7c5; }
    .structured-workout-repeat-substep > .structured-workout-step-panel[open] { border-left-width: 1px; border-left-color: #bfd7c5; background: #ffffff; box-shadow: none; }
    .leg-accordion-summary { display: block; min-width: 0; padding: 0; cursor: pointer; list-style: none; }
    .leg-accordion-summary::-webkit-details-marker { display: none; }
    .leg-accordion-item[open] > .leg-accordion-summary .structured-workout-block-heading { border: 0; border-bottom: 1px solid #e2e9e2; border-radius: 0; background: #f4faf6; box-shadow: none; }
    .structured-workout-repeat-panel[open] { overflow: visible; border: 0; border-radius: 0; background: transparent; }
    .structured-workout-repeat-panel[open] > .leg-accordion-summary .structured-workout-block-heading { border: 1px solid #b9d4c0; border-radius: 8px; background: #edf7f0; }
    .leg-accordion-tile { display: grid; grid-template-columns: minmax(0, 1fr) auto auto 22px; align-items: center; gap: 8px; min-width: 0; padding: 10px 12px; border: 1px solid #d8e3d9; border-radius: 8px; background: #ffffff; color: #203028; box-shadow: 0 1px 0 rgba(32,48,40,.04); }
    .leg-accordion-tile.has-sport-icon { grid-template-columns: 22px minmax(0, 1fr) auto auto 22px; }
    .leg-accordion-tile.has-sport-icon .leg-accordion-icon { grid-column: -2 / -1; }
    .structured-workout-leg-panel > .leg-accordion-summary .leg-accordion-tile { border-color: #b8d0c1; background: #f5fbf7; }
    .leg-accordion-item[open] .leg-accordion-tile { border: 0; border-bottom: 1px solid #e2e9e2; border-radius: 0; background: #f4faf6; box-shadow: none; }
    .structured-workout-leg-panel[open] > .leg-accordion-summary .leg-accordion-tile { border: 0; border-bottom: 1px solid #d8e7dc; background: #edf7f0; }
    .leg-accordion-tile strong { min-width: 0; overflow: hidden; color: #203028; font-size: 14px; font-weight: 850; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
    .leg-accordion-tile span, .leg-accordion-tile em { min-width: 0; color: #56645c; font-size: 12px; font-style: normal; font-weight: 850; line-height: 1.2; white-space: nowrap; }
    .leg-accordion-sport-icon { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; color: #286a57; }
    .leg-accordion-sport-icon .plan-activity-icon { width: 18px; height: 18px; color: inherit; stroke-width: 2.25; transform: none; opacity: 1; }
    .leg-accordion-icon { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border: 1px solid #cbd9ce; border-radius: 6px; background: #f8faf7; color: #286a57; font-style: normal; font-size: 16px; font-weight: 900; line-height: 1; }
    .leg-accordion-icon::before { content: ""; width: 7px; height: 7px; margin-top: -4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform 180ms ease, margin 180ms ease; }
    .leg-accordion-item:not([open]) > .leg-accordion-summary .leg-accordion-icon::before { content: ""; margin-top: -4px; transform: rotate(45deg); }
    .leg-accordion-item[open] > .leg-accordion-summary .leg-accordion-icon::before { content: ""; margin-top: 4px; transform: rotate(225deg); }
    .structured-workout-leg-panel[open] > .structured-workout-body,
    .structured-workout-step-panel[open] > .structured-workout-body,
    .execution-component-panel[open] > .execution-component-body { margin: 0; padding: 10px 12px 12px; border: 0; border-radius: 0; background: transparent; }
    .structured-workout-step-panel[open] > .structured-workout-body { background: #ffffff; }
    .structured-workout-step-panel[open] > .structured-workout-body:empty { display: none; }
    @media (min-width: 761px) {
      .structured-workout-list.has-step-panels > ol > .structured-workout-item > .structured-workout-step-panel[open] > .structured-workout-body:has(> .structured-workout-metrics):has(> .structured-workout-details) { grid-template-columns: minmax(170px, .34fr) minmax(0, 1fr); gap: 10px 18px; align-items: start; }
      .structured-workout-list.has-step-panels > ol > .structured-workout-item > .structured-workout-step-panel[open] > .structured-workout-body:has(> .structured-workout-metrics):has(> .structured-workout-details) > .structured-workout-metrics { grid-column: 1; grid-template-columns: minmax(0, 1fr); margin-bottom: 0; }
      .structured-workout-list.has-step-panels > ol > .structured-workout-item > .structured-workout-step-panel[open] > .structured-workout-body:has(> .structured-workout-metrics):has(> .structured-workout-details) > .structured-workout-details { grid-column: 2; grid-template-columns: minmax(0, 1fr); }
      .structured-workout-repeat-substep > .structured-workout-step-panel[open] > .structured-workout-body { grid-template-columns: minmax(170px, .34fr) minmax(0, 1fr); gap: 10px 18px; align-items: start; }
      .structured-workout-repeat-substep > .structured-workout-step-panel[open] > .structured-workout-body > .structured-workout-metrics { grid-column: 1; grid-template-columns: minmax(0, 1fr); margin-bottom: 0; }
      .structured-workout-repeat-substep > .structured-workout-step-panel[open] > .structured-workout-body > .structured-workout-details { grid-column: 2; grid-template-columns: minmax(0, 1fr); }
      .structured-workout-repeat-substep > .structured-workout-step-panel[open] > .structured-workout-body > .structured-workout-details:only-child { grid-column: 1 / -1; }
    }
    .structured-execution-check { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; min-width: 0; padding: 8px 0; border-top: 1px solid #e1e8df; border-bottom: 1px solid #e1e8df; }
    .structured-execution-check span { color: #69766e; font-size: 10px; font-weight: 900; line-height: 1.1; text-transform: uppercase; }
    .structured-execution-check strong { min-width: 0; color: #203028; font-size: 12px; line-height: 1.25; text-align: right; overflow-wrap: anywhere; }
    .detail-item { min-width: 0; padding-bottom: 9px; border-bottom: 1px solid #e8ece6; }
    .detail-item strong { display: block; margin-bottom: 3px; color: #56645c; font-size: 12px; }
    .detail-item span { overflow-wrap: anywhere; font-size: 13px; line-height: 1.35; }
    .structured-workout-video-links { display: grid; gap: 4px; }
    .structured-workout-video a { color: #286a57; font-weight: 850; text-decoration: underline; text-underline-offset: 2px; }
    .structured-workout-video a:hover, .structured-workout-video a:focus { color: #1d5142; }
    .structured-workout-video-previews { display: none; }
    .structured-workout-video-card { display: grid; gap: 6px; min-width: 0; width: 100%; }
    .structured-workout-video-card-label { color: #56645c; font-size: 12px; font-weight: 850; line-height: 1.25; overflow-wrap: anywhere; }
    .structured-workout-video-card-link { display: block; box-sizing: border-box; width: 100%; padding: 7px 9px; border: 1px solid #d7e4da; border-radius: 8px; background: #f7fbf8; line-height: 1.3; overflow-wrap: anywhere; }
    .structured-workout-video-preview { min-width: 0; overflow: hidden; border: 1px solid #d7e4da; border-radius: 8px; background: #101512; box-shadow: 0 1px 3px rgba(32,48,40,.10); }
    .structured-workout-video-preview iframe { display: block; width: 100%; height: 100%; border: 0; }
    .revision-note em { display: block; margin-top: 5px; color: #69766e; font-size: 11px; font-style: normal; font-weight: 700; }
    .selected-empty { margin: 0; color: #69766e; font-size: 13px; }
    .plan-status-planned { border: 1px solid #c8dff2; background: #e8f2ff; color: #316d8f; }
    .plan-status-completed { background: #d9ead3; color: #1d6b3a; }
    .plan-status-partial { background: #fff2cc; color: #7a5b00; }
    .plan-status-skipped { background: #fde7f1; color: #9d1f5d; }
    .plan-status-unplanned { background: #f1e7de; color: #7c4d25; }
    .status-badge.plan-status-revised { background: #e5eef7; color: #244f77; }
    .revision-note-timestamp { display: block; margin-top: 4px; color: #69766e; font-size: 11px; font-weight: 400; line-height: 1.3; }
    .stacked-field { display: grid; gap: 8px; }
    .inline-label { display: grid; gap: 3px; margin: 0; font-size: 12px; font-weight: 700; color: #56645c; }
    .inline-label input, .inline-label textarea, .inline-label select { font-weight: 400; }
    .status-badge { display: inline-block; border-radius: 999px; padding: 4px 9px; font-size: 13px; font-weight: 700; white-space: nowrap; }
    .status-active { background: #e2f4e8; color: #1d6b3a; }
    .status-overdue { background: #fff0d8; color: #9a4f00; }
    .message { border: 0; background: #edf5ef; padding: 10px 12px; margin-bottom: 16px; }
    body.portal-page .message.message-warning { background: #fff8ed; color: #7a4b00; }
    body.auth-page .message.message-warning { background: #fff8ed; color: #7a4b00; }
    .subscription-date { display: inline; margin-left: 4px; }
    .form-actions { margin-top: 14px; }
    table { width: 100%; border-collapse: collapse; background: white; }
    th, td { border-bottom: 1px solid #e4e9e2; padding: 9px; text-align: left; vertical-align: top; }
    th { font-size: 13px; color: #56645c; }
    .actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: end; }
    .actions form { margin: 0; }
    @media (min-width: 761px) {
      .detail-tab-panel-plan .structured-workout-video,
      .structured-workout-details .structured-workout-video { grid-column: 1 / -1; padding-bottom: 0; border-bottom: 0; }
      .structured-workout-video > strong { display: none; }
      .structured-workout-video .structured-workout-video-links { display: none; }
      .structured-workout-video .structured-workout-video-card-link { text-decoration: none; }
      .structured-workout-video .structured-workout-video-card-link:hover,
      .structured-workout-video .structured-workout-video-card-link:focus { text-decoration: none; }
      .structured-workout-video-previews { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-items: start; width: 100%; margin-top: 9px; }
      .structured-workout-video-preview { aspect-ratio: 16 / 9; }
      .plan-garmin-sync-popup,
      .plan-update-progress-popup { position: fixed; top: var(--plan-garmin-sync-popup-top, 142px); left: 50%; width: min(100% - 48px, 1180px); transform: translateX(-50%); pointer-events: none; }
      .selected-summary { align-self: flex-start; margin-top: 3px; }
      .selected-panel .detail-heading { grid-template-columns: repeat(11, minmax(0, 1fr)) max-content; }
      .selected-panel .detail-view-actions { grid-column: 1 / 10; }
      .selected-panel .detail-title { display: grid; grid-column: 1 / 5; row-gap: 12px; }
      .selected-panel .detail-title-row { margin-top: 0; }
      .selected-panel .detail-heading-review { grid-column: 5 / 12; justify-self: stretch; width: auto; padding-right: 0; }
      .selected-panel .detail-heading.is-matched .detail-heading-review { grid-column: 1 / 12; }
      .selected-panel .detail-status { grid-column: 12; }
      .today-training .mini-table tbody tr:nth-child(odd) { background: #f8faf7; }
      .today-training .mini-table tbody tr:nth-child(even) { background: white; }
      .today-training .mini-table th:nth-child(1), .today-training .mini-table td:nth-child(1) { width: 12%; }
      .today-training .mini-table th:nth-child(2), .today-training .mini-table td:nth-child(2) { width: 14%; }
      .today-training .mini-table th:nth-child(3), .today-training .mini-table td:nth-child(3) { width: 20%; }
      .today-training .mini-table th:nth-child(4), .today-training .mini-table td:nth-child(4) { width: 14%; }
      .today-training .mini-table th:nth-child(5), .today-training .mini-table td:nth-child(5) { width: 12%; }
      .today-training .mini-table th:nth-child(6), .today-training .mini-table td:nth-child(6) { width: 6%; text-align: center; }
      .today-training .mini-table th:nth-child(1), .today-training .mini-table td:nth-child(1),
      .today-training .mini-table th:nth-child(4), .today-training .mini-table td:nth-child(4),
      .today-training .mini-table th:nth-child(5), .today-training .mini-table td:nth-child(5),
      .today-training .mini-table th:nth-child(6), .today-training .mini-table td:nth-child(6) { overflow-wrap: normal; word-break: normal; }
      .summary-list { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
      .summary-item { align-content: space-between; grid-template-columns: 1fr; gap: 10px; min-height: 104px; padding: 12px; border: 1px solid #e1e8df; border-radius: 8px; background: rgba(255,255,255,.72); }
      .summary-item:last-child { border-bottom: 1px solid #e1e8df; padding-bottom: 12px; }
      .summary-pill { justify-self: start; }
      .daily-insights .insight-plan-update-compact.is-no-change { margin-right: 112px; }
      .goal-examples { margin-bottom: 0; font-size: 14px; line-height: 1.35; }
      .goal-examples .profile-example { padding: 5px 8px; font-size: 12px; }
      .plan-table { border-spacing: 0 8px; }
      .plan-guidance { margin-bottom: 0; }
      .plan-guidance .plan-actions { flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 6px; }
      .plan-update-card.is-collapsed .plan-actions { flex-direction: row; align-items: center; justify-content: flex-end; gap: 8px; }
      .plan-actions button { order: 1; }
      .plan-actions .plan-last-updated { align-self: flex-start; order: 2; }
      .plan-actions button { align-self: flex-end; }
      .plan-update-card.is-collapsed .plan-actions button { align-self: center; }
    }
    @media (max-width: 900px) { .dashboard-grid { grid-template-columns: 1fr; } .daily-insights, .race-readiness, .nutrition-weight, .recent-activity, .today-training { grid-column: auto; } .nutrition-review-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } .wizard-layout { grid-template-columns: 1fr; } .account-card-grid, .account-secondary-grid, .account-danger-grid, .coach-option-grid { grid-template-columns: 1fr; } }
    @media (max-width: 760px) {
      html { height: auto; min-height: 100%; }
      body { height: auto; min-height: 100%; overflow-y: auto; -webkit-overflow-scrolling: touch; }
      body > header { position: sticky; top: 0; z-index: 70; min-height: 63px; box-sizing: border-box; padding: 5px 12px 14px; }
      .maintenance-announcement { margin: 10px -12px -10px; }
      .maintenance-announcement-inner { grid-template-columns: 34px minmax(0, 1fr) 30px; gap: 10px; padding: 10px 12px; }
      .maintenance-announcement-active .maintenance-announcement-inner { grid-template-columns: 34px minmax(0, 1fr); }
      .maintenance-announcement-icon { width: 32px; height: 32px; border-radius: 8px; }
      .maintenance-announcement-icon svg { width: 19px; height: 19px; }
      .maintenance-announcement-title { margin-bottom: 2px; font-size: 11px; }
      .maintenance-announcement-details { display: grid; gap: 1px; font-size: 13px; line-height: 1.35; }
      .maintenance-announcement-message { font-size: 12px; }
      .maintenance-announcement-close { width: 30px; min-width: 30px; height: 30px; min-height: 30px; font-size: 21px; }
      main { flex: 1 0 auto; min-height: auto; overflow: visible; padding-bottom: calc(62px + env(safe-area-inset-bottom)); }
      main:has(input:focus, textarea:focus, select:focus) { padding-bottom: calc(62px + 42vh + env(safe-area-inset-bottom)); }
      input, textarea, select { scroll-margin: 96px 0 42vh; }
      .plan-garmin-sync-popup-inner { width: min(100%, 420px); }
      .dashboard-intro-control { order: 1; }
      .mobile-filter-toggle-control {
        display: flex;
        justify-content: flex-start;
        margin: 0 0 8px;
      }
      .mobile-filter-toggle.link-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        min-height: 36px;
        width: 100%;
        padding: 0 12px;
        border: 1px solid #cbd4cb;
        border-radius: 6px;
        background: white;
        color: #286a57;
        font-size: 13px;
        font-weight: 900;
        line-height: 1.2;
        text-decoration: none;
      }
      .mobile-filter-toggle.link-button::after {
        content: "";
        flex: 0 0 auto;
        width: 7px;
        height: 7px;
        margin-top: -4px;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        transform: rotate(45deg);
        transition: transform 180ms ease, margin 180ms ease;
      }
      .mobile-filter-toggle.link-button[aria-expanded="true"]::after {
        margin-top: 4px;
        transform: rotate(225deg);
      }
      .mobile-filter-toggle.link-button:hover, .mobile-filter-toggle.link-button:focus { border-color: #9fbead; background: #f8faf7; color: #1f4f41; }
      .page-mobile-control-row {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: 12px;
        margin-bottom: 8px;
      }
      .page-mobile-control-row .mobile-filter-toggle-control,
      .page-mobile-control-row .page-intro-control {
        margin-bottom: 0;
      }
      .mobile-collapsible-filter:not(.is-open) { display: none; }
      .goal-filter-bar, .event-filter-bar { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 9px; margin-bottom: 10px; padding: 10px; }
      .goal-filter-bar .filter-search,
      .goal-filter-bar .filter-actions,
      .event-filter-bar .filter-search,
      .event-filter-bar .filter-actions { grid-column: 1 / -1; }
      .goal-filter-bar .filter-actions, .event-filter-bar .filter-actions { justify-content: stretch; }
      .goal-filter-bar .filter-actions button, .event-filter-bar .filter-actions button { flex: 1 1 0; min-width: 0; }
      .goal-filter-bar .filter-count, .event-filter-bar .filter-count { display: flex; align-items: center; justify-content: flex-end; min-width: 74px; }
      .main-inner:has(.account-page) { max-width: 430px; padding: 14px 10px; }
      #ai-data-consent { scroll-margin-top: calc(var(--mobile-header-height, 63px) + var(--mobile-top-level-section-gap, 10px)); }
      body.ios-mobile.portal-page #ai-data-consent { scroll-margin-top: var(--mobile-top-level-section-gap, 10px); }
      .account-page { gap: 10px; }
      .account-top-row { grid-template-columns: minmax(0, 1fr); gap: 8px; }
      .main-inner:has(.garmin-page) { max-width: 430px; padding: 14px 10px; }
      body:has(.garmin-page) main { padding-bottom: 0; }
      body:has(.garmin-page) .site-footer { position: static; padding: 12px 18px calc(12px + env(safe-area-inset-bottom)); }
      .garmin-page { gap: 10px; }
      .garmin-hero { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 16px; }
      .garmin-hero-main { grid-template-columns: auto minmax(0, 1fr); gap: 10px; }
      .garmin-hero-logo { width: 42px; height: 42px; }
      .garmin-hero h2 { font-size: 23px; }
      .garmin-hero p { font-size: 13px; }
      .garmin-hero .account-chip { position: static; justify-self: start; max-width: 100%; }
      .garmin-layout { grid-template-columns: minmax(0, 1fr); gap: 10px; }
      .garmin-paid-required { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 13px 14px; }
      .garmin-paid-required-action { justify-self: stretch; width: 100%; }
      .garmin-panel { padding: 14px; gap: 12px; }
      .garmin-panel h3 { font-size: 18px; }
      .garmin-form-actions { grid-template-columns: minmax(0, 1fr); }
      .garmin-form-actions button, .garmin-form-actions .button, .garmin-paid-required .garmin-paid-required-action { width: 100%; min-height: 40px; }
      .garmin-support { gap: 8px; }
      .garmin-info-card { padding: 12px; }
      .garmin-status-row { grid-template-columns: minmax(0, 1fr); gap: 4px; }
      .garmin-status-row strong { text-align: left; }
      .garmin-connected-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
      .garmin-connected-actions .button, .garmin-connected-actions button, .garmin-connected-actions form { width: 100%; }
      .account-hero { grid-template-columns: minmax(0, 1fr); gap: 14px; padding: 16px; }
      .account-hero h2 { font-size: 23px; }
      .account-hero-copy > p:last-child { font-size: 13px; }
      .account-card-grid, .account-secondary-grid { gap: 10px; }
      .account-card { min-height: 0; padding: 14px; }
      .account-card-top { position: relative; grid-template-columns: auto minmax(0, 1fr); padding-right: 118px; }
      .account-card-gpt .account-card-top { padding-right: 118px; }
      .account-card-coach .account-card-top { padding-right: 158px; }
      .account-danger-zone .account-card-top { padding-right: 0; }
      .account-card-top h2 { font-size: 17px; }
      .account-chip { position: absolute; top: 0; right: 0; max-width: 112px; }
      .account-card-gpt .account-chip { max-width: 112px; }
      .account-card-coach .account-chip { max-width: 152px; }
      .account-card-gpt .account-card-top h2 { white-space: nowrap; }
      .coach-settings-dialog { inset: 12vh auto auto 50%; width: min(430px, calc(100vw - 28px)); max-height: calc(88vh - 24px); transform: translateX(-50%); }
      .coach-settings-card { max-height: calc(88vh - 24px); }
      .coach-wording-card { top: 12vh; width: min(430px, calc(100vw - 28px)); max-height: calc(88vh - 24px); }
      .coach-settings-panel { padding: 16px; gap: 12px; }
      .coach-settings-header { gap: 10px; }
      .coach-settings-header > div { gap: 8px; }
      .coach-settings-identity-copy { gap: 5px; }
      .coach-settings-avatar-change { font-size: 12px; }
      .coach-settings-header h2 { margin: 0; font-size: 18px; }
      .coach-settings-header p { font-size: 11px; line-height: 1.25; }
      .coach-settings-close { width: 30px; min-width: 30px; height: 30px; font-size: 22px; }
      .coach-name-field { grid-template-columns: 112px minmax(0, 1fr); gap: 8px; }
      .coach-name-field label, .coach-fieldset legend { font-size: 13px; }
      .coach-name-field input { height: 38px; padding-top: 7px; padding-bottom: 7px; }
      .coach-fieldset { gap: 8px; }
      .coach-fieldset legend { padding-top: 0; }
      .coach-option-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
      .coach-option { min-height: 40px; padding: 0 5px; }
      .coach-option strong { font-size: 13px; line-height: 1.12; }
      .coach-choice-note { min-height: 38px; padding: 8px 9px; font-size: 12px; }
      .coach-language-panel .coach-fieldset { gap: 8px; }
      .actions.coach-settings-actions { grid-template-columns: auto minmax(0, 1fr); gap: 8px; padding: 8px 16px 16px; }
      .actions.coach-settings-actions button { width: 100%; min-height: 42px; padding: 0 8px; font-size: 12px; }
      .billing-plan-deck { grid-template-columns: minmax(0, 1fr); gap: 12px; }
      .billing-currency-row { margin: 0 auto 20px; }
      .billing-period-row { margin-top: 20px; }
      .billing-period-switch, .billing-currency-switch { width: 100%; min-width: 0; }
      .billing-plan-card { min-height: 0; padding: 18px; gap: 14px; }
      .billing-plan-name h2 { font-size: 27px; }
      .billing-plan-primary-price strong { font-size: 32px; }
      .account-detail-row { min-height: 36px; padding: 8px 9px; }
      .account-preference-row { grid-template-columns: minmax(0, 1fr) auto; min-height: 38px; padding: 7px 8px; }
      .account-preference-switch { width: 164px; min-width: 164px; }
      .account-preference-switch button { height: 26px; padding: 0 6px; font-size: 11px; }
      .account-actions .button, .account-actions button { width: 100%; min-height: 36px; }
      .account-actions form { width: 100%; }
      .account-subscription-actions .button, .account-subscription-actions button { min-width: 0; }
      .account-trial-form { width: 100%; justify-content: center; }
      .account-trial-note { width: 100%; text-align: center; }
      .account-danger-zone { min-height: 0; gap: 12px; padding: 14px; }
      .account-danger-zone button { width: 100%; min-height: 36px; }
      .plan-unavailable.has-action { grid-template-columns: minmax(0, 1fr); gap: 11px; align-items: stretch; padding: 14px; }
      .plan-unavailable-copy { gap: 6px; }
      .plan-unavailable-action { justify-self: stretch; width: 100%; white-space: normal; }
      .daily-insights { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
      .daily-insights .insight-header, .daily-insights .insight-loading, .daily-insights .insight-score-row, .daily-insights .insight-metrics, .daily-insights .insight-coach-comment { grid-column: 1 / -1; }
      .daily-insights .insight-plan-update, .daily-insights .insight-plan-message { grid-column: 1; grid-row: 6; margin-right: 0; padding-right: 10px; }
      .daily-insights .insight-actions { grid-column: 2; grid-row: 6; }
      .profile-layout { display: block; }
      .profile-section-nav { display: none; }
      .profile-section-panels { display: grid; gap: 10px; }
      body.portal-page .profile-section {
        display: block;
        min-height: 0;
        margin-bottom: 0;
        padding: 0;
        overflow: hidden;
        border: 1px solid #dfe4dc;
        border-radius: 8px;
        background: white;
        box-shadow: none;
        scroll-margin-top: 92px;
      }
      body.portal-page .profile-section.is-active, body.portal-page .profile-section.is-collapsed-selected {
        border-width: 1px;
        border-color: transparent;
        box-shadow: none;
        background: #fbfcfb;
      }
      body.portal-page .profile-section.is-active::after, body.portal-page .profile-section.is-collapsed-selected::after {
        content: "";
        position: absolute;
        z-index: 2;
        inset: 0;
        border: 1px solid #316d8f;
        border-radius: inherit;
        pointer-events: none;
      }
      .profile-minimum-section { box-shadow: none; }
      .profile-section-header { display: none; }
      .profile-section-accordion { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; width: 100%; min-height: 58px; padding: 13px 14px; border: 0; border-radius: 0; background: white; color: #203028; text-align: left; }
      .profile-section-accordion-title { display: grid; gap: 4px; min-width: 0; }
      .profile-section-accordion-heading { display: flex; align-items: baseline; gap: 5px; min-width: 0; flex-wrap: wrap; }
      .profile-section-accordion-title strong { font-size: 16px; line-height: 1.2; }
      .profile-section-accordion-title small { color: #69766e; font-size: 12px; font-weight: 700; line-height: 1.35; }
      .profile-section-accordion-icon { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border: 1px solid #d9e2db; border-radius: 7px; color: #286a57; font-size: 18px; font-weight: 900; line-height: 1; }
      .profile-section-accordion-icon::before {
        content: "";
        width: 7px;
        height: 7px;
        margin-top: -4px;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        transform: rotate(45deg);
        transition: transform 180ms ease, margin 180ms ease;
      }
      .profile-section-tags { justify-content: flex-start; gap: 5px; }
      .profile-section-accordion .section-badge { padding: 5px 8px; font-size: 12px; }
      .profile-section-body { display: none; padding: 15px 14px 16px; }
      .profile-section.is-active .profile-section-body { display: block; }
      .profile-section.is-active .profile-section-accordion-icon::before { content: ""; margin-top: 4px; transform: rotate(225deg); }
      .profile-section:not(.is-active) .profile-section-accordion-icon::before { content: ""; margin-top: -4px; transform: rotate(45deg); }
      .profile-fields { grid-template-columns: 1fr; gap: 12px; }
      .athlete-records-page { gap: 11px; padding: 14px 12px; scroll-margin-top: 92px; }
      .athlete-records-page-title-row { gap: 8px; }
      .profile-records { gap: 9px; }
      .profile-record-sport-summary { padding: 10px 11px; }
      .profile-record-sport h3 { font-size: 13px; }
      .profile-record-table { min-width: 0; table-layout: auto; }
      .profile-record-table thead { display: none; }
      .profile-record-table tbody, .profile-record-table tr, .profile-record-table th, .profile-record-table td { display: block; width: auto; }
      .profile-record-table tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 10px 11px; border-bottom: 1px solid #e7ede8; }
      .profile-record-table tbody tr:last-child { border-bottom: 0; }
      .profile-record-table tbody th { grid-column: 1 / -1; padding: 0 0 8px; border: 0; font-size: 13px; }
      .profile-record-table td { min-width: 0; padding: 0 9px 0 0; border: 0; }
      .profile-record-table td + td { padding: 0 0 0 9px; border-left: 1px solid #e1e9e2; }
      .profile-record-table td::before { content: attr(data-label); display: block; margin-bottom: 5px; color: #77837b; font-size: 9px; font-weight: 900; letter-spacing: .035em; text-transform: uppercase; }
      .profile-record-value { grid-template-columns: minmax(0, 1fr) auto; gap: 2px 6px; }
      .profile-record-value strong, .profile-record-value time, .profile-record-value a, .profile-record-value > span { grid-column: 1; min-width: 0; }
      .profile-record-value .personal-record-exclusion-button { grid-column: 2; grid-row: 1 / span 3; }
      .profile-record-value .profile-record-action-stack { grid-column: 2; grid-row: 1 / span 3; }
      .profile-record-value .profile-record-action-stack .personal-record-exclusion-button { grid-column: auto; grid-row: auto; }
      .profile-record-value a, .profile-record-value > span { white-space: normal; overflow-wrap: anywhere; }
      .profile-record-exclusions > summary { padding: 10px 11px; }
      .profile-record-exclusions > ul { padding: 0 11px; }
      .profile-record-excluded-item { gap: 8px; }
      .profile-section + .profile-section { margin-top: 0; }
      .profile-field { min-height: 0; margin-top: 0; padding: 14px; }
      .profile-field:first-child { margin-top: 0; }
      .profile-zone-settings { gap: 12px; }
      .profile-zone-garmin-toggle { min-height: 42px; padding: 6px 0; font-size: 13px; }
      .profile-zone-sports { gap: 18px; }
      .profile-zone-sport { gap: 18px; padding: 0; }
      .profile-zone-sport + .profile-zone-sport { padding-top: 0; border-top: 0; }
      .profile-zone-sport[data-profile-zone-sport="cycling"].has-cycling-power-zones,
      .profile-zone-sport[data-profile-zone-sport="running"] { grid-template-columns: minmax(0, 1fr); }
      .profile-zone-group { padding: 14px; }
      .profile-zone-inputs { gap: 9px; }
      .actions.profile-zone-group-save { display: flex; align-items: center; margin-top: 10px; }
      .profile-zone-group-save button { width: 100%; min-height: 38px; }
      [data-profile-section-panel="heart-rate-power-zones"] > .profile-section-body > .profile-section-save { display: none; }
      .profile-zone-row { gap: 7px; }
      .profile-zone-input input { height: 34px; }
      .profile-zone-maximum output { height: 34px; }
      .profile-slider-anchors { display: block; min-height: 38px; overflow: visible; }
      .profile-slider-anchor,
      .profile-slider-anchor:first-child,
      .profile-slider-anchor:nth-child(2),
      .profile-slider-anchor:last-child { position: absolute; left: var(--slider-anchor-mobile-position); width: var(--slider-anchor-mobile-width); text-align: var(--slider-anchor-mobile-align); transform: var(--slider-anchor-mobile-transform); }
      .profile-slider-anchor small { display: block; font-size: 9px; line-height: 1.08; overflow-wrap: normal; }
      .profile-field h3, .profile-zone-group legend { font-size: 14px; line-height: 1.25; }
      .profile-field input, .profile-field textarea, .profile-field select { font-size: 14px; }
      .profile-description { min-height: 0; margin: 7px 0 10px; font-size: 13px; line-height: 1.45; }
      .profile-examples { margin-bottom: 10px; font-size: 13px; line-height: 1.4; }
      .profile-example { padding: 5px 8px; font-size: 12px; }
      .goal-examples [data-fill-goal-example],
      .goal-examples [data-fill-event-example] { padding: 5px 8px; font-size: 12px; }
      .profile-field textarea { min-height: 86px; line-height: 1.35; }
      .profile-section-save { margin-top: 9px; }
      .profile-section-save button { width: 100%; min-height: 38px; }
      .profile-save-message { width: 100%; margin: 0 0 6px; }
      .guide-panel.has-intro-dismiss { padding-right: 54px; }
      .wizard-header, .wizard-next { flex-direction: column; align-items: stretch; }
      .onboarding-wizard .wizard-header > div:first-child { box-sizing: border-box; width: 100%; padding-right: 72px; }
      .wizard-progress { width: auto; }
      .wizard-steps { display: grid; gap: 8px; }
      .wizard-step, .wizard-step.is-active { flex: none; }
      .wizard-next .wizard-next-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: 8px; }
      .wizard-next .button, .wizard-next button { width: 100%; box-sizing: border-box; text-align: center; }
      .summary-panel .summary-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; align-items: stretch; }
      .summary-panel .summary-item { box-sizing: border-box; display: flex; flex-direction: column; align-items: flex-start; gap: 7px; height: 100%; min-height: 0; padding: 9px; overflow: hidden; border: 1px solid #d8e3d9; border-radius: 8px; background: rgba(255,255,255,.84); box-shadow: inset 0 1px 0 rgba(255,255,255,.75); }
      .summary-panel .summary-item:last-child { border-bottom: 1px solid #d8e3d9; padding-bottom: 9px; }
      .summary-panel .summary-item > span:first-child { display: block; width: 100%; min-width: 0; min-height: 0; }
      .summary-panel .summary-item-title { align-items: center; line-height: 1.15; }
      .summary-panel .summary-item-note { font-size: 11px; line-height: 1.3; }
      .summary-panel .summary-pill { position: static; align-self: flex-start; justify-self: start; margin-top: auto; }
      .insight-header { display: block; padding-right: 146px; }
      .insight-actions { align-items: flex-start; flex-direction: row; }
      .insight-cache-label { max-width: calc(100vw - 102px); white-space: nowrap; font-size: 11px; line-height: 1.18; }
      .onboarding-wizard:has(.wizard-progress) .insight-cache-label { right: 56px; }
      .onboarding-wizard.has-no-widget-hide-control:has(.wizard-progress) .insight-cache-label { right: 18px; }
      .insight-cache-desktop { display: none; }
      .insight-cache-mobile { display: inline; }
      .dashboard-widget .insight-eyebrow, .dashboard-widget .widget-eyebrow, .dashboard-widget .wizard-eyebrow { font-size: 11px; line-height: 1.2; }
      .dashboard-widget .insight-heading h2, .dashboard-widget .widget-heading h2, .dashboard-widget .wizard-header h2 { font-size: 22px; line-height: 1.15; }
      html[lang="pl"] .daily-insights .insight-header { padding-right: 34px; }
      html[lang="pl"] .daily-insights .insight-header h2 { white-space: nowrap; }
      .insight-score-row { grid-template-columns: 1fr 1fr; gap: 7px; }
      .insight-score { min-height: 54px; padding: 7px 9px; }
      .insight-score span { font-size: 9px; line-height: 1.12; }
      .insight-score strong { font-size: 15px; }
      .insight-score:first-child strong { font-size: 24px; }
      .insight-score em { font-size: 11px; }
      .insight-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
      .insight-metric { min-height: 102px; gap: 6px; padding: 8px; }
      .insight-metric-body { order: 1; }
      .insight-metric-stress { order: 2; }
      .insight-metric-sleep { order: 3; min-height: 82px; }
      .insight-metric-hr { order: 4; min-height: 82px; }
      .insight-metric-label { font-size: 9px; line-height: 1.1; }
      .insight-metric strong { font-size: 19px; }
      .insight-metric small { font-size: 10px; }
      .insight-ring { width: 58px; }
      .insight-ring strong { font-size: 18px; }
      .insight-ring em { font-size: 9px; }
      .insight-hr-track { height: 10px; }
      .insight-coach-comment { padding: 7px 9px; }
      .insight-plan-update-compact { align-items: center; flex-direction: row; }
      .insight-plan-update-compact span { display: none; }
      .insight-actions .button, .insight-actions button { width: auto; box-sizing: border-box; text-align: center; }
      .race-readiness-body { grid-template-columns: 1fr; gap: 12px; }
      .race-readiness-top { grid-template-columns: auto minmax(0, 1fr); }
      .race-gauge { width: 88px; }
      .race-gauge strong { font-size: 21px; }
      .race-gauge span { max-width: 64px; font-size: 9px; }
      .race-event h3 { font-size: 16px; }
      .race-prep-copy { display: grid; gap: 1px; }
      .race-prep-copy em::before { content: ""; }
      .race-prep-label strong { align-self: flex-end; line-height: 1.28; }
      .recent-activity-top { position: relative; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 5px; padding: 9px; }
      .recent-activity-title h3 { padding-right: 82px; }
      .recent-activity-title-tags { width: 100%; margin-top: 5px; }
      .recent-activity-date { position: absolute; top: 9px; right: 18px; justify-self: end; align-self: start; min-width: 0; padding: 0; }
      .recent-activity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .recent-activity-metric { min-height: 74px; }
      .nutrition-weight { grid-template-columns: 1fr; }
      .nutrition-weight .insight-header, .nutrition-weight .insight-loading, .nutrition-weight .insight-coach-comment, .nutrition-weight .nutrition-actions, .nutrition-review { grid-column: auto; }
      .nutrition-score-card, .nutrition-goal-note, .nutrition-detail-grid, .nutrition-macro-panel, .nutrition-review { grid-column: auto; grid-row: auto; }
      .nutrition-score-card { grid-template-columns: auto minmax(0, 1fr); align-items: center; }
      .nutrition-score-gauge { width: 92px; }
      .nutrition-score-gauge strong { font-size: 22px; }
      .nutrition-score-gauge span { max-width: 66px; font-size: 9px; }
      .nutrition-detail-grid { grid-template-columns: 1fr; }
      .nutrition-metric { min-height: 74px; }
      .nutrition-review summary { grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding: 8px 9px 8px 10px; }
      .nutrition-review-toggle { min-width: 62px; }
      .nutrition-review form { padding-top: 8px; }
      .nutrition-review-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .nutrition-review-row { min-height: 110px; }
      .nutrition-status-options { grid-template-columns: 1fr 1fr; }
      .nutrition-eta-break { display: none; }
      .header-top { align-items: flex-start; flex-direction: column; }
      .header-brand-row { justify-content: space-between; width: 100%; min-height: 44px; gap: 8px; }
      .header-brand-link { gap: 7px; flex: 0 0 auto; }
      .header-brand-link h1 { display: none; }
      .header-logo { width: 44px; height: 44px; flex-basis: 44px; border-radius: 10px; }
      header h1 { font-size: 22px; line-height: 1.05; }
      .desktop-language-switcher, .desktop-theme-switcher { display: none; }
      nav .mobile-theme-switcher { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); order: -11; width: 100%; height: 36px; margin: 0; align-self: stretch; box-sizing: border-box; }
      nav .mobile-theme-switcher form { width: 100%; }
      nav .mobile-theme-switcher button { width: 100%; height: 30px; text-align: center; }
      nav .mobile-language-switcher { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); order: -10; width: 100%; height: 36px; margin: 0; align-self: stretch; box-sizing: border-box; }
      nav .mobile-language-switcher form { width: 100%; }
      nav .mobile-language-switcher button { width: 100%; height: 30px; text-align: center; }
      nav .mobile-menu-language-separator { order: -9; }
      nav .admin-link { order: 0; }
      nav .mobile-portal-account-link { order: 10; }
      nav .mobile-utility-link { order: 20; }
      nav .mobile-menu-separator { order: 30; }
      nav .mobile-menu-actions { order: 40; }
      nav .mobile-menu-copyright { order: 50; }
      .portal-title-desktop-hidden { display: block; }
      .header-centered-title .mobile-page-title-desktop { position: static; transform: none; max-width: none; }
      .mobile-page-title { position: static; transform: none; display: block; flex: 1 1 auto; max-width: none; min-width: 0; overflow: hidden; font-size: 16px; letter-spacing: .025em; text-align: center; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
      .mobile-page-title-desktop { display: none; }
      .mobile-page-title-mobile { display: block; }
      body.use-full-mobile-page-title .mobile-page-title-desktop { display: block; }
      body.use-full-mobile-page-title .mobile-page-title-mobile:not(.mobile-page-language-selector) { display: none; }
      .mobile-page-language-selector { flex: 1 1 auto; display: flex; align-items: center; justify-content: flex-end; min-width: 0; max-width: 292px; gap: 8px; overflow: hidden; }
      .mobile-page-language-selector .mobile-theme-switcher { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); width: 136px; margin-left: auto; }
      .mobile-page-language-selector .mobile-theme-switcher form { width: 100%; }
      .mobile-page-language-selector .mobile-theme-switcher button { width: 100%; min-width: 0; padding: 0 5px; font-size: 11px; text-align: center; }
      .mobile-page-language-selector .mobile-language-switcher { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); width: 112px; margin-left: 0; }
      .mobile-page-language-selector .mobile-language-switcher form { width: 100%; }
      .mobile-page-language-selector .mobile-language-switcher button { width: 100%; font-size: 13px; text-align: center; }
      .desktop-header-actions { display: none; }
      .header-account { display: none; }
      .mobile-header-action { display: inline-flex; flex: 0 0 auto; }
      .mobile-header-coach:hover .mobile-header-coach-avatar, .mobile-header-coach:focus .mobile-header-coach-avatar { border-color: rgba(255,255,255,.9); box-shadow: 0 3px 10px rgba(0,0,0,.28); }
      .mobile-header-coach:focus-visible { outline: 2px solid rgba(255,255,255,.78); outline-offset: 2px; }
      .mobile-menu-toggle { box-sizing: border-box; display: inline-flex; flex: 0 0 44px; justify-content: center; width: 44px; min-width: 44px; height: 44px; min-height: 44px; padding: 0; }
      .mobile-menu-icon { width: 22px; height: 16px; }
      .mobile-menu-icon::before { top: 5px; width: 22px; }
      .site-footer { position: fixed; right: 0; bottom: 0; left: 0; z-index: 30; align-items: center; min-height: 40px; box-sizing: border-box; padding: 10px 18px calc(10px + env(safe-area-inset-bottom)); }
      .footer-links { width: 100%; justify-content: space-between; gap: 10px; }
      body.auth-page { background: #f6f7f4; }
      body.auth-page header { position: relative; min-height: calc(44px + env(safe-area-inset-top)); padding: calc(10px + env(safe-area-inset-top)) 0 0; background: transparent; }
      body.auth-page .header-top, body.auth-page .header-brand-row { justify-content: flex-end; width: 100%; }
      body.auth-page .header-brand-link, body.auth-page .desktop-language-switcher, body.auth-page .desktop-theme-switcher, body.auth-page .mobile-page-title-desktop { display: none; }
      body.auth-page .mobile-page-title { flex: 0 0 auto; margin-left: auto; }
      body.auth-page .mobile-page-language-selector { position: fixed; z-index: 90; top: calc(10px + env(safe-area-inset-top)); right: 28px; left: 28px; display: flex; width: auto; max-width: none; justify-content: space-between; margin: 0; gap: 8px; }
      body.auth-page .mobile-page-language-selector .mobile-theme-switcher { box-sizing: border-box; width: min(136px, calc((100vw - 64px) / 2)); height: 34px; margin-left: 0; padding: 3px; border-radius: 7px; }
      body.auth-page .mobile-page-language-selector .mobile-language-switcher { box-sizing: border-box; width: min(136px, calc((100vw - 64px) / 2)); height: 34px; padding: 3px; border-radius: 7px; }
      body.auth-page .mobile-page-language-selector .mobile-theme-switcher,
      body.auth-page .mobile-page-language-selector .mobile-language-switcher { border-color: #c7d5ca; background: rgba(255,255,255,.94); box-shadow: 0 1px 0 rgba(255,255,255,.85), 0 5px 14px rgba(31,39,34,.08); }
      body.auth-page .mobile-page-language-selector .mobile-theme-switcher button { min-width: 0; height: 26px; padding: 0 5px; border-radius: 5px; font-size: 11px; }
      body.auth-page .mobile-page-language-selector .mobile-language-switcher button { min-width: 52px; height: 26px; padding: 0; border-radius: 5px; font-size: 13px; }
      body.auth-page .mobile-page-language-selector .mobile-theme-switcher button,
      body.auth-page .mobile-page-language-selector .mobile-language-switcher button { color: #4f5d55; }
      body.auth-page .mobile-page-language-selector .mobile-theme-switcher button.is-active,
      body.auth-page .mobile-page-language-selector .mobile-language-switcher button.is-active { background: #286a57; color: #ffffff; }
      body.auth-page main { padding-bottom: max(18px, env(safe-area-inset-bottom)); }
      body.auth-page .site-footer { display: none; }
      body.auth-page .main-inner { max-width: 430px; padding: 0 28px 24px; }
      body.auth-page .message { position: fixed; z-index: 59; top: calc(58px + env(safe-area-inset-top)); right: 28px; left: 28px; box-sizing: border-box; max-width: 420px; margin: 0 auto; border-radius: 8px; background: rgba(40,106,87,.1); color: #203028; font-size: 13px; line-height: 1.35; }
      body.auth-page .message.message-warning { background: rgba(255,248,237,.96); color: #7a4b00; }
      body.auth-page .message + .auth-layout { padding-top: 0; }
      body.auth-page .auth-layout { align-items: center; min-height: calc(100svh - 66px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); padding: 0; }
      body.auth-page .message + .auth-login-layout-native { align-items: flex-start; min-height: auto; padding-top: clamp(72px, 10svh, 96px); }
      body.android-mobile.auth-page main { flex: 0 0 auto; min-height: 0; overflow: hidden; padding-bottom: 0; }
      body.android-mobile.auth-page .main-inner { padding-bottom: 0; }
      body.android-mobile.auth-page .auth-login-layout-native { align-items: flex-start; min-height: 0; padding-top: clamp(92px, 12svh, 118px); padding-bottom: 0; }
      body.android-facebook-browser.auth-page main { flex: 1 1 auto; overflow-y: auto; -webkit-overflow-scrolling: touch; }
      body.android-facebook-browser.auth-page.keyboard-workaround-active .auth-login-layout-browser { align-items: flex-start; min-height: auto; padding-top: clamp(18px, 4svh, 34px); padding-bottom: max(calc(var(--keyboard-space, 0px) + 24px), 260px); }
      body.ios-mobile.auth-page .mobile-page-language-selector::before { content: ""; position: fixed; z-index: -1; top: 0; right: 0; left: 0; height: calc(56px + env(safe-area-inset-top)); background: #f6f7f4; pointer-events: none; }
      body.ios-mobile.auth-page .message { position: relative; z-index: 1; top: auto; right: auto; left: auto; margin: 10px auto 0; }
      body.ios-mobile.auth-page .message + .auth-login-layout-browser { align-items: flex-start; min-height: auto; padding-top: clamp(26px, 5svh, 46px); }
      body.auth-page .auth-panel { padding: 0; border: 0; background: transparent; box-shadow: none; }
      body.auth-page .auth-brand { gap: 8px; margin-bottom: 20px; }
      body.auth-page .auth-brand-logo { width: 86px; height: 86px; border-radius: 14px; }
      body.auth-page .auth-brand h2 { color: #203028; font-size: 30px; line-height: 1.12; }
      body.auth-page .auth-brand-subtitle { max-width: 320px; color: #56645c; font-size: 16px; line-height: 1.35; }
      .auth-form { gap: 9px; }
      body.auth-page .auth-form { gap: 14px; }
      body.auth-page .auth-field { position: relative; }
      body.auth-page .auth-field label { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
      body.auth-page .auth-field input { box-sizing: border-box; width: 100%; height: 50px; padding-right: 14px; padding-left: 14px; border-radius: 8px; border-color: #d6e0d6; background: rgba(255,255,255,.94); color: #203028; font-size: 16px; }
      body.auth-page .auth-actions { margin-top: 5px; }
      body.auth-page .auth-actions button { min-height: 50px; border-radius: 8px; background: #c2e084; color: #102820; font-size: 16px; font-weight: 700; box-shadow: none; }
      body.auth-page .auth-links { gap: 2px; margin-top: 18px; font-size: 14px; }
      body.auth-page .auth-links p { display: flex; justify-content: center; min-height: 33px; }
      body.auth-page .auth-links a { display: inline-flex; align-items: center; justify-content: center; min-height: 33px; padding: 0 4px; color: #286a57; font-weight: 800; line-height: 1.2; text-decoration: none; }
      body.auth-page .auth-note { color: #56645c; font-size: 13px; line-height: 1.4; text-align: center; }
      body.android-mobile.auth-page .auth-brand h2,
      body.android-mobile.auth-page .auth-brand-subtitle,
      body.android-mobile.auth-page .auth-field input,
      body.android-mobile.auth-page .auth-actions button,
      body.android-mobile.auth-page .auth-links a,
      body.android-mobile.auth-page .language-switcher button,
      body.android-mobile.auth-page .theme-switcher button { font-stretch: 108%; letter-spacing: .012em; }
      body.android-mobile.auth-page .auth-brand-subtitle { font-size: 16.5px; }
      body.android-mobile.auth-page .auth-links { font-size: 14.5px; }
      body.android-mobile.auth-page .auth-field input { font-size: 15.5px; }
      nav { display: none; align-items: stretch; flex-direction: column; flex-wrap: nowrap; gap: 8px; margin-top: 14px; }
      nav.mobile-menu-open { display: flex; max-height: calc(100dvh - 111px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding-bottom: max(2px, env(safe-area-inset-bottom)); }
      nav.mobile-menu-open > * { flex-shrink: 0; }
      nav a, nav button { width: 100%; box-sizing: border-box; text-align: left; }
      nav form { width: 100%; }
      nav .desktop-primary-nav-link { display: none; }
      nav .desktop-logout-form { display: none; }
      nav .desktop-portal-account-link { display: none; }
      nav .admin-link, nav .portal-account-link { margin-left: 0; }
      nav .mobile-menu-separator, nav .mobile-menu-language-separator { display: block; width: 100%; height: 0; margin: 8px 0; border-top: 1px solid rgba(255,255,255,.35); }
      nav .mobile-portal-account-link { display: block; }
      nav .mobile-utility-link { display: block; }
      nav .mobile-menu-actions { display: block; }
      nav .mobile-menu-actions form { width: 100%; }
      nav .mobile-menu-actions button { width: 100%; }
      nav .mobile-menu-copyright { display: block; margin-top: 6px; padding: 12px 4px 2px; border-top: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,.58); font-size: 11px; line-height: 1.2; text-align: center; }
      body.portal-page:has(.mobile-bottom-navigation) main { padding-bottom: calc(58px + env(safe-area-inset-bottom)); }
      body.portal-page:has(.mobile-bottom-navigation) main:has(input:focus, textarea:focus, select:focus) { padding-bottom: calc(58px + 42vh + env(safe-area-inset-bottom)); }
      body.portal-page:has(.mobile-bottom-navigation) .site-footer {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 30;
        display: block;
        box-sizing: border-box;
        min-height: calc(48px + env(safe-area-inset-bottom));
        padding: 0;
        border-top: 1px solid rgba(255,255,255,.12);
        background: rgba(16,40,32,.97);
        box-shadow: 0 -10px 24px rgba(16,40,32,.18), 0 3px 0 rgba(16,40,32,.97);
      }
      body.portal-page:has(.mobile-bottom-navigation) .site-footer > .footer-links { display: none; }
      body.portal-page .site-footer nav.mobile-bottom-navigation {
        position: relative;
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        align-items: stretch;
        gap: 0;
        box-sizing: border-box;
        min-height: calc(48px + env(safe-area-inset-bottom));
        margin: 0;
        padding: 0 0 env(safe-area-inset-bottom);
        border: 0;
        background: transparent;
      }
      body.portal-page .site-footer nav.mobile-bottom-navigation a {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        flex-direction: column;
        gap: 0;
        width: auto;
        min-width: 0;
        min-height: 48px;
        box-sizing: border-box;
        margin: 0;
        padding: 12px 2px 2px;
        border: 0;
        border-radius: 0;
        background: transparent;
        color: rgba(255,255,255,.66);
        font-size: 10px;
        font-weight: 760;
        line-height: 1;
        text-align: center;
        text-decoration: none;
        -webkit-tap-highlight-color: transparent;
      }
      body.portal-page .site-footer nav.mobile-bottom-navigation a::before {
        content: "";
        position: absolute;
        top: 0;
        left: 50%;
        width: min(calc(100% - 20px), 60px);
        height: 3px;
        transform: translateX(-50%) scaleX(0);
        border-radius: 0 0 999px 999px;
        background: #c2e084;
        opacity: 0;
      }
      body.portal-page .site-footer nav.mobile-bottom-navigation a.is-active {
        background: transparent;
        color: #dff0ac;
        font-weight: 900;
      }
      body.portal-page .site-footer nav.mobile-bottom-navigation a.is-active::before {
        transform: translateX(-50%) scaleX(1);
        opacity: 1;
      }
      body.portal-page .site-footer nav.mobile-bottom-navigation a:hover,
      body.portal-page .site-footer nav.mobile-bottom-navigation a:focus {
        background: transparent;
        color: #ffffff;
        text-decoration: none;
      }
      body.portal-page .site-footer nav.mobile-bottom-navigation a:focus-visible {
        outline: 2px solid rgba(194,224,132,.86);
        outline-offset: -3px;
      }
      .mobile-bottom-navigation-icon-wrap { position: relative; display: block; width: 27px; height: 27px; flex: 0 0 27px; }
      .mobile-bottom-navigation-icon { display: block; width: 27px; height: 27px; }
      .mobile-bottom-navigation-badge { position: absolute; top: -9px; right: -12px; z-index: 2; }
      .today-training { gap: 12px; padding: 18px 14px 14px; background: linear-gradient(180deg, #ffffff 0%, #f6faf4 68%, #fff8ef 100%); }
      .today-training .insight-cache-label { top: 18px; }
      .today-training-header { display: block; padding-right: 40px; }
      .today-training.has-no-widget-hide-control .today-training-header { padding-right: 0; }
      .today-training .widget-heading h2 { font-size: 22px; }
      .training-window-frame { overflow: hidden; padding-top: 4px; }
      .training-window-grid { display: flex; gap: 5px; width: 100%; padding-top: 4px; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
      .training-window-grid::-webkit-scrollbar { display: none; }
      .training-window-day { flex: 0 0 calc((100% - 20px) / 5); grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 58px 26px; gap: 2px; min-height: 134px; padding: 8px 3px 7px; border-radius: 13px; scroll-snap-align: start; scroll-snap-stop: always; }
      .training-window-day:hover, .training-window-day:focus-visible { transform: translateY(-2px); }
      .training-window-day.is-today { transform: translateY(-3px); }
      .training-window-day.is-today:hover, .training-window-day.is-today:focus-visible { transform: translateY(-4px); }
      .training-window-weekday { font-size: 8px; letter-spacing: .035em; }
      .training-window-date { gap: 1px; }
      .training-window-date time { gap: 2px; }
      .training-window-date time strong { font-size: 19px; }
      .training-window-date time span { font-size: 7px; letter-spacing: 0; }
      .training-window-today-slot, .training-window-copy { display: none; }
      .training-window-icon-stage { width: 56px; height: 56px; }
      .training-window-icon-shell { width: 50px; height: 50px; border-radius: 16px; }
      .training-window-icon-shell .plan-activity-icon { width: 39px; height: 39px; }
      .training-window-more { top: -2px; left: -1px; min-width: 20px; height: 20px; padding: 0 4px; border-width: 1.5px; font-size: 8px; }
      .training-window-record { top: -5px; right: -2px; width: 27px; height: 30px; }
      .training-window-record .personal-record-rosette { width: 27px; height: 30px; }
      .training-window-record > span { margin-top: -4px; font-size: 7px; }
      .training-window-metrics { align-items: flex-start; min-height: 22px; }
      .training-window-metric { min-height: 19px; padding: 2px 5px; font-size: 8px; }
      .training-window-metric:nth-child(n + 2) { display: none; }
      .training-window-edge-hint { position: absolute; top: 6px; bottom: 1px; z-index: 4; display: block; width: 23px; opacity: 0; pointer-events: none; transition: opacity .18s ease; }
      .training-window-edge-hint::after { position: absolute; top: 50%; display: block; width: 8px; height: 8px; border-top: 2px solid rgba(40,106,87,.72); border-right: 2px solid rgba(40,106,87,.72); content: ''; filter: drop-shadow(0 1px 2px rgba(255,255,255,.82)); }
      .training-window-edge-hint.is-left { left: 0; background: linear-gradient(90deg, rgba(247,250,244,.92), rgba(247,250,244,0)); }
      .training-window-edge-hint.is-left::after { left: 3px; transform: translateY(-50%) rotate(-135deg); }
      .training-window-edge-hint.is-right { right: 0; background: linear-gradient(270deg, rgba(255,248,239,.92), rgba(255,248,239,0)); }
      .training-window-edge-hint.is-right::after { right: 3px; transform: translateY(-50%) rotate(45deg); }
      .training-window-frame.can-scroll-left .training-window-edge-hint.is-left,
      .training-window-frame.can-scroll-right .training-window-edge-hint.is-right { opacity: 1; }
      .goals-table, .events-table, .plan-table, .admin-table { display: block; background: transparent; }
      .goals-table thead, .events-table thead, .plan-table thead, .admin-table thead, .admin-table colgroup { display: none; }
      .goals-table tbody, .events-table tbody, .plan-table tbody, .admin-table tbody { display: block; }
      .new-record-control { margin: 0 0 12px; }
      .add-record-button {
        min-height: 38px;
        border-color: #b7c7ba;
        background: #f8faf7;
        color: #286a57;
        box-shadow: none;
      }
      .add-record-button:active { background: #edf5ef; }
      .goals-table tr, .events-table tr, .plan-table tr, .admin-table tbody tr {
        display: block;
        overflow: hidden;
        margin-bottom: 12px;
        border: 1px solid #dfe4dc;
        border-radius: 8px;
        background: white;
      }
      .goals-table td, .events-table td, .plan-table td, .admin-table td {
        display: block;
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
        border-left: 0;
        border-right: 0;
        border-top: 0;
        border-radius: 0;
        border-bottom: 1px solid #e4e9e2;
        padding: 10px 12px;
      }
      .goals-table td:first-child, .events-table td:first-child, .plan-table td:first-child, .admin-table td:first-child {
        border-left: 0;
        border-top-left-radius: 8px;
        border-top-right-radius: 8px;
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;
      }
      .goals-table td:last-child, .events-table td:last-child, .plan-table td:last-child, .admin-table td:last-child {
        border-right: 0;
        border-top-left-radius: 0;
        border-top-right-radius: 0;
        border-bottom-left-radius: 8px;
        border-bottom-right-radius: 8px;
      }
      .goals-table td:last-child, .events-table td:last-child, .plan-table td:last-child, .admin-table td:last-child { border-bottom: 0; }
      .goals-table td::before, .events-table td::before, .plan-table td::before, .admin-table td::before {
        display: block;
        margin-bottom: 5px;
        color: #56645c;
        font-size: 12px;
        font-weight: 700;
      }
      .context-row-past td::before {
        opacity: .62;
      }
      .goals-table input, .goals-table textarea, .goals-table select,
      .events-table input, .events-table textarea, .events-table select,
      .admin-table input, .admin-table textarea, .admin-table select {
        min-width: 0;
        min-inline-size: 0;
        width: 100%;
        inline-size: 100%;
        max-width: 100%;
      }
      .goals-table input[type="date"], .events-table input[type="date"] {
        height: var(--control-height);
        padding-left: 6px;
        padding-right: 4px;
        font-size: 12px;
      }
      .row-actions { width: auto; }
      .goals-table .row-actions { padding-top: 10px; vertical-align: middle; }
      .icon-button { width: 32px; min-width: 32px; padding: 0; font-size: 16px; }
      .delete-button-label { display: none; }
      .delete-button-icon { display: inline; }
      .goals-table .short-name, .goals-table .description,
      .events-table .event-name, .events-table .description, .events-table .goal-description,
      .events-table .number { min-width: 0; }
      .goals-table .priority, .events-table .priority { width: 100%; min-width: 0; }
      .goals-table td::before { display: none; content: none; }
      .goals-table tr {
        display: grid;
        grid-template-columns: minmax(0, 70px) minmax(0, 1fr) minmax(0, 86px);
      }
      .goals-table td:nth-child(1), .goals-table td:nth-child(2) { grid-column: 1 / -1; }
      .goals-table td:nth-child(3) { border-bottom: 1px solid #e4e9e2; }
      .goals-table td:nth-child(4) { border-left: 1px solid #e4e9e2; }
      .goals-table td:nth-child(5) { display: flex; align-items: flex-start; justify-content: center; border-left: 1px solid #e4e9e2; border-bottom: 1px solid #e4e9e2; }
      .goals-table .row-actions .icon-button { width: auto; min-width: 74px; margin-top: 17px; padding: 0 11px; font-size: 12px; }
      .goals-table .row-actions .delete-button-label { display: inline; }
      .goals-table .row-actions .delete-button-icon { display: none; }
      .draft-actions-inline { justify-content: stretch; }
      .draft-actions-inline button { flex: 1 1 0; }
      .events-table td:nth-child(1)::before { content: "Dates"; }
      .events-table td:nth-child(2)::before { content: "Event"; }
      .events-table td:nth-child(3)::before { content: "Course"; }
      .events-table td:nth-child(4)::before { content: "Outcome"; }
      html[lang="pl"] .events-table td:nth-child(1)::before { content: "Daty"; }
      html[lang="pl"] .events-table td:nth-child(2)::before { content: "Wydarzenie"; }
      html[lang="pl"] .events-table td:nth-child(3)::before { content: "Trasa"; }
      html[lang="pl"] .events-table td:nth-child(4)::before { content: "Cel"; }
      .events-table td::before { display: none; }
      .events-table td:nth-child(1) .stacked-field {
        grid-template-columns: 1fr 1fr;
      }
      .events-table .course-cell .stacked-field {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 56px;
        align-items: end;
      }
      .events-table .race-checkbox-label {
        display: grid;
        gap: 5px;
        align-self: end;
        justify-items: center;
        padding-bottom: 8px;
        text-align: center;
      }
      .events-table .race-checkbox-text {
        display: block;
        min-width: 0;
        max-width: 100%;
        overflow-wrap: anywhere;
        line-height: 14px;
        order: -1;
      }
      .events-table .course-cell, .events-table .event-cell, .events-table .goal-cell { width: 100%; }
      .events-table .goal-cell > .stacked-field {
        grid-template-columns: minmax(0, 1fr) 86px;
        align-items: stretch;
      }
      .events-table .goal-cell > .stacked-field > .inline-label {
        order: 1;
        line-height: 14px;
        min-width: 0;
      }
      .events-table .goal-cell > .stacked-field > .events-meta-row {
        order: 2;
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
        align-content: start;
        gap: 8px;
        min-width: 0;
      }
      .events-table .goal-cell .events-meta-row > .inline-label {
        line-height: 14px;
        justify-self: center;
        width: 74px;
      }
      .events-table .goal-cell .priority { width: 74px; min-width: 74px; }
      .events-table .goal-cell .goal-description {
        height: 76px;
        min-height: 0;
      }
      .events-table .goal-cell .events-action-label {
        padding-top: 0;
        justify-items: center;
      }
      .events-table .new-event-row .goal-cell .goal-description { height: 116px; }
      .events-table .new-event-row .goal-cell .draft-actions-inline {
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        width: 74px;
      }
      .events-table .new-event-row .goal-cell .draft-actions-inline button {
        flex: 0 0 auto;
        width: 100%;
        min-width: 0;
      }
      .events-table .goal-cell .events-action-label .icon-button { width: auto; min-width: 74px; padding: 0 11px; font-size: 12px; }
      .events-table .goal-cell .events-action-label .delete-button-label { display: inline; }
      .events-table .goal-cell .events-action-label .delete-button-icon { display: none; }
      .events-table tbody tr + tr td { border-top: 0; }
      .events-table td { padding-top: 10px; padding-bottom: 10px; }
      .goals-list, .events-list { gap: 7px; }
      .goal-card[open],
      .event-card[open] {
        border-width: 1px;
        border-color: #316d8f;
        box-shadow: inset 0 0 0 2px #316d8f;
        background: #fbfcfb;
      }
      .goal-card[open] {
        border-color: #7fac8a;
        box-shadow: inset 0 0 0 2px rgba(40,106,87,.22);
      }
      .goal-card.is-collapsed-selected,
      .event-card.is-collapsed-selected {
        border-width: 2px;
        border-color: #316d8f;
        box-shadow: inset 0 0 0 2px #316d8f;
        background: #fbfcfb;
      }
      .goal-card[open].is-collapsed-selected,
      .event-card[open].is-collapsed-selected {
        border-width: 1px;
      }
      .goal-summary,
      .event-summary {
        position: relative;
        gap: 10px;
        padding: 12px;
      }
      .goal-summary,
      .event-summary { grid-template-columns: 52px minmax(0, 1fr); }
      .goal-summary-toggle-icon,
      .event-summary-toggle-icon {
        position: absolute;
        top: 12px;
        right: 12px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 28px;
        height: 28px;
        border: 1px solid #d9e2db;
        border-radius: 7px;
        color: #286a57;
        font-size: 18px;
        font-weight: 900;
        line-height: 1;
      }
      .goal-date-tile,
      .event-date-tile { align-self: start; width: 48px; height: 55px; }
      .goal-date-tile strong,
      .event-date-tile strong { font-size: 20px; }
      .goal-title-line,
      .event-title-line { display: block; min-height: 0; margin-bottom: 5px; }
      .goal-title-first-row,
      .event-title-first-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto 35px;
        column-gap: 5px;
        align-items: center;
        min-height: 28px;
      }
      .goal-title-first-row::after,
      .event-title-first-row::after {
        content: "";
        grid-column: 3;
        grid-row: 1;
        width: 35px;
        height: 28px;
      }
      .goal-title-badge-row,
      .event-title-badge-row {
        display: flex;
        flex-wrap: wrap;
        gap: 5px;
        align-items: center;
        min-width: 0;
        margin-top: 5px;
      }
      .goal-title-primary,
      .event-title-primary { grid-column: 1; grid-row: 1; width: 100%; max-width: 100%; min-width: 0; min-height: 28px; gap: 5px; }
      .goal-title-line strong,
      .event-title-line strong { flex: 1 1 auto; font-size: 14px; }
      .event-title-icon { width: 18px; height: 18px; font-size: 12px; }
      .goal-title-line strong,
      .event-title-line strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
      .goal-title-line .goal-badge-priority,
      .event-title-line .event-badge-priority {
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
        margin-left: 0;
      }
      .goal-title-line .goal-badge-year,
      .event-title-line .event-badge-year { order: 0; }
      .goal-title-badge-row .goal-badge:not(.goal-badge-year),
      .event-title-badge-row .event-badge:not(.event-badge-year) { order: 1; }
      .goal-meta-line,
      .event-meta-line { gap: 5px; font-size: 12px; }
      .goal-meta-line span:not(:last-child)::after,
      .event-meta-line span:not(:last-child)::after { margin-left: 5px; }
      .goal-summary-note,
      .event-summary-note {
        grid-column: 1 / -1;
        justify-items: start;
        text-align: left;
        white-space: normal;
      }
      .goal-summary-note span,
      .event-summary-note span {
        max-width: none;
        white-space: normal;
      }
      .goal-summary .goal-summary-note {
        display: none;
      }
      .event-summary .event-meta-line,
      .event-summary .event-summary-note {
        display: none;
      }
      .goal-editor,
      .event-editor { padding: 12px; gap: 10px; }
      .goal-editor-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-areas:
          "name name"
          "sport sport"
          "priority target"
          "description description";
        gap: 8px;
      }
      .goal-editor-grid .goal-field-name { grid-area: name; }
      .goal-editor-grid .goal-field-sport { grid-area: sport; }
      .goal-editor-grid .goal-field-sport,
      .goal-editor-grid .goal-field-sport .goal-sport-select { width: 100%; min-width: 0; }
      .goal-editor-grid .goal-field-priority { grid-area: priority; }
      .goal-editor-grid .goal-field-date { grid-area: target; }
      .goal-editor-grid .goal-field-description { grid-area: description; }
      .goal-field-description textarea { min-height: 92px; }
      .event-editor-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-areas:
          "name name"
          "start end"
          "elevation distance"
          "priority race"
          "sport sport"
          "description description"
          "goal goal";
        gap: 8px;
      }
      .event-editor-grid .event-field-name { grid-area: name; }
      .event-editor-grid .event-field-start { grid-area: start; }
      .event-editor-grid .event-field-end { grid-area: end; }
      .event-editor-grid .event-field-elevation { grid-area: elevation; }
      .event-editor-grid .event-field-distance { grid-area: distance; }
      .event-editor-grid .event-field-race { grid-area: race; }
      .event-editor-grid .event-field-sport { grid-area: sport; }
      .event-editor-grid .event-field-priority { grid-area: priority; }
      .event-editor-grid .event-field-description { grid-area: description; }
      .event-editor-grid .event-field-goal { grid-area: goal; }
      .event-field-race { justify-self: start; justify-content: flex-start; width: auto; gap: 4px; padding-bottom: 7px; white-space: nowrap; }
      .event-editor-grid .race-toggle { width: auto; min-width: 0; }
      .goal-editor-actions,
      .event-editor-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; justify-content: stretch; }
      body:is(.ios-mobile,.android-mobile) .goal-editor-actions,
      body:is(.ios-mobile,.android-mobile) .event-editor-actions { grid-template-columns: 40px minmax(0, 1fr) minmax(0, 1fr); }
      .goal-editor-actions button,
      .event-editor-actions button { width: 100%; min-width: 0; }
      .goal-editor-actions > button,
      .event-editor-actions > button { display: inline-flex; align-items: center; justify-content: center; height: 32px; padding: 0 11px; border-radius: 6px; font-size: 12px; font-weight: 800; line-height: 1; }
      body:is(.ios-mobile,.android-mobile) .goal-editor-actions .delete-button-label,
      body:is(.ios-mobile,.android-mobile) .event-editor-actions .delete-button-label { display: none; }
      body:is(.ios-mobile,.android-mobile) .goal-editor-actions .record-delete-button-icon,
      body:is(.ios-mobile,.android-mobile) .event-editor-actions .record-delete-button-icon { display: inline-flex; }
      body:is(.ios-mobile,.android-mobile) .goal-editor-actions .record-delete-button,
      body:is(.ios-mobile,.android-mobile) .event-editor-actions .record-delete-button { padding-right: 0; padding-left: 0; }
      .goal-editor-actions .delete-button-icon,
      .event-editor-actions .delete-button-icon { display: none; }
      .new-goal-card .goal-editor-actions,
      .new-event-card .event-editor-actions { display: block; }
      .new-goal-card .draft-actions-inline,
      .new-event-card .draft-actions-inline { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; width: 100%; }
      .new-goal-card .draft-action-button,
      .new-event-card .draft-action-button { width: 100%; min-width: 0; }
      .mobile-plan-date-break { display: block; }
      .plan-table #current-day { scroll-margin-top: 96px; }
      .plan-table .date-cell, .plan-table .session-cell, .plan-table .load-cell, .plan-table .details-cell, .plan-table .status-cell {
        width: 100%;
        min-width: 0;
      }
      .plan-table .date-cell > .stacked-field {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        align-items: start;
      }
      .plan-table .date-cell > .stacked-field > div:nth-child(2) strong {
        display: block;
      }
      .plan-table td::before { display: none; content: none; }
      .main-inner:has(.plan-page) { max-width: 430px; padding: var(--mobile-top-level-section-gap, 10px) 10px 14px; }
      .plan-page { gap: 10px; }
      .plan-unavailable, .plan-guidance { margin-top: 0; margin-bottom: 0; }
      #current-day, #today, .plan-day-anchor { scroll-margin-top: 96px; }
      .plan-update-card { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 10px; }
      .plan-comments-toggle { display: none; }
      .plan-update-card .plan-update-footer { grid-column: 1; }
      .plan-update-card.is-collapsed.has-blocking-notice .plan-update-footer { display: none; }
      .plan-update-card.is-collapsed .plan-update-footer { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: nowrap; }
      .plan-update-card.is-collapsed .plan-guidance-meta { display: flex; justify-content: flex-end; flex: 0 1 auto; min-width: 0; }
      .plan-update-card.is-collapsed .plan-actions { display: flex; justify-content: flex-end; flex: 0 0 auto; gap: 6px; flex-wrap: nowrap; }
      .plan-update-card.is-collapsed .plan-actions { width: 100%; }
      .plan-update-card.is-collapsed .plan-actions button { flex: 1 1 auto; width: auto; min-width: 0; min-height: 40px; padding: 0 8px; }
      .plan-update-card .plan-actions .plan-review-action-desktop { display: none; }
      .plan-update-card .plan-actions .plan-review-action-mobile { display: none; }
      .plan-review-action-label-mobile { display: inline; }
      .plan-review-action-label-desktop { display: none; }
      .plan-usage-counter-desktop,
      .plan-review-usage-counter-desktop { display: none; }
      .plan-usage-counter-mobile,
      .plan-review-usage-counter-mobile { display: inline; }
      .plan-usage-counter-mobile { max-width: 84px; white-space: normal; overflow-wrap: normal; line-height: 1.15; font-size: 12px; text-align: right; }
      .plan-review-usage-counter-mobile { flex: 0 0 auto; max-width: none; white-space: nowrap; overflow-wrap: normal; line-height: 1.15; font-size: 12px; text-align: right; }
      .plan-review-cancel { padding: 0 8px; font-size: 14px; }
      .plan-review-submit,
      .plan-review-send { padding: 0 8px; font-size: 14px; }
      .plan-review-action-stack .plan-review-usage-counter { white-space: normal; }
      .plan-review-dialog { inset: 0; height: fit-content; margin: auto; }
      .plan-review-card { max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
      .plan-review-menu-toggle,
      .plan-review-close { flex: 0 0 44px; width: 44px; min-width: 44px; height: 44px; min-height: 44px; }
      .plan-review-menu { box-sizing: border-box; width: min(230px, calc(100vw - 28px)); min-width: 0; padding: 6px; }
      .plan-review-menu :is(a, button) { min-height: 44px; padding: 8px 11px; font-size: 15px; }
      .plan-review-menu .detail-action-icon { flex-basis: 20px; width: 20px; height: 20px; }
      .plan-chat-history { max-height: min(51dvh, 320px); overflow-x: hidden; overflow-y: scroll; touch-action: pan-y; }
      .plan-chat-conversation-divider { grid-template-columns: minmax(8px, 1fr) minmax(0, auto) minmax(8px, 1fr); min-width: 0; }
      .plan-chat-conversation-divider strong { min-width: 0; white-space: normal; overflow-wrap: anywhere; text-align: center; }
      .plan-update-card.is-progressing { display: grid; }
      .plan-update-card.is-progressing .plan-update-footer { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
      .plan-update-card.is-progressing .plan-actions { display: flex; justify-content: flex-end; }
      /* Keep the nested coach dialog available without an empty mobile grid row. */
      body:is(.ios-mobile,.android-mobile).portal-page .plan-page > .plan-guidance.is-collapsed:not(.has-blocking-notice) { display: contents; }
      body:is(.ios-mobile,.android-mobile).portal-page .plan-page > .plan-guidance.is-collapsed:not(.has-blocking-notice) > .plan-comments-panel,
      body:is(.ios-mobile,.android-mobile).portal-page .plan-page > .plan-guidance.is-collapsed:not(.has-blocking-notice) > .plan-update-footer,
      body:is(.ios-mobile,.android-mobile).portal-page .plan-page > .plan-guidance.is-collapsed:not(.has-blocking-notice) > .plan-progress { display: none !important; }
      .plan-update-card:not(.is-collapsed) .plan-update-footer { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; margin-top: -4px; }
      .plan-update-card:not(.is-collapsed) .plan-guidance-meta { display: contents; }
      .plan-update-card:not(.is-collapsed) .plan-actions { grid-column: 2; align-self: center; }
      .plan-update-card:not(.is-collapsed) .plan-actions button { width: auto; min-height: 36px; }
      .plan-update-card .plan-progress { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
      @media (max-width: 380px) {
        .plan-review-actions.has-chat-send { grid-template-columns: minmax(0, 1fr) max-content; align-items: end; gap: 6px; }
        .plan-review-action-stack.is-chat-send { grid-row: auto; justify-self: end; min-width: 0; }
        .plan-review-action-stack.is-plan-update { grid-row: auto; min-width: 0; }
        .plan-review-submit,
        .plan-review-send { gap: 4px; padding: 0 6px; font-size: 12px; }
        .plan-review-submit span { white-space: nowrap; line-height: 1.15; }
        .plan-review-actions.has-chat-send .plan-review-send { min-width: 80px; }
        .plan-review-send .plan-review-send-icon { width: 16px; height: 16px; }
        .plan-review-action-stack .plan-review-usage-counter { font-size: 10px; }
      }
      .plan-update-progress-popup:not([hidden]) { display: flex; }
      .plan-popup-spacer:not([hidden]) { display: block; height: 0; overflow: hidden; overflow-anchor: none; }
      .global-plan-popup-spacer:not([hidden]) { margin-bottom: 10px; }
      body:is(.ios-mobile,.android-mobile).portal-page .plan-page > .plan-garmin-sync-popup,
      body:is(.ios-mobile,.android-mobile).portal-page .plan-page > .plan-update-progress-popup {
        position: sticky;
        left: auto;
        width: 100%;
        margin: 0;
        transform: none;
      }
      body:is(.ios-mobile,.android-mobile).portal-page .plan-page > .plan-garmin-sync-popup .plan-garmin-sync-popup-inner {
        box-shadow: none;
      }
      body.android-mobile.portal-page .plan-page > .plan-garmin-sync-popup,
      body.android-mobile.portal-page .plan-page > .plan-update-progress-popup {
        top: calc(var(--mobile-header-height, 63px) + var(--mobile-header-scroll-offset, 0px) + var(--mobile-top-level-section-gap, 10px));
      }
      body.ios-mobile.portal-page .plan-page > .plan-garmin-sync-popup,
      body.ios-mobile.portal-page .plan-page > .plan-update-progress-popup {
        top: calc(var(--mobile-header-scroll-offset, 0px) + var(--mobile-top-level-section-gap, 10px));
      }
      body:is(.android-mobile,.ios-mobile).portal-page .plan-update-result-dialog {
        box-sizing: border-box;
        width: min(430px, calc(100vw - 28px));
        height: fit-content;
        max-height: calc(100vh - 24px);
        max-height: calc(100dvh - 24px);
        margin: auto;
        overflow: hidden;
      }
      body:is(.android-mobile,.ios-mobile).portal-page .plan-update-result-card {
        display: grid;
        grid-template-rows: auto minmax(0, 1fr) auto;
        max-height: calc(100vh - 24px);
        max-height: calc(100dvh - 24px);
        border-radius: 16px;
      }
      body:is(.android-mobile,.ios-mobile).portal-page .plan-update-result-header {
        grid-template-columns: 44px minmax(0, 1fr) 34px;
        gap: 10px;
        padding: 14px 14px 12px;
      }
      body:is(.android-mobile,.ios-mobile).portal-page .plan-update-result-header h2 { font-size: 19px; }
      body:is(.android-mobile,.ios-mobile).portal-page .plan-update-result-avatar { width: 42px; height: 42px; }
      body:is(.android-mobile,.ios-mobile).portal-page .plan-update-result-text {
        min-height: 0;
        padding: 14px;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        font-size: 14px;
        line-height: 1.5;
      }
      body:is(.android-mobile,.ios-mobile).portal-page .plan-update-result-actions { padding: 0 14px 14px; }
      body:is(.android-mobile,.ios-mobile).portal-page .plan-update-result-actions button { width: 100%; }
      .plan-comments-panel textarea { min-height: 92px; }
      .calendar-panel { padding: 0; border: 0; border-radius: 0; background: transparent; }
      .calendar-header { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin-bottom: 0; }
      .calendar-title { grid-column: 1 / -1; grid-row: 1; margin-bottom: 0; }
      .calendar-title-row { align-items: center; }
      .calendar-title strong, .calendar-title-row > .calendar-legend-toggle, .season-roadmap-open-desktop { display: none; }
      .calendar-title-desktop { display: none; }
      .calendar-title-mobile { display: inline; }
      .calendar-title .calendar-range-desktop, .plan-calendar-desktop, .selected-panel { display: none; }
      .plan-calendar-mobile { --mobile-plan-control-surface: linear-gradient(145deg, #f8fbf2, #e7f3ed); display: block; }
      .day-list[data-plan-week-swipe] { touch-action: pan-y; }
      .calendar-last-updated { display: none; }
      .season-roadmap-dialog[data-season-roadmap-mobile-open] { position: fixed; z-index: 60; inset: var(--season-roadmap-mobile-top, 0px) 0 var(--season-roadmap-mobile-bottom, 0px); box-sizing: border-box; width: auto; height: auto; max-width: none; max-height: none; margin: 0; overflow: hidden; }
      .season-roadmap-dialog[data-season-roadmap-mobile-open] .season-roadmap-card { position: relative; display: grid; grid-template-rows: auto minmax(0, 1fr); width: 100%; height: 100%; max-height: none; overflow: hidden; border-width: 1px 0; border-radius: 0; box-shadow: none; }
      .season-roadmap-page .season-roadmap-card { display: block; height: auto; max-height: none; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
      .season-roadmap-header { position: sticky; z-index: 2; top: 0; justify-content: space-between; min-height: 0; box-sizing: border-box; padding: 12px 20px 12px 14px; border: 0; border-bottom: 1px solid #e0e8e1; background: #ffffff; box-shadow: none; }
      .season-roadmap-header h2 { margin: 0; font-size: 18px; line-height: 1.2; }
      .season-roadmap-close { width: 32px; min-width: 32px; height: 32px; min-height: 32px; }
      .season-roadmap-body { --season-roadmap-scroll-surface: #ffffff; --season-roadmap-scroll-thumb: #7da58f; box-sizing: border-box; min-height: 0; height: auto; overflow-x: hidden; overflow-y: scroll; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; touch-action: pan-y; padding: 12px 20px 18px 10px; }
      .season-roadmap-page .season-roadmap-body { overflow-y: visible; overscroll-behavior: auto; padding: 0 0 12px; }
      body.ios-mobile.portal-page .season-roadmap-body { scrollbar-gutter: auto; padding-right: 20px; }
      body.android-mobile.portal-page .season-roadmap-header { padding-right: 12px; }
      body.android-mobile.portal-page .season-roadmap-body { scrollbar-gutter: stable; scrollbar-width: thin; scrollbar-color: var(--season-roadmap-scroll-thumb) transparent; padding-right: 12px; }
      body.ios-mobile.portal-page .season-roadmap-page .season-roadmap-body,
      body.android-mobile.portal-page .season-roadmap-page .season-roadmap-body { padding-right: 0; }
      body.android-mobile.portal-page .season-roadmap-body::-webkit-scrollbar { width: 8px; }
      body.android-mobile.portal-page .season-roadmap-body::-webkit-scrollbar-track { background: transparent; }
      body.android-mobile.portal-page .season-roadmap-body::-webkit-scrollbar-thumb { border: 2px solid var(--season-roadmap-scroll-surface); border-radius: 999px; background: var(--season-roadmap-scroll-thumb); }
      .season-roadmap-overview { grid-template-columns: minmax(0, 1fr); gap: 10px; margin-bottom: 13px; }
      .season-roadmap-summary, .season-roadmap-meta, .season-roadmap-update { padding: 12px; }
      .season-roadmap-meta { grid-template-columns: minmax(0, 1fr); gap: 9px; }
      .season-roadmap-update { grid-column: auto; grid-template-columns: minmax(0, 1fr); gap: 8px; }
      .season-roadmap-timeline { --season-roadmap-rail-x: 12px; }
      .season-roadmap-phase { grid-template-columns: 19px minmax(0, 1fr); gap: 5.5px; }
      .season-roadmap-phase[data-season-roadmap-target-phase] { scroll-margin-block-start: calc(var(--mobile-header-height, 63px) + 10px); }
      .season-roadmap-phase-card { padding: 0; }
      .season-roadmap-phase-toggle { padding: 12px; cursor: pointer; pointer-events: auto; }
      .season-roadmap-phase-content { padding: 12px; }
      .season-roadmap-phase-heading { align-items: flex-start; }
      .season-roadmap-page .season-roadmap-phase-title { font-size: 15px; }
      .season-roadmap-phase[data-season-roadmap-phase-expanded="false"] .season-roadmap-phase-title { font-weight: 400; }
      .season-roadmap-phase[data-season-roadmap-phase-expanded="true"] .season-roadmap-phase-title { font-weight: 850; }
      .season-roadmap-phase-indicator { display: inline-flex; }
      .season-roadmap-phase-panel { transition: none; }
      .season-roadmap-phase[data-season-roadmap-phase-expanded="false"] .season-roadmap-phase-panel { grid-template-rows: 0fr; opacity: 0; }
      .season-roadmap-phase[data-season-roadmap-phase-expanded="true"] .season-roadmap-phase-indicator { transform: rotate(180deg); }
      .season-roadmap-phase-card dl { grid-template-columns: minmax(0, 1fr); gap: 9px; }
      .season-roadmap-current-badge { max-width: 118px; text-align: center; }
      .season-roadmap-event-marker { grid-template-columns: auto minmax(0, 1fr); }
      .season-roadmap-event-marker time { grid-column: 2; }
      .season-roadmap-empty { padding: 20px 16px; }
      .season-roadmap-empty-actions { display: none; }
      .season-roadmap-mobile-actions { display: grid; gap: 6px; margin: 16px 0 0 24.5px; }
      .season-roadmap-mobile-action { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; min-width: 0; min-height: 44px; padding: 7px 12px; border: 1px solid #cbd4cb; border-radius: 7px; background: #ffffff; color: #286a57; font: inherit; font-size: 12px; font-weight: 900; line-height: 1; text-decoration: none; white-space: nowrap; cursor: pointer; }
      .season-roadmap-mobile-action:hover, .season-roadmap-mobile-action:focus-visible { border-color: #9fbead; background: #f8faf7; color: #1f4f41; outline: none; }
      .season-roadmap-mobile-action:focus-visible { box-shadow: 0 0 0 3px rgba(49,109,143,.22); }
      .calendar-panel .legend { display: none; }
      .calendar-nav { grid-column: 1 / -1; grid-row: 3; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; width: 100%; margin-top: 6px; }
      .calendar-selects { display: contents; }
      .calendar-selects select { width: 100%; min-height: 36px; min-width: 0; font-size: 16px; }
      .nav-group.navigate { display: none; margin-left: 0; }
      .calendar-nav .button { width: 100%; min-width: 0; min-height: 36px; height: 36px; padding: 0 4px; white-space: nowrap; }
      .calendar-nav .today-button { font-size: 16px; }
      .legend-status { width: 100%; min-width: 0; min-height: 24px; padding: 4px 5px; font-size: 11px; transform: none; }
      .day-list-wrap { gap: 10px; }
      .week-arrow-row-desktop { display: none; }
      .week-arrow-row-mobile { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; grid-template-rows: 44px; box-sizing: border-box; column-gap: 4px; min-height: 52px; padding: 3px 4px; overflow: hidden; border: 1px solid #abc88b; border-radius: 18px; background: var(--mobile-plan-control-surface); box-shadow: 0 8px 20px rgba(20,55,43,.10); }
      .week-arrow { min-height: 28px; }
      .week-arrow-row-mobile .week-arrow { position: relative; align-self: center; justify-self: center; width: 44px; min-width: 44px; min-height: 42px; padding: 0; overflow: hidden; border: 0; border-radius: 0; background: transparent; color: #286a57; font-weight: 800; box-shadow: none; }
      .week-arrow-row-mobile .week-arrow-previous-week { grid-column: 1; grid-row: 1; }
      .week-arrow-row-mobile .week-arrow-next-week { grid-column: 3; grid-row: 1; }
      .week-target-arrow { display: block; flex: 0 0 18px; align-self: center; width: 18px; height: 20px; overflow: visible; }
      .week-target-arrow path { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
      .week-arrow-row-mobile .week-arrow > .notification-navigation-dot { position: absolute; top: 8px; margin: 0; }
      .week-arrow-row-mobile .week-arrow-previous-week > .notification-navigation-dot { left: 7px; right: auto; }
      .week-arrow-row-mobile .week-arrow-next-week > .notification-navigation-dot { left: auto; right: 7px; }
      .week-arrow-row-mobile .week-arrow:hover, .week-arrow-row-mobile .week-arrow:focus { background: transparent; color: #286a57; outline: none; }
      .week-arrow-row-mobile .week-arrow:focus-visible { border-radius: 6px; outline: 2px solid rgba(40,106,87,.35); outline-offset: -2px; }
      .mobile-week-center { grid-column: 2; grid-row: 1; display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 44px; overflow: hidden; white-space: nowrap; }
      .mobile-week-period { display: inline-flex; flex: 0 1 auto; align-items: center; min-width: 0; overflow: hidden; color: #1f4f41; line-height: 1; white-space: nowrap; }
      .calendar-current-range-mobile { min-width: 0; overflow: hidden; font-size: clamp(13px, 3.8vw, 14.5px); font-weight: 950; letter-spacing: .005em; text-overflow: ellipsis; }
      body.android-mobile.portal-page .calendar-current-range-mobile { font-size: clamp(12.5px, 3.65vw, 14px); }
      .mobile-week-separator { flex: 0 0 auto; margin: 0 6px; color: #8a958d; font-size: 12.5px; font-weight: 700; line-height: 1; }
      .mobile-current-week-link { display: inline-flex; flex: 0 0 auto; align-self: stretch; align-items: center; justify-content: center; min-width: 0; color: #286a57; font-size: clamp(11.75px, 3.55vw, 13.25px); font-weight: 950; line-height: 1; letter-spacing: .015em; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; white-space: nowrap; -webkit-tap-highlight-color: transparent; }
      .mobile-current-week-link:hover, .mobile-current-week-link:focus { color: #286a57; outline: none; }
      .mobile-current-week-link:focus-visible { border-radius: 4px; outline: 2px solid rgba(40,106,87,.35); outline-offset: 1px; }
      .mobile-current-week-link.is-disabled { color: #657169; text-decoration: none; opacity: .48; cursor: default; }
      .day-list { display: grid; gap: 7px; }
      body.portal-page .plan-calendar-mobile .plan-phase-overlay.is-mobile { inset: var(--plan-phase-overlay-mobile-top, 4px) 4px var(--plan-phase-overlay-mobile-bottom, 4px); align-items: center; overflow: visible; padding: 6px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
      body.portal-page .plan-calendar-mobile .plan-phase-overlay.is-mobile-reveal-pending { visibility: hidden; opacity: 0; }
      body.portal-page .plan-calendar-mobile .plan-phase-overlay.is-mobile-reveal-pending.is-mobile-reveal-ready { visibility: visible; opacity: 1; }
      body.portal-page .plan-calendar-mobile .plan-phase-overlay.is-mobile-reveal-pending .plan-phase-overlay-card { position: relative; z-index: 2; opacity: 0; pointer-events: none; }
      body.portal-page .plan-calendar-mobile .plan-phase-overlay.is-mobile-reveal-complete .plan-phase-overlay-card { opacity: 1; pointer-events: auto; }
      .mobile-plan-phase-restore-layer { position: absolute; z-index: 1; box-sizing: border-box; margin: 0; border: 1px solid rgba(113,148,125,.58); border-radius: 12px; background: rgba(255,255,255,.96); opacity: 0; transform-origin: center; pointer-events: none; will-change: transform, opacity; backface-visibility: hidden; -webkit-backface-visibility: hidden; contain: strict; isolation: isolate; }
      .plan-phase-overlay.is-mobile .plan-phase-overlay-card { gap: 10px; width: 100%; max-height: calc(100% - 2px); padding: 20px; border-radius: 12px; background: rgba(255,255,255,.81); }
      .plan-phase-overlay.is-mobile .plan-phase-overlay-heading { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
      .plan-phase-overlay.is-mobile .plan-phase-overlay-heading > div:first-child { padding-right: 44px; }
      .plan-phase-overlay.is-mobile.has-no-roadmap .plan-phase-overlay-eyebrow,
      .plan-phase-overlay.is-mobile.has-no-roadmap .plan-phase-overlay-card > h2,
      .plan-phase-overlay.is-mobile.has-roadmap-gap .plan-phase-overlay-eyebrow { padding-right: 44px; }
      .plan-phase-overlay.is-mobile .plan-phase-overlay-card h2 { font-size: 21px; }
      .plan-phase-overlay.is-mobile .plan-phase-overlay-week { justify-self: stretch; grid-template-columns: auto minmax(0, 1fr); align-items: center; justify-items: start; gap: 8px; text-align: left; }
      .plan-phase-overlay.is-mobile .plan-phase-overlay-week span { justify-self: end; }
      .plan-phase-overlay.is-mobile .plan-phase-overlay-summary-grid,
      .plan-phase-overlay.is-mobile .plan-phase-overlay-supporting { grid-template-columns: minmax(0, 1fr); }
      .plan-phase-overlay.is-mobile .plan-phase-overlay-summary-grid p { -webkit-line-clamp: 3; }
      .plan-phase-overlay.is-mobile .plan-phase-overlay-actions { position: sticky; z-index: 2; bottom: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 8px; padding-top: 6px; }
      .plan-phase-overlay.is-mobile .plan-phase-overlay-cancel { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; height: 42px; min-height: 42px; padding: 0 10px; font-size: 14px; line-height: 1.2; }
      .plan-phase-overlay.is-mobile .plan-phase-overlay-roadmap-button { width: 100%; min-height: 42px; }
      .day-row { position: relative; overflow: hidden; border: 1px solid #e0e6df; border-radius: 8px; background: #fbfcfb; cursor: pointer; }
      .day-row.is-selected:not(.is-switching-away)::after { content: none; }
      .day-row.is-selected:has(.detail-action-menu[open]) { z-index: 28; overflow: visible; }
      .day-line { --day-line-gap: 8px; display: grid; grid-template-columns: 46px max-content minmax(0, 1fr) 44px; grid-template-areas: "date pills signal toggle"; column-gap: var(--day-line-gap); row-gap: 0; align-items: center; min-height: 58px; padding: 7px 8px 6px; }
      .day-line.day-workout-count-0 { grid-template-columns: 46px minmax(0, 1fr); grid-template-areas: "date signal"; }
      .day-line.day-workout-count-dense.has-day-signal { grid-template-columns: 46px minmax(0, 1fr) 44px; grid-template-areas: "date pills toggle" ". signal signal"; row-gap: 5px; min-height: 99px; padding-bottom: 8px; }
      .day-line.day-workout-count-dense:not(.has-day-signal) { grid-template-columns: 46px minmax(0, 1fr) 44px; grid-template-areas: "date pills toggle"; }
      .date-lockup { position: relative; grid-area: date; display: grid; grid-template-rows: auto auto auto; justify-items: center; align-content: center; box-sizing: border-box; width: 46px; min-height: 50px; padding: 2px; color: inherit; text-align: center; text-decoration: none; }
      .day-row.is-today .date-lockup strong { text-decoration: none; }
      .weekday { align-self: center; color: #69766e; font-size: 10px; font-weight: 900; line-height: 1; letter-spacing: .025em; text-transform: uppercase; }
      .mobile-today-label { color: #567326; font-size: 8px; font-weight: 950; line-height: 1; letter-spacing: .025em; text-transform: uppercase; }
      .day-row .mobile-day-toggle-icon { appearance: none; grid-area: toggle; display: inline-flex; align-items: center; justify-content: center; justify-self: end; align-self: center; box-sizing: border-box; width: 44px; min-width: 44px; height: 44px; min-height: 44px; margin: 0; padding: 0; border: 1px solid #d9e2db; border-radius: 10px; background: var(--mobile-plan-control-surface); color: #286a57; font: inherit; line-height: 1; box-shadow: none; cursor: pointer; }
      .day-row .mobile-day-toggle-icon::before { content: ""; width: 7px; height: 7px; margin-top: -4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform 180ms ease, margin 180ms ease; }
      .day-row .mobile-day-toggle-icon[aria-expanded="true"]::before { margin-top: 4px; transform: rotate(225deg); }
      .day-row .mobile-day-toggle-icon:hover { border-color: #9fbead; background: #f8faf7; color: #1f4f41; }
      .day-row .mobile-day-toggle-icon:focus-visible { border-color: #7da58f; outline: none; box-shadow: none; }
      .date-lockup strong { margin: 2px 0; font-size: 21px; line-height: .95; }
      .day-row.is-outside-horizon .weekday { color: #9aa39b; }
      .mobile-day-details[hidden] { display: none; }
      .day-pills { grid-area: pills; display: flex; flex-wrap: wrap; align-content: flex-start; align-items: stretch; justify-content: flex-start; align-self: stretch; gap: 5px; min-width: 0; overflow: visible; }
      .day-workout-count-0 .day-pills { display: none; }
      .day-signal { grid-area: signal; display: flex; align-items: center; align-self: stretch; gap: 6px; min-width: 0; min-height: 44px; overflow: hidden; color: #356b5c; text-decoration: none; }
      .day-workout-count-0 .day-signal { justify-self: stretch; justify-content: center; text-align: center; }
      .day-workout-count-0 .day-signal-copy { flex: 0 1 auto; align-items: center; }
      .day-signal:hover, .day-signal:focus-visible { color: #1f4f41; text-decoration: none; }
      .day-signal:focus-visible { border-radius: 6px; outline: 2px solid rgba(40,106,87,.28); outline-offset: 2px; }
      .day-signal-copy { display: flex; flex: 1 1 auto; flex-direction: column; justify-content: center; min-width: 0; min-height: 38px; }
      .day-signal-mark { position: relative; display: inline-grid; flex: 0 0 auto; place-items: center; width: 32px; height: 38px; overflow: visible; }
      .day-signal-record-mark .personal-record-rosette { grid-area: 1 / 1; width: 34px; height: 38px; fill: #f2cf4a; color: #806300; }
      .day-signal-personal_best .day-signal-copy { padding-left: 0; border-left: 0; }
      .day-signal-label, .day-signal-detail { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
      .day-signal-label { font-size: 12px; font-weight: 950; line-height: 1.15; letter-spacing: .025em; text-transform: uppercase; }
      .day-signal-detail { margin-top: 3px; color: #68766e; font-size: 10px; font-weight: 650; line-height: 1.15; }
      .day-signal-coach .day-signal-label { color: #316d8f; }
      .day-signal-recovery .day-signal-label,
      .day-signal-variant-mobility .day-signal-label { color: #168078; }
      .day-signal-adaptation .day-signal-label { color: #5f7d2c; }
      .day-signal-achievement .day-signal-label { color: #7043a0; }
      .day-signal-personal_best .day-signal-label { font-size: 11px; letter-spacing: .01em; }
      .day-signal-purpose .day-signal-label { color: #a85b0b; }
      .day-signal-variant-race .day-signal-label { color: #a9443c; }
      .day-signal-variant-strength .day-signal-label { color: #664b91; }
      .day-signal-variant-easy .day-signal-label,
      .day-signal-variant-technique .day-signal-label { color: #31718b; }
      .day-signal-neutral .day-signal-label { color: #657169; }
      .workout-pill { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; min-width: 50px; min-height: 50px; padding: 5px; border: 1px solid transparent; border-radius: 12px; font: inherit; line-height: 1; }
      .workout-purpose-general,
      .workout-purpose-rest { --workout-purpose-background: var(--mobile-plan-control-surface); --workout-purpose-color: #385b4d; --workout-purpose-border: #c8d9cc; }
      .workout-purpose-recovery,
      .workout-purpose-mobility { --workout-purpose-background: #e4f4ef; --workout-purpose-color: #176b62; --workout-purpose-border: #b7d8cf; }
      .workout-purpose-easy,
      .workout-purpose-technique { --workout-purpose-background: #e6f1f7; --workout-purpose-color: #245f78; --workout-purpose-border: #bdd7e2; }
      .workout-purpose-long { --workout-purpose-background: #fff0d8; --workout-purpose-color: #875000; --workout-purpose-border: #edca91; }
      .workout-purpose-quality { --workout-purpose-background: #fbe9df; --workout-purpose-color: #8f4516; --workout-purpose-border: #e8bda1; }
      .workout-purpose-strength { --workout-purpose-background: #f0eafb; --workout-purpose-color: #614384; --workout-purpose-border: #d3c2e8; }
      .workout-purpose-race { --workout-purpose-background: #f9e7e5; --workout-purpose-color: #913b35; --workout-purpose-border: #e6b7b3; }
      .day-row .workout-pill.is-planned,
      .day-row .workout-pill.is-revised { border-color: var(--workout-purpose-border); background: var(--workout-purpose-background); color: var(--workout-purpose-color); }
      .day-row .workout-pill.is-unread-coach-update::after { content: ""; position: absolute; z-index: 3; top: 6px; left: 6px; width: 7px; height: 7px; border: 0; border-radius: 50%; background: #e41e3f; box-shadow: none; pointer-events: none; }
      .workout-pill-markers { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; overflow: visible !important; }
      .workout-pill .plan-activity-icon { width: 34px; height: 34px; margin-left: 0; opacity: .94; transform: none; --sport-icon-stroke: currentColor; --sport-icon-stroke-width: .28px; }
      .workout-pill .plan-activity-icon-hike { scale: 1.15; transform-origin: center; }
      .workout-pill .calendar-personal-record-badge.is-number-only { position: absolute; top: -4px; right: -4px; z-index: 2; display: inline-grid; place-items: center; box-sizing: border-box; width: 20px; height: 20px; border: 0; border-radius: 50%; background: #e2b92f; box-shadow: 0 1px 4px rgba(70,50,0,.28); color: #493700; pointer-events: none; }
      .workout-pill .calendar-personal-record-badge.is-number-only .calendar-personal-record-count { position: static; color: inherit; font-size: 9px; font-weight: 950; font-variant-numeric: tabular-nums; line-height: 1; transform: none; }
      .workout-pill.is-calendar-seen { font-weight: 400; }
      .workout-pill.is-calendar-unseen { font-weight: 900; }
      .workout-pill.is-clicked { padding: 5px; }
      .expanded-workout { --expanded-workout-divider: #9eafa4; --expanded-workout-subdivider: #b8c7bd; position: relative; margin: 0; padding: 22px 14px 8px; border: 0; border-radius: 0; background: linear-gradient(to bottom, transparent 8px, #e5ebe7 8px); cursor: default; }
      .expanded-workout::before { content: ""; position: absolute; left: 0; right: 0; top: 8px; border-top: 1px solid var(--expanded-workout-divider); }
      .expanded-workout .detail-heading { grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: none; margin-bottom: 10px; border-bottom: 0; }
      .expanded-workout.has-matched-tabs .detail-heading { column-gap: 0; row-gap: 0; margin-bottom: 0; }
      .expanded-workout .detail-title { display: contents; }
      .expanded-workout .detail-kicker { grid-column: 1; grid-row: 1; min-width: 0; align-self: center; font-size: 11px; }
      .expanded-workout .detail-title-row { grid-column: 1 / -1; grid-row: 2; width: 100%; min-width: 0; margin-top: 0; }
      .expanded-workout .detail-title-row,
      .expanded-workout .detail-panel-title-row { position: relative; padding-bottom: 8px; }
      .expanded-workout.is-single-view .detail-title-row { margin-top: 6px; padding-top: 14px; }
      .expanded-workout.is-single-view .detail-title-row::before { content: ""; position: absolute; left: -14px; right: -14px; top: 0; border-top: 1px solid var(--expanded-workout-divider); }
      .expanded-workout .detail-title-row::after,
      .expanded-workout .detail-panel-title-row::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; border-top: 1px solid var(--expanded-workout-subdivider); }
      .expanded-workout .detail-title-row h3 { flex: 1 1 auto; }
      .expanded-workout .detail-action-menu,
      .expanded-workout .detail-title-row > .detail-action-menu-toggle,
      .expanded-workout .detail-panel-title-row > .detail-action-menu-toggle { margin-left: auto; }
      .expanded-workout .detail-heading h3,
      .expanded-workout .detail-panel-heading h3 { font-size: 18px; }
      .expanded-workout .detail-heading h3 .plan-activity-icon,
      .expanded-workout .detail-panel-heading h3 .plan-activity-icon { width: 34px; height: 34px; opacity: .94; transform: none; --sport-icon-stroke: currentColor; --sport-icon-stroke-width: .28px; }
      .expanded-workout .detail-heading h3 .event-title-icon,
      .expanded-workout .detail-panel-heading h3 .event-title-icon { width: 34px; height: 34px; font-size: 22px; }
      .expanded-workout .detail-heading-review { grid-column: 1 / -1; grid-row: auto; height: auto; max-height: none; overflow: visible; margin-top: 4px; padding-right: 0; font-size: 12px; }
      .expanded-workout .detail-view-actions { grid-column: 1 / -1; grid-row: auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; width: 100%; margin: 6px 0 0; }
      .expanded-workout.is-single-view.has-heading-review .detail-heading-review { grid-row: 2; }
      .expanded-workout.is-single-view.has-heading-review .detail-title-row { grid-row: 3; }
      .expanded-workout.has-matched-tabs .detail-view-actions { grid-row: 2; }
      .expanded-workout.has-matched-tabs.has-heading-review .detail-heading-review { --matched-review-label-height: 17px; display: grid; grid-column: 1 / -1; grid-row: 2; gap: 7px; margin-top: calc(5px - var(--matched-review-label-height)); }
      .expanded-workout.has-matched-tabs.has-heading-review .detail-heading-review-section > strong { min-height: var(--matched-review-label-height); line-height: var(--matched-review-label-height); }
      .expanded-workout.has-matched-tabs.has-heading-review .detail-status { align-self: end; }
      .expanded-workout.has-matched-tabs.has-heading-review .detail-view-actions { grid-row: 3; margin-top: 24px; }
      .expanded-workout .detail-panel-heading { gap: 2px; margin-bottom: 1px; padding-bottom: 0; border-bottom: 0; }
      .expanded-workout.has-matched-tabs .detail-panel-heading { gap: 10px; }
      .expanded-workout .detail-panel-kicker { font-size: 11px; }
      .expanded-workout .detail-panel-title-row { width: 100%; }
      .expanded-workout.has-matched-tabs .detail-panel-title-row { padding-bottom: 14px; }
      .expanded-workout.has-matched-tabs .detail-tab-panel-execution.has-execution-comparison .detail-panel-title-row::after { content: none; }
      .expanded-workout .detail-tab-list { display: flex; width: 100%; min-width: 0; box-sizing: border-box; align-items: center; gap: 2px; padding: 2px; border: 1px solid #cbd2cc; border-radius: 7px; background: #f3f5f2; margin: 0; }
      .expanded-workout .detail-status { display: inline-flex; grid-column: 2; grid-row: 1; }
      .expanded-workout .detail-tab { flex: 1 1 0; width: 0; min-width: 0; min-height: 28px; margin: 0; padding: 4px 10px; border: 0; border-radius: 5px; }
      .expanded-workout .detail-action-menu-toggle { flex: 0 0 44px; width: 44px; min-width: 44px; height: 44px; min-height: 44px; border-color: #d9e2db; border-radius: 10px; background: var(--mobile-plan-control-surface); box-shadow: none; }
      .expanded-workout .personal-record-trigger { width: 44px; height: 44px; }
      .expanded-workout .detail-action-menu-popup { min-width: min(230px, calc(100vw - 48px)); }
      .expanded-workout .detail-action-menu-item { min-height: 44px; padding: 9px 11px; font-size: 14px; }
      .expanded-workout .detail-tab-status { display: none; }
      .expanded-workout .detail-tab-input-plan:checked ~ .detail-heading .detail-tab-plan,
      .expanded-workout .detail-tab-input-execution:checked ~ .detail-heading .detail-tab-execution { background: #ffffff; border-color: transparent; box-shadow: inset 0 0 0 1px #8d9890, 0 1px 3px rgba(32,48,40,.12); }
      @supports selector(.workout-detail:has(.detail-tab-input:checked)) {
        .expanded-workout.has-matched-tabs:not(:has(.detail-tab-input:checked)) .detail-tab-execution { background: #ffffff; border-color: transparent; box-shadow: inset 0 0 0 1px #8d9890, 0 1px 3px rgba(32,48,40,.12); }
      }
      .expanded-workout .detail-tab-panel { padding: 0; border: 0; border-radius: 0; background: transparent; }
      .expanded-workout.has-matched-tabs .detail-tab-panel { position: relative; box-sizing: border-box; margin-top: 14px; padding-top: 14px; }
      .expanded-workout.has-matched-tabs .detail-tab-panel::before { content: ""; position: absolute; left: -14px; right: -14px; top: 0; border-top: 1px solid var(--expanded-workout-divider); }
      .detail-note-dialog {
        --detail-note-top-gap: max(10px, env(safe-area-inset-top));
        --detail-note-bottom-gap: max(10px, env(safe-area-inset-bottom));
        --activity-note-anchor-top: calc(var(--activity-note-viewport-top, 0px) + var(--detail-note-top-gap));
        --activity-note-available-height: calc(var(--activity-note-viewport-height, 100dvh) - var(--detail-note-top-gap));
        position: fixed;
        inset: var(--activity-note-anchor-top) 0 auto;
        margin: 0 auto;
        max-height: calc(var(--activity-note-available-height) - var(--detail-note-bottom-gap));
      }
      .detail-note-dialog-card { grid-template-rows: auto minmax(0, 1fr) auto; max-height: inherit; overflow: hidden; }
      .detail-note-editor { min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
      .detail-note-editor textarea { min-height: clamp(96px, 24dvh, 112px); resize: none; }
      .detail-note-dialog-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .detail-note-save-button,
      .detail-note-save-review-button { width: 100%; min-width: 0; }
      .detail-note-save-button,
      .detail-note-save-review-button { padding-inline: 6px; font-size: 12px; }
      .execution-summary-row { grid-template-columns: 1fr; }
      .execution-summary-title { display: grid; justify-content: stretch; gap: 3px; padding: 9px 12px; }
      .execution-summary-title strong { font-size: 15px; }
      .execution-summary-meta { display: flex; flex-wrap: wrap; gap: 0; color: #69766e; font-size: 12px; font-weight: 800; white-space: normal; }
      .execution-summary-meta-value { color: #56645c; font-weight: 800; }
      .execution-plan-comparison { gap: 6px; padding: 0; border: 0; border-radius: 0; background: transparent; }
      .execution-comparison-grid { grid-template-columns: 1fr; gap: 6px; }
      .execution-comparison-card { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: 5px 8px; padding: 7px 8px; border-radius: 7px; }
      .execution-comparison-card-top { grid-column: 1; display: grid; gap: 2px; }
      .execution-comparison-card-top span { font-size: 11px; }
      .execution-comparison-card-top strong { font-size: 12px; }
      .execution-comparison-values { grid-column: 2; gap: 6px; }
      .execution-comparison-values em { font-size: 9px; }
      .execution-comparison-values strong { font-size: 12px; }
      .execution-comparison-bars { grid-column: 1 / -1; gap: 2px; }
      .execution-comparison-bar { height: 4px; }
      .execution-component-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 12px; }
      .structured-workout-item { grid-template-columns: 24px minmax(0, 1fr); gap: 7px; padding: 9px 0; }
      .structured-workout-accordion-entry { display: block; padding: 0; }
      .structured-workout-list.is-single .structured-workout-item { grid-template-columns: minmax(0, 1fr); }
      .structured-workout-repeat-group { grid-template-columns: minmax(0, 1fr); }
      .expanded-workout .structured-workout-repeat-group { padding: 0; }
      .expanded-workout .structured-workout-repeat-body { padding-bottom: 9px; }
      .structured-workout-title { font-size: 14px; }
      .structured-workout-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 12px; }
      .expanded-workout .structured-workout-leg-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 12px; margin-bottom: 0; }
      .expanded-workout .structured-workout-leg-overview .detail-mobile-leg-target { display: block; }
      .expanded-workout .structured-workout-leg-overview .detail-fueling { grid-column: 1 / -1; }
      .structured-workout-list.has-leg-panels .leg-accordion-target { display: none; }
      .structured-workout-list.has-leg-panels .leg-accordion-icon { grid-column: -2 / -1; }
      .structured-workout-repeat-body > .structured-workout-substeps { margin-left: 0; padding: 0 9px; }
      .leg-accordion-tile { gap: 6px; }
      .execution-analysis, .execution-analysis-no-comparison { grid-template-columns: 1fr; }
      .execution-route { gap: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
      .execution-route > .execution-panel-heading { display: none; }
      .execution-route-map { min-height: 220px; }
      .execution-route-reset { top: 10px; right: 10px; width: 44px; height: 44px; }
      .execution-route-reset svg { width: 27px; height: 27px; }
      .execution-route-overlay polyline { stroke-width: 5; }
      .execution-chart { grid-auto-flow: row; gap: 4px; padding: 0; border: 0; border-radius: 0; background: transparent; }
      .execution-chart-controls { display: contents; }
      .execution-chart-metrics { order: 1; width: 100%; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
      .execution-chart-metrics { justify-content: center; column-gap: 6px; row-gap: 1px; flex-wrap: wrap; }
      .execution-chart-metrics label { box-sizing: border-box; flex: 0 0 calc((100% - 12px) / 3); justify-content: center; min-width: 0; min-height: 26px; gap: 3px; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; font-size: 11px; line-height: 1; white-space: nowrap; }
      .execution-chart-metrics input[type="checkbox"] { width: 18px; height: 18px; }
      .execution-chart-stage { order: 2; }
      .execution-chart-stage { height: 230px; }
      .execution-chart-svg .chart-line { stroke-width: 1.35; }
      .execution-chart-svg .chart-metric-axis,
      .execution-chart-svg .chart-horizontal-scale { display: none; }
      .execution-laps { gap: 6px; padding: 0; border: 0; border-radius: 0; background: transparent; }
      .execution-laps > .execution-panel-heading { padding: 0 2px; }
      .execution-laps > .execution-panel-heading span { font-size: 12px; line-height: 1.15; }
      .execution-laps > .execution-panel-heading strong { font-size: 16px; line-height: 1.1; }
      .execution-laps-scroll { overflow-x: auto; }
      .execution-laps-table { min-width: 100%; width: 100%; table-layout: auto; }
      .execution-laps-table th,
      .execution-laps-table td { padding: 8px 3px; font-size: 14px; line-height: 1.18; text-align: center; }
      .execution-laps-table th { overflow-wrap: normal; font-size: 10px; line-height: 1.08; vertical-align: bottom; white-space: normal; background: rgba(232,240,232,.72); color: #52635a; }
      .execution-laps-table td { border-bottom-color: rgba(177,194,181,.62); background: rgba(255,255,255,.46); }
      .execution-laps-table tbody tr:nth-child(even) td { background: rgba(246,249,246,.74); }
      .execution-laps-heading-desktop { display: none; }
      .execution-laps-heading-mobile { display: inline; }
      .execution-laps-value-desktop { display: none; }
      .execution-laps-value-mobile { display: inline; }
      .execution-laps-table th:nth-child(6),
      .execution-laps-table td:nth-child(6),
      .execution-laps-table th:nth-child(7),
      .execution-laps-table td:nth-child(7) { display: none; }
      .execution-laps-table th:nth-child(1),
      .execution-laps-table td:nth-child(1) { width: 8%; }
      .execution-laps-table th:nth-child(2),
      .execution-laps-table td:nth-child(2) { width: 25%; }
      .execution-laps-table th:nth-child(3),
      .execution-laps-table td:nth-child(3) { width: 20%; }
      .execution-laps-table th:nth-child(4),
      .execution-laps-table td:nth-child(4) { width: 17%; }
      .execution-laps-table th:nth-child(5),
      .execution-laps-table td:nth-child(5) { width: 30%; }
      .expanded-workout .compact-grid { grid-template-columns: 1fr 1fr; gap: 9px 16px; margin-bottom: 10px; }
      .expanded-workout .plan-summary-grid,
      .expanded-workout .structured-workout-metrics { margin-bottom: 0; }
      .expanded-workout .detail-duration { order: 1; }
      .expanded-workout .detail-distance { order: 2; }
      .expanded-workout .detail-terrain { grid-column: 1 / -1; order: 3; }
      .expanded-workout .text-grid { grid-template-columns: 1fr; gap: 9px 16px; }
      .expanded-workout .detail-item { padding-top: 8px; padding-bottom: 0; border-top: 1px solid #d8e7dc; border-bottom: 0; }
      .expanded-workout .detail-tab-panel-plan .detail-item,
      .expanded-workout .detail-tab-panel-execution .detail-item { position: relative; padding-top: 0; padding-bottom: 8px; border-top: 0; border-bottom: 0; }
      .expanded-workout .detail-tab-panel-plan .detail-item::after,
      .expanded-workout .detail-tab-panel-execution .detail-item::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; border-top: 1px solid var(--expanded-workout-subdivider); }
      .expanded-workout .detail-tab-panel-plan .text-grid .detail-item:last-child::after,
      .expanded-workout .detail-tab-panel-execution .text-grid .detail-item:last-child::after,
      .expanded-workout .detail-tab-panel-execution .manual-execution-grid .detail-item:last-child::after { content: none; }
      .admin-filter-bar { flex-wrap: wrap; overflow-x: visible; }
      .admin-filter-bar label { flex: 1 1 calc(50% - 5px); min-width: 0; }
      .admin-filter-bar .filter-search, .admin-filter-bar .filter-actions { flex: 1 1 100%; min-width: 0; }
      .admin-filter-bar .filter-actions { justify-content: flex-start; padding-top: 0; }
      .admin-tabs { overflow-x: auto; }
      .admin-tab-label-desktop { display: none; }
      .admin-tab-label-mobile { display: inline; }
      .usage-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .maintenance-admin-status { align-items: stretch; flex-direction: column; }
      .maintenance-admin-status form, .maintenance-admin-status form button { width: 100%; }
      .maintenance-admin-fields { grid-template-columns: minmax(0, 1fr); }
      .maintenance-admin-picker-parts { width: min(100%, 18rem); max-width: 100%; justify-self: start; }
      .maintenance-preview-shell .maintenance-announcement { margin: 0; }
      .admin-table { table-layout: auto; }
      .admin-table .timestamp-cell, .admin-table .admin-status-cell, .admin-table .action-cell { width: 100%; min-width: 0; white-space: normal; }
      .admin-table .admin-status-cell select { min-width: 0; }
      .admin-table tbody tr { display: block; }
      .admin-table td {
        display: grid;
        grid-template-columns: 92px minmax(0, 1fr);
        gap: 8px;
        align-items: start;
        padding: 9px 10px;
      }
      .admin-table td::before {
        margin: 1px 0 0;
        line-height: 1.25;
      }
      .admin-table .email-cell, .admin-table .action-cell {
        display: block;
      }
      .admin-table .email-cell::before, .admin-table .action-cell::before {
        margin-bottom: 6px;
      }
      .admin-table .admin-subscription-display {
        min-width: 0;
      }
      .admin-table .admin-subscription-display strong,
      .admin-table .admin-subscription-display small {
        overflow-wrap: anywhere;
      }
      .admin-table .admin-row-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 7px;
        align-items: stretch;
      }
      .admin-table .admin-row-actions .secondary {
        width: 100%;
        min-width: 0;
      }
      .admin-table .admin-row-actions .icon-button {
        width: 44px;
        min-width: 44px;
        justify-self: end;
      }
      .admin-table td:nth-child(1)::before { content: "Email"; }
      .admin-table td:nth-child(2)::before { content: "Registered"; }
      .admin-table td:nth-child(3)::before { content: "Email delivery"; }
      .admin-table td:nth-child(4)::before { content: "Subscription"; }
      .admin-table td:nth-child(5)::before { content: "Garmin"; }
      .admin-table td:nth-child(6)::before { content: "Admin"; }
      .admin-table td:nth-child(7)::before { content: "Last used"; }
      .admin-table td:nth-child(8)::before { content: "GPT request"; }
      .admin-table td:nth-child(9)::before { content: "Action"; }
      .admin-table tbody .action-cell:empty { display: none; }
    }
    @media (max-width: 359px) {
      .day-line.day-workout-count-2.has-day-signal { grid-template-columns: 46px minmax(0, 1fr) 44px; grid-template-areas: "date pills toggle" ". signal signal"; row-gap: 5px; min-height: 99px; padding-bottom: 8px; }
    }
    @media (max-width: 340px) {
      .day-line { --day-line-gap: 6px; padding-right: 6px; padding-left: 6px; }
      .day-signal { gap: 4px; }
    }
    @media (hover: none) and (pointer: coarse), (max-width: 760px) {
      .main-inner input:not([type="checkbox"]):not([type="hidden"]),
      .main-inner textarea,
      .main-inner select {
        font-size: 16px;
      }
      body.android-mobile.portal-page .main-inner input:not([type="checkbox"]):not([type="hidden"]),
      body.android-mobile.portal-page .main-inner textarea,
      body.android-mobile.portal-page .main-inner select {
        font-size: 15px;
      }
      body.android-mobile.portal-page .plan-review-dialog textarea {
        font-size: 16px;
      }
      body.android-mobile.portal-page .main-inner select option,
      body.android-mobile.portal-page .main-inner select optgroup {
        background: #ffffff;
        color: #203028;
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
        font-size: 13px;
        font-stretch: normal;
        letter-spacing: 0;
        line-height: 1.2;
      }
      body.android-mobile.portal-page .main-inner select option {
        font-weight: 500;
      }
      body.android-mobile.portal-page .main-inner select optgroup {
        font-weight: 800;
      }
      body.android-mobile.portal-page.theme-dark .main-inner select {
        color-scheme: dark;
      }
      body.android-mobile.portal-page.theme-dark .main-inner select option,
      body.android-mobile.portal-page.theme-dark .main-inner select optgroup {
        background: #10261f;
        color: #eef7ef;
      }
      body.android-mobile.portal-page.theme-dark .main-inner select option:checked {
        background: #286a57;
        color: #ffffff;
      }
      body.android-mobile.portal-page.theme-dark .main-inner select optgroup {
        color: #c2e084;
      }
      body.android-mobile.portal-page.android-selects-enhanced .android-select-shell {
        position: relative;
        display: block;
        width: 100%;
      }
      body.android-mobile.portal-page.android-selects-enhanced .android-select-shell > select.android-select-native {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        min-width: 0;
        opacity: 0;
        pointer-events: none;
      }
      body.android-mobile.portal-page .android-select-trigger {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        height: var(--control-height);
        padding: var(--control-padding-y) var(--control-padding-x);
        border: 1px solid #cbd4cb;
        border-radius: 6px;
        background: #ffffff;
        color: #203028;
        font: inherit;
        font-size: 15px;
        font-weight: 400;
        line-height: 1.2;
        text-align: left;
      }
      body.android-mobile.portal-page .android-select-trigger::after {
        content: "";
        flex: 0 0 auto;
        width: 8px;
        height: 8px;
        margin-left: 10px;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        opacity: .62;
        transform: translateY(-2px) rotate(45deg);
      }
      body.android-mobile.portal-page .android-select-trigger:disabled {
        opacity: .72;
        cursor: not-allowed;
      }
      body.android-mobile.portal-page .android-select-trigger-text {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }
      body.android-mobile.portal-page .events-form.was-validated select.android-select-native:required:invalid + .android-select-trigger {
        border-color: #b23a2d;
        background: #fff7f4;
        box-shadow: 0 0 0 2px rgba(178,58,45,.12);
      }
      body.android-mobile.portal-page.theme-dark .android-select-trigger {
        border-color: rgba(255,255,255,.18);
        background: rgba(255,255,255,.08);
        color: #ffffff;
      }
      body.android-mobile.portal-page .goal-card.context-row-past .android-select-trigger,
      body.android-mobile.portal-page .event-card.context-row-past .android-select-trigger {
        border-color: #d1d8d1;
        background: #f7f8f6;
        color: #6e766e;
      }
      body.android-mobile.portal-page.theme-dark .goal-card.context-row-past .android-select-trigger,
      body.android-mobile.portal-page.theme-dark .event-card.context-row-past .android-select-trigger {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.06);
        color: rgba(238,247,239,.72);
      }
      body.android-mobile.portal-page .android-select-overlay {
        position: fixed;
        inset: 0;
        z-index: 1400;
        display: block;
        background: rgba(3, 14, 10, .58);
        overscroll-behavior: none;
        touch-action: none;
      }
      body.android-mobile.portal-page .android-select-overlay[hidden] {
        display: none;
      }
      body.android-mobile.portal-page.android-select-open {
        overflow: hidden;
        touch-action: none;
      }
      body.android-mobile.portal-page .android-select-panel {
        --android-select-scroll-surface: #ffffff;
        --android-select-scroll-surface-clear: rgba(255,255,255,0);
        --android-select-scroll-thumb: #7da58f;
        --android-select-scroll-thumb-height: 34px;
        --android-select-scroll-thumb-top: 10px;
        position: absolute;
        top: var(--android-select-panel-top, 18px);
        left: var(--android-select-panel-left, 18px);
        width: var(--android-select-panel-width, min(360px, calc(100vw - 36px)));
        max-height: var(--android-select-panel-max-height, min(64vh, 480px));
        overflow: auto;
        border: 1px solid #c9d3c9;
        border-radius: 10px;
        background: #ffffff;
        color: #203028;
        box-shadow: 0 18px 44px rgba(0,0,0,.28);
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
        touch-action: pan-y;
      }
      body.android-mobile.portal-page .android-select-panel.is-scrollable {
        padding-right: 16px;
        background:
          linear-gradient(var(--android-select-scroll-thumb), var(--android-select-scroll-thumb)),
          linear-gradient(var(--android-select-scroll-surface) 30%, var(--android-select-scroll-surface-clear)) top,
          linear-gradient(var(--android-select-scroll-surface-clear), var(--android-select-scroll-surface) 70%) bottom,
          radial-gradient(farthest-side at 50% 0, rgba(32,48,40,.22), rgba(32,48,40,0)) top,
          radial-gradient(farthest-side at 50% 100%, rgba(32,48,40,.2), rgba(32,48,40,0)) bottom;
        background-color: var(--android-select-scroll-surface);
        background-repeat: no-repeat;
        background-position: right 7px top var(--android-select-scroll-thumb-top), left top, left bottom, left top, left bottom;
        background-size: 3px var(--android-select-scroll-thumb-height), calc(100% - 16px) 18px, calc(100% - 16px) 18px, calc(100% - 16px) 10px, calc(100% - 16px) 10px;
        background-attachment: scroll, local, local, scroll, scroll;
      }
      body.android-mobile.portal-page .android-select-group {
        padding: 10px 12px 5px;
        color: #69766e;
        font-size: 11px;
        font-weight: 900;
        line-height: 1;
        text-transform: uppercase;
      }
      body.android-mobile.portal-page .android-select-option {
        box-sizing: border-box;
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        min-height: 40px;
        padding: 8px 12px;
        border: 0;
        border-top: 1px solid #edf1ed;
        border-radius: 0;
        background: transparent;
        color: #203028;
        font: inherit;
        font-size: 15px;
        font-weight: 600;
        line-height: 1.2;
        text-align: left;
      }
      body.android-mobile.portal-page .android-select-option::after {
        content: "";
        flex: 0 0 auto;
        width: 14px;
        height: 14px;
        margin-left: auto;
        border: 2px solid #9aa59d;
        border-radius: 999px;
      }
      body.android-mobile.portal-page .android-select-option.is-selected::after {
        border-color: #286a57;
        background: radial-gradient(circle at center, #286a57 0 42%, transparent 46%);
      }
      body.android-mobile.portal-page .android-select-option:disabled {
        color: #9aa59d;
      }
      body.android-mobile.portal-page .android-select-option:focus {
        outline: 2px solid rgba(40,106,87,.24);
        outline-offset: -2px;
      }
      body.android-mobile.portal-page.theme-dark .android-select-overlay {
        background: rgba(1, 8, 6, .72);
      }
      body.android-mobile.portal-page.theme-dark .android-select-panel {
        --android-select-scroll-surface: #10261f;
        --android-select-scroll-surface-clear: rgba(16,38,31,0);
        --android-select-scroll-thumb: rgba(194,224,132,.78);
        border-color: rgba(194,224,132,.22);
        background-color: #10261f;
        color: #eef7ef;
        box-shadow: 0 18px 44px rgba(0,0,0,.52);
      }
      body.android-mobile.portal-page.theme-dark .android-select-group {
        color: #c2e084;
      }
      body.android-mobile.portal-page.theme-dark .android-select-option {
        border-top-color: rgba(255,255,255,.1);
        background: transparent;
        color: #eef7ef;
      }
      body.android-mobile.portal-page.theme-dark .android-select-option.is-selected {
        background: transparent;
      }
      body.android-mobile.portal-page.theme-dark .android-select-option::after {
        border-color: rgba(238,247,239,.48);
      }
      body.android-mobile.portal-page.theme-dark .android-select-option.is-selected::after {
        border-color: #c2e084;
        background: radial-gradient(circle at center, #c2e084 0 42%, transparent 46%);
      }
    }
    @media (max-width: 760px) {
      body.portal-page {
        color: #1f2722;
        background:
          linear-gradient(180deg, #edf4ef 0%, #f7f3eb 46%, #eef5f6 100%);
        background-color: #edf4ef;
      }
      body.portal-page header {
        border-bottom: 1px solid rgba(255,255,255,.12);
        background: rgba(22,51,43,.96);
        box-shadow: 0 10px 24px rgba(16,40,32,.16);
      }
      body.portal-page main {
        background: transparent;
      }
      body.portal-page .main-inner {
        max-width: 430px;
        padding: 14px 10px;
      }
      body.portal-page .panel,
      body.portal-page .selected-panel,
      body.portal-page .plan-update-card,
      body.portal-page .account-card,
      body.portal-page .garmin-panel,
      body.portal-page .garmin-info-card {
        border-color: rgba(198,213,201,.92);
        background-color: rgba(255,255,255,.88);
        box-shadow: 0 10px 24px rgba(31,39,34,.07);
      }
      body.portal-page .site-footer {
        border-top: 1px solid rgba(255,255,255,.12);
        background: rgba(16,40,32,.96);
        box-shadow: 0 -10px 24px rgba(16,40,32,.16), 0 3px 0 rgba(16,40,32,.96);
      }
      body.portal-page .message {
        border-radius: 8px;
        background: rgba(237,245,239,.94);
        color: #203028;
      }
      body.portal-page .message.message-warning {
        background: rgba(255,248,237,.96);
        color: #7a4b00;
      }
      body.portal-page .mobile-filter-toggle.link-button,
      body.portal-page .plan-comments-toggle,
      body.portal-page .calendar-nav .today-button,
      body.portal-page .week-arrow-row-mobile .week-arrow {
        background: #ffffff;
      }
      body.portal-page .event-card[open],
      body.portal-page .goal-card[open] {
        border-width: 1px;
        border-color: #316d8f;
        background: #fbfcfb;
        box-shadow: inset 0 0 0 2px #316d8f;
      }
      body.portal-page .goal-card[open] {
        border-color: #7fac8a;
        box-shadow: inset 0 0 0 2px rgba(40,106,87,.22);
      }
      body.portal-page .event-card.is-collapsed-selected:not([open]),
      body.portal-page .goal-card.is-collapsed-selected:not([open]) {
        border-width: 2px;
        border-color: #316d8f;
        background: #fbfcfb;
        box-shadow: inset 0 0 0 2px #316d8f;
      }
      body.android-mobile.portal-page .mobile-page-title,
      body.android-mobile.portal-page nav a,
      body.android-mobile.portal-page nav button,
      body.android-mobile.portal-page .button,
      body.android-mobile.portal-page button,
      body.android-mobile.portal-page input,
      body.android-mobile.portal-page textarea {
        font-stretch: 106%;
        letter-spacing: .01em;
      }
      body.ios-mobile.portal-page header,
      body.ios-mobile.portal-page .site-footer {
        -webkit-backdrop-filter: saturate(160%) blur(14px);
        backdrop-filter: saturate(160%) blur(14px);
      }
      body.ios-mobile.portal-page {
        --mobile-header-height: 63px;
        --mobile-footer-height: calc(48px + env(safe-area-inset-bottom));
        position: relative;
        height: 100svh;
        min-height: 100svh;
        overflow: hidden;
      }
      body.ios-mobile.portal-page header {
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
        flex: none;
      }
      body.ios-mobile.portal-page main {
        flex: 1 1 0;
        width: 100%;
        min-height: 0;
        box-sizing: border-box;
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding-top: var(--mobile-header-height, 63px);
        padding-bottom: var(--mobile-footer-height, 48px);
        scroll-padding-block: var(--mobile-header-height, 63px) var(--mobile-footer-height, 48px);
      }
      body.ios-mobile.portal-page.mobile-menu-scroll-locked main { overflow-y: hidden; }
      body.ios-mobile.portal-page main:has(input:focus, textarea:focus, select:focus) {
        padding-bottom: calc(var(--mobile-footer-height, 48px) + 42vh);
      }
      body.ios-mobile.portal-page .site-footer {
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;
        flex: none;
      }
      body.ios-mobile.portal-page:has(.mobile-bottom-navigation) .site-footer {
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;
        flex: none;
      }
      body.portal-page > header,
      body.portal-page .site-footer {
        opacity: var(--mobile-chrome-opacity, 1);
        transition: none;
        will-change: transform, opacity;
      }
      body.portal-page > header {
        transform: translate3d(0, var(--mobile-header-scroll-offset, 0px), 0);
      }
      body.portal-page .site-footer {
        transform: translate3d(0, var(--mobile-footer-scroll-offset, 0px), 0);
      }
      body.portal-page .plan-garmin-sync-popup,
      body.portal-page .plan-update-progress-popup {
        top: calc(var(--mobile-header-height, 63px) + 8px);
        transform: translateX(-50%) translateY(var(--mobile-header-scroll-offset, 0px));
        will-change: transform;
      }
      body.portal-page:has(nav.mobile-menu-open) .plan-garmin-sync-popup,
      body.portal-page:has(nav.mobile-menu-open) .plan-update-progress-popup {
        top: var(--plan-garmin-sync-popup-top, 71px);
        transform: translateX(-50%);
      }
      body.portal-page.mobile-chrome-hidden > header,
      body.portal-page.mobile-chrome-hidden .site-footer {
        pointer-events: none;
      }
    }
    @media (max-width: 760px) and (prefers-color-scheme: dark) {
      body:not(.theme-light) { color-scheme: dark; }
      body:not(.theme-light).portal-page .account-garmin-auto-sync-form { border-color: rgba(255,255,255,.14); background: rgba(255,255,255,.06); }
      body:not(.theme-light).portal-page .account-garmin-auto-sync-label { color: rgba(238,247,239,.82); }
      body:not(.theme-light).portal-page .account-garmin-auto-sync-toggle input { border-color: rgba(255,255,255,.24); background: rgba(255,255,255,.16); }
      body:not(.theme-light).portal-page .account-garmin-auto-sync-toggle input::after { background: #eef7ef; box-shadow: 0 2px 7px rgba(0,0,0,.38); }
      body:not(.theme-light).portal-page .account-garmin-auto-sync-toggle input:checked { border-color: #c2e084; background: #c2e084; }
      body:not(.theme-light).portal-page .account-garmin-auto-sync-toggle input:checked::after { background: #102820; }
      body:not(.theme-light).portal-page .account-garmin-auto-sync-toggle input:focus-visible { outline-color: rgba(194,224,132,.72); }
      body:not(.theme-light).portal-page .detail-action-menu-popup { border-color: #425047; background: #202b25; box-shadow: 0 14px 30px rgba(0,0,0,.38); }
      body:not(.theme-light).portal-page .detail-action-menu-item { color: #edf4ef; }
      body:not(.theme-light).portal-page .detail-action-menu-item:focus-visible { background: #2d3d34; color: #ffffff; }
      body:not(.theme-light).portal-page .detail-action-menu-item .detail-action-icon { color: #9bd5ad; }
      body:not(.theme-light).portal-page .detail-action-menu-toggle { border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.08); color: #b7d9c3; }
      body:not(.theme-light).portal-page .detail-action-menu-toggle.is-disabled { color: #74867b; }
      body:not(.theme-light).portal-page .detail-action-menu-dots.is-active { color: #b7d9c3; }
      body:not(.theme-light).portal-page .detail-action-menu-dots.is-disabled { color: #74867b; }
      body:not(.theme-light).portal-page .detail-action-menu-toggle:focus-visible,
      body:not(.theme-light).portal-page .detail-action-menu[open] > .detail-action-menu-toggle { border-color: #536259; background: #2d3d34; color: #ffffff; }
      body:not(.theme-light).portal-page .profile-desktop-multiselect { border-color: rgba(194,224,132,.22); background: #10261f; color: #eef7ef; }
      body:not(.theme-light).portal-page .profile-desktop-multiselect-option::before { border-color: rgba(238,247,239,.48); background: rgba(255,255,255,.08); }
      body:not(.theme-light).portal-page .profile-desktop-multiselect-option:hover,
      body:not(.theme-light).portal-page .profile-desktop-multiselect-option.is-selected { background: rgba(194,224,132,.14); color: #eef7ef; }
      body:not(.theme-light).portal-page .profile-desktop-multiselect-option.is-selected::before { border-color: #c2e084; background: #c2e084; color: #10261f; }
      body.ios-mobile.portal-page:not(.theme-light) .profile-desktop-multiselect { border-color: rgba(194,224,132,.22); background: #10261f; color: #eef7ef; }
      body.ios-mobile.portal-page:not(.theme-light) .profile-desktop-multiselect-option::before { border-color: rgba(238,247,239,.48); background: rgba(255,255,255,.08); }
      body.ios-mobile.portal-page:not(.theme-light) .profile-desktop-multiselect-option:hover,
      body.ios-mobile.portal-page:not(.theme-light) .profile-desktop-multiselect-option.is-selected { background: rgba(194,224,132,.14); color: #eef7ef; }
      body.ios-mobile.portal-page:not(.theme-light) .profile-desktop-multiselect-option.is-selected::before { border-color: #c2e084; background: #c2e084; color: #10261f; }
      body.android-mobile.portal-page:not(.theme-light) .main-inner select {
        color-scheme: dark;
      }
      body.android-mobile.portal-page:not(.theme-light) .main-inner select option,
      body.android-mobile.portal-page:not(.theme-light) .main-inner select optgroup {
        background: #10261f;
        color: #eef7ef;
      }
      body.android-mobile.portal-page:not(.theme-light) .main-inner select option:checked {
        background: #286a57;
        color: #ffffff;
      }
      body.android-mobile.portal-page:not(.theme-light) .main-inner select optgroup {
        color: #c2e084;
      }
      body.android-mobile.portal-page:not(.theme-light) .goal-card.context-row-past .android-select-trigger,
      body.android-mobile.portal-page:not(.theme-light) .event-card.context-row-past .android-select-trigger {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.06);
        color: rgba(238,247,239,.72);
      }
      body.android-mobile.portal-page:not(.theme-light) .android-select-overlay {
        background: rgba(1, 8, 6, .72);
      }
      body.android-mobile.portal-page:not(.theme-light) .android-select-panel {
        --android-select-scroll-surface: #10261f;
        --android-select-scroll-surface-clear: rgba(16,38,31,0);
        --android-select-scroll-thumb: rgba(194,224,132,.78);
        border-color: rgba(194,224,132,.22);
        background-color: #10261f;
        color: #eef7ef;
        box-shadow: 0 18px 44px rgba(0,0,0,.52);
      }
      body.android-mobile.portal-page:not(.theme-light) .android-select-group {
        color: #c2e084;
      }
      body.android-mobile.portal-page:not(.theme-light) .android-select-option {
        border-top-color: rgba(255,255,255,.1);
        background: transparent;
        color: #eef7ef;
      }
      body.android-mobile.portal-page:not(.theme-light) .android-select-option.is-selected {
        background: transparent;
      }
      body.android-mobile.portal-page:not(.theme-light) .android-select-option::after {
        border-color: rgba(238,247,239,.48);
      }
      body.android-mobile.portal-page:not(.theme-light) .android-select-option.is-selected::after {
        border-color: #c2e084;
        background: radial-gradient(circle at center, #c2e084 0 42%, transparent 46%);
      }
      body:not(.theme-light).portal-page {
        color: #eef7ef;
        background:
          linear-gradient(180deg, #071913 0%, #102820 52%, #241f18 100%);
        background-color: #071913;
      }
      body:not(.theme-light).portal-page header {
        border-bottom-color: rgba(194,224,132,.16);
        background: rgba(6,24,18,.96);
        box-shadow: 0 12px 28px rgba(0,0,0,.35);
      }
      body:not(.theme-light).portal-page .mobile-page-title,
      body:not(.theme-light).portal-page .header-account,
      body:not(.theme-light).portal-page .site-footer {
        color: rgba(255,255,255,.82);
      }
      body:not(.theme-light).portal-page .site-footer {
        border-top-color: rgba(194,224,132,.16);
        background: rgba(6,24,18,.96);
        box-shadow: 0 -12px 28px rgba(0,0,0,.35), 0 3px 0 rgba(6,24,18,.96);
      }
      body:not(.theme-light).portal-page .language-switcher,
      body:not(.theme-light).portal-page .theme-switcher,
      body:not(.theme-light).portal-page .mobile-menu-toggle,
      body:not(.theme-light).portal-page nav a,
      body:not(.theme-light).portal-page nav button {
        border-color: rgba(255,255,255,.2);
        background-color: rgba(255,255,255,.06);
      }
      body:not(.theme-light).portal-page .language-switcher button,
      body:not(.theme-light).portal-page .theme-switcher button {
        color: rgba(255,255,255,.72);
      }
      body:not(.theme-light).portal-page .language-switcher button.is-active,
      body:not(.theme-light).portal-page .theme-switcher button.is-active,
      body:not(.theme-light).portal-page nav a.active {
        background: rgba(194,224,132,.18);
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .panel,
      body:not(.theme-light).portal-page .calendar-panel,
      body:not(.theme-light).portal-page .selected-panel,
      body:not(.theme-light).portal-page .plan-update-card,
      body:not(.theme-light).portal-page .plan-review-card,
      body:not(.theme-light).portal-page .plan-update-result-card,
      body:not(.theme-light).portal-page .plan-chat-history,
      body:not(.theme-light).portal-page .plan-chat-bubble,
      body:not(.theme-light).portal-page .goal-card,
      body:not(.theme-light).portal-page .event-card,
      body:not(.theme-light).portal-page .filter-bar,
      body:not(.theme-light).portal-page .goal-filter-bar,
      body:not(.theme-light).portal-page .event-filter-bar,
      body:not(.theme-light).portal-page .account-card,
      body:not(.theme-light).portal-page .garmin-panel,
      body:not(.theme-light).portal-page .garmin-info-card,
      body:not(.theme-light).portal-page .profile-section,
      body:not(.theme-light).portal-page .profile-field,
      body:not(.theme-light).portal-page .profile-zone-group,
      body:not(.theme-light).portal-page .summary-item,
      body:not(.theme-light).portal-page .insight-score,
      body:not(.theme-light).portal-page .insight-metric,
      body:not(.theme-light).portal-page .recent-activity-metric,
      body:not(.theme-light).portal-page .nutrition-metric,
      body:not(.theme-light).portal-page .account-detail-row,
      body:not(.theme-light).portal-page .account-ai-consent-form,
      body:not(.theme-light).portal-page .account-preference-row,
      body:not(.theme-light).portal-page .workout-detail,
      body:not(.theme-light).portal-page .day-row,
      body:not(.theme-light).portal-page .calendar-day,
      body:not(.theme-light).portal-page .goal-summary,
      body:not(.theme-light).portal-page .event-summary,
      body:not(.theme-light).portal-page .goal-editor,
      body:not(.theme-light).portal-page .event-editor {
        border-color: rgba(255,255,255,.13);
        background-color: rgba(18,37,30,.9);
        color: #eef7ef;
        box-shadow: 0 12px 28px rgba(0,0,0,.22);
      }
      body:not(.theme-light).portal-page .today-training,
      body:not(.theme-light).portal-page .daily-insights,
      body:not(.theme-light).portal-page .race-readiness,
      body:not(.theme-light).portal-page .recent-activity,
      body:not(.theme-light).portal-page .nutrition-weight,
      body:not(.theme-light).portal-page .summary-panel,
      body:not(.theme-light).portal-page .account-hero,
      body:not(.theme-light).portal-page .garmin-hero,
      body:not(.theme-light).portal-page .account-card-access,
      body:not(.theme-light).portal-page .account-card-garmin,
      body:not(.theme-light).portal-page .account-card-ai-consent,
      body:not(.theme-light).portal-page .account-card-gpt,
      body:not(.theme-light).portal-page .account-card-coach,
      body:not(.theme-light).portal-page .account-card-preferences {
        background:
          linear-gradient(145deg, rgba(23,48,38,.94) 0%, rgba(13,33,27,.94) 56%, rgba(43,34,24,.9) 100%);
      }
      body:not(.theme-light).portal-page .account-ai-consent-copy { border-top-color: rgba(255,255,255,.13); }
      body:not(.theme-light).portal-page .account-ai-consent-copy p { color: #ffffff; }
      body:not(.theme-light).portal-page .account-ai-consent-copy small { color: rgba(238,247,239,.7); }
      body:not(.theme-light).portal-page .training-window-day { border-color: rgba(194,224,132,.16); background: rgba(255,255,255,.07); color: #eef7ef; box-shadow: inset 0 1px 0 rgba(255,255,255,.05); }
      body:not(.theme-light).portal-page .training-window-day.is-past { border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.035); color: rgba(238,247,239,.56); }
      body:not(.theme-light).portal-page .training-window-day.is-today { border-color: rgba(194,224,132,.72); background: linear-gradient(180deg, rgba(194,224,132,.2), rgba(194,224,132,.1)); box-shadow: 0 10px 24px rgba(0,0,0,.28), inset 0 0 0 1px rgba(194,224,132,.1); }
      body:not(.theme-light).portal-page .training-window-date time strong,
      body:not(.theme-light).portal-page .training-window-workout-title { color: #ffffff; }
      body:not(.theme-light).portal-page .training-window-day.is-past .training-window-date time strong,
      body:not(.theme-light).portal-page .training-window-day.is-past .training-window-workout-title,
      body:not(.theme-light).portal-page .training-window-weekday,
      body:not(.theme-light).portal-page .training-window-date time span,
      body:not(.theme-light).portal-page .training-window-sport { color: rgba(238,247,239,.6); }
      body:not(.theme-light).portal-page .training-window-icon-shell { border-color: rgba(194,224,132,.22); background: rgba(194,224,132,.1); color: #dff0a9; box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
      body:not(.theme-light).portal-page .training-window-day.is-past .training-window-icon-shell { border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.055); color: rgba(238,247,239,.52); }
      body:not(.theme-light).portal-page .training-window-day.is-today .training-window-icon-shell { border-color: #c2e084; background: #c2e084; color: #102820; }
      body:not(.theme-light).portal-page .training-window-metric { border-color: rgba(194,224,132,.22); background: rgba(194,224,132,.12); color: #dff0a9; }
      body:not(.theme-light).portal-page .training-window-day.is-past .training-window-metric { border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.05); color: rgba(238,247,239,.58); }
      body:not(.theme-light).portal-page .training-window-day.is-today .training-window-metric { border-color: rgba(194,224,132,.36); background: rgba(255,255,255,.1); color: #efffc5; }
      body:not(.theme-light).portal-page .training-window-more { border-color: #173329; }
      body:not(.theme-light).portal-page .training-window-record > span { color: #4b3900; }
      body:not(.theme-light).portal-page .training-window-edge-hint.is-left { background: linear-gradient(90deg, rgba(17,38,30,.94), rgba(17,38,30,0)); }
      body:not(.theme-light).portal-page .training-window-edge-hint.is-right { background: linear-gradient(270deg, rgba(29,34,25,.94), rgba(29,34,25,0)); }
      body:not(.theme-light).portal-page .training-window-edge-hint::after { border-color: #c2e084; filter: drop-shadow(0 1px 2px rgba(0,0,0,.72)); }
      body:not(.theme-light).portal-page .guide-panel,
      body:not(.theme-light).portal-page .wizard-track,
      body:not(.theme-light).portal-page .wizard-optional-panel,
      body:not(.theme-light).portal-page .wizard-step,
      body:not(.theme-light).portal-page .wizard-next,
      body:not(.theme-light).portal-page .recent-activity-top,
      body:not(.theme-light).portal-page .insight-loading,
      body:not(.theme-light).portal-page .insight-coach-comment,
      body:not(.theme-light).portal-page .insight-plan-update,
      body:not(.theme-light).portal-page .nutrition-goal-note,
      body:not(.theme-light).portal-page .nutrition-macro-panel,
      body:not(.theme-light).portal-page .recent-activity-feedback,
      body:not(.theme-light).portal-page .race-empty,
      body:not(.theme-light).portal-page .goal-examples,
      body:not(.theme-light).portal-page .goals-empty,
      body:not(.theme-light).portal-page .events-empty {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.06);
        color: #eef7ef;
      }
      body:not(.theme-light).portal-page h2,
      body:not(.theme-light).portal-page h3,
      body:not(.theme-light).portal-page strong,
      body:not(.theme-light).portal-page .main-inner > h2,
      body:not(.theme-light).portal-page .dashboard-widget .insight-heading h2,
      body:not(.theme-light).portal-page .dashboard-widget .widget-heading h2,
      body:not(.theme-light).portal-page .dashboard-widget .wizard-header h2,
      body:not(.theme-light).portal-page .goal-title-line strong,
      body:not(.theme-light).portal-page .event-title-line strong,
      body:not(.theme-light).portal-page .account-hero h2,
      body:not(.theme-light).portal-page .billing-plan-name h2,
      body:not(.theme-light).portal-page .billing-plan-primary-price strong,
      body:not(.theme-light).portal-page .race-event h3,
      body:not(.theme-light).portal-page .recent-activity-title h3,
      body:not(.theme-light).portal-page .detail-heading h3,
      body:not(.theme-light).portal-page .day-number,
      body:not(.theme-light).portal-page .date-lockup strong {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .event-title-icon {
        color: #ffd88d;
      }
      body:not(.theme-light).portal-page .muted,
      body:not(.theme-light).portal-page label,
      body:not(.theme-light).portal-page th,
      body:not(.theme-light).portal-page .guide-eyebrow,
      body:not(.theme-light).portal-page .guide-subtitle,
      body:not(.theme-light).portal-page .widget-eyebrow,
      body:not(.theme-light).portal-page .insight-eyebrow,
      body:not(.theme-light).portal-page .recent-activity-date,
      body:not(.theme-light).portal-page .wizard-eyebrow,
      body:not(.theme-light).portal-page .wizard-header p:not(.wizard-eyebrow),
      body:not(.theme-light).portal-page .profile-section-note,
      body:not(.theme-light).portal-page .profile-description,
      body:not(.theme-light).portal-page .profile-examples,
      body:not(.theme-light).portal-page .inline-label,
      body:not(.theme-light).portal-page .goal-meta-line,
      body:not(.theme-light).portal-page .event-meta-line,
      body:not(.theme-light).portal-page .selected-title span,
      body:not(.theme-light).portal-page .calendar-title > span,
      body:not(.theme-light).portal-page .plan-review-note,
      body:not(.theme-light).portal-page .plan-review-meta,
      body:not(.theme-light).portal-page .plan-chat-empty,
      body:not(.theme-light).portal-page .plan-chat-message-meta,
      body:not(.theme-light).portal-page .legend,
      body:not(.theme-light).portal-page .detail-kicker,
      body:not(.theme-light).portal-page .detail-panel-kicker,
      body:not(.theme-light).portal-page .detail-item strong,
      body:not(.theme-light).portal-page .detail-empty,
      body:not(.theme-light).portal-page .account-panel-description,
      body:not(.theme-light).portal-page .account-hero-copy > p:last-child,
      body:not(.theme-light).portal-page .account-detail-row span,
      body:not(.theme-light).portal-page .account-preference-label,
      body:not(.theme-light).portal-page .garmin-status-row span,
      body:not(.theme-light).portal-page .account-trial-note {
        color: rgba(238,247,239,.68);
      }
      body:not(.theme-light).portal-page .plan-guidance textarea::placeholder,
      body:not(.theme-light).portal-page .plan-review-dialog textarea::placeholder {
        color: rgba(238,247,239,.44);
        opacity: 1;
      }
      body:not(.theme-light).portal-page .plan-chat-history {
        --plan-chat-scroll-surface: rgba(18,37,30,.9);
        --plan-chat-scroll-surface-clear: rgba(18,37,30,0);
        --plan-chat-scroll-thumb: rgba(194,224,132,.62);
        scrollbar-color: rgba(194,224,132,.62) transparent;
      }
      body:not(.theme-light).portal-page .plan-chat-history::-webkit-scrollbar-thumb {
        border-color: rgba(18,37,30,.9);
        background: rgba(194,224,132,.62);
      }
      body:not(.theme-light).portal-page .plan-chat-history.is-scrollable {
        background:
          linear-gradient(rgba(18,37,30,.94) 30%, rgba(18,37,30,0)) top,
          linear-gradient(rgba(18,37,30,0), rgba(18,37,30,.94) 70%) bottom,
          radial-gradient(farthest-side at 50% 0, rgba(0,0,0,.42), rgba(0,0,0,0)) top,
          radial-gradient(farthest-side at 50% 100%, rgba(0,0,0,.38), rgba(0,0,0,0)) bottom;
        background-color: rgba(18,37,30,.9);
        background-repeat: no-repeat;
        background-size: 100% 18px, 100% 18px, 100% 10px, 100% 10px;
        background-attachment: local, local, scroll, scroll;
      }
      body:not(.theme-light).portal-page .plan-chat-message-user .plan-chat-bubble {
        border-color: rgba(194,224,132,.25);
        background: rgba(194,224,132,.12);
      }
      body:not(.theme-light).portal-page .plan-chat-message-coach.is-updated .plan-chat-bubble {
        border-color: rgba(228,205,133,.34);
        background: rgba(228,205,133,.12);
      }
      body:not(.theme-light).portal-page .plan-chat-conversation-divider { color: rgba(238,247,239,.62); }
      body:not(.theme-light).portal-page .plan-chat-conversation-divider > span { background: rgba(255,255,255,.16); }
      body:not(.theme-light).portal-page .coach-plan-update-proposal,
      body:not(.theme-light).portal-page .plan-review-menu {
        border-color: rgba(255,255,255,.16);
        background: #132a22;
        color: #eef7ef;
      }
      body:not(.theme-light).portal-page .coach-plan-update-proposal.is-unused {
        background: rgba(255,255,255,.05);
      }
      body:not(.theme-light).portal-page .plan-review-menu [role="menuitem"] { color: #eef7ef; }
      body:not(.theme-light).portal-page .plan-review-menu [role="menuitem"]:is(:hover, :focus-visible) { background: rgba(194,224,132,.12); color: #dff0a9; }
      body:not(.theme-light).portal-page .plan-review-menu-toggle { border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.06); color: #eef7ef; }
      body:not(.theme-light).portal-page a:not(.button),
      body:not(.theme-light).portal-page .link-button,
      body:not(.theme-light).portal-page .wizard-step-link {
        color: #c2e084;
      }
      body:not(.theme-light).portal-page .dashboard-add-widget summary {
        color: #c2e084;
      }
      body:not(.theme-light).portal-page .dashboard-add-widget-menu {
        border-color: rgba(194,224,132,.22);
        background: rgba(7,25,19,.98);
        color: #eef7ef;
        box-shadow: 0 16px 32px rgba(0,0,0,.42);
      }
      body:not(.theme-light).portal-page .dashboard-add-widget-menu .link-button {
        display: block;
        width: 100%;
        padding: 7px 9px;
        border-radius: 6px;
        background: transparent;
        color: #eef7ef;
        text-decoration: none;
        box-shadow: none;
      }
      body:not(.theme-light).portal-page .dashboard-add-widget-menu .link-button:hover,
      body:not(.theme-light).portal-page .dashboard-add-widget-menu .link-button:focus {
        background: rgba(194,224,132,.12);
        color: #ffffff;
      }
      body:not(.theme-light).portal-page input,
      body:not(.theme-light).portal-page textarea,
      body:not(.theme-light).portal-page select,
      body:not(.theme-light).portal-page .calendar-selects select {
        border-color: rgba(255,255,255,.18);
        background: rgba(255,255,255,.08);
        color: #ffffff;
      }
      body:not(.theme-light).portal-page input::placeholder,
      body:not(.theme-light).portal-page textarea::placeholder {
        color: rgba(255,255,255,.44);
      }
      body:not(.theme-light).portal-page input:focus,
      body:not(.theme-light).portal-page textarea:focus,
      body:not(.theme-light).portal-page select:focus {
        border-color: rgba(194,224,132,.7);
        outline: 2px solid rgba(194,224,132,.16);
      }
      body:not(.theme-light).portal-page .account-hero { border-color: rgba(194,224,132,.22); }
      body:not(.theme-light).portal-page .garmin-hero { border-color: rgba(139,190,230,.24); }
      body:not(.theme-light).portal-page .garmin-form-panel {
        border-color: rgba(139,190,230,.24);
        box-shadow: 0 12px 28px rgba(0,0,0,.22);
      }
      body:not(.theme-light).portal-page .garmin-paid-required {
        border-color: rgba(245,190,92,.34);
        background: rgba(120,72,10,.24);
        box-shadow: 0 12px 28px rgba(0,0,0,.18);
      }
      body:not(.theme-light).portal-page .garmin-paid-required-copy h3 { color: #ffd58a; }
      body:not(.theme-light).portal-page .garmin-paid-required-copy p { color: rgba(255,225,169,.82); }
      body:not(.theme-light).portal-page .garmin-security-note,
      body:not(.theme-light).portal-page .garmin-status-row,
      body:not(.theme-light).portal-page .garmin-info-card,
      body:not(.theme-light).portal-page .garmin-info-card.is-blue {
        border-color: rgba(194,224,132,.16);
        background: rgba(255,255,255,.075);
        color: #eef7ef;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
      }
      body:not(.theme-light).portal-page .garmin-field input {
        border-color: rgba(238,247,239,.22);
        background: rgba(255,255,255,.1);
      }
      body:not(.theme-light).portal-page .garmin-field input:focus {
        border-color: rgba(139,190,230,.78);
        outline-color: rgba(139,190,230,.18);
      }
      body:not(.theme-light).portal-page .garmin-page .account-eyebrow,
      body:not(.theme-light).portal-page .garmin-field label,
      body:not(.theme-light).portal-page .garmin-status-row span {
        color: rgba(238,247,239,.78);
      }
      body:not(.theme-light).portal-page .garmin-hero p,
      body:not(.theme-light).portal-page .garmin-panel p,
      body:not(.theme-light).portal-page .garmin-info-card p,
      body:not(.theme-light).portal-page .garmin-security-note span,
      body:not(.theme-light).portal-page .garmin-benefits li {
        color: rgba(238,247,239,.76);
      }
      body:not(.theme-light).portal-page .garmin-security-note strong,
      body:not(.theme-light).portal-page .garmin-status-row strong,
      body:not(.theme-light).portal-page .garmin-info-card h3 {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .garmin-benefits li::before {
        background: #2f7f6b;
        box-shadow: 0 3px 10px rgba(47,127,107,.28);
      }
      body:not(.theme-light).portal-page table,
      body:not(.theme-light).portal-page .goals-table tbody tr,
      body:not(.theme-light).portal-page .events-table tbody tr,
      body:not(.theme-light).portal-page .plan-table tbody tr,
      body:not(.theme-light).portal-page .goals-table td,
      body:not(.theme-light).portal-page .events-table td,
      body:not(.theme-light).portal-page .plan-table td,
      body:not(.theme-light).portal-page th,
      body:not(.theme-light).portal-page td {
        border-color: rgba(255,255,255,.12);
        background-color: rgba(18,37,30,.84);
        color: #eef7ef;
      }
      body:not(.theme-light).portal-page .message {
        background: rgba(255,255,255,.08);
        color: rgba(255,255,255,.88);
      }
      body:not(.theme-light).portal-page .message.message-warning {
        background: rgba(120,72,10,.24);
        color: #ffd58a;
      }
      body:not(.theme-light).portal-page .secondary,
      body:not(.theme-light).portal-page .icon-button,
      body:not(.theme-light).portal-page .draft-action-button,
      body:not(.theme-light).portal-page .mobile-filter-toggle.link-button,
      body:not(.theme-light).portal-page .plan-comments-toggle,
      body:not(.theme-light).portal-page .plan-review-close,
      body:not(.theme-light).portal-page .calendar-nav .today-button,
      body:not(.theme-light).portal-page .week-arrow-row-mobile .week-arrow,
      body:not(.theme-light).portal-page .profile-section-accordion,
      body:not(.theme-light).portal-page .mobile-day-toggle-icon,
      body:not(.theme-light).portal-page .goal-summary-toggle-icon,
      body:not(.theme-light).portal-page .event-summary-toggle-icon,
      body:not(.theme-light).portal-page .detail-tab-list {
        border-color: rgba(255,255,255,.16);
        background: rgba(255,255,255,.08);
        color: #c2e084;
      }
      body:not(.theme-light).portal-page .goal-filter-bar .filter-actions .filter-submit-button,
      body:not(.theme-light).portal-page .event-filter-bar .filter-actions .filter-submit-button {
        border-color: #286a57;
        background: #286a57;
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .goal-filter-bar .filter-actions .filter-submit-button:hover,
      body:not(.theme-light).portal-page .event-filter-bar .filter-actions .filter-submit-button:hover {
        border-color: #1f4f41;
        background: #1f4f41;
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .goal-filter-bar .filter-actions .clear-filter-button,
      body:not(.theme-light).portal-page .event-filter-bar .filter-actions .clear-filter-button {
        border-color: rgba(255,255,255,.16);
        background: rgba(255,255,255,.08);
        color: rgba(238,247,239,.72);
      }
      body:not(.theme-light).portal-page .goal-filter-bar .filter-actions .clear-filter-button:hover,
      body:not(.theme-light).portal-page .event-filter-bar .filter-actions .clear-filter-button:hover {
        background: rgba(255,255,255,.14);
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .detail-tab-input-plan:checked ~ .detail-heading .detail-tab-plan,
      body:not(.theme-light).portal-page .detail-tab-input-execution:checked ~ .detail-heading .detail-tab-execution,
      body:not(.theme-light).portal-page .expanded-workout .detail-tab-input-plan:checked ~ .detail-heading .detail-tab-plan,
      body:not(.theme-light).portal-page .expanded-workout .detail-tab-input-execution:checked ~ .detail-heading .detail-tab-execution {
        background: rgba(194,224,132,.16);
        color: #ffffff;
        box-shadow: inset 0 0 0 1px rgba(194,224,132,.38);
      }
      @supports selector(.workout-detail:has(.detail-tab-input:checked)) {
        body:not(.theme-light).portal-page .workout-detail.has-matched-tabs:not(:has(.detail-tab-input:checked)) .detail-tab-execution {
          background: rgba(194,224,132,.16);
          color: #ffffff;
          box-shadow: inset 0 0 0 1px rgba(194,224,132,.38);
        }
      }
      body:not(.theme-light).portal-page .plan-update-card,
      body:not(.theme-light).portal-page .plan-review-card,
      body:not(.theme-light).portal-page .plan-update-result-card,
      body:not(.theme-light).portal-page .calendar-panel,
      body:not(.theme-light).portal-page .selected-panel {
        border-color: rgba(194,224,132,.14);
        background: linear-gradient(145deg, rgba(19,43,34,.96) 0%, rgba(10,31,25,.96) 62%, rgba(34,31,23,.92) 100%);
        box-shadow: 0 14px 34px rgba(0,0,0,.28);
      }
      body:not(.theme-light).portal-page .plan-update-result-header { border-bottom-color: rgba(194,224,132,.14); }
      body:not(.theme-light).portal-page .plan-update-result-header .plan-coach-eyebrow { color: #c2e084; }
      body:not(.theme-light).portal-page .plan-update-result-header h2 { color: #ffffff; }
      body:not(.theme-light).portal-page .plan-update-result-text { color: rgba(238,247,239,.72); }
      body:not(.theme-light).portal-page .plan-comments-toggle,
      body:not(.theme-light).portal-page .calendar-nav .today-button,
      body:not(.theme-light).portal-page .week-arrow-row-mobile .week-arrow,
      body:not(.theme-light).portal-page .week-arrow {
        border-color: rgba(194,224,132,.2);
        background: rgba(255,255,255,.07);
        color: #c2e084;
        box-shadow: none;
      }
      body:not(.theme-light).portal-page .calendar-legend-toggle {
        border-color: rgba(238,247,239,.2);
        background: rgba(238,247,239,.08);
        color: rgba(238,247,239,.82);
        box-shadow: none;
      }
      body:not(.theme-light).portal-page .plan-comments-toggle:hover,
      body:not(.theme-light).portal-page .plan-comments-toggle:focus,
      body:not(.theme-light).portal-page .calendar-nav .today-button:hover,
      body:not(.theme-light).portal-page .calendar-nav .today-button:focus,
      body:not(.theme-light).portal-page .week-arrow:hover,
      body:not(.theme-light).portal-page .week-arrow:focus {
        border-color: rgba(194,224,132,.38);
        background: rgba(194,224,132,.12);
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .calendar-nav .today-button {
        border-color: #2f7f6b;
        background: #2f7f6b;
        color: #ffffff;
        box-shadow: 0 6px 14px rgba(47,127,107,.22);
      }
      body:not(.theme-light).portal-page .calendar-nav .today-button:hover,
      body:not(.theme-light).portal-page .calendar-nav .today-button:focus {
        border-color: #286a57;
        background: #286a57;
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .calendar-legend-toggle:hover,
      body:not(.theme-light).portal-page .calendar-legend-toggle:focus {
        border-color: rgba(238,247,239,.32);
        background: rgba(238,247,239,.14);
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .plan-review-action,
      body:not(.theme-light).portal-page .detail-complete-button {
        border-color: rgba(194,224,132,.58);
        background: #c2e084;
        color: #102820;
        box-shadow: none;
      }
      body:not(.theme-light).portal-page .plan-review-submit[aria-disabled="true"],
      body:not(.theme-light).portal-page .plan-review-submit:disabled,
      body:not(.theme-light).portal-page .plan-review-send[aria-disabled="true"],
      body:not(.theme-light).portal-page .plan-review-send:disabled,
      body:not(.theme-light).portal-page .plan-update-retry:disabled {
        border-color: rgba(238,247,239,.14);
        background: rgba(238,247,239,.08);
        color: rgba(238,247,239,.42);
      }
      body:not(.theme-light).portal-page .plan-refresh-status,
      body:not(.theme-light).portal-page .plan-unavailable,
      body:not(.theme-light).portal-page .plan-progress {
        border-color: rgba(194,224,132,.2);
        background: rgba(194,224,132,.08);
        color: #eef7ef;
      }
      body:not(.theme-light).portal-page .plan-coach-eyebrow,
      body:not(.theme-light).portal-page .plan-guidance-meta,
      body:not(.theme-light).portal-page .plan-last-updated,
      body:not(.theme-light).portal-page .plan-progress-percent,
      body:not(.theme-light).portal-page .calendar-last-updated,
      body:not(.theme-light).portal-page .selected-empty {
        color: rgba(238,247,239,.68);
      }
      body:not(.theme-light).portal-page .plan-progress-label {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .plan-unavailable-action {
        border-color: rgba(194,224,132,.58);
        background: #c2e084;
        color: #102820;
        box-shadow: none;
      }
      body:not(.theme-light).portal-page .plan-progress-track {
        background: rgba(255,255,255,.1);
      }
      body:not(.theme-light).portal-page .plan-progress-fill {
        background: #c2e084;
      }
      body:not(.theme-light).portal-page .plan-garmin-sync-popup-inner {
        border-color: rgba(194,224,132,.72);
        background: rgba(19,43,34,.96);
        color: #eef7ef;
        box-shadow: 0 16px 36px rgba(0,0,0,.42), 0 0 0 3px rgba(194,224,132,.14);
      }
      body:not(.theme-light).portal-page .plan-update-progress-popup-inner {
        border-color: rgba(194,224,132,.72);
        background: rgba(19,43,34,.96);
        color: #eef7ef;
        box-shadow: 0 16px 36px rgba(0,0,0,.42), 0 0 0 3px rgba(194,224,132,.14);
      }
      body:not(.theme-light).portal-page .plan-update-progress-popup.is-error .plan-update-progress-popup-inner {
        border-color: #f59e0b;
        background: #352510;
        box-shadow: 0 16px 36px rgba(0,0,0,.42), 0 0 0 3px rgba(245,158,11,.18);
      }
      body:not(.theme-light).portal-page .plan-update-progress-popup.is-error .plan-coach-eyebrow { color: #fbbf24; }
      body:not(.theme-light).portal-page .plan-chat-message.is-error .plan-chat-bubble {
        border-color: rgba(245,158,11,.72);
        background: rgba(120,72,10,.24);
      }
      body:not(.theme-light).portal-page .plan-update-progress-popup-label,
      body:not(.theme-light).portal-page .plan-garmin-sync-popup-label,
      body:not(.theme-light).portal-page .plan-update-progress-popup-message h2 {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .plan-update-progress-popup-percent,
      body:not(.theme-light).portal-page .plan-garmin-sync-popup-percent,
      body:not(.theme-light).portal-page .plan-update-progress-popup-message p:last-child {
        color: rgba(238,247,239,.68);
      }
      body:not(.theme-light).portal-page .plan-timeline-progress-track { background: rgba(255,255,255,.1); }
      body:not(.theme-light).portal-page .plan-timeline-progress-fill { background: #c2e084; }
      body:not(.theme-light).portal-page .plan-garmin-sync-spinner {
        border-color: rgba(194,224,132,.24);
        border-top-color: #c2e084;
      }
      body:not(.theme-light).portal-page .plan-phase-overlay {
        border-color: rgba(194,224,132,.3);
        background: rgba(17,35,26,.32);
        color: #eef7ef;
        box-shadow: 0 18px 46px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.08);
      }
      body:not(.theme-light).portal-page .mobile-plan-phase-restore-layer { border-color: rgba(255,255,255,.18); background: rgba(35,53,43,.98); }
      body:not(.theme-light).portal-page .plan-phase-overlay-card {
        border-color: rgba(255,255,255,.14);
        background: rgba(35,53,43,.38);
        box-shadow: 0 10px 28px rgba(0,0,0,.24);
      }
      body:not(.theme-light).portal-page .plan-phase-overlay.is-mobile .plan-phase-overlay-card {
        background: rgba(35,53,43,.82);
      }
      body:not(.theme-light).portal-page .plan-phase-overlay-card h2 { color: #f1f7f2; }
      body:not(.theme-light).portal-page .plan-phase-overlay-eyebrow,
      body:not(.theme-light).portal-page .plan-phase-overlay-card h3 { color: #b7c8bd; }
      body:not(.theme-light).portal-page .plan-phase-overlay[data-roadmap-phase-type] .plan-phase-overlay-eyebrow { color: #e9a25f; }
      body:not(.theme-light).portal-page .plan-phase-overlay-card h3.season-roadmap-phase-label-purpose { color: #91e1d7; }
      body:not(.theme-light).portal-page .plan-phase-overlay-card h3.season-roadmap-phase-label-direction { color: #b9e7ff; }
      body:not(.theme-light).portal-page .plan-phase-overlay-card h3.season-roadmap-phase-label-themes { color: #ffd08c; }
      body:not(.theme-light).portal-page .plan-phase-overlay-week {
        border-color: rgba(194,224,132,.28);
        background: rgba(255,255,255,.08);
        color: #c2e084;
      }
      body:not(.theme-light).portal-page .plan-phase-overlay-week span,
      body:not(.theme-light).portal-page .plan-phase-overlay-card p { color: #d6e2d9; }
      body:not(.theme-light).portal-page .plan-phase-overlay-summary-grid > section {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.055);
      }
      body:not(.theme-light).portal-page .plan-phase-overlay-volume { color: #b7c8bd !important; }
      body:not(.theme-light).portal-page .plan-phase-overlay .season-roadmap-source-chip {
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.08);
        color: #e3ece5;
      }
      body:not(.theme-light).portal-page .plan-phase-overlay-themes .season-roadmap-theme-pill { --roadmap-theme-background: rgba(170,182,176,.13); --roadmap-theme-border: rgba(170,182,176,.36); --roadmap-theme-ink: #d7ded9; }
      body:not(.theme-light).portal-page .plan-phase-overlay-themes .season-roadmap-theme-pill-endurance { --roadmap-theme-background: rgba(93,194,255,.17); --roadmap-theme-border: rgba(93,194,255,.46); --roadmap-theme-ink: #b9e7ff; }
      body:not(.theme-light).portal-page .plan-phase-overlay-themes .season-roadmap-theme-pill-strength { --roadmap-theme-background: rgba(177,139,230,.18); --roadmap-theme-border: rgba(192,159,237,.48); --roadmap-theme-ink: #d8bef8; }
      body:not(.theme-light).portal-page .plan-phase-overlay-themes .season-roadmap-theme-pill-recovery { --roadmap-theme-background: rgba(68,200,182,.17); --roadmap-theme-border: rgba(104,216,200,.46); --roadmap-theme-ink: #91e1d7; }
      body:not(.theme-light).portal-page .plan-phase-overlay-themes .season-roadmap-theme-pill-race { --roadmap-theme-background: rgba(255,105,95,.18); --roadmap-theme-border: rgba(255,128,119,.5); --roadmap-theme-ink: #ffb4ad; }
      body:not(.theme-light).portal-page .plan-phase-overlay-themes .season-roadmap-theme-pill-fueling { --roadmap-theme-background: rgba(255,174,64,.18); --roadmap-theme-border: rgba(255,190,100,.5); --roadmap-theme-ink: #ffd08c; }
      body:not(.theme-light).portal-page .plan-phase-overlay-themes .season-roadmap-theme-pill-technique { --roadmap-theme-background: rgba(116,235,164,.17); --roadmap-theme-border: rgba(116,235,164,.46); --roadmap-theme-ink: #a7f3c5; }
      body:not(.theme-light).portal-page .plan-phase-overlay-roadmap-button {
        border-color: #c2e084;
        background: #c2e084;
        color: #173326 !important;
      }
      body:not(.theme-light).portal-page .plan-phase-overlay-roadmap-button:hover,
      body:not(.theme-light).portal-page .plan-phase-overlay-roadmap-button:focus {
        border-color: #d6eea8;
        background: #d6eea8;
        color: #10261b !important;
      }
      body:not(.theme-light).portal-page .calendar-day,
      body:not(.theme-light).portal-page .day-row {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.045);
        box-shadow: 0 4px 12px rgba(0,0,0,.22);
      }
      body:not(.theme-light).portal-page .calendar-day.has-plan,
      body:not(.theme-light).portal-page .day-row.has-plan {
        background: rgba(255,255,255,.065);
      }
      body:not(.theme-light).portal-page .calendar-day.is-today,
      body:not(.theme-light).portal-page .day-row.is-today {
        border-color: rgba(194,224,132,.24);
        background: rgba(194,224,132,.08);
      }
      body:not(.theme-light).portal-page .calendar-day.is-selected,
      body:not(.theme-light).portal-page .day-row.is-selected,
      body:not(.theme-light).portal-page .calendar-day.is-today.is-selected,
      body:not(.theme-light).portal-page .day-row.is-today.is-selected,
      body:not(.theme-light).portal-page .day-row.is-collapsed-selected,
      body:not(.theme-light).portal-page .day-row.is-today.is-collapsed-selected {
        border-width: 2px;
        border-color: rgba(139,190,230,.5);
        background: rgba(139,190,230,.1);
        box-shadow: 0 4px 12px rgba(0,0,0,.22);
      }
      body:not(.theme-light).portal-page .day-row.is-selected:not(.is-switching-away)::after {
        border-color: rgba(139,190,230,.5);
        box-shadow: none;
      }
      body:not(.theme-light).portal-page .day-row.is-selected.is-switching-away,
      body:not(.theme-light).portal-page .day-row.is-today.is-selected.is-switching-away {
        border-width: 1px;
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.065);
        box-shadow: 0 4px 12px rgba(0,0,0,.22);
      }
      body:not(.theme-light).portal-page .calendar-day.is-outside-horizon,
      body:not(.theme-light).portal-page .day-row.is-outside-horizon {
        background: rgba(255,255,255,.025);
      }
      body:not(.theme-light).portal-page .calendar-day.is-outside-horizon .day-num,
      body:not(.theme-light).portal-page .calendar-day.is-outside-horizon .day-weekday,
      body:not(.theme-light).portal-page .calendar-day.is-outside-horizon .day-month,
      body:not(.theme-light).portal-page .day-row.is-outside-horizon .weekday,
      body:not(.theme-light).portal-page .day-row.is-outside-horizon .mobile-month,
      body:not(.theme-light).portal-page .no-workout {
        color: rgba(238,247,239,.42);
      }
      body:not(.theme-light).portal-page .day-number,
      body:not(.theme-light).portal-page .date-lockup,
      body:not(.theme-light).portal-page .weekday,
      body:not(.theme-light).portal-page .mobile-month {
        color: rgba(238,247,239,.72);
      }
      body:not(.theme-light).portal-page .mobile-today-label { color: #c2e084; }
      body:not(.theme-light).portal-page .day-signal-detail { color: rgba(238,247,239,.62); }
      body:not(.theme-light).portal-page .day-signal-coach .day-signal-label,
      body:not(.theme-light).portal-page .day-signal-variant-easy .day-signal-label,
      body:not(.theme-light).portal-page .day-signal-variant-technique .day-signal-label { color: #8bc7ed; }
      body:not(.theme-light).portal-page .day-signal-recovery .day-signal-label,
      body:not(.theme-light).portal-page .day-signal-variant-mobility .day-signal-label { color: #71d8cd; }
      body:not(.theme-light).portal-page .day-signal-adaptation .day-signal-label { color: #c2e084; }
      body:not(.theme-light).portal-page .day-signal-achievement .day-signal-label,
      body:not(.theme-light).portal-page .day-signal-variant-strength .day-signal-label { color: #c8a7f1; }
      body:not(.theme-light).portal-page .day-signal-purpose .day-signal-label { color: #ffc274; }
      body:not(.theme-light).portal-page .day-signal-variant-race .day-signal-label { color: #ff9b92; }
      body:not(.theme-light).portal-page .day-signal-neutral .day-signal-label { color: rgba(238,247,239,.68); }
      body:not(.theme-light).portal-page .workout-pill .calendar-personal-record-badge.is-number-only,
      body:not(.theme-light).portal-page .workout-pill .calendar-personal-record-badge.is-number-only .calendar-personal-record-count { color: #382a00; text-shadow: none; }
      body:not(.theme-light).portal-page .day-row .mobile-day-toggle-icon:hover {
        border-color: rgba(194,224,132,.4);
        background: rgba(255,255,255,.12);
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .day-row .mobile-day-toggle-icon:focus-visible {
        border-color: #c2e084;
        outline: none;
        box-shadow: none;
      }
      body.ios-mobile.portal-page:not(.theme-light) .day-row .mobile-day-toggle-icon {
        -webkit-tap-highlight-color: transparent;
      }
      body.ios-mobile.portal-page:not(.theme-light) .day-row .mobile-day-toggle-icon:hover,
      body.ios-mobile.portal-page:not(.theme-light) .day-row .mobile-day-toggle-icon:focus,
      body.ios-mobile.portal-page:not(.theme-light) .day-row .mobile-day-toggle-icon:focus-visible {
        border-color: rgba(255,255,255,.16);
        background: rgba(255,255,255,.08);
        color: #c2e084;
        outline: none;
        box-shadow: none;
      }
      body:not(.theme-light).portal-page .weekday { background: transparent; }
      body:not(.theme-light).portal-page .calendar-day.is-today .day-num,
      body:not(.theme-light).portal-page .day-row.is-today .date-lockup strong {
        text-decoration-color: #c2e084;
      }
      body:not(.theme-light).portal-page .calendar-pill.is-clicked,
      body:not(.theme-light).portal-page .workout-pill.is-clicked,
      body:not(.theme-light).portal-page .calendar-day.is-today .calendar-pill.is-clicked,
      body:not(.theme-light).portal-page .day-row.is-today .workout-pill.is-clicked,
      body:not(.theme-light).portal-page .workout-switch.is-active {
        border-color: rgba(215,242,255,.92);
        box-shadow: inset 0 0 0 1px rgba(215,242,255,.86), 0 0 0 2px rgba(215,242,255,.28);
      }
      body:not(.theme-light).portal-page .workout-detail,
      body:not(.theme-light).portal-page .selected-panel.is-today .workout-detail {
        border-color: rgba(255,255,255,.12);
        background: rgba(7,25,19,.42);
        color: #eef7ef;
        box-shadow: none;
      }
      body:not(.theme-light).portal-page .expanded-workout {
        --expanded-workout-divider: rgba(255,255,255,.38);
        --expanded-workout-subdivider: rgba(255,255,255,.38);
        border-top-color: rgba(255,255,255,.12);
        background: linear-gradient(to bottom, transparent 8px, rgba(255,255,255,.075) 8px);
      }
      body:not(.theme-light).portal-page .expanded-workout::before,
      body:not(.theme-light).portal-page .expanded-workout.is-single-view .detail-title-row::before,
      body:not(.theme-light).portal-page .expanded-workout.has-matched-tabs .detail-tab-panel::before {
        border-top-width: 1px;
        border-top-color: rgba(255,255,255,.38);
        transform: scaleY(.5);
        transform-origin: top;
      }
      body:not(.theme-light).portal-page .expanded-workout .detail-title-row::after,
      body:not(.theme-light).portal-page .expanded-workout .detail-panel-title-row::after,
      body:not(.theme-light).portal-page .expanded-workout .detail-tab-panel-plan .detail-item::after,
      body:not(.theme-light).portal-page .expanded-workout .detail-tab-panel-execution .detail-item::after {
        border-top-color: rgba(255,255,255,.38);
        transform: scaleY(.5);
        transform-origin: bottom;
      }
      body:not(.theme-light).portal-page .detail-heading,
      body:not(.theme-light).portal-page .detail-panel-heading {
        border-bottom-color: rgba(255,255,255,.12);
      }
      body:not(.theme-light).portal-page .detail-heading h3 .plan-activity-icon,
      body:not(.theme-light).portal-page .detail-panel-heading h3 .plan-activity-icon {
        color: #c2e084;
      }
      body:not(.theme-light).portal-page .detail-heading-review strong,
      body:not(.theme-light).portal-page .detail-item.detail-activity-note strong {
        color: #ffd88d;
      }
      body:not(.theme-light).portal-page .detail-heading-review,
      body:not(.theme-light).portal-page .detail-heading-review em,
      body:not(.theme-light).portal-page .detail-item strong,
      body:not(.theme-light).portal-page .detail-item span,
      body:not(.theme-light).portal-page .revision-note em {
        color: rgba(238,247,239,.68);
      }
      body:not(.theme-light).portal-page .detail-item {
        border-bottom-color: rgba(255,255,255,.11);
      }
      body:not(.theme-light).portal-page .execution-component-item,
      body:not(.theme-light).portal-page .structured-workout-item {
        border-bottom-color: rgba(255,255,255,.1);
      }
      body:not(.theme-light).portal-page .structured-workout-substeps {
        border-left-color: rgba(194,224,132,.22);
      }
      body:not(.theme-light).portal-page .structured-workout-repeat-icon {
        color: #c2e084;
      }
      body:not(.theme-light).portal-page .structured-workout-repeat-count {
        border-color: rgba(194,224,132,.46);
        background: rgba(194,224,132,.12);
        color: #dff0aa;
      }
      body:not(.theme-light).portal-page .structured-workout-repeat-group {
        border-color: rgba(194,224,132,.32);
        background: rgba(194,224,132,.055);
      }
      body:not(.theme-light).portal-page .structured-workout-repeat-group > .structured-workout-repeat-panel > .leg-accordion-summary .structured-workout-block-heading {
        border-color: rgba(194,224,132,.34);
        background: rgba(194,224,132,.12);
        box-shadow: none;
      }
      body:not(.theme-light).portal-page .structured-workout-leg-substep > .structured-workout-step-panel:not([open]) .structured-workout-block-heading,
      body:not(.theme-light).portal-page .structured-workout-repeat-substep > .structured-workout-step-panel:not([open]) .structured-workout-block-heading {
        border-color: rgba(194,224,132,.18);
        background: rgba(255,255,255,.055);
        box-shadow: none;
      }
      body:not(.theme-light).portal-page .leg-accordion-item[open] {
        border-color: rgba(194,224,132,.34);
        background: rgba(7,25,19,.36);
      }
      body:not(.theme-light).portal-page .structured-workout-repeat-panel[open] {
        border: 0;
        background: transparent;
      }
      body:not(.theme-light).portal-page .structured-workout-leg-panel[open] {
        background: rgba(7,25,19,.42);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 2px 8px rgba(0,0,0,.22);
      }
      body:not(.theme-light).portal-page .structured-workout-step-panel[open] {
        border-color: rgba(194,224,132,.32);
        background: rgba(7,25,19,.44);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
      }
      body:not(.theme-light).portal-page .structured-workout-list.has-leg-panels .structured-workout-step-panel[open] {
        border-left-width: 1px;
        border-left-color: rgba(194,224,132,.32);
      }
      body:not(.theme-light).portal-page .structured-workout-repeat-substep > .structured-workout-step-panel[open] {
        border-left-width: 1px;
        border-left-color: rgba(194,224,132,.32);
        background: rgba(7,25,19,.34);
        box-shadow: none;
      }
      body:not(.theme-light).portal-page .leg-accordion-item[open] > .leg-accordion-summary .structured-workout-block-heading {
        border: 0;
        border-bottom: 1px solid rgba(255,255,255,.12);
        background: rgba(194,224,132,.1);
        box-shadow: none;
      }
      body:not(.theme-light).portal-page .leg-accordion-tile {
        border-color: rgba(194,224,132,.18);
        background: rgba(255,255,255,.075);
        color: #eef7ef;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
      }
      body:not(.theme-light).portal-page .structured-workout-leg-panel > .leg-accordion-summary .leg-accordion-tile {
        border-color: rgba(194,224,132,.26);
        background: rgba(194,224,132,.09);
      }
      body:not(.theme-light).portal-page .structured-workout-block-heading {
        border-color: rgba(194,224,132,.18);
        background: rgba(255,255,255,.075);
        color: #eef7ef;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
      }
      body:not(.theme-light).portal-page .leg-accordion-item[open] .leg-accordion-tile {
        border: 0;
        border-bottom: 1px solid rgba(255,255,255,.12);
        background: rgba(194,224,132,.1);
        box-shadow: none;
      }
      body:not(.theme-light).portal-page .structured-workout-leg-panel[open] > .leg-accordion-summary .leg-accordion-tile {
        border: 0;
        border-bottom: 1px solid rgba(255,255,255,.12);
        background: rgba(194,224,132,.14);
      }
      body:not(.theme-light).portal-page .leg-accordion-tile strong,
      body:not(.theme-light).portal-page .structured-workout-block-heading strong {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .leg-accordion-tile span,
      body:not(.theme-light).portal-page .leg-accordion-tile em,
      body:not(.theme-light).portal-page .structured-workout-block-heading span {
        color: rgba(238,247,239,.68);
      }
      body:not(.theme-light).portal-page .leg-accordion-sport-icon {
        color: #c2e084;
      }
      body:not(.theme-light).portal-page .leg-accordion-icon {
        border-color: rgba(255,255,255,.16);
        background: rgba(255,255,255,.08);
        color: #c2e084;
      }
      body:not(.theme-light).portal-page .structured-workout-leg-panel[open] > .structured-workout-body,
      body:not(.theme-light).portal-page .structured-workout-step-panel[open] > .structured-workout-body,
      body:not(.theme-light).portal-page .execution-component-panel[open] > .execution-component-body {
        background: transparent;
      }
      body:not(.theme-light).portal-page .execution-summary-title,
      body:not(.theme-light).portal-page .execution-metric,
      body:not(.theme-light).portal-page .execution-comparison-card,
      body:not(.theme-light).portal-page .execution-route,
      body:not(.theme-light).portal-page .execution-chart,
      body:not(.theme-light).portal-page .execution-laps {
        border-color: rgba(194,224,132,.16);
        background: rgba(255,255,255,.075);
        color: #eef7ef;
      }
      body:not(.theme-light).portal-page .execution-summary-title strong,
      body:not(.theme-light).portal-page .execution-metric strong,
      body:not(.theme-light).portal-page .execution-summary-meta-value,
      body:not(.theme-light).portal-page .execution-panel-heading strong,
      body:not(.theme-light).portal-page .execution-comparison-card-top strong,
      body:not(.theme-light).portal-page .execution-comparison-values strong,
      body:not(.theme-light).portal-page .execution-laps-table td {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .execution-metric span,
      body:not(.theme-light).portal-page .execution-metric small,
      body:not(.theme-light).portal-page .execution-summary-meta,
      body:not(.theme-light).portal-page .execution-summary-meta-label,
      body:not(.theme-light).portal-page .execution-panel-heading span,
      body:not(.theme-light).portal-page .execution-comparison-card-top span,
      body:not(.theme-light).portal-page .execution-comparison-values em,
      body:not(.theme-light).portal-page .execution-chart label,
      body:not(.theme-light).portal-page .execution-route-empty p,
      body:not(.theme-light).portal-page .execution-laps-table th {
        color: rgba(238,247,239,.68);
      }
      body:not(.theme-light).portal-page .execution-comparison-card,
      body:not(.theme-light).portal-page .execution-comparison-bar {
        border-color: rgba(255,255,255,.1);
      }
      body:not(.theme-light).portal-page .execution-comparison-bar {
        background: rgba(255,255,255,.12);
      }
      body:not(.theme-light).portal-page .execution-route-map {
        background: rgba(7,25,19,.58);
      }
      body:not(.theme-light).portal-page .execution-route-attribution {
        background: rgba(7,25,19,.72);
        color: rgba(238,247,239,.78);
      }
      body:not(.theme-light).portal-page .execution-laps-table th,
      body:not(.theme-light).portal-page .execution-laps-table td {
        border-bottom-color: rgba(255,255,255,.1);
      }
      body:not(.theme-light).portal-page .execution-chart-svg {
        background: rgba(7,25,19,.58);
      }
      body:not(.theme-light).portal-page .execution-chart-svg .chart-grid {
        stroke: rgba(238,247,239,.09);
      }
      body:not(.theme-light).portal-page .execution-chart-svg .chart-scale {
        stroke: rgba(238,247,239,.18);
      }
      body:not(.theme-light).portal-page .execution-chart-svg .chart-horizontal-label {
        fill: rgba(238,247,239,.68);
      }
      body:not(.theme-light).portal-page .execution-chart-svg .chart-cursor {
        stroke: #eef7ef;
      }
      body:not(.theme-light).portal-page .execution-chart-tooltip {
        border-color: rgba(194,224,132,.2);
        background: rgba(7,25,19,.96);
        color: #eef7ef;
        box-shadow: 0 12px 24px rgba(0,0,0,.36);
      }
      body:not(.theme-light).portal-page .execution-chart-tooltip strong {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .execution-chart-tooltip span {
        color: rgba(238,247,239,.72);
      }
      body:not(.theme-light).portal-page .selected-close {
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.07);
        color: rgba(238,247,239,.78);
      }
      body:not(.theme-light).portal-page .selected-close:hover,
      body:not(.theme-light).portal-page .selected-close:focus {
        border-color: rgba(194,224,132,.36);
        background: rgba(194,224,132,.12);
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .dashboard-widget {
        border-color: rgba(194,224,132,.16);
        background:
          linear-gradient(145deg, rgba(24,52,41,.96) 0%, rgba(10,32,25,.96) 58%, rgba(44,34,23,.92) 100%);
        box-shadow: 0 14px 34px rgba(0,0,0,.28);
      }
      body:not(.theme-light).portal-page .dashboard-widget .button:not(.circle-x-button),
      body:not(.theme-light).portal-page .dashboard-widget button:not(.circle-x-button):not(.intro-hide-button) {
        border-color: rgba(194,224,132,.58);
        background: #c2e084;
        color: #102820;
        box-shadow: 0 8px 18px rgba(0,0,0,.22);
      }
      body:not(.theme-light).portal-page .dashboard-widget-hide-form button,
      body:not(.theme-light).portal-page .intro-hide-form button {
        border-color: rgba(255,255,255,.18);
        background: rgba(255,255,255,.08);
        color: rgba(255,255,255,.82);
        box-shadow: none;
      }
      body:not(.theme-light).portal-page .wizard-progress {
        border-color: rgba(194,224,132,.2);
        background: linear-gradient(135deg, rgba(194,224,132,.16), rgba(255,255,255,.06));
        color: #eef7ef;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
      }
      body:not(.theme-light).portal-page .wizard-progress strong {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .wizard-progress span {
        color: rgba(238,247,239,.7);
      }
      body:not(.theme-light).portal-page .wizard-step.is-active {
        border-color: rgba(194,224,132,.44);
        background: rgba(194,224,132,.12);
        box-shadow: inset 0 0 0 1px rgba(194,224,132,.16);
      }
      body:not(.theme-light).portal-page .wizard-step.is-complete {
        border-color: rgba(194,224,132,.24);
        background: rgba(194,224,132,.08);
      }
      body:not(.theme-light).portal-page .wizard-step.is-locked {
        border-color: rgba(255,255,255,.1);
        background: rgba(255,255,255,.04);
        color: rgba(238,247,239,.62);
      }
      body:not(.theme-light).portal-page .wizard-step-marker {
        background: rgba(255,255,255,.1);
        color: rgba(238,247,239,.76);
      }
      body:not(.theme-light).portal-page .wizard-step.is-complete .wizard-step-marker,
      body:not(.theme-light).portal-page .wizard-step.is-active .wizard-step-marker {
        background: #c2e084;
        color: #102820;
      }
      body:not(.theme-light).portal-page .wizard-step.is-optional .wizard-step-marker {
        background: rgba(255,255,255,.08);
        color: rgba(238,247,239,.68);
      }
      body:not(.theme-light).portal-page .wizard-step-heading span,
      body:not(.theme-light).portal-page .wizard-step p,
      body:not(.theme-light).portal-page .wizard-track-title,
      body:not(.theme-light).portal-page .wizard-next span {
        color: rgba(238,247,239,.66);
      }
      body:not(.theme-light).portal-page .profile-section-tab {
        border-color: rgba(255,255,255,.13);
        background: rgba(18,37,30,.84);
        color: #eef7ef;
      }
      body:not(.theme-light).portal-page .profile-section-tab.is-active {
        border-color: rgba(194,224,132,.34);
        background: rgba(194,224,132,.12);
      }
      body:not(.theme-light).portal-page .profile-section-tab small,
      body:not(.theme-light).portal-page .profile-section-accordion-title small {
        color: rgba(238,247,239,.62);
      }
      body:not(.theme-light).portal-page .profile-section-tab-count {
        background: rgba(255,255,255,.08);
        color: rgba(238,247,239,.76);
      }
      body:not(.theme-light).portal-page .profile-section-tab.is-active .profile-section-tab-count {
        background: #c2e084;
        color: #102820;
      }
      body:not(.theme-light).portal-page .profile-section.is-active,
      body:not(.theme-light).portal-page .profile-section.is-collapsed-selected {
        border-color: transparent;
        background: rgba(18,37,30,.9);
        box-shadow: none;
      }
      body:not(.theme-light).portal-page .profile-section.is-active::after,
      body:not(.theme-light).portal-page .profile-section.is-collapsed-selected::after {
        border-color: rgba(194,224,132,.34);
      }
      body:not(.theme-light).portal-page .profile-section-header {
        border-bottom-color: rgba(255,255,255,.12);
      }
      body:not(.theme-light).portal-page .profile-section-accordion {
        border-color: rgba(255,255,255,.13);
        background: rgba(18,37,30,.9);
        color: #eef7ef;
      }
      body:not(.theme-light).portal-page .profile-section.is-active .profile-section-accordion,
      body:not(.theme-light).portal-page .profile-section.is-collapsed-selected .profile-section-accordion {
        background: rgba(255,255,255,.05);
      }
      body:not(.theme-light).portal-page .profile-section-accordion-icon {
        border-color: rgba(194,224,132,.2);
        background: rgba(194,224,132,.1);
        color: #c2e084;
      }
      body:not(.theme-light).portal-page .profile-field h3,
      body:not(.theme-light).portal-page .profile-power-toggle,
      body:not(.theme-light).portal-page .profile-example-label {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .profile-zone-garmin-toggle,
      body:not(.theme-light).portal-page .profile-zone-sport {
        border-color: rgba(255,255,255,.14);
        background: transparent;
        color: #eef7ef;
      }
      body:not(.theme-light).portal-page .profile-zone-group legend,
      body:not(.theme-light).portal-page .profile-zone-input,
      body:not(.theme-light).portal-page .profile-zone-maximum {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .profile-zone-maximum output {
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.08);
        color: #eef7ef;
      }
      body:not(.theme-light).portal-page .profile-zone-input small,
      body:not(.theme-light).portal-page .profile-zone-maximum small {
        color: rgba(238,247,239,.66);
      }
      body:not(.theme-light).portal-page .profile-example {
        border-color: rgba(194,224,132,.32);
        background: rgba(194,224,132,.12);
        color: #dff0a9;
      }
      body:not(.theme-light).portal-page .profile-example:hover,
      body:not(.theme-light).portal-page .profile-example:focus {
        background: rgba(194,224,132,.2);
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .profile-save-message {
        color: #c2e084;
      }
      body:not(.theme-light).portal-page .profile-save-message.is-error {
        color: #ffc7df;
      }
      body:not(.theme-light).portal-page .section-badge {
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.07);
        color: rgba(238,247,239,.76);
      }
      body:not(.theme-light).portal-page .section-badge-needed {
        border-color: rgba(194,224,132,.32);
        background: rgba(194,224,132,.12);
        color: #dff0a9;
      }
      body:not(.theme-light).portal-page .section-badge-optional {
        border-color: rgba(139,190,230,.32);
        background: rgba(139,190,230,.13);
        color: #bfe2ff;
      }
      body:not(.theme-light).portal-page .section-badge-high-value {
        border-color: rgba(245,190,92,.34);
        background: rgba(245,190,92,.14);
        color: #ffd88d;
      }
      body:not(.theme-light).portal-page .section-badge-safety {
        border-color: rgba(239,158,199,.34);
        background: rgba(239,158,199,.13);
        color: #ffc7df;
      }
      body:not(.theme-light).portal-page .section-badge-garmin {
        border-color: rgba(112,208,173,.28);
        background: rgba(112,208,173,.12);
        color: #9be8cb;
      }
      body:not(.theme-light).portal-page .goal-examples {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.06);
        color: rgba(238,247,239,.68);
      }
      body:not(.theme-light).portal-page .add-record-button {
        border-color: rgba(194,224,132,.28);
        background: rgba(194,224,132,.08);
        color: #c2e084;
      }
      body:not(.theme-light).portal-page .add-record-button:hover,
      body:not(.theme-light).portal-page .add-record-button:focus {
        border-color: rgba(194,224,132,.48);
        background: rgba(194,224,132,.15);
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .goal-card[open],
      body:not(.theme-light).portal-page .event-card[open] {
        border-width: 1px;
        border-color: rgba(194,224,132,.34);
        background: rgba(18,37,30,.9);
        box-shadow: inset 0 0 0 1px rgba(194,224,132,.14);
      }
      body:not(.theme-light).portal-page .goal-card.is-collapsed-selected:not([open]),
      body:not(.theme-light).portal-page .event-card.is-collapsed-selected:not([open]) {
        border-width: 2px;
        border-color: rgba(194,224,132,.34);
        background: rgba(18,37,30,.9);
        box-shadow: inset 0 0 0 1px rgba(194,224,132,.14);
      }
      body:not(.theme-light).portal-page .goal-card.context-row-past,
      body:not(.theme-light).portal-page .event-card.context-row-past {
        border-color: rgba(255,255,255,.1);
        background: rgba(255,255,255,.04);
      }
      body:not(.theme-light).portal-page .goal-card.context-row-past .goal-editor,
      body:not(.theme-light).portal-page .event-card.context-row-past .event-editor {
        background: rgba(255,255,255,.04);
        color: rgba(238,247,239,.58);
      }
      body:not(.theme-light).portal-page .goal-card.context-row-past input,
      body:not(.theme-light).portal-page .goal-card.context-row-past textarea,
      body:not(.theme-light).portal-page .goal-card.context-row-past select,
      body:not(.theme-light).portal-page .goal-card.context-row-past .android-select-trigger,
      body:not(.theme-light).portal-page .event-card.context-row-past input,
      body:not(.theme-light).portal-page .event-card.context-row-past textarea,
      body:not(.theme-light).portal-page .event-card.context-row-past select,
      body:not(.theme-light).portal-page .event-card.context-row-past .android-select-trigger {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.06);
        color: rgba(238,247,239,.72);
      }
      body:not(.theme-light).portal-page .goal-card.context-row-past:not([open]) .goal-summary,
      body:not(.theme-light).portal-page .event-card.context-row-past:not([open]) .event-summary {
        background: rgba(255,255,255,.04);
        color: rgba(238,247,239,.58);
      }
      body:not(.theme-light).portal-page .goal-card[open] .goal-summary,
      body:not(.theme-light).portal-page .event-card[open] .event-summary {
        border-bottom-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.05);
      }
      body:not(.theme-light).portal-page .goal-date-tile,
      body:not(.theme-light).portal-page .event-date-tile {
        border-color: rgba(194,224,132,.18);
        background: rgba(7,25,19,.58);
      }
      body:not(.theme-light).portal-page .goal-date-tile span,
      body:not(.theme-light).portal-page .event-date-tile span {
        color: rgba(238,247,239,.58);
      }
      body:not(.theme-light).portal-page .goal-date-tile strong,
      body:not(.theme-light).portal-page .event-date-tile strong {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .goal-badge,
      body:not(.theme-light).portal-page .event-badge {
        border: 1px solid rgba(255,255,255,.12);
        background: rgba(255,255,255,.07);
        color: rgba(238,247,239,.72);
      }
      body:not(.theme-light).portal-page .goal-badge-priority-a,
      body:not(.theme-light).portal-page .event-badge-priority-a {
        border-color: rgba(239,158,199,.34);
        background: rgba(239,158,199,.13);
        color: #ffc7df;
      }
      body:not(.theme-light).portal-page .goal-badge-priority-b,
      body:not(.theme-light).portal-page .event-badge-priority-b {
        border-color: rgba(245,190,92,.34);
        background: rgba(245,190,92,.14);
        color: #ffd88d;
      }
      body:not(.theme-light).portal-page .goal-badge-priority-c,
      body:not(.theme-light).portal-page .event-badge-priority-c {
        border-color: rgba(139,190,230,.32);
        background: rgba(139,190,230,.13);
        color: #bfe2ff;
      }
      body:not(.theme-light).portal-page .event-badge-type,
      body:not(.theme-light).portal-page .goal-badge-sport,
      body:not(.theme-light).portal-page .goal-badge-upcoming,
      body:not(.theme-light).portal-page .event-badge-upcoming {
        border-color: rgba(194,224,132,.32);
        background: rgba(194,224,132,.12);
        color: #dff0a9;
      }
      body:not(.theme-light).portal-page .goal-badge-overdue,
      body:not(.theme-light).portal-page .goal-badge-past,
      body:not(.theme-light).portal-page .event-badge-past {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.06);
        color: rgba(238,247,239,.62);
      }
      body:not(.theme-light).portal-page .goal-summary-note,
      body:not(.theme-light).portal-page .event-summary-note {
        color: rgba(238,247,239,.7);
      }
      body:not(.theme-light).portal-page .goal-summary-note strong,
      body:not(.theme-light).portal-page .event-summary-note strong {
        color: rgba(238,247,239,.62);
      }
      body:not(.theme-light).portal-page .goal-editor-grid input,
      body:not(.theme-light).portal-page .goal-editor-grid textarea,
      body:not(.theme-light).portal-page .goal-editor-grid select,
      body:not(.theme-light).portal-page .event-editor-grid input,
      body:not(.theme-light).portal-page .event-editor-grid textarea,
      body:not(.theme-light).portal-page .event-editor-grid select {
        border-color: rgba(255,255,255,.18);
        background: rgba(255,255,255,.08);
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .race-checkbox-label {
        color: rgba(238,247,239,.68);
      }
      body:not(.theme-light).portal-page .goal-card.new-goal-card,
      body:not(.theme-light).portal-page .event-card.new-event-card {
        border-color: rgba(194,224,132,.28);
        background: rgba(194,224,132,.06);
      }
      body:not(.theme-light).portal-page .admin-tabs {
        border-bottom-color: rgba(255,255,255,.13);
      }
      body:not(.theme-light).portal-page .admin-tab {
        border-color: transparent;
        color: rgba(238,247,239,.68);
      }
      body:not(.theme-light).portal-page .admin-tab:hover,
      body:not(.theme-light).portal-page .admin-tab:focus {
        background: rgba(194,224,132,.1);
        color: #dff0a9;
      }
      body:not(.theme-light).portal-page .admin-tab.is-active {
        border-color: rgba(255,255,255,.13);
        background: rgba(18,37,30,.9);
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .email-verification-state,
      body:not(.theme-light).portal-page .timestamp-time,
      body:not(.theme-light).portal-page .admin-subscription-display small {
        color: rgba(238,247,239,.62);
      }
      body:not(.theme-light).portal-page .admin-subscription-display strong {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .admin-table td::before {
        color: rgba(238,247,239,.58);
      }
      body:not(.theme-light).portal-page .admin-sort-arrow {
        color: rgba(238,247,239,.42);
      }
      body:not(.theme-light).portal-page .admin-sort-arrow.active,
      body:not(.theme-light).portal-page .admin-sort-arrow:hover,
      body:not(.theme-light).portal-page .admin-sort-arrow:focus {
        color: #c2e084;
      }
      body:not(.theme-light).portal-page .usage-stat {
        border-color: rgba(194,224,132,.14);
        background: rgba(255,255,255,.07);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
      }
      body:not(.theme-light).portal-page .usage-stat span,
      body:not(.theme-light).portal-page .usage-stat small {
        color: rgba(238,247,239,.66);
      }
      body:not(.theme-light).portal-page .usage-stat strong {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .usage-user-row:hover td,
      body:not(.theme-light).portal-page .usage-purpose-row:hover td {
        background: rgba(194,224,132,.08);
      }
      body:not(.theme-light).portal-page .usage-expand-button {
        border-color: rgba(194,224,132,.2);
        background: rgba(194,224,132,.1);
        color: #c2e084;
      }
      body:not(.theme-light).portal-page .usage-expand-button:hover,
      body:not(.theme-light).portal-page .usage-expand-button:focus {
        border-color: rgba(194,224,132,.44);
        background: rgba(194,224,132,.18);
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .usage-user-detail-cell,
      body:not(.theme-light).portal-page .usage-purpose-detail-cell,
      body:not(.theme-light).portal-page .usage-detail-table,
      body:not(.theme-light).portal-page .usage-detail-table th,
      body:not(.theme-light).portal-page .usage-detail-table td {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.04);
        color: #eef7ef;
      }
      body:not(.theme-light).portal-page .account-eyebrow {
        color: rgba(238,247,239,.62);
      }
      body:not(.theme-light).portal-page .account-card-icon {
        background: rgba(255,255,255,.9);
        box-shadow: inset 0 0 0 1px rgba(194,224,132,.22);
      }
      body:not(.theme-light).portal-page .account-card-ai-consent .account-ai-consent-icon {
        background: #102820;
        color: #eef7ef;
        box-shadow: inset 0 0 0 1px rgba(194,224,132,.28);
      }
      body:not(.theme-light).portal-page .account-card-garmin .account-card-icon {
        box-shadow: inset 0 0 0 1px rgba(139,190,230,.34);
      }
      body:not(.theme-light).portal-page .account-card-gpt .account-card-icon {
        box-shadow: inset 0 0 0 1px rgba(112,208,173,.32);
      }
      body:not(.theme-light).portal-page .account-card-coach .account-card-icon {
        box-shadow: inset 0 0 0 1px rgba(139,190,230,.34);
      }
      body:not(.theme-light).portal-page .account-danger-zone .account-card-icon {
        box-shadow: inset 0 0 0 1px rgba(239,158,199,.28);
      }
      body:not(.theme-light).portal-page .coach-settings-dialog::backdrop {
        background: rgba(0,0,0,.62);
      }
      body:not(.theme-light).portal-page .coach-settings-card {
        border-color: rgba(194,224,132,.22);
        background: #102820;
        color: #eef7ef;
        box-shadow: 0 24px 68px rgba(0,0,0,.56);
      }
      body:not(.theme-light).portal-page .coach-settings-header h2,
      body:not(.theme-light).portal-page .coach-option strong,
      body:not(.theme-light).portal-page .coach-name-field label,
      body:not(.theme-light).portal-page .coach-fieldset legend {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .coach-settings-header p,
      body:not(.theme-light).portal-page .coach-option span,
      body:not(.theme-light).portal-page .coach-option small {
        color: rgba(238,247,239,.72);
      }
      body:not(.theme-light).portal-page .coach-choice-note {
        border-color: rgba(255,255,255,.14);
        background: rgba(7,25,19,.46);
        color: rgba(238,247,239,.78);
      }
      body:not(.theme-light).portal-page .coach-option-grid {
        border: 0;
        background: transparent;
      }
      body:not(.theme-light).portal-page .coach-option {
        border-color: rgba(255,255,255,.13);
        background: rgba(255,255,255,.06);
      }
      body:not(.theme-light).portal-page .coach-option:has(input:checked) {
        border-color: #c2e084;
        background: #c2e084;
        color: #102820;
        box-shadow: 0 6px 14px rgba(0,0,0,.24);
      }
      body:not(.theme-light).portal-page .coach-option:has(input:checked) strong {
        color: #102820;
      }
      body:not(.theme-light).portal-page .coach-language-panel {
        background: transparent;
      }
      body:not(.theme-light).portal-page .coach-settings-actions {
        background: linear-gradient(180deg, rgba(16,40,32,.72) 0%, #102820 34%);
      }
      body:not(.theme-light).portal-page .coach-wording-dialog {
        background: rgba(0,0,0,.62);
      }
      body:not(.theme-light).portal-page .coach-wording-card {
        border-color: rgba(194,224,132,.22);
        background: #102820;
        color: #eef7ef;
        box-shadow: 0 24px 68px rgba(0,0,0,.56);
      }
      body:not(.theme-light).portal-page .coach-wording-header h2,
      body:not(.theme-light).portal-page .coach-popup-option strong {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .coach-wording-card .account-eyebrow,
      body:not(.theme-light).portal-page .coach-popup-option small {
        color: rgba(238,247,239,.72);
      }
      body:not(.theme-light).portal-page .coach-popup-option {
        border-color: rgba(255,255,255,.13);
        background: rgba(255,255,255,.06);
      }
      body:not(.theme-light).portal-page .coach-popup-option:has(input:checked) {
        border-color: rgba(194,224,132,.68);
        background: rgba(194,224,132,.12);
      }
      @media (min-width: 761px) {
        body:not(.theme-light).portal-page .coach-popup-option input {
          border-color: rgba(238,247,239,.56);
          background: rgba(255,255,255,.08);
          box-shadow: inset 0 0 0 4px #12251e;
        }
        body:not(.theme-light).portal-page .coach-popup-option input:checked {
          border-color: #c2e084;
          background: #c2e084;
        }
      }
      body:not(.theme-light).portal-page .account-chip {
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.07);
        color: rgba(238,247,239,.72);
      }
      body:not(.theme-light).portal-page .account-chip.is-positive {
        border-color: rgba(194,224,132,.32);
        background: rgba(194,224,132,.12);
        color: #dff0a9;
      }
      body:not(.theme-light).portal-page .account-chip.is-negative {
        border-color: rgba(245,190,92,.34);
        background: rgba(245,190,92,.14);
        color: #ffd88d;
      }
      body:not(.theme-light).portal-page .account-chip.is-neutral {
        border-color: rgba(139,190,230,.32);
        background: rgba(139,190,230,.13);
        color: #bfe2ff;
      }
      body:not(.theme-light).portal-page .account-preference-switch {
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.07);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
      }
      body:not(.theme-light).portal-page .account-preference-switch button {
        color: rgba(238,247,239,.72);
      }
      body:not(.theme-light).portal-page .account-preference-switch button:hover,
      body:not(.theme-light).portal-page .account-preference-switch button:focus {
        border-color: rgba(255,255,255,.18);
        background: rgba(255,255,255,.1);
        color: #eef7ef;
      }
      body:not(.theme-light).portal-page .account-preference-switch button.is-active {
        border-color: #c2e084;
        background: #c2e084;
        color: #102820;
      }
      body:not(.theme-light).portal-page .account-detail-row.is-alert {
        border-color: rgba(245,190,92,.34);
        background: rgba(245,190,92,.12);
      }
      body:not(.theme-light).portal-page .account-detail-row.is-alert span,
      body:not(.theme-light).portal-page .account-detail-row.is-alert strong {
        color: #ffd88d;
      }
      body:not(.theme-light).portal-page .account-actions .is-disabled {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.05);
        color: rgba(238,247,239,.46);
        box-shadow: none;
      }
      body:not(.theme-light).portal-page .account-actions .is-disabled::before {
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.08);
        color: rgba(238,247,239,.58);
      }
      body:not(.theme-light).portal-page .account-actions .is-disabled:hover::after,
      body:not(.theme-light).portal-page .account-actions .is-disabled:focus::after {
        border-color: rgba(255,255,255,.16);
        background: #12251e;
        color: rgba(238,247,239,.82);
        box-shadow: 0 8px 18px rgba(0,0,0,.3);
      }
      body:not(.theme-light).portal-page .account-danger-zone {
        border-color: rgba(239,158,199,.28);
        background: rgba(239,158,199,.08);
        color: #eef7ef;
      }
      body:not(.theme-light).portal-page .account-danger-zone h2 {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .danger {
        border-color: rgba(239,158,199,.42);
        background: #b94a5f;
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .danger:hover,
      body:not(.theme-light).portal-page .danger:focus {
        background: #a33e52;
      }
      body:not(.theme-light).portal-page .billing-period-switch,
      body:not(.theme-light).portal-page .billing-currency-switch {
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.07);
        box-shadow: 0 12px 28px rgba(0,0,0,.22);
      }
      body:not(.theme-light).portal-page .billing-period-switch button,
      body:not(.theme-light).portal-page .billing-currency-switch button {
        color: rgba(238,247,239,.68);
      }
      body:not(.theme-light).portal-page .billing-period-switch button.is-active,
      body:not(.theme-light).portal-page .billing-currency-switch button.is-active {
        border-color: rgba(194,224,132,.45);
        background: rgba(194,224,132,.88);
        color: #102820;
        box-shadow: 0 6px 14px rgba(0,0,0,.2);
      }
      body:not(.theme-light).portal-page .billing-plans-hero {
        background: transparent;
        box-shadow: none;
      }
      body:not(.theme-light).portal-page .billing-plan-card {
        border-color: rgba(194,224,132,.2);
        background: linear-gradient(180deg, rgba(20,44,35,.96) 0%, rgba(12,31,25,.94) 100%);
        box-shadow: 0 18px 42px rgba(0,0,0,.28);
      }
      body:not(.theme-light).portal-page .billing-plan-card::before {
        background: #c2e084;
        opacity: .88;
      }
      body:not(.theme-light).portal-page .billing-plan-card.is-pro {
        border-color: rgba(139,190,230,.28);
        background: linear-gradient(180deg, rgba(17,39,45,.96) 0%, rgba(12,29,37,.94) 68%, rgba(26,33,28,.92) 100%);
        box-shadow: 0 18px 42px rgba(0,0,0,.28);
      }
      body:not(.theme-light).portal-page .billing-plan-card.is-pro::before {
        background: #8bbee6;
      }
      body:not(.theme-light).portal-page .billing-plan-card.is-elite {
        border-color: rgba(241,199,91,.32);
        background: linear-gradient(180deg, rgba(45,38,19,.96) 0%, rgba(32,29,18,.95) 68%, rgba(21,35,25,.94) 100%);
        box-shadow: 0 18px 42px rgba(0,0,0,.3);
      }
      body:not(.theme-light).portal-page .billing-plan-card.is-elite::before {
        background: #f1c75b;
      }
      body:not(.theme-light).portal-page .billing-plan-mark {
        background: rgba(194,224,132,.16);
        color: #dff0a9;
        box-shadow: inset 0 0 0 1px rgba(194,224,132,.24);
      }
      body:not(.theme-light).portal-page .billing-plan-card.is-pro .billing-plan-mark {
        background: rgba(139,190,230,.16);
        color: #bfe2ff;
        box-shadow: inset 0 0 0 1px rgba(139,190,230,.28);
      }
      body:not(.theme-light).portal-page .billing-plan-card.is-elite .billing-plan-mark {
        background: rgba(241,199,91,.16);
        color: #ffe39a;
        box-shadow: inset 0 0 0 1px rgba(241,199,91,.3);
      }
      body:not(.theme-light).portal-page .billing-plan-name h2,
      body:not(.theme-light).portal-page .billing-plan-primary-price strong,
      body:not(.theme-light).portal-page .billing-plan-feature-block h3 {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .billing-plan-summary,
      body:not(.theme-light).portal-page .billing-plan-primary-price span,
      body:not(.theme-light).portal-page .billing-plan-features li {
        color: rgba(238,247,239,.68);
      }
      body:not(.theme-light).portal-page .billing-plan-divider {
        background: rgba(255,255,255,.12);
      }
      body:not(.theme-light).portal-page .billing-plan-checkout-option button:not(.secondary),
      body:not(.theme-light).portal-page button.billing-plan-checkout-option:not(.secondary) {
        border-color: rgba(194,224,132,.6);
        background: #c2e084;
        color: #102820;
        box-shadow: 0 8px 18px rgba(0,0,0,.24);
      }
      body:not(.theme-light).portal-page .billing-plan-card.is-pro .billing-plan-checkout-option button:not(.secondary),
      body:not(.theme-light).portal-page .billing-plan-card.is-pro button.billing-plan-checkout-option:not(.secondary) {
        border-color: rgba(139,190,230,.58);
        background: #8bbee6;
        color: #10222b;
        box-shadow: 0 8px 18px rgba(0,0,0,.24);
      }
      body:not(.theme-light).portal-page .billing-plan-card.is-elite .billing-plan-checkout-option button:not(.secondary),
      body:not(.theme-light).portal-page .billing-plan-card.is-elite button.billing-plan-checkout-option:not(.secondary) {
        border-color: rgba(241,199,91,.65);
        background: #f1c75b;
        color: #2d2410;
        box-shadow: 0 8px 18px rgba(0,0,0,.24);
      }
      body:not(.theme-light).portal-page .billing-plan-features li::before {
        background: rgba(194,224,132,.14);
        color: #dff0a9;
      }
      body:not(.theme-light).portal-page .billing-plan-card.is-pro .billing-plan-features li::before {
        background: rgba(139,190,230,.16);
        color: #bfe2ff;
      }
      body:not(.theme-light).portal-page .billing-plan-card.is-elite .billing-plan-features li::before {
        background: rgba(241,199,91,.16);
        color: #ffe39a;
      }
      body:not(.theme-light).portal-page .billing-difference-word {
        background: rgba(139,190,230,.16);
        color: #bfe2ff;
      }
      body:not(.theme-light).portal-page .today-training-mobile-summary,
      body:not(.theme-light).portal-page .recent-activity-top,
      body:not(.theme-light).portal-page .insight-score,
      body:not(.theme-light).portal-page .insight-loading,
      body:not(.theme-light).portal-page .insight-coach-comment,
      body:not(.theme-light).portal-page .insight-plan-update,
      body:not(.theme-light).portal-page .race-empty,
      body:not(.theme-light).portal-page .recent-activity-feedback,
      body:not(.theme-light).portal-page .nutrition-goal-note,
      body:not(.theme-light).portal-page .nutrition-macro-panel {
        border-color: rgba(194,224,132,.14);
        background: rgba(255,255,255,.07);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
      }
      body:not(.theme-light).portal-page .today-training .table-scroll {
        border-color: rgba(194,224,132,.14);
        background: rgba(255,255,255,.055);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
      }
      body:not(.theme-light).portal-page .today-training .mini-table th {
        border-bottom-color: rgba(194,224,132,.14);
        background: rgba(255,255,255,.08);
        color: rgba(238,247,239,.72);
      }
      body:not(.theme-light).portal-page .today-training .mini-table tbody tr:nth-child(odd),
      body:not(.theme-light).portal-page .today-training .mini-table tbody tr:nth-child(even) {
        background: transparent;
      }
      body:not(.theme-light).portal-page .today-training .mini-table tbody tr:hover {
        background: rgba(194,224,132,.08);
      }
      body:not(.theme-light).portal-page .today-training .empty-row,
      body:not(.theme-light).portal-page .today-training-mobile-empty {
        border-color: rgba(194,224,132,.2);
        background: rgba(255,255,255,.065);
        color: rgba(238,247,239,.76);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
      }
      body:not(.theme-light).portal-page .summary-panel .summary-item,
      body:not(.theme-light).portal-page .insight-metric,
      body:not(.theme-light).portal-page .today-training-mobile-row,
      body:not(.theme-light).portal-page .today-training-mobile-metric,
      body:not(.theme-light).portal-page .recent-activity-metric,
      body:not(.theme-light).portal-page .nutrition-metric {
        border-color: rgba(194,224,132,.14);
        background: rgba(255,255,255,.07);
        color: #eef7ef;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
      }
      body:not(.theme-light).portal-page .today-training-mobile-top h3,
      body:not(.theme-light).portal-page .today-training-mobile-what strong,
      body:not(.theme-light).portal-page .today-training-mobile-cell,
      body:not(.theme-light).portal-page .today-training-mobile-metric strong,
      body:not(.theme-light).portal-page .summary-item-title,
      body:not(.theme-light).portal-page .insight-score strong,
      body:not(.theme-light).portal-page .insight-metric strong,
      body:not(.theme-light).portal-page .insight-coach-comment span,
      body:not(.theme-light).portal-page .race-empty strong,
      body:not(.theme-light).portal-page .recent-activity-feedback span,
      body:not(.theme-light).portal-page .nutrition-score-explain strong,
      body:not(.theme-light).portal-page .nutrition-goal-note strong,
      body:not(.theme-light).portal-page .nutrition-metric strong,
      body:not(.theme-light).portal-page .nutrition-macro-head strong {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .today-training-mobile-summary p,
      body:not(.theme-light).portal-page .today-training-mobile-head,
      body:not(.theme-light).portal-page .today-training-mobile-date,
      body:not(.theme-light).portal-page .today-training-mobile-date .today-training-time-text,
      body:not(.theme-light).portal-page .today-training-mobile-metric span,
      body:not(.theme-light).portal-page .summary-item-note,
      body:not(.theme-light).portal-page .insight-score span,
      body:not(.theme-light).portal-page .insight-metric-label,
      body:not(.theme-light).portal-page .insight-metric small,
      body:not(.theme-light).portal-page .insight-metric em,
      body:not(.theme-light).portal-page .insight-plan-update span,
      body:not(.theme-light).portal-page .insight-plan-message,
      body:not(.theme-light).portal-page .race-event em,
      body:not(.theme-light).portal-page .race-prep-copy em,
      body:not(.theme-light).portal-page .race-prep-label strong,
      body:not(.theme-light).portal-page .race-empty span,
      body:not(.theme-light).portal-page .recent-activity-plan-context,
      body:not(.theme-light).portal-page .recent-activity-metric span,
      body:not(.theme-light).portal-page .recent-activity-metric small,
      body:not(.theme-light).portal-page .recent-activity-feedback strong,
      body:not(.theme-light).portal-page .nutrition-score-explain,
      body:not(.theme-light).portal-page .nutrition-goal-note span,
      body:not(.theme-light).portal-page .nutrition-metric span,
      body:not(.theme-light).portal-page .nutrition-metric small,
      body:not(.theme-light).portal-page .nutrition-metric strong em,
      body:not(.theme-light).portal-page .nutrition-weight-rate,
      body:not(.theme-light).portal-page .nutrition-macro-head span,
      body:not(.theme-light).portal-page .nutrition-macro-legend {
        color: rgba(238,247,239,.68);
      }
      body:not(.theme-light).portal-page .today-training-time,
      body:not(.theme-light).portal-page .today-workout-type,
      body:not(.theme-light).portal-page .summary-pill,
      body:not(.theme-light).portal-page .recent-activity-sport,
      body:not(.theme-light).portal-page .recent-activity-status,
      body:not(.theme-light).portal-page .legend-status,
      body:not(.theme-light).portal-page .calendar-pill,
      body:not(.theme-light).portal-page .workout-pill,
      body:not(.theme-light).portal-page .workout-switch,
      body:not(.theme-light).portal-page .detail-status,
      body:not(.theme-light).portal-page .status-badge {
        border-color: rgba(255,255,255,.16);
        background: rgba(255,255,255,.08);
        color: rgba(238,247,239,.8);
      }
      body:not(.theme-light).portal-page .today-training-mobile-date .today-training-time-flexible { border: 1px solid rgba(194,224,132,.72); background: #c2e084; color: #253b2d; font-weight: 850; }
      body:not(.theme-light).portal-page .today-training-mobile-target-inline { color: #c2e084; }
      body:not(.theme-light).portal-page .today-training-time-morning { background: rgba(255,196,87,.22); color: #ffd98a; }
      body:not(.theme-light).portal-page .today-training-time-afternoon { background: rgba(95,166,229,.22); color: #b9dbff; }
      body:not(.theme-light).portal-page .summary-pill.is-needed,
      body:not(.theme-light).portal-page .recent-activity-status.is-partial,
      body:not(.theme-light).portal-page .legend-status.is-partial,
      body:not(.theme-light).portal-page .calendar-pill.is-partial,
      body:not(.theme-light).portal-page .workout-pill.is-partial,
      body:not(.theme-light).portal-page .workout-switch.is-partial,
      body:not(.theme-light).portal-page .detail-status.is-partial,
      body:not(.theme-light).portal-page .status-badge.plan-status-partial {
        border-color: rgba(255,199,86,.68);
        background: rgba(255,199,86,.26);
        color: #ffe09a;
      }
      body:not(.theme-light).portal-page .recent-activity-status.is-revised,
      body:not(.theme-light).portal-page .legend-status.is-revised,
      body:not(.theme-light).portal-page .calendar-pill.is-revised,
      body:not(.theme-light).portal-page .workout-switch.is-revised,
      body:not(.theme-light).portal-page .detail-status.is-revised,
      body:not(.theme-light).portal-page .status-badge.plan-status-revised {
        border-color: rgba(93,194,255,.68);
        background: rgba(93,194,255,.24);
        color: #b9e7ff;
      }
      body:not(.theme-light).portal-page .recent-activity-status.is-skipped,
      body:not(.theme-light).portal-page .legend-status.is-skipped,
      body:not(.theme-light).portal-page .calendar-pill.is-skipped,
      body:not(.theme-light).portal-page .workout-pill.is-skipped,
      body:not(.theme-light).portal-page .workout-switch.is-skipped,
      body:not(.theme-light).portal-page .detail-status.is-skipped,
      body:not(.theme-light).portal-page .status-badge.plan-status-skipped {
        border-color: rgba(255,119,178,.66);
        background: rgba(255,119,178,.24);
        color: #ffc1dd;
      }
      body:not(.theme-light).portal-page .legend-status.is-planned,
      body:not(.theme-light).portal-page .calendar-pill.is-planned,
      body:not(.theme-light).portal-page .workout-pill.is-planned,
      body:not(.theme-light).portal-page .workout-switch.is-planned,
      body:not(.theme-light).portal-page .detail-status.is-planned,
      body:not(.theme-light).portal-page .status-badge.plan-status-planned,
      body:not(.theme-light).portal-page .recent-activity-status.is-planned {
        border-color: rgba(170,182,176,.36);
        background: rgba(170,182,176,.13);
        color: #d7ded9;
      }
      body:not(.theme-light).portal-page .detail-status.is-planned,
      body:not(.theme-light).portal-page .status-badge.plan-status-planned {
        border-color: rgba(93,194,255,.68);
        background: rgba(93,194,255,.24);
        color: #b9e7ff;
      }
      body:not(.theme-light).portal-page .recent-activity-status.is-matched,
      body:not(.theme-light).portal-page .legend-status.is-completed,
      body:not(.theme-light).portal-page .calendar-pill.is-completed,
      body:not(.theme-light).portal-page .workout-pill.is-completed,
      body:not(.theme-light).portal-page .workout-switch.is-completed,
      body:not(.theme-light).portal-page .detail-status.is-completed,
      body:not(.theme-light).portal-page .status-badge.plan-status-completed,
      body:not(.theme-light).portal-page .recent-activity-status.is-completed {
        border-color: rgba(116,235,164,.68);
        background: rgba(116,235,164,.24);
        color: #a7f3c5;
      }
      body:not(.theme-light).portal-page .legend-status.is-unplanned,
      body:not(.theme-light).portal-page .calendar-pill.is-unplanned,
      body:not(.theme-light).portal-page .workout-pill.is-unplanned,
      body:not(.theme-light).portal-page .workout-switch.is-unplanned,
      body:not(.theme-light).portal-page .detail-status.is-unplanned,
      body:not(.theme-light).portal-page .status-badge.plan-status-unplanned,
      body:not(.theme-light).portal-page .recent-activity-status.is-unplanned {
        border-color: rgba(239,142,86,.66);
        background: rgba(239,142,86,.24);
        color: #ffc19b;
      }
      body:not(.theme-light).portal-page .calendar-pill.is-neutral,
      body:not(.theme-light).portal-page .workout-pill.is-neutral,
      body:not(.theme-light).portal-page .workout-switch.is-neutral,
      body:not(.theme-light).portal-page .detail-status.is-neutral {
        border-color: rgba(255,255,255,.13);
        background: rgba(255,255,255,.06);
        color: rgba(238,247,239,.7);
      }
      body:not(.theme-light).portal-page .summary-dot {
        background: #c2e084;
        box-shadow: 0 0 0 3px rgba(194,224,132,.13);
      }
      body:not(.theme-light).portal-page .today-training-metric-icon {
        border-color: rgba(194,224,132,.18);
        background: rgba(194,224,132,.12);
        color: #c2e084;
      }
      body:not(.theme-light).portal-page .today-training-metric-icon-status-revised {
        border-color: rgba(93,194,255,.68);
        background: rgba(93,194,255,.24);
        color: #b9e7ff;
      }
      body:not(.theme-light).portal-page .today-training-metric-icon-status-completed {
        border-color: rgba(116,235,164,.68);
        background: rgba(116,235,164,.24);
        color: #a7f3c5;
      }
      body:not(.theme-light).portal-page .today-training-metric-icon-status-partial {
        border-color: rgba(255,199,86,.68);
        background: rgba(255,199,86,.26);
        color: #ffe09a;
      }
      body:not(.theme-light).portal-page .today-training-metric-icon-status-planned {
        border-color: rgba(170,182,176,.36);
        background: rgba(170,182,176,.13);
        color: #d7ded9;
      }
      body:not(.theme-light).portal-page .today-training-metric-icon-status-skipped {
        border-color: rgba(255,119,178,.66);
        background: rgba(255,119,178,.24);
        color: #ffc1dd;
      }
      body:not(.theme-light).portal-page .today-training-metric-icon-status-neutral {
        border-color: rgba(255,255,255,.13);
        background: rgba(255,255,255,.06);
        color: rgba(238,247,239,.7);
      }
      body:not(.theme-light).portal-page .today-training-mobile-view,
      body:not(.theme-light).portal-page .today-training-desktop-view {
        border-color: rgba(194,224,132,.2);
        background: rgba(255,255,255,.08);
        color: #dff0a9;
      }
      body:not(.theme-light).portal-page .insight-ring,
      body:not(.theme-light).portal-page .race-gauge,
      body:not(.theme-light).portal-page .nutrition-score-gauge,
      body:not(.theme-light).portal-page .recent-activity-load-ring {
        background-color: rgba(255,255,255,.08);
      }
      body:not(.theme-light).portal-page .insight-ring::before,
      body:not(.theme-light).portal-page .race-gauge::before,
      body:not(.theme-light).portal-page .nutrition-score-gauge::before,
      body:not(.theme-light).portal-page .recent-activity-load-ring::before {
        background: #102820;
        box-shadow: inset 0 0 0 1px rgba(255,255,255,.12);
      }
      body:not(.theme-light).portal-page .race-gauge span,
      body:not(.theme-light).portal-page .nutrition-score-gauge span,
      body:not(.theme-light).portal-page .insight-score em {
        color: #c2e084;
      }
      body:not(.theme-light).portal-page .insight-sleep-track,
      body:not(.theme-light).portal-page .insight-hr-track,
      body:not(.theme-light).portal-page .race-prep-track,
      body:not(.theme-light).portal-page .recent-activity-meter,
      body:not(.theme-light).portal-page .nutrition-macro-bar {
        background: rgba(255,255,255,.1);
        box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
      }
      body:not(.theme-light).portal-page .recent-activity-title h3 .plan-activity-icon,
      body:not(.theme-light).portal-page .today-training-mobile-kind,
      body:not(.theme-light).portal-page .today-training-mobile-kind .plan-activity-icon {
        color: #c2e084;
      }
      body:not(.theme-light).portal-page .nutrition-review {
        border-color: rgba(194,224,132,.16);
        background: rgba(7,25,19,.42);
      }
      body:not(.theme-light).portal-page .nutrition-review summary {
        background: rgba(255,255,255,.05);
      }
      body:not(.theme-light).portal-page .nutrition-review:not([open]) {
        border-color: rgba(194,224,132,.14);
        background: rgba(255,255,255,.07);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
      }
      body:not(.theme-light).portal-page .nutrition-review:not([open]) summary {
        background: transparent;
      }
      body:not(.theme-light).portal-page .nutrition-review summary span {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .nutrition-review summary em {
        color: rgba(238,247,239,.66);
      }
      body:not(.theme-light).portal-page .nutrition-review-toggle {
        border-color: rgba(194,224,132,.34);
        background: rgba(194,224,132,.12);
        color: #dff0a9;
      }
      body:not(.theme-light).portal-page .nutrition-review p {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.06);
        color: rgba(238,247,239,.7);
      }
      body:not(.theme-light).portal-page .nutrition-review-row {
        border-color: rgba(194,224,132,.14);
        background: rgba(7,25,19,.58);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
      }
      body:not(.theme-light).portal-page .nutrition-review-row.needs-review {
        border-color: rgba(245,190,92,.42);
        background: rgba(245,190,92,.12);
      }
      body:not(.theme-light).portal-page .nutrition-review-day {
        border-bottom-color: rgba(255,255,255,.12);
      }
      body:not(.theme-light).portal-page .nutrition-review-day span {
        color: rgba(238,247,239,.58);
      }
      body:not(.theme-light).portal-page .nutrition-review-day strong,
      body:not(.theme-light).portal-page .nutrition-review-intake > strong {
        color: #ffffff;
      }
      body:not(.theme-light).portal-page .nutrition-review-nutrients span:nth-child(1) {
        background: rgba(112,208,173,.18);
        color: #9be8cb;
      }
      body:not(.theme-light).portal-page .nutrition-review-nutrients span:nth-child(2) {
        background: rgba(194,224,132,.16);
        color: #dff0a9;
      }
      body:not(.theme-light).portal-page .nutrition-review-nutrients span:nth-child(3) {
        background: rgba(245,190,92,.17);
        color: #ffd88d;
      }
      body:not(.theme-light).portal-page .nutrition-status-options {
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.07);
      }
      body:not(.theme-light).portal-page .nutrition-status-options label {
        border-right-color: rgba(255,255,255,.14);
        color: rgba(238,247,239,.72);
      }
      body:not(.theme-light).portal-page .nutrition-status-options label:has(input:checked) {
        background: #c2e084;
        color: #102820;
      }
      body:not(.theme-light).auth-page { color: #ffffff; background: #102820; }
      body:not(.theme-light).auth-page .language-switcher, body:not(.theme-light).auth-page .theme-switcher { border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.06); box-shadow: none; }
      body:not(.theme-light).auth-page .language-switcher button, body:not(.theme-light).auth-page .theme-switcher button { color: rgba(255,255,255,.72); }
      body:not(.theme-light).auth-page .language-switcher button.is-active, body:not(.theme-light).auth-page .theme-switcher button.is-active { background: rgba(194,224,132,.18); color: #ffffff; }
      body:not(.theme-light).ios-mobile.auth-page .mobile-page-language-selector::before { background: #102820; }
      body:not(.theme-light).auth-page .message { background: rgba(255,255,255,.08); color: rgba(255,255,255,.88); }
      body:not(.theme-light).auth-page .message.message-warning { background: rgba(120,72,10,.24); color: #ffd58a; }
      body:not(.theme-light).auth-page .auth-brand h2 { color: #ffffff; }
      body:not(.theme-light).auth-page .auth-brand-subtitle, body:not(.theme-light).auth-page .auth-note, body:not(.theme-light).auth-page .muted { color: rgba(255,255,255,.72); }
      body:not(.theme-light).auth-page .auth-field input { border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.1); color: #ffffff; }
      body:not(.theme-light).auth-page .auth-field input::placeholder { color: rgba(255,255,255,.5); }
      body:not(.theme-light).auth-page .auth-field input:focus { border-color: rgba(194,224,132,.72); outline: 2px solid rgba(194,224,132,.18); }
      body:not(.theme-light).auth-page .auth-links a { color: #c2e084; }
      body:not(.theme-light).auth-page .mobile-app-login-link { border-color: rgba(194,224,132,.32); background: rgba(255,255,255,.08); color: #ffffff; box-shadow: 0 8px 20px rgba(0,0,0,.28); }
      body:not(.theme-light).auth-page .mobile-app-login-link:hover, body:not(.theme-light).auth-page .mobile-app-login-link:focus-visible { border-color: #c2e084; background: rgba(194,224,132,.12); color: #ffffff; outline-color: rgba(194,224,132,.22); }
      body:not(.theme-light).auth-page .mobile-app-login-store-icon { filter: invert(1); opacity: .92; }
    }
    @media (max-width: 760px) {
      body.theme-dark { color-scheme: dark; }
      body.theme-dark.portal-page .account-garmin-auto-sync-form { border-color: rgba(255,255,255,.14); background: rgba(255,255,255,.06); }
      body.theme-dark.portal-page .account-garmin-auto-sync-label { color: rgba(238,247,239,.82); }
      body.theme-dark.portal-page .account-garmin-auto-sync-toggle input { border-color: rgba(255,255,255,.24); background: rgba(255,255,255,.16); }
      body.theme-dark.portal-page .account-garmin-auto-sync-toggle input::after { background: #eef7ef; box-shadow: 0 2px 7px rgba(0,0,0,.38); }
      body.theme-dark.portal-page .account-garmin-auto-sync-toggle input:checked { border-color: #c2e084; background: #c2e084; }
      body.theme-dark.portal-page .account-garmin-auto-sync-toggle input:checked::after { background: #102820; }
      body.theme-dark.portal-page .account-garmin-auto-sync-toggle input:focus-visible { outline-color: rgba(194,224,132,.72); }
      body.theme-dark.portal-page {
        color: #eef7ef;
        background:
          linear-gradient(180deg, #071913 0%, #102820 52%, #241f18 100%);
        background-color: #071913;
      }
      body.theme-dark.portal-page header {
        border-bottom-color: rgba(194,224,132,.16);
        background: rgba(6,24,18,.96);
        box-shadow: 0 12px 28px rgba(0,0,0,.35);
      }
      body.theme-dark.portal-page .mobile-page-title,
      body.theme-dark.portal-page .header-account,
      body.theme-dark.portal-page .site-footer {
        color: rgba(255,255,255,.82);
      }
      body.theme-dark.portal-page .site-footer {
        border-top-color: rgba(194,224,132,.16);
        background: rgba(6,24,18,.96);
        box-shadow: 0 -12px 28px rgba(0,0,0,.35), 0 3px 0 rgba(6,24,18,.96);
      }
      body.theme-dark.portal-page .language-switcher,
      body.theme-dark.portal-page .theme-switcher,
      body.theme-dark.portal-page .mobile-menu-toggle,
      body.theme-dark.portal-page nav a,
      body.theme-dark.portal-page nav button {
        border-color: rgba(255,255,255,.2);
        background-color: rgba(255,255,255,.06);
      }
      body.theme-dark.portal-page .language-switcher button,
      body.theme-dark.portal-page .theme-switcher button {
        color: rgba(255,255,255,.72);
      }
      body.theme-dark.portal-page .language-switcher button.is-active,
      body.theme-dark.portal-page .theme-switcher button.is-active,
      body.theme-dark.portal-page nav a.active {
        background: rgba(194,224,132,.18);
        color: #ffffff;
      }
      body.theme-dark.portal-page .panel,
      body.theme-dark.portal-page .calendar-panel,
      body.theme-dark.portal-page .selected-panel,
      body.theme-dark.portal-page .plan-update-card,
      body.theme-dark.portal-page .plan-review-card,
      body.theme-dark.portal-page .plan-update-result-card,
      body.theme-dark.portal-page .plan-chat-history,
      body.theme-dark.portal-page .plan-chat-bubble,
      body.theme-dark.portal-page .goal-card,
      body.theme-dark.portal-page .event-card,
      body.theme-dark.portal-page .filter-bar,
      body.theme-dark.portal-page .goal-filter-bar,
      body.theme-dark.portal-page .event-filter-bar,
      body.theme-dark.portal-page .account-card,
      body.theme-dark.portal-page .garmin-panel,
      body.theme-dark.portal-page .garmin-info-card,
      body.theme-dark.portal-page .profile-section,
      body.theme-dark.portal-page .profile-field,
      body.theme-dark.portal-page .profile-zone-group,
      body.theme-dark.portal-page .summary-item,
      body.theme-dark.portal-page .insight-score,
      body.theme-dark.portal-page .insight-metric,
      body.theme-dark.portal-page .recent-activity-metric,
      body.theme-dark.portal-page .nutrition-metric,
      body.theme-dark.portal-page .account-detail-row,
      body.theme-dark.portal-page .account-ai-consent-form,
      body.theme-dark.portal-page .account-preference-row,
      body.theme-dark.portal-page .workout-detail,
      body.theme-dark.portal-page .day-row,
      body.theme-dark.portal-page .calendar-day,
      body.theme-dark.portal-page .goal-summary,
      body.theme-dark.portal-page .event-summary,
      body.theme-dark.portal-page .goal-editor,
      body.theme-dark.portal-page .event-editor {
        border-color: rgba(255,255,255,.13);
        background-color: rgba(18,37,30,.9);
        color: #eef7ef;
        box-shadow: 0 12px 28px rgba(0,0,0,.22);
      }
      body.theme-dark.portal-page .today-training,
      body.theme-dark.portal-page .daily-insights,
      body.theme-dark.portal-page .race-readiness,
      body.theme-dark.portal-page .recent-activity,
      body.theme-dark.portal-page .nutrition-weight,
      body.theme-dark.portal-page .summary-panel,
      body.theme-dark.portal-page .account-hero,
      body.theme-dark.portal-page .garmin-hero,
      body.theme-dark.portal-page .account-card-access,
      body.theme-dark.portal-page .account-card-garmin,
      body.theme-dark.portal-page .account-card-ai-consent,
      body.theme-dark.portal-page .account-card-gpt,
      body.theme-dark.portal-page .account-card-coach,
      body.theme-dark.portal-page .account-card-preferences {
        background:
          linear-gradient(145deg, rgba(23,48,38,.94) 0%, rgba(13,33,27,.94) 56%, rgba(43,34,24,.9) 100%);
      }
      body.theme-dark.portal-page .account-ai-consent-copy { border-top-color: rgba(255,255,255,.13); }
      body.theme-dark.portal-page .account-ai-consent-copy p { color: #ffffff; }
      body.theme-dark.portal-page .account-ai-consent-copy small { color: rgba(238,247,239,.7); }
      body.theme-dark.portal-page .training-window-day { border-color: rgba(194,224,132,.16); background: rgba(255,255,255,.07); color: #eef7ef; box-shadow: inset 0 1px 0 rgba(255,255,255,.05); }
      body.theme-dark.portal-page .training-window-day.is-past { border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.035); color: rgba(238,247,239,.56); }
      body.theme-dark.portal-page .training-window-day.is-today { border-color: rgba(194,224,132,.72); background: linear-gradient(180deg, rgba(194,224,132,.2), rgba(194,224,132,.1)); box-shadow: 0 10px 24px rgba(0,0,0,.28), inset 0 0 0 1px rgba(194,224,132,.1); }
      body.theme-dark.portal-page .training-window-date time strong,
      body.theme-dark.portal-page .training-window-workout-title { color: #ffffff; }
      body.theme-dark.portal-page .training-window-day.is-past .training-window-date time strong,
      body.theme-dark.portal-page .training-window-day.is-past .training-window-workout-title,
      body.theme-dark.portal-page .training-window-weekday,
      body.theme-dark.portal-page .training-window-date time span,
      body.theme-dark.portal-page .training-window-sport { color: rgba(238,247,239,.6); }
      body.theme-dark.portal-page .training-window-icon-shell { border-color: rgba(194,224,132,.22); background: rgba(194,224,132,.1); color: #dff0a9; box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
      body.theme-dark.portal-page .training-window-day.is-past .training-window-icon-shell { border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.055); color: rgba(238,247,239,.52); }
      body.theme-dark.portal-page .training-window-day.is-today .training-window-icon-shell { border-color: #c2e084; background: #c2e084; color: #102820; }
      body.theme-dark.portal-page .training-window-metric { border-color: rgba(194,224,132,.22); background: rgba(194,224,132,.12); color: #dff0a9; }
      body.theme-dark.portal-page .training-window-day.is-past .training-window-metric { border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.05); color: rgba(238,247,239,.58); }
      body.theme-dark.portal-page .training-window-day.is-today .training-window-metric { border-color: rgba(194,224,132,.36); background: rgba(255,255,255,.1); color: #efffc5; }
      body.theme-dark.portal-page .training-window-more { border-color: #173329; }
      body.theme-dark.portal-page .training-window-record > span { color: #4b3900; }
      body.theme-dark.portal-page .training-window-edge-hint.is-left { background: linear-gradient(90deg, rgba(17,38,30,.94), rgba(17,38,30,0)); }
      body.theme-dark.portal-page .training-window-edge-hint.is-right { background: linear-gradient(270deg, rgba(29,34,25,.94), rgba(29,34,25,0)); }
      body.theme-dark.portal-page .training-window-edge-hint::after { border-color: #c2e084; filter: drop-shadow(0 1px 2px rgba(0,0,0,.72)); }
      body.theme-dark.portal-page .guide-panel,
      body.theme-dark.portal-page .wizard-track,
      body.theme-dark.portal-page .wizard-optional-panel,
      body.theme-dark.portal-page .wizard-step,
      body.theme-dark.portal-page .wizard-next,
      body.theme-dark.portal-page .recent-activity-top,
      body.theme-dark.portal-page .insight-loading,
      body.theme-dark.portal-page .insight-coach-comment,
      body.theme-dark.portal-page .insight-plan-update,
      body.theme-dark.portal-page .nutrition-goal-note,
      body.theme-dark.portal-page .nutrition-macro-panel,
      body.theme-dark.portal-page .recent-activity-feedback,
      body.theme-dark.portal-page .race-empty,
      body.theme-dark.portal-page .goal-examples,
      body.theme-dark.portal-page .goals-empty,
      body.theme-dark.portal-page .events-empty {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.06);
        color: #eef7ef;
      }
      body.theme-dark.portal-page h2,
      body.theme-dark.portal-page h3,
      body.theme-dark.portal-page strong,
      body.theme-dark.portal-page .main-inner > h2,
      body.theme-dark.portal-page .dashboard-widget .insight-heading h2,
      body.theme-dark.portal-page .dashboard-widget .widget-heading h2,
      body.theme-dark.portal-page .dashboard-widget .wizard-header h2,
      body.theme-dark.portal-page .goal-title-line strong,
      body.theme-dark.portal-page .event-title-line strong,
      body.theme-dark.portal-page .account-hero h2,
      body.theme-dark.portal-page .billing-plan-name h2,
      body.theme-dark.portal-page .billing-plan-primary-price strong,
      body.theme-dark.portal-page .race-event h3,
      body.theme-dark.portal-page .recent-activity-title h3,
      body.theme-dark.portal-page .detail-heading h3,
      body.theme-dark.portal-page .day-number,
      body.theme-dark.portal-page .date-lockup strong {
        color: #ffffff;
      }
      body.theme-dark.portal-page .event-title-icon {
        color: #ffd88d;
      }
      body.theme-dark.portal-page .muted,
      body.theme-dark.portal-page label,
      body.theme-dark.portal-page th,
      body.theme-dark.portal-page .guide-eyebrow,
      body.theme-dark.portal-page .guide-subtitle,
      body.theme-dark.portal-page .widget-eyebrow,
      body.theme-dark.portal-page .insight-eyebrow,
      body.theme-dark.portal-page .recent-activity-date,
      body.theme-dark.portal-page .wizard-eyebrow,
      body.theme-dark.portal-page .wizard-header p:not(.wizard-eyebrow),
      body.theme-dark.portal-page .profile-section-note,
      body.theme-dark.portal-page .profile-description,
      body.theme-dark.portal-page .profile-examples,
      body.theme-dark.portal-page .inline-label,
      body.theme-dark.portal-page .goal-meta-line,
      body.theme-dark.portal-page .event-meta-line,
      body.theme-dark.portal-page .selected-title span,
      body.theme-dark.portal-page .calendar-title > span,
      body.theme-dark.portal-page .plan-review-note,
      body.theme-dark.portal-page .plan-review-meta,
      body.theme-dark.portal-page .plan-chat-empty,
      body.theme-dark.portal-page .plan-chat-message-meta,
      body.theme-dark.portal-page .legend,
      body.theme-dark.portal-page .detail-kicker,
      body.theme-dark.portal-page .detail-panel-kicker,
      body.theme-dark.portal-page .detail-item strong,
      body.theme-dark.portal-page .detail-empty,
      body.theme-dark.portal-page .account-panel-description,
      body.theme-dark.portal-page .account-hero-copy > p:last-child,
      body.theme-dark.portal-page .account-detail-row span,
      body.theme-dark.portal-page .account-preference-label,
      body.theme-dark.portal-page .garmin-status-row span,
      body.theme-dark.portal-page .account-trial-note {
        color: rgba(238,247,239,.68);
      }
      body.theme-dark.portal-page .plan-guidance textarea::placeholder,
      body.theme-dark.portal-page .plan-review-dialog textarea::placeholder {
        color: rgba(238,247,239,.44);
        opacity: 1;
      }
      body.theme-dark.portal-page .plan-chat-history {
        --plan-chat-scroll-surface: rgba(18,37,30,.9);
        --plan-chat-scroll-surface-clear: rgba(18,37,30,0);
        --plan-chat-scroll-thumb: rgba(194,224,132,.62);
        scrollbar-color: rgba(194,224,132,.62) transparent;
      }
      body.theme-dark.portal-page .plan-chat-history::-webkit-scrollbar-thumb {
        border-color: rgba(18,37,30,.9);
        background: rgba(194,224,132,.62);
      }
      body.theme-dark.portal-page .plan-chat-history.is-scrollable {
        background:
          linear-gradient(rgba(18,37,30,.94) 30%, rgba(18,37,30,0)) top,
          linear-gradient(rgba(18,37,30,0), rgba(18,37,30,.94) 70%) bottom,
          radial-gradient(farthest-side at 50% 0, rgba(0,0,0,.42), rgba(0,0,0,0)) top,
          radial-gradient(farthest-side at 50% 100%, rgba(0,0,0,.38), rgba(0,0,0,0)) bottom;
        background-color: rgba(18,37,30,.9);
        background-repeat: no-repeat;
        background-size: 100% 18px, 100% 18px, 100% 10px, 100% 10px;
        background-attachment: local, local, scroll, scroll;
      }
      body.theme-dark.portal-page .plan-chat-message-user .plan-chat-bubble {
        border-color: rgba(194,224,132,.25);
        background: rgba(194,224,132,.12);
      }
      body.theme-dark.portal-page .plan-chat-message-coach.is-updated .plan-chat-bubble {
        border-color: rgba(228,205,133,.34);
        background: rgba(228,205,133,.12);
      }
      body.theme-dark.portal-page .coach-plan-update-proposal {
        border-color: rgba(255,255,255,.16);
        background: #132a22;
        color: #eef7ef;
      }
      body.theme-dark.portal-page .coach-plan-update-proposal.is-unused {
        background: rgba(255,255,255,.05);
      }
      body.theme-dark.portal-page .plan-review-menu {
        border-color: rgba(255,255,255,.16);
        background: #132a22;
        color: #eef7ef;
      }
      body.theme-dark.portal-page .plan-review-menu [role="menuitem"] { color: #eef7ef; }
      body.theme-dark.portal-page .plan-review-menu [role="menuitem"]:is(:hover, :focus-visible) { background: rgba(194,224,132,.12); color: #dff0a9; }
      body.theme-dark.portal-page .plan-review-menu-toggle { border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.06); color: #eef7ef; }
      body.theme-dark.portal-page a:not(.button),
      body.theme-dark.portal-page .link-button,
      body.theme-dark.portal-page .wizard-step-link {
        color: #c2e084;
      }
      body.theme-dark.portal-page .dashboard-add-widget summary {
        color: #c2e084;
      }
      body.theme-dark.portal-page .dashboard-add-widget-menu {
        border-color: rgba(194,224,132,.22);
        background: rgba(7,25,19,.98);
        color: #eef7ef;
        box-shadow: 0 16px 32px rgba(0,0,0,.42);
      }
      body.theme-dark.portal-page .dashboard-add-widget-menu .link-button {
        display: block;
        width: 100%;
        padding: 7px 9px;
        border-radius: 6px;
        background: transparent;
        color: #eef7ef;
        text-decoration: none;
        box-shadow: none;
      }
      body.theme-dark.portal-page .dashboard-add-widget-menu .link-button:hover,
      body.theme-dark.portal-page .dashboard-add-widget-menu .link-button:focus {
        background: rgba(194,224,132,.12);
        color: #ffffff;
      }
      body.theme-dark.portal-page input,
      body.theme-dark.portal-page textarea,
      body.theme-dark.portal-page select,
      body.theme-dark.portal-page .calendar-selects select {
        border-color: rgba(255,255,255,.18);
        background: rgba(255,255,255,.08);
        color: #ffffff;
      }
      body.theme-dark.portal-page input::placeholder,
      body.theme-dark.portal-page textarea::placeholder {
        color: rgba(255,255,255,.44);
      }
      body.theme-dark.portal-page input:focus,
      body.theme-dark.portal-page textarea:focus,
      body.theme-dark.portal-page select:focus {
        border-color: rgba(194,224,132,.7);
        outline: 2px solid rgba(194,224,132,.16);
      }
      body.theme-dark.portal-page table,
      body.theme-dark.portal-page .goals-table tbody tr,
      body.theme-dark.portal-page .events-table tbody tr,
      body.theme-dark.portal-page .plan-table tbody tr,
      body.theme-dark.portal-page .goals-table td,
      body.theme-dark.portal-page .events-table td,
      body.theme-dark.portal-page .plan-table td,
      body.theme-dark.portal-page th,
      body.theme-dark.portal-page td {
        border-color: rgba(255,255,255,.12);
        background-color: rgba(18,37,30,.84);
        color: #eef7ef;
      }
      body.theme-dark.portal-page .message {
        background: rgba(255,255,255,.08);
        color: rgba(255,255,255,.88);
      }
      body.theme-dark.portal-page .message.message-warning {
        background: rgba(120,72,10,.24);
        color: #ffd58a;
      }
      body.theme-dark.portal-page .secondary,
      body.theme-dark.portal-page .icon-button,
      body.theme-dark.portal-page .draft-action-button,
      body.theme-dark.portal-page .mobile-filter-toggle.link-button,
      body.theme-dark.portal-page .plan-comments-toggle,
      body.theme-dark.portal-page .plan-review-close,
      body.theme-dark.portal-page .calendar-nav .today-button,
      body.theme-dark.portal-page .week-arrow-row-mobile .week-arrow,
      body.theme-dark.portal-page .profile-section-accordion,
      body.theme-dark.portal-page .mobile-day-toggle-icon,
      body.theme-dark.portal-page .goal-summary-toggle-icon,
      body.theme-dark.portal-page .event-summary-toggle-icon,
      body.theme-dark.portal-page .detail-tab-list {
        border-color: rgba(255,255,255,.16);
        background: rgba(255,255,255,.08);
        color: #c2e084;
      }
      body.theme-dark.portal-page .goal-filter-bar .filter-actions .filter-submit-button,
      body.theme-dark.portal-page .event-filter-bar .filter-actions .filter-submit-button {
        border-color: #286a57;
        background: #286a57;
        color: #ffffff;
      }
      body.theme-dark.portal-page .goal-filter-bar .filter-actions .filter-submit-button:hover,
      body.theme-dark.portal-page .event-filter-bar .filter-actions .filter-submit-button:hover {
        border-color: #1f4f41;
        background: #1f4f41;
        color: #ffffff;
      }
      body.theme-dark.portal-page .goal-filter-bar .filter-actions .clear-filter-button,
      body.theme-dark.portal-page .event-filter-bar .filter-actions .clear-filter-button {
        border-color: rgba(255,255,255,.16);
        background: rgba(255,255,255,.08);
        color: rgba(238,247,239,.72);
      }
      body.theme-dark.portal-page .goal-filter-bar .filter-actions .clear-filter-button:hover,
      body.theme-dark.portal-page .event-filter-bar .filter-actions .clear-filter-button:hover {
        background: rgba(255,255,255,.14);
        color: #ffffff;
      }
      body.theme-dark.portal-page .detail-tab-input-plan:checked ~ .detail-heading .detail-tab-plan,
      body.theme-dark.portal-page .detail-tab-input-execution:checked ~ .detail-heading .detail-tab-execution,
      body.theme-dark.portal-page .expanded-workout .detail-tab-input-plan:checked ~ .detail-heading .detail-tab-plan,
      body.theme-dark.portal-page .expanded-workout .detail-tab-input-execution:checked ~ .detail-heading .detail-tab-execution {
        background: rgba(194,224,132,.16);
        color: #ffffff;
        box-shadow: inset 0 0 0 1px rgba(194,224,132,.38);
      }
      @supports selector(.workout-detail:has(.detail-tab-input:checked)) {
        body.theme-dark.portal-page .workout-detail.has-matched-tabs:not(:has(.detail-tab-input:checked)) .detail-tab-execution {
          background: rgba(194,224,132,.16);
          color: #ffffff;
          box-shadow: inset 0 0 0 1px rgba(194,224,132,.38);
        }
      }
      body.theme-dark.portal-page .plan-update-card,
      body.theme-dark.portal-page .plan-review-card,
      body.theme-dark.portal-page .plan-update-result-card,
      body.theme-dark.portal-page .calendar-panel,
      body.theme-dark.portal-page .selected-panel {
        border-color: rgba(194,224,132,.14);
        background: linear-gradient(145deg, rgba(19,43,34,.96) 0%, rgba(10,31,25,.96) 62%, rgba(34,31,23,.92) 100%);
        box-shadow: 0 14px 34px rgba(0,0,0,.28);
      }
      body.theme-dark.portal-page .plan-update-result-header { border-bottom-color: rgba(194,224,132,.14); }
      body.theme-dark.portal-page .plan-update-result-header .plan-coach-eyebrow { color: #c2e084; }
      body.theme-dark.portal-page .plan-update-result-header h2 { color: #ffffff; }
      body.theme-dark.portal-page .plan-update-result-text { color: rgba(238,247,239,.72); }
      body.theme-dark.portal-page .plan-comments-toggle,
      body.theme-dark.portal-page .calendar-nav .today-button,
      body.theme-dark.portal-page .week-arrow-row-mobile .week-arrow,
      body.theme-dark.portal-page .week-arrow {
        border-color: rgba(194,224,132,.2);
        background: rgba(255,255,255,.07);
        color: #c2e084;
        box-shadow: none;
      }
      body.theme-dark.portal-page .calendar-legend-toggle {
        border-color: rgba(238,247,239,.2);
        background: rgba(238,247,239,.08);
        color: rgba(238,247,239,.82);
        box-shadow: none;
      }
      body.theme-dark.portal-page .plan-comments-toggle:hover,
      body.theme-dark.portal-page .plan-comments-toggle:focus,
      body.theme-dark.portal-page .calendar-nav .today-button:hover,
      body.theme-dark.portal-page .calendar-nav .today-button:focus,
      body.theme-dark.portal-page .week-arrow:hover,
      body.theme-dark.portal-page .week-arrow:focus {
        border-color: rgba(194,224,132,.38);
        background: rgba(194,224,132,.12);
        color: #ffffff;
      }
      body.theme-dark.portal-page .calendar-nav .today-button {
        border-color: #2f7f6b;
        background: #2f7f6b;
        color: #ffffff;
        box-shadow: 0 6px 14px rgba(47,127,107,.22);
      }
      body.theme-dark.portal-page .calendar-nav .today-button:hover,
      body.theme-dark.portal-page .calendar-nav .today-button:focus {
        border-color: #286a57;
        background: #286a57;
        color: #ffffff;
      }
      body.theme-dark.portal-page .calendar-legend-toggle:hover,
      body.theme-dark.portal-page .calendar-legend-toggle:focus {
        border-color: rgba(238,247,239,.32);
        background: rgba(238,247,239,.14);
        color: #ffffff;
      }
      body.theme-dark.portal-page .plan-review-action,
      body.theme-dark.portal-page .detail-complete-button {
        border-color: rgba(194,224,132,.58);
        background: #c2e084;
        color: #102820;
        box-shadow: none;
      }
      body.theme-dark.portal-page .plan-review-submit[aria-disabled="true"],
      body.theme-dark.portal-page .plan-review-submit:disabled,
      body.theme-dark.portal-page .plan-review-send[aria-disabled="true"],
      body.theme-dark.portal-page .plan-review-send:disabled,
      body.theme-dark.portal-page .plan-update-retry:disabled {
        border-color: rgba(238,247,239,.14);
        background: rgba(238,247,239,.08);
        color: rgba(238,247,239,.42);
      }
      body.theme-dark.portal-page .plan-refresh-status,
      body.theme-dark.portal-page .plan-unavailable,
      body.theme-dark.portal-page .plan-progress {
        border-color: rgba(194,224,132,.2);
        background: rgba(194,224,132,.08);
        color: #eef7ef;
      }
      body.theme-dark.portal-page .plan-coach-eyebrow,
      body.theme-dark.portal-page .plan-guidance-meta,
      body.theme-dark.portal-page .plan-last-updated,
      body.theme-dark.portal-page .plan-progress-percent,
      body.theme-dark.portal-page .calendar-last-updated,
      body.theme-dark.portal-page .selected-empty {
        color: rgba(238,247,239,.68);
      }
      body.theme-dark.portal-page .plan-progress-label {
        color: #ffffff;
      }
      body.theme-dark.portal-page .plan-unavailable-action {
        border-color: rgba(194,224,132,.58);
        background: #c2e084;
        color: #102820;
        box-shadow: none;
      }
      body.theme-dark.portal-page .plan-progress-track {
        background: rgba(255,255,255,.1);
      }
      body.theme-dark.portal-page .plan-progress-fill {
        background: #c2e084;
      }
      body.theme-dark.portal-page .plan-garmin-sync-popup-inner {
        border-color: rgba(194,224,132,.72);
        background: rgba(19,43,34,.96);
        color: #eef7ef;
        box-shadow: 0 16px 36px rgba(0,0,0,.42), 0 0 0 3px rgba(194,224,132,.14);
      }
      body.theme-dark.portal-page .plan-update-progress-popup-inner {
        border-color: rgba(194,224,132,.72);
        background: rgba(19,43,34,.96);
        color: #eef7ef;
        box-shadow: 0 16px 36px rgba(0,0,0,.42), 0 0 0 3px rgba(194,224,132,.14);
      }
      body.theme-dark.portal-page .plan-update-progress-popup.is-error .plan-update-progress-popup-inner {
        border-color: #f59e0b;
        background: #352510;
        box-shadow: 0 16px 36px rgba(0,0,0,.42), 0 0 0 3px rgba(245,158,11,.18);
      }
      body.theme-dark.portal-page .plan-update-progress-popup.is-error .plan-coach-eyebrow { color: #fbbf24; }
      body.theme-dark.portal-page .plan-chat-message.is-error .plan-chat-bubble {
        border-color: rgba(245,158,11,.72);
        background: rgba(120,72,10,.24);
      }
      body.theme-dark.portal-page .plan-update-progress-popup-label,
      body.theme-dark.portal-page .plan-garmin-sync-popup-label,
      body.theme-dark.portal-page .plan-update-progress-popup-message h2 {
        color: #ffffff;
      }
      body.theme-dark.portal-page .plan-update-progress-popup-percent,
      body.theme-dark.portal-page .plan-garmin-sync-popup-percent,
      body.theme-dark.portal-page .plan-update-progress-popup-message p:last-child {
        color: rgba(238,247,239,.68);
      }
      body.theme-dark.portal-page .plan-timeline-progress-track { background: rgba(255,255,255,.1); }
      body.theme-dark.portal-page .plan-timeline-progress-fill { background: #c2e084; }
      body.theme-dark.portal-page .plan-garmin-sync-spinner {
        border-color: rgba(194,224,132,.24);
        border-top-color: #c2e084;
      }
      body.theme-dark.portal-page .plan-phase-overlay {
        border-color: rgba(194,224,132,.3);
        background: rgba(17,35,26,.32);
        color: #eef7ef;
        box-shadow: 0 18px 46px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.08);
      }
      body.theme-dark.portal-page .mobile-plan-phase-restore-layer { border-color: rgba(255,255,255,.18); background: rgba(35,53,43,.98); }
      body.theme-dark.portal-page .plan-phase-overlay-card {
        border-color: rgba(255,255,255,.14);
        background: rgba(35,53,43,.38);
        box-shadow: 0 10px 28px rgba(0,0,0,.24);
      }
      body.theme-dark.portal-page .plan-phase-overlay.is-mobile .plan-phase-overlay-card {
        background: rgba(35,53,43,.82);
      }
      body.theme-dark.portal-page .plan-phase-overlay-card h2 { color: #f1f7f2; }
      body.theme-dark.portal-page .plan-phase-overlay-eyebrow,
      body.theme-dark.portal-page .plan-phase-overlay-card h3 { color: #b7c8bd; }
      body.theme-dark.portal-page .plan-phase-overlay[data-roadmap-phase-type] .plan-phase-overlay-eyebrow { color: #e9a25f; }
      body.theme-dark.portal-page .plan-phase-overlay-card h3.season-roadmap-phase-label-purpose { color: #91e1d7; }
      body.theme-dark.portal-page .plan-phase-overlay-card h3.season-roadmap-phase-label-direction { color: #b9e7ff; }
      body.theme-dark.portal-page .plan-phase-overlay-card h3.season-roadmap-phase-label-themes { color: #ffd08c; }
      body.theme-dark.portal-page .plan-phase-overlay-week {
        border-color: rgba(194,224,132,.28);
        background: rgba(255,255,255,.08);
        color: #c2e084;
      }
      body.theme-dark.portal-page .plan-phase-overlay-week span,
      body.theme-dark.portal-page .plan-phase-overlay-card p { color: #d6e2d9; }
      body.theme-dark.portal-page .plan-phase-overlay-summary-grid > section {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.055);
      }
      body.theme-dark.portal-page .plan-phase-overlay-volume { color: #b7c8bd !important; }
      body.theme-dark.portal-page .plan-phase-overlay .season-roadmap-source-chip {
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.08);
        color: #e3ece5;
      }
      body.theme-dark.portal-page .plan-phase-overlay-themes .season-roadmap-theme-pill { --roadmap-theme-background: rgba(170,182,176,.13); --roadmap-theme-border: rgba(170,182,176,.36); --roadmap-theme-ink: #d7ded9; }
      body.theme-dark.portal-page .plan-phase-overlay-themes .season-roadmap-theme-pill-endurance { --roadmap-theme-background: rgba(93,194,255,.17); --roadmap-theme-border: rgba(93,194,255,.46); --roadmap-theme-ink: #b9e7ff; }
      body.theme-dark.portal-page .plan-phase-overlay-themes .season-roadmap-theme-pill-strength { --roadmap-theme-background: rgba(177,139,230,.18); --roadmap-theme-border: rgba(192,159,237,.48); --roadmap-theme-ink: #d8bef8; }
      body.theme-dark.portal-page .plan-phase-overlay-themes .season-roadmap-theme-pill-recovery { --roadmap-theme-background: rgba(68,200,182,.17); --roadmap-theme-border: rgba(104,216,200,.46); --roadmap-theme-ink: #91e1d7; }
      body.theme-dark.portal-page .plan-phase-overlay-themes .season-roadmap-theme-pill-race { --roadmap-theme-background: rgba(255,105,95,.18); --roadmap-theme-border: rgba(255,128,119,.5); --roadmap-theme-ink: #ffb4ad; }
      body.theme-dark.portal-page .plan-phase-overlay-themes .season-roadmap-theme-pill-fueling { --roadmap-theme-background: rgba(255,174,64,.18); --roadmap-theme-border: rgba(255,190,100,.5); --roadmap-theme-ink: #ffd08c; }
      body.theme-dark.portal-page .plan-phase-overlay-themes .season-roadmap-theme-pill-technique { --roadmap-theme-background: rgba(116,235,164,.17); --roadmap-theme-border: rgba(116,235,164,.46); --roadmap-theme-ink: #a7f3c5; }
      body.theme-dark.portal-page .plan-phase-overlay-roadmap-button {
        border-color: #c2e084;
        background: #c2e084;
        color: #173326 !important;
      }
      body.theme-dark.portal-page .plan-phase-overlay-roadmap-button:hover,
      body.theme-dark.portal-page .plan-phase-overlay-roadmap-button:focus {
        border-color: #d6eea8;
        background: #d6eea8;
        color: #10261b !important;
      }
      body.theme-dark.portal-page .calendar-day,
      body.theme-dark.portal-page .day-row {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.045);
        box-shadow: 0 4px 12px rgba(0,0,0,.22);
      }
      body.theme-dark.portal-page .calendar-day.has-plan,
      body.theme-dark.portal-page .day-row.has-plan {
        background: rgba(255,255,255,.065);
      }
      body.theme-dark.portal-page .calendar-day.is-today,
      body.theme-dark.portal-page .day-row.is-today {
        border-color: rgba(194,224,132,.24);
        background: rgba(194,224,132,.08);
      }
      body.theme-dark.portal-page .calendar-day.is-selected,
      body.theme-dark.portal-page .day-row.is-selected,
      body.theme-dark.portal-page .calendar-day.is-today.is-selected,
      body.theme-dark.portal-page .day-row.is-today.is-selected,
      body.theme-dark.portal-page .day-row.is-collapsed-selected,
      body.theme-dark.portal-page .day-row.is-today.is-collapsed-selected {
        border-width: 2px;
        border-color: rgba(139,190,230,.5);
        background: rgba(139,190,230,.1);
        box-shadow: 0 4px 12px rgba(0,0,0,.22);
      }
      body.theme-dark.portal-page .day-row.is-selected:not(.is-switching-away)::after {
        border-color: rgba(139,190,230,.5);
        box-shadow: none;
      }
      body.theme-dark.portal-page .day-row.is-selected.is-switching-away,
      body.theme-dark.portal-page .day-row.is-today.is-selected.is-switching-away {
        border-width: 1px;
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.065);
        box-shadow: 0 4px 12px rgba(0,0,0,.22);
      }
      body.theme-dark.portal-page .calendar-day.is-outside-horizon,
      body.theme-dark.portal-page .day-row.is-outside-horizon {
        background: rgba(255,255,255,.025);
      }
      body.theme-dark.portal-page .calendar-day.is-outside-horizon .day-num,
      body.theme-dark.portal-page .calendar-day.is-outside-horizon .day-weekday,
      body.theme-dark.portal-page .calendar-day.is-outside-horizon .day-month,
      body.theme-dark.portal-page .day-row.is-outside-horizon .weekday,
      body.theme-dark.portal-page .day-row.is-outside-horizon .mobile-month,
      body.theme-dark.portal-page .no-workout {
        color: rgba(238,247,239,.42);
      }
      body.theme-dark.portal-page .day-number,
      body.theme-dark.portal-page .date-lockup,
      body.theme-dark.portal-page .weekday,
      body.theme-dark.portal-page .mobile-month {
        color: rgba(238,247,239,.72);
      }
      body.theme-dark.portal-page .mobile-today-label { color: #c2e084; }
      body.theme-dark.portal-page .day-signal-detail { color: rgba(238,247,239,.62); }
      body.theme-dark.portal-page .day-signal-coach .day-signal-label,
      body.theme-dark.portal-page .day-signal-variant-easy .day-signal-label,
      body.theme-dark.portal-page .day-signal-variant-technique .day-signal-label { color: #8bc7ed; }
      body.theme-dark.portal-page .day-signal-recovery .day-signal-label,
      body.theme-dark.portal-page .day-signal-variant-mobility .day-signal-label { color: #71d8cd; }
      body.theme-dark.portal-page .day-signal-adaptation .day-signal-label { color: #c2e084; }
      body.theme-dark.portal-page .day-signal-achievement .day-signal-label,
      body.theme-dark.portal-page .day-signal-variant-strength .day-signal-label { color: #c8a7f1; }
      body.theme-dark.portal-page .day-signal-purpose .day-signal-label { color: #ffc274; }
      body.theme-dark.portal-page .day-signal-variant-race .day-signal-label { color: #ff9b92; }
      body.theme-dark.portal-page .day-signal-neutral .day-signal-label { color: rgba(238,247,239,.68); }
      body.theme-dark.portal-page .workout-pill .calendar-personal-record-badge.is-number-only,
      body.theme-dark.portal-page .workout-pill .calendar-personal-record-badge.is-number-only .calendar-personal-record-count { color: #382a00; text-shadow: none; }
      body.theme-dark.portal-page .day-row .mobile-day-toggle-icon:hover {
        border-color: rgba(194,224,132,.4);
        background: rgba(255,255,255,.12);
        color: #ffffff;
      }
      body.theme-dark.portal-page .day-row .mobile-day-toggle-icon:focus-visible {
        border-color: #c2e084;
        outline: none;
        box-shadow: none;
      }
      body.ios-mobile.theme-dark.portal-page .day-row .mobile-day-toggle-icon {
        -webkit-tap-highlight-color: transparent;
      }
      body.ios-mobile.theme-dark.portal-page .day-row .mobile-day-toggle-icon:hover,
      body.ios-mobile.theme-dark.portal-page .day-row .mobile-day-toggle-icon:focus,
      body.ios-mobile.theme-dark.portal-page .day-row .mobile-day-toggle-icon:focus-visible {
        border-color: rgba(255,255,255,.16);
        background: rgba(255,255,255,.08);
        color: #c2e084;
        outline: none;
        box-shadow: none;
      }
      body.theme-dark.portal-page .weekday { background: transparent; }
      body.theme-dark.portal-page .calendar-day.is-today .day-num,
      body.theme-dark.portal-page .day-row.is-today .date-lockup strong {
        text-decoration-color: #c2e084;
      }
      body.theme-dark.portal-page .calendar-pill.is-clicked,
      body.theme-dark.portal-page .workout-pill.is-clicked,
      body.theme-dark.portal-page .calendar-day.is-today .calendar-pill.is-clicked,
      body.theme-dark.portal-page .day-row.is-today .workout-pill.is-clicked,
      body.theme-dark.portal-page .workout-switch.is-active {
        border-color: rgba(215,242,255,.92);
        box-shadow: inset 0 0 0 1px rgba(215,242,255,.86), 0 0 0 2px rgba(215,242,255,.28);
      }
      body.theme-dark.portal-page .workout-detail,
      body.theme-dark.portal-page .selected-panel.is-today .workout-detail {
        border-color: rgba(255,255,255,.12);
        background: rgba(7,25,19,.42);
        color: #eef7ef;
        box-shadow: none;
      }
      body.theme-dark.portal-page .expanded-workout {
        --expanded-workout-divider: rgba(255,255,255,.38);
        --expanded-workout-subdivider: rgba(255,255,255,.38);
        border-top-color: rgba(255,255,255,.12);
        background: linear-gradient(to bottom, transparent 8px, rgba(255,255,255,.075) 8px);
      }
      body.theme-dark.portal-page .expanded-workout::before,
      body.theme-dark.portal-page .expanded-workout.is-single-view .detail-title-row::before,
      body.theme-dark.portal-page .expanded-workout.has-matched-tabs .detail-tab-panel::before {
        border-top-width: 1px;
        border-top-color: rgba(255,255,255,.38);
        transform: scaleY(.5);
        transform-origin: top;
      }
      body.theme-dark.portal-page .expanded-workout .detail-title-row::after,
      body.theme-dark.portal-page .expanded-workout .detail-panel-title-row::after,
      body.theme-dark.portal-page .expanded-workout .detail-tab-panel-plan .detail-item::after,
      body.theme-dark.portal-page .expanded-workout .detail-tab-panel-execution .detail-item::after {
        border-top-color: rgba(255,255,255,.38);
        transform: scaleY(.5);
        transform-origin: bottom;
      }
      body.theme-dark.portal-page .detail-heading,
      body.theme-dark.portal-page .detail-panel-heading {
        border-bottom-color: rgba(255,255,255,.12);
      }
      body.theme-dark.portal-page .detail-heading h3 .plan-activity-icon,
      body.theme-dark.portal-page .detail-panel-heading h3 .plan-activity-icon {
        color: #c2e084;
      }
      body.theme-dark.portal-page .detail-heading-review strong,
      body.theme-dark.portal-page .detail-item.detail-activity-note strong {
        color: #ffd88d;
      }
      body.theme-dark.portal-page .detail-heading-review,
      body.theme-dark.portal-page .detail-heading-review em,
      body.theme-dark.portal-page .detail-item strong,
      body.theme-dark.portal-page .detail-item span,
      body.theme-dark.portal-page .revision-note em {
        color: rgba(238,247,239,.68);
      }
      body.theme-dark.portal-page .detail-item {
        border-bottom-color: rgba(255,255,255,.11);
      }
      body.theme-dark.portal-page .execution-component-item,
      body.theme-dark.portal-page .structured-workout-item {
        border-bottom-color: rgba(255,255,255,.1);
      }
      body.theme-dark.portal-page .structured-workout-substeps {
        border-left-color: rgba(194,224,132,.22);
      }
      body.theme-dark.portal-page .structured-workout-repeat-icon {
        color: #c2e084;
      }
      body.theme-dark.portal-page .structured-workout-repeat-count {
        border-color: rgba(194,224,132,.46);
        background: rgba(194,224,132,.12);
        color: #dff0aa;
      }
      body.theme-dark.portal-page .structured-workout-repeat-group {
        border-color: rgba(194,224,132,.32);
        background: rgba(194,224,132,.055);
      }
      body.theme-dark.portal-page .structured-workout-repeat-group > .structured-workout-repeat-panel > .leg-accordion-summary .structured-workout-block-heading {
        border-color: rgba(194,224,132,.34);
        background: rgba(194,224,132,.12);
        box-shadow: none;
      }
      body.theme-dark.portal-page .structured-workout-leg-substep > .structured-workout-step-panel:not([open]) .structured-workout-block-heading,
      body.theme-dark.portal-page .structured-workout-repeat-substep > .structured-workout-step-panel:not([open]) .structured-workout-block-heading {
        border-color: rgba(194,224,132,.18);
        background: rgba(255,255,255,.055);
        box-shadow: none;
      }
      body.theme-dark.portal-page .leg-accordion-item[open] {
        border-color: rgba(194,224,132,.34);
        background: rgba(7,25,19,.36);
      }
      body.theme-dark.portal-page .structured-workout-repeat-panel[open] {
        border: 0;
        background: transparent;
      }
      body.theme-dark.portal-page .structured-workout-leg-panel[open] {
        background: rgba(7,25,19,.42);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 2px 8px rgba(0,0,0,.22);
      }
      body.theme-dark.portal-page .structured-workout-step-panel[open] {
        border-color: rgba(194,224,132,.32);
        background: rgba(7,25,19,.44);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
      }
      body.theme-dark.portal-page .structured-workout-list.has-leg-panels .structured-workout-step-panel[open] {
        border-left-width: 1px;
        border-left-color: rgba(194,224,132,.32);
      }
      body.theme-dark.portal-page .structured-workout-repeat-substep > .structured-workout-step-panel[open] {
        border-left-width: 1px;
        border-left-color: rgba(194,224,132,.32);
        background: rgba(7,25,19,.34);
        box-shadow: none;
      }
      body.theme-dark.portal-page .leg-accordion-item[open] > .leg-accordion-summary .structured-workout-block-heading {
        border: 0;
        border-bottom: 1px solid rgba(255,255,255,.12);
        background: rgba(194,224,132,.1);
        box-shadow: none;
      }
      body.theme-dark.portal-page .leg-accordion-tile {
        border-color: rgba(194,224,132,.18);
        background: rgba(255,255,255,.075);
        color: #eef7ef;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
      }
      body.theme-dark.portal-page .structured-workout-leg-panel > .leg-accordion-summary .leg-accordion-tile {
        border-color: rgba(194,224,132,.26);
        background: rgba(194,224,132,.09);
      }
      body.theme-dark.portal-page .structured-workout-block-heading {
        border-color: rgba(194,224,132,.18);
        background: rgba(255,255,255,.075);
        color: #eef7ef;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
      }
      body.theme-dark.portal-page .leg-accordion-item[open] .leg-accordion-tile {
        border: 0;
        border-bottom: 1px solid rgba(255,255,255,.12);
        background: rgba(194,224,132,.1);
        box-shadow: none;
      }
      body.theme-dark.portal-page .structured-workout-leg-panel[open] > .leg-accordion-summary .leg-accordion-tile {
        border: 0;
        border-bottom: 1px solid rgba(255,255,255,.12);
        background: rgba(194,224,132,.14);
      }
      body.theme-dark.portal-page .leg-accordion-tile strong,
      body.theme-dark.portal-page .structured-workout-block-heading strong {
        color: #ffffff;
      }
      body.theme-dark.portal-page .leg-accordion-tile span,
      body.theme-dark.portal-page .leg-accordion-tile em,
      body.theme-dark.portal-page .structured-workout-block-heading span {
        color: rgba(238,247,239,.68);
      }
      body.theme-dark.portal-page .leg-accordion-sport-icon {
        color: #c2e084;
      }
      body.theme-dark.portal-page .leg-accordion-icon {
        border-color: rgba(255,255,255,.16);
        background: rgba(255,255,255,.08);
        color: #c2e084;
      }
      body.theme-dark.portal-page .structured-workout-leg-panel[open] > .structured-workout-body,
      body.theme-dark.portal-page .structured-workout-step-panel[open] > .structured-workout-body,
      body.theme-dark.portal-page .execution-component-panel[open] > .execution-component-body {
        background: transparent;
      }
      body.theme-dark.portal-page .execution-summary-title,
      body.theme-dark.portal-page .execution-metric,
      body.theme-dark.portal-page .execution-comparison-card,
      body.theme-dark.portal-page .execution-route,
      body.theme-dark.portal-page .execution-chart,
      body.theme-dark.portal-page .execution-laps {
        border-color: rgba(194,224,132,.16);
        background: rgba(255,255,255,.075);
        color: #eef7ef;
      }
      body.theme-dark.portal-page .execution-summary-title strong,
      body.theme-dark.portal-page .execution-metric strong,
      body.theme-dark.portal-page .execution-summary-meta-value,
      body.theme-dark.portal-page .execution-panel-heading strong,
      body.theme-dark.portal-page .execution-comparison-card-top strong,
      body.theme-dark.portal-page .execution-comparison-values strong,
      body.theme-dark.portal-page .execution-laps-table td {
        color: #ffffff;
      }
      body.theme-dark.portal-page .execution-metric span,
      body.theme-dark.portal-page .execution-metric small,
      body.theme-dark.portal-page .execution-summary-meta,
      body.theme-dark.portal-page .execution-summary-meta-label,
      body.theme-dark.portal-page .execution-panel-heading span,
      body.theme-dark.portal-page .execution-comparison-card-top span,
      body.theme-dark.portal-page .execution-comparison-values em,
      body.theme-dark.portal-page .execution-chart label,
      body.theme-dark.portal-page .execution-route-empty p,
      body.theme-dark.portal-page .execution-laps-table th {
        color: rgba(238,247,239,.68);
      }
      body.theme-dark.portal-page .execution-comparison-card,
      body.theme-dark.portal-page .execution-comparison-bar {
        border-color: rgba(255,255,255,.1);
      }
      body.theme-dark.portal-page .execution-comparison-bar {
        background: rgba(255,255,255,.12);
      }
      body.theme-dark.portal-page .execution-route-map {
        background: rgba(7,25,19,.58);
      }
      body.theme-dark.portal-page .execution-route-attribution {
        background: rgba(7,25,19,.72);
        color: rgba(238,247,239,.78);
      }
      body.theme-dark.portal-page .execution-laps-table th,
      body.theme-dark.portal-page .execution-laps-table td {
        border-bottom-color: rgba(255,255,255,.1);
      }
      body.theme-dark.portal-page .execution-chart-svg {
        background: rgba(7,25,19,.58);
      }
      body.theme-dark.portal-page .execution-chart-svg .chart-grid {
        stroke: rgba(238,247,239,.09);
      }
      body.theme-dark.portal-page .execution-chart-svg .chart-scale {
        stroke: rgba(238,247,239,.18);
      }
      body.theme-dark.portal-page .execution-chart-svg .chart-horizontal-label {
        fill: rgba(238,247,239,.68);
      }
      body.theme-dark.portal-page .execution-chart-svg .chart-cursor {
        stroke: #eef7ef;
      }
      body.theme-dark.portal-page .execution-chart-tooltip {
        border-color: rgba(194,224,132,.2);
        background: rgba(7,25,19,.96);
        color: #eef7ef;
        box-shadow: 0 12px 24px rgba(0,0,0,.36);
      }
      body.theme-dark.portal-page .execution-chart-tooltip strong {
        color: #ffffff;
      }
      body.theme-dark.portal-page .execution-chart-tooltip span {
        color: rgba(238,247,239,.72);
      }
      body.theme-dark.portal-page .selected-close {
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.07);
        color: rgba(238,247,239,.78);
      }
      body.theme-dark.portal-page .selected-close:hover,
      body.theme-dark.portal-page .selected-close:focus {
        border-color: rgba(194,224,132,.36);
        background: rgba(194,224,132,.12);
        color: #ffffff;
      }
      body.theme-dark.portal-page .dashboard-widget {
        border-color: rgba(194,224,132,.16);
        background:
          linear-gradient(145deg, rgba(24,52,41,.96) 0%, rgba(10,32,25,.96) 58%, rgba(44,34,23,.92) 100%);
        box-shadow: 0 14px 34px rgba(0,0,0,.28);
      }
      body.theme-dark.portal-page .dashboard-widget .button:not(.circle-x-button),
      body.theme-dark.portal-page .dashboard-widget button:not(.circle-x-button):not(.intro-hide-button) {
        border-color: rgba(194,224,132,.58);
        background: #c2e084;
        color: #102820;
        box-shadow: 0 8px 18px rgba(0,0,0,.22);
      }
      body.theme-dark.portal-page .dashboard-widget-hide-form button,
      body.theme-dark.portal-page .intro-hide-form button {
        border-color: rgba(255,255,255,.18);
        background: rgba(255,255,255,.08);
        color: rgba(255,255,255,.82);
        box-shadow: none;
      }
      body.theme-dark.portal-page .wizard-progress {
        border-color: rgba(194,224,132,.2);
        background: linear-gradient(135deg, rgba(194,224,132,.16), rgba(255,255,255,.06));
        color: #eef7ef;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
      }
      body.theme-dark.portal-page .wizard-progress strong {
        color: #ffffff;
      }
      body.theme-dark.portal-page .wizard-progress span {
        color: rgba(238,247,239,.7);
      }
      body.theme-dark.portal-page .wizard-step.is-active {
        border-color: rgba(194,224,132,.44);
        background: rgba(194,224,132,.12);
        box-shadow: inset 0 0 0 1px rgba(194,224,132,.16);
      }
      body.theme-dark.portal-page .wizard-step.is-complete {
        border-color: rgba(194,224,132,.24);
        background: rgba(194,224,132,.08);
      }
      body.theme-dark.portal-page .wizard-step.is-locked {
        border-color: rgba(255,255,255,.1);
        background: rgba(255,255,255,.04);
        color: rgba(238,247,239,.62);
      }
      body.theme-dark.portal-page .wizard-step-marker {
        background: rgba(255,255,255,.1);
        color: rgba(238,247,239,.76);
      }
      body.theme-dark.portal-page .wizard-step.is-complete .wizard-step-marker,
      body.theme-dark.portal-page .wizard-step.is-active .wizard-step-marker {
        background: #c2e084;
        color: #102820;
      }
      body.theme-dark.portal-page .wizard-step.is-optional .wizard-step-marker {
        background: rgba(255,255,255,.08);
        color: rgba(238,247,239,.68);
      }
      body.theme-dark.portal-page .wizard-step-heading span,
      body.theme-dark.portal-page .wizard-step p,
      body.theme-dark.portal-page .wizard-track-title,
      body.theme-dark.portal-page .wizard-next span {
        color: rgba(238,247,239,.66);
      }
      body.theme-dark.portal-page .profile-section-tab {
        border-color: rgba(255,255,255,.13);
        background: rgba(18,37,30,.84);
        color: #eef7ef;
      }
      body.theme-dark.portal-page .profile-section-tab.is-active {
        border-color: rgba(194,224,132,.34);
        background: rgba(194,224,132,.12);
      }
      body.theme-dark.portal-page .profile-section-tab small,
      body.theme-dark.portal-page .profile-section-accordion-title small {
        color: rgba(238,247,239,.62);
      }
      body.theme-dark.portal-page .profile-section-tab-count {
        background: rgba(255,255,255,.08);
        color: rgba(238,247,239,.76);
      }
      body.theme-dark.portal-page .profile-section-tab.is-active .profile-section-tab-count {
        background: #c2e084;
        color: #102820;
      }
      body.theme-dark.portal-page .profile-section.is-active,
      body.theme-dark.portal-page .profile-section.is-collapsed-selected {
        border-color: transparent;
        background: rgba(18,37,30,.9);
        box-shadow: none;
      }
      body.theme-dark.portal-page .profile-section.is-active::after,
      body.theme-dark.portal-page .profile-section.is-collapsed-selected::after {
        border-color: rgba(194,224,132,.34);
      }
      body.theme-dark.portal-page .profile-section-header {
        border-bottom-color: rgba(255,255,255,.12);
      }
      body.theme-dark.portal-page .profile-section-accordion {
        border-color: rgba(255,255,255,.13);
        background: rgba(18,37,30,.9);
        color: #eef7ef;
      }
      body.theme-dark.portal-page .profile-section.is-active .profile-section-accordion,
      body.theme-dark.portal-page .profile-section.is-collapsed-selected .profile-section-accordion {
        background: rgba(255,255,255,.05);
      }
      body.theme-dark.portal-page .profile-section-accordion-icon {
        border-color: rgba(194,224,132,.2);
        background: rgba(194,224,132,.1);
        color: #c2e084;
      }
      body.theme-dark.portal-page .profile-field h3,
      body.theme-dark.portal-page .profile-example-label {
        color: #ffffff;
      }
      body.theme-dark.portal-page .profile-zone-garmin-toggle,
      body.theme-dark.portal-page .profile-zone-sport {
        border-color: rgba(255,255,255,.14);
        background: transparent;
        color: #eef7ef;
      }
      body.theme-dark.portal-page .profile-zone-group legend,
      body.theme-dark.portal-page .profile-zone-input,
      body.theme-dark.portal-page .profile-zone-maximum {
        color: #ffffff;
      }
      body.theme-dark.portal-page .profile-zone-maximum output {
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.08);
        color: #eef7ef;
      }
      body.theme-dark.portal-page .profile-zone-input small,
      body.theme-dark.portal-page .profile-zone-maximum small {
        color: rgba(238,247,239,.66);
      }
      body.theme-dark.portal-page .profile-example {
        border-color: rgba(194,224,132,.32);
        background: rgba(194,224,132,.12);
        color: #dff0a9;
      }
      body.theme-dark.portal-page .profile-example:hover,
      body.theme-dark.portal-page .profile-example:focus {
        background: rgba(194,224,132,.2);
        color: #ffffff;
      }
      body.theme-dark.portal-page .profile-save-message {
        color: #c2e084;
      }
      body.theme-dark.portal-page .profile-save-message.is-error {
        color: #ffc7df;
      }
      body.theme-dark.portal-page .section-badge {
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.07);
        color: rgba(238,247,239,.76);
      }
      body.theme-dark.portal-page .section-badge-needed {
        border-color: rgba(194,224,132,.32);
        background: rgba(194,224,132,.12);
        color: #dff0a9;
      }
      body.theme-dark.portal-page .section-badge-optional {
        border-color: rgba(139,190,230,.32);
        background: rgba(139,190,230,.13);
        color: #bfe2ff;
      }
      body.theme-dark.portal-page .section-badge-high-value {
        border-color: rgba(245,190,92,.34);
        background: rgba(245,190,92,.14);
        color: #ffd88d;
      }
      body.theme-dark.portal-page .section-badge-safety {
        border-color: rgba(239,158,199,.34);
        background: rgba(239,158,199,.13);
        color: #ffc7df;
      }
      body.theme-dark.portal-page .section-badge-garmin {
        border-color: rgba(112,208,173,.28);
        background: rgba(112,208,173,.12);
        color: #9be8cb;
      }
      body.theme-dark.portal-page .goal-examples {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.06);
        color: rgba(238,247,239,.68);
      }
      body.theme-dark.portal-page .add-record-button {
        border-color: rgba(194,224,132,.28);
        background: rgba(194,224,132,.08);
        color: #c2e084;
      }
      body.theme-dark.portal-page .add-record-button:hover,
      body.theme-dark.portal-page .add-record-button:focus {
        border-color: rgba(194,224,132,.48);
        background: rgba(194,224,132,.15);
        color: #ffffff;
      }
      body.theme-dark.portal-page .goal-card[open],
      body.theme-dark.portal-page .event-card[open] {
        border-width: 1px;
        border-color: rgba(194,224,132,.34);
        background: rgba(18,37,30,.9);
        box-shadow: inset 0 0 0 1px rgba(194,224,132,.14);
      }
      body.theme-dark.portal-page .goal-card.is-collapsed-selected:not([open]),
      body.theme-dark.portal-page .event-card.is-collapsed-selected:not([open]) {
        border-width: 2px;
        border-color: rgba(194,224,132,.34);
        background: rgba(18,37,30,.9);
        box-shadow: inset 0 0 0 1px rgba(194,224,132,.14);
      }
      body.theme-dark.portal-page .goal-card.context-row-past,
      body.theme-dark.portal-page .event-card.context-row-past {
        border-color: rgba(255,255,255,.1);
        background: rgba(255,255,255,.04);
      }
      body.theme-dark.portal-page .goal-card.context-row-past .goal-editor,
      body.theme-dark.portal-page .event-card.context-row-past .event-editor {
        background: rgba(255,255,255,.04);
        color: rgba(238,247,239,.58);
      }
      body.theme-dark.portal-page .goal-card.context-row-past input,
      body.theme-dark.portal-page .goal-card.context-row-past textarea,
      body.theme-dark.portal-page .goal-card.context-row-past select,
      body.theme-dark.portal-page .goal-card.context-row-past .android-select-trigger,
      body.theme-dark.portal-page .event-card.context-row-past input,
      body.theme-dark.portal-page .event-card.context-row-past textarea,
      body.theme-dark.portal-page .event-card.context-row-past select,
      body.theme-dark.portal-page .event-card.context-row-past .android-select-trigger {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.06);
        color: rgba(238,247,239,.72);
      }
      body.theme-dark.portal-page .goal-card.context-row-past:not([open]) .goal-summary,
      body.theme-dark.portal-page .event-card.context-row-past:not([open]) .event-summary {
        background: rgba(255,255,255,.04);
        color: rgba(238,247,239,.58);
      }
      body.theme-dark.portal-page .goal-card[open] .goal-summary,
      body.theme-dark.portal-page .event-card[open] .event-summary {
        border-bottom-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.05);
      }
      body.theme-dark.portal-page .goal-date-tile,
      body.theme-dark.portal-page .event-date-tile {
        border-color: rgba(194,224,132,.18);
        background: rgba(7,25,19,.58);
      }
      body.theme-dark.portal-page .goal-date-tile span,
      body.theme-dark.portal-page .event-date-tile span {
        color: rgba(238,247,239,.58);
      }
      body.theme-dark.portal-page .goal-date-tile strong,
      body.theme-dark.portal-page .event-date-tile strong {
        color: #ffffff;
      }
      body.theme-dark.portal-page .goal-badge,
      body.theme-dark.portal-page .event-badge {
        border: 1px solid rgba(255,255,255,.12);
        background: rgba(255,255,255,.07);
        color: rgba(238,247,239,.72);
      }
      body.theme-dark.portal-page .goal-badge-priority-a,
      body.theme-dark.portal-page .event-badge-priority-a {
        border-color: rgba(239,158,199,.34);
        background: rgba(239,158,199,.13);
        color: #ffc7df;
      }
      body.theme-dark.portal-page .goal-badge-priority-b,
      body.theme-dark.portal-page .event-badge-priority-b {
        border-color: rgba(245,190,92,.34);
        background: rgba(245,190,92,.14);
        color: #ffd88d;
      }
      body.theme-dark.portal-page .goal-badge-priority-c,
      body.theme-dark.portal-page .event-badge-priority-c {
        border-color: rgba(139,190,230,.32);
        background: rgba(139,190,230,.13);
        color: #bfe2ff;
      }
      body.theme-dark.portal-page .event-badge-type,
      body.theme-dark.portal-page .goal-badge-sport,
      body.theme-dark.portal-page .goal-badge-upcoming,
      body.theme-dark.portal-page .event-badge-upcoming {
        border-color: rgba(194,224,132,.32);
        background: rgba(194,224,132,.12);
        color: #dff0a9;
      }
      body.theme-dark.portal-page .goal-badge-overdue,
      body.theme-dark.portal-page .goal-badge-past,
      body.theme-dark.portal-page .event-badge-past {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.06);
        color: rgba(238,247,239,.62);
      }
      body.theme-dark.portal-page .goal-summary-note,
      body.theme-dark.portal-page .event-summary-note {
        color: rgba(238,247,239,.7);
      }
      body.theme-dark.portal-page .goal-summary-note strong,
      body.theme-dark.portal-page .event-summary-note strong {
        color: rgba(238,247,239,.62);
      }
      body.theme-dark.portal-page .goal-editor-grid input,
      body.theme-dark.portal-page .goal-editor-grid textarea,
      body.theme-dark.portal-page .goal-editor-grid select,
      body.theme-dark.portal-page .event-editor-grid input,
      body.theme-dark.portal-page .event-editor-grid textarea,
      body.theme-dark.portal-page .event-editor-grid select {
        border-color: rgba(255,255,255,.18);
        background: rgba(255,255,255,.08);
        color: #ffffff;
      }
      body.theme-dark.portal-page .race-checkbox-label {
        color: rgba(238,247,239,.68);
      }
      body.theme-dark.portal-page .goal-card.new-goal-card,
      body.theme-dark.portal-page .event-card.new-event-card {
        border-color: rgba(194,224,132,.28);
        background: rgba(194,224,132,.06);
      }
      body.theme-dark.portal-page .admin-tabs {
        border-bottom-color: rgba(255,255,255,.13);
      }
      body.theme-dark.portal-page .admin-tab {
        border-color: transparent;
        color: rgba(238,247,239,.68);
      }
      body.theme-dark.portal-page .admin-tab:hover,
      body.theme-dark.portal-page .admin-tab:focus {
        background: rgba(194,224,132,.1);
        color: #dff0a9;
      }
      body.theme-dark.portal-page .admin-tab.is-active {
        border-color: rgba(255,255,255,.13);
        background: rgba(18,37,30,.9);
        color: #ffffff;
      }
      body.theme-dark.portal-page .email-verification-state,
      body.theme-dark.portal-page .timestamp-time,
      body.theme-dark.portal-page .admin-subscription-display small {
        color: rgba(238,247,239,.62);
      }
      body.theme-dark.portal-page .admin-subscription-display strong {
        color: #ffffff;
      }
      body.theme-dark.portal-page .admin-table td::before {
        color: rgba(238,247,239,.58);
      }
      body.theme-dark.portal-page .admin-sort-arrow {
        color: rgba(238,247,239,.42);
      }
      body.theme-dark.portal-page .admin-sort-arrow.active,
      body.theme-dark.portal-page .admin-sort-arrow:hover,
      body.theme-dark.portal-page .admin-sort-arrow:focus {
        color: #c2e084;
      }
      body.theme-dark.portal-page .usage-stat {
        border-color: rgba(194,224,132,.14);
        background: rgba(255,255,255,.07);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
      }
      body.theme-dark.portal-page .usage-stat span,
      body.theme-dark.portal-page .usage-stat small {
        color: rgba(238,247,239,.66);
      }
      body.theme-dark.portal-page .usage-stat strong {
        color: #ffffff;
      }
      body.theme-dark.portal-page .usage-user-row:hover td,
      body.theme-dark.portal-page .usage-purpose-row:hover td {
        background: rgba(194,224,132,.08);
      }
      body.theme-dark.portal-page .usage-expand-button {
        border-color: rgba(194,224,132,.2);
        background: rgba(194,224,132,.1);
        color: #c2e084;
      }
      body.theme-dark.portal-page .usage-expand-button:hover,
      body.theme-dark.portal-page .usage-expand-button:focus {
        border-color: rgba(194,224,132,.44);
        background: rgba(194,224,132,.18);
        color: #ffffff;
      }
      body.theme-dark.portal-page .usage-user-detail-cell,
      body.theme-dark.portal-page .usage-purpose-detail-cell,
      body.theme-dark.portal-page .usage-detail-table,
      body.theme-dark.portal-page .usage-detail-table th,
      body.theme-dark.portal-page .usage-detail-table td {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.04);
        color: #eef7ef;
      }
      body.theme-dark.portal-page .account-eyebrow {
        color: rgba(238,247,239,.62);
      }
      body.theme-dark.portal-page .account-card-icon {
        background: rgba(255,255,255,.9);
        box-shadow: inset 0 0 0 1px rgba(194,224,132,.22);
      }
      body.theme-dark.portal-page .account-card-ai-consent .account-ai-consent-icon {
        background: #102820;
        color: #eef7ef;
        box-shadow: inset 0 0 0 1px rgba(194,224,132,.28);
      }
      body.theme-dark.portal-page .account-card-garmin .account-card-icon {
        box-shadow: inset 0 0 0 1px rgba(139,190,230,.34);
      }
      body.theme-dark.portal-page .account-card-gpt .account-card-icon {
        box-shadow: inset 0 0 0 1px rgba(112,208,173,.32);
      }
      body.theme-dark.portal-page .account-card-coach .account-card-icon {
        box-shadow: inset 0 0 0 1px rgba(139,190,230,.34);
      }
      body.theme-dark.portal-page .account-danger-zone .account-card-icon {
        box-shadow: inset 0 0 0 1px rgba(239,158,199,.28);
      }
      body.theme-dark.portal-page .coach-settings-dialog::backdrop {
        background: rgba(0,0,0,.62);
      }
      body.theme-dark.portal-page .coach-settings-card {
        border-color: rgba(194,224,132,.22);
        background: #102820;
        color: #eef7ef;
        box-shadow: 0 24px 68px rgba(0,0,0,.56);
      }
      body.theme-dark.portal-page .coach-settings-header h2,
      body.theme-dark.portal-page .coach-option strong,
      body.theme-dark.portal-page .coach-name-field label,
      body.theme-dark.portal-page .coach-fieldset legend {
        color: #ffffff;
      }
      body.theme-dark.portal-page .coach-settings-header p,
      body.theme-dark.portal-page .coach-option span,
      body.theme-dark.portal-page .coach-option small {
        color: rgba(238,247,239,.72);
      }
      body.theme-dark.portal-page .coach-choice-note {
        border-color: rgba(255,255,255,.14);
        background: rgba(7,25,19,.46);
        color: rgba(238,247,239,.78);
      }
      body.theme-dark.portal-page .coach-option-grid {
        border: 0;
        background: transparent;
      }
      body.theme-dark.portal-page .coach-option {
        border-color: rgba(255,255,255,.13);
        background: rgba(255,255,255,.06);
      }
      body.theme-dark.portal-page .coach-option:has(input:checked) {
        border-color: #c2e084;
        background: #c2e084;
        color: #102820;
        box-shadow: 0 6px 14px rgba(0,0,0,.24);
      }
      body.theme-dark.portal-page .coach-option:has(input:checked) strong {
        color: #102820;
      }
      body.theme-dark.portal-page .coach-language-panel {
        background: transparent;
      }
      body.theme-dark.portal-page .coach-settings-actions {
        background: linear-gradient(180deg, rgba(16,40,32,.72) 0%, #102820 34%);
      }
      body.theme-dark.portal-page .coach-wording-dialog {
        background: rgba(0,0,0,.62);
      }
      body.theme-dark.portal-page .coach-wording-card {
        border-color: rgba(194,224,132,.22);
        background: #102820;
        color: #eef7ef;
        box-shadow: 0 24px 68px rgba(0,0,0,.56);
      }
      body.theme-dark.portal-page .coach-wording-header h2,
      body.theme-dark.portal-page .coach-popup-option strong {
        color: #ffffff;
      }
      body.theme-dark.portal-page .coach-wording-card .account-eyebrow,
      body.theme-dark.portal-page .coach-popup-option small {
        color: rgba(238,247,239,.72);
      }
      body.theme-dark.portal-page .coach-popup-option {
        border-color: rgba(255,255,255,.13);
        background: rgba(255,255,255,.06);
      }
      body.theme-dark.portal-page .coach-popup-option:has(input:checked) {
        border-color: rgba(194,224,132,.68);
        background: rgba(194,224,132,.12);
      }
      @media (min-width: 761px) {
        body.theme-dark.portal-page .coach-popup-option input {
          border-color: rgba(238,247,239,.56);
          background: rgba(255,255,255,.08);
          box-shadow: inset 0 0 0 4px #12251e;
        }
        body.theme-dark.portal-page .coach-popup-option input:checked {
          border-color: #c2e084;
          background: #c2e084;
        }
      }
      body.theme-dark.portal-page .account-chip {
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.07);
        color: rgba(238,247,239,.72);
      }
      body.theme-dark.portal-page .account-chip.is-positive {
        border-color: rgba(194,224,132,.32);
        background: rgba(194,224,132,.12);
        color: #dff0a9;
      }
      body.theme-dark.portal-page .account-chip.is-negative {
        border-color: rgba(245,190,92,.34);
        background: rgba(245,190,92,.14);
        color: #ffd88d;
      }
      body.theme-dark.portal-page .account-chip.is-neutral {
        border-color: rgba(139,190,230,.32);
        background: rgba(139,190,230,.13);
        color: #bfe2ff;
      }
      body.theme-dark.portal-page .account-preference-switch {
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.07);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
      }
      body.theme-dark.portal-page .account-preference-switch button {
        color: rgba(238,247,239,.72);
      }
      body.theme-dark.portal-page .account-preference-switch button:hover,
      body.theme-dark.portal-page .account-preference-switch button:focus {
        border-color: rgba(255,255,255,.18);
        background: rgba(255,255,255,.1);
        color: #eef7ef;
      }
      body.theme-dark.portal-page .account-preference-switch button.is-active {
        border-color: #c2e084;
        background: #c2e084;
        color: #102820;
      }
      body.theme-dark.portal-page .account-detail-row.is-alert {
        border-color: rgba(245,190,92,.34);
        background: rgba(245,190,92,.12);
      }
      body.theme-dark.portal-page .account-detail-row.is-alert span,
      body.theme-dark.portal-page .account-detail-row.is-alert strong {
        color: #ffd88d;
      }
      body.theme-dark.portal-page .account-actions .is-disabled {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.05);
        color: rgba(238,247,239,.46);
        box-shadow: none;
      }
      body.theme-dark.portal-page .account-actions .is-disabled::before {
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.08);
        color: rgba(238,247,239,.58);
      }
      body.theme-dark.portal-page .account-actions .is-disabled:hover::after,
      body.theme-dark.portal-page .account-actions .is-disabled:focus::after {
        border-color: rgba(255,255,255,.16);
        background: #12251e;
        color: rgba(238,247,239,.82);
        box-shadow: 0 8px 18px rgba(0,0,0,.3);
      }
      body.theme-dark.portal-page .account-hero { border-color: rgba(194,224,132,.22); }
      body.theme-dark.portal-page .garmin-hero { border-color: rgba(139,190,230,.24); }
      body.theme-dark.portal-page .garmin-form-panel {
        border-color: rgba(139,190,230,.24);
        box-shadow: 0 12px 28px rgba(0,0,0,.22);
      }
      body.theme-dark.portal-page .garmin-paid-required {
        border-color: rgba(245,190,92,.34);
        background: rgba(120,72,10,.24);
        box-shadow: 0 12px 28px rgba(0,0,0,.18);
      }
      body.theme-dark.portal-page .garmin-paid-required-copy h3 { color: #ffd58a; }
      body.theme-dark.portal-page .garmin-paid-required-copy p { color: rgba(255,225,169,.82); }
      body.theme-dark.portal-page .garmin-security-note,
      body.theme-dark.portal-page .garmin-status-row,
      body.theme-dark.portal-page .garmin-info-card,
      body.theme-dark.portal-page .garmin-info-card.is-blue {
        border-color: rgba(194,224,132,.16);
        background: rgba(255,255,255,.075);
        color: #eef7ef;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
      }
      body.theme-dark.portal-page .garmin-field input {
        border-color: rgba(238,247,239,.22);
        background: rgba(255,255,255,.1);
      }
      body.theme-dark.portal-page .garmin-field input:focus {
        border-color: rgba(139,190,230,.78);
        outline-color: rgba(139,190,230,.18);
      }
      body.theme-dark.portal-page .garmin-page .account-eyebrow,
      body.theme-dark.portal-page .garmin-field label,
      body.theme-dark.portal-page .garmin-status-row span {
        color: rgba(238,247,239,.78);
      }
      body.theme-dark.portal-page .garmin-hero p,
      body.theme-dark.portal-page .garmin-panel p,
      body.theme-dark.portal-page .garmin-info-card p,
      body.theme-dark.portal-page .garmin-security-note span,
      body.theme-dark.portal-page .garmin-benefits li {
        color: rgba(238,247,239,.76);
      }
      body.theme-dark.portal-page .garmin-security-note strong,
      body.theme-dark.portal-page .garmin-status-row strong,
      body.theme-dark.portal-page .garmin-info-card h3 {
        color: #ffffff;
      }
      body.theme-dark.portal-page .garmin-benefits li::before {
        background: #2f7f6b;
        box-shadow: 0 3px 10px rgba(47,127,107,.28);
      }
      body.theme-dark.portal-page .account-danger-zone {
        border-color: rgba(239,158,199,.28);
        background: rgba(239,158,199,.08);
        color: #eef7ef;
      }
      body.theme-dark.portal-page .account-danger-zone h2 {
        color: #ffffff;
      }
      body.theme-dark.portal-page .danger {
        border-color: rgba(239,158,199,.42);
        background: #b94a5f;
        color: #ffffff;
      }
      body.theme-dark.portal-page .danger:hover,
      body.theme-dark.portal-page .danger:focus {
        background: #a33e52;
      }
      body.theme-dark.portal-page .billing-period-switch,
      body.theme-dark.portal-page .billing-currency-switch {
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.07);
        box-shadow: 0 12px 28px rgba(0,0,0,.22);
      }
      body.theme-dark.portal-page .billing-period-switch button,
      body.theme-dark.portal-page .billing-currency-switch button {
        color: rgba(238,247,239,.68);
      }
      body.theme-dark.portal-page .billing-period-switch button.is-active,
      body.theme-dark.portal-page .billing-currency-switch button.is-active {
        border-color: rgba(194,224,132,.45);
        background: rgba(194,224,132,.88);
        color: #102820;
        box-shadow: 0 6px 14px rgba(0,0,0,.2);
      }
      body.theme-dark.portal-page .billing-plans-hero {
        background: transparent;
        box-shadow: none;
      }
      body.theme-dark.portal-page .billing-plan-card {
        border-color: rgba(194,224,132,.2);
        background: linear-gradient(180deg, rgba(20,44,35,.96) 0%, rgba(12,31,25,.94) 100%);
        box-shadow: 0 18px 42px rgba(0,0,0,.28);
      }
      body.theme-dark.portal-page .billing-plan-card::before {
        background: #c2e084;
        opacity: .88;
      }
      body.theme-dark.portal-page .billing-plan-card.is-pro {
        border-color: rgba(139,190,230,.28);
        background: linear-gradient(180deg, rgba(17,39,45,.96) 0%, rgba(12,29,37,.94) 68%, rgba(26,33,28,.92) 100%);
        box-shadow: 0 18px 42px rgba(0,0,0,.28);
      }
      body.theme-dark.portal-page .billing-plan-card.is-pro::before {
        background: #8bbee6;
      }
      body.theme-dark.portal-page .billing-plan-card.is-elite {
        border-color: rgba(241,199,91,.32);
        background: linear-gradient(180deg, rgba(45,38,19,.96) 0%, rgba(32,29,18,.95) 68%, rgba(21,35,25,.94) 100%);
        box-shadow: 0 18px 42px rgba(0,0,0,.3);
      }
      body.theme-dark.portal-page .billing-plan-card.is-elite::before {
        background: #f1c75b;
      }
      body.theme-dark.portal-page .billing-plan-mark {
        background: rgba(194,224,132,.16);
        color: #dff0a9;
        box-shadow: inset 0 0 0 1px rgba(194,224,132,.24);
      }
      body.theme-dark.portal-page .billing-plan-card.is-pro .billing-plan-mark {
        background: rgba(139,190,230,.16);
        color: #bfe2ff;
        box-shadow: inset 0 0 0 1px rgba(139,190,230,.28);
      }
      body.theme-dark.portal-page .billing-plan-card.is-elite .billing-plan-mark {
        background: rgba(241,199,91,.16);
        color: #ffe39a;
        box-shadow: inset 0 0 0 1px rgba(241,199,91,.3);
      }
      body.theme-dark.portal-page .billing-plan-name h2,
      body.theme-dark.portal-page .billing-plan-primary-price strong,
      body.theme-dark.portal-page .billing-plan-feature-block h3 {
        color: #ffffff;
      }
      body.theme-dark.portal-page .billing-plan-summary,
      body.theme-dark.portal-page .billing-plan-primary-price span,
      body.theme-dark.portal-page .billing-plan-features li {
        color: rgba(238,247,239,.68);
      }
      body.theme-dark.portal-page .billing-plan-divider {
        background: rgba(255,255,255,.12);
      }
      body.theme-dark.portal-page .billing-plan-checkout-option button:not(.secondary),
      body.theme-dark.portal-page button.billing-plan-checkout-option:not(.secondary) {
        border-color: rgba(194,224,132,.6);
        background: #c2e084;
        color: #102820;
        box-shadow: 0 8px 18px rgba(0,0,0,.24);
      }
      body.theme-dark.portal-page .billing-plan-card.is-pro .billing-plan-checkout-option button:not(.secondary),
      body.theme-dark.portal-page .billing-plan-card.is-pro button.billing-plan-checkout-option:not(.secondary) {
        border-color: rgba(139,190,230,.58);
        background: #8bbee6;
        color: #10222b;
        box-shadow: 0 8px 18px rgba(0,0,0,.24);
      }
      body.theme-dark.portal-page .billing-plan-card.is-elite .billing-plan-checkout-option button:not(.secondary),
      body.theme-dark.portal-page .billing-plan-card.is-elite button.billing-plan-checkout-option:not(.secondary) {
        border-color: rgba(241,199,91,.65);
        background: #f1c75b;
        color: #2d2410;
        box-shadow: 0 8px 18px rgba(0,0,0,.24);
      }
      body.theme-dark.portal-page .billing-plan-features li::before {
        background: rgba(194,224,132,.14);
        color: #dff0a9;
      }
      body.theme-dark.portal-page .billing-plan-card.is-pro .billing-plan-features li::before {
        background: rgba(139,190,230,.16);
        color: #bfe2ff;
      }
      body.theme-dark.portal-page .billing-plan-card.is-elite .billing-plan-features li::before {
        background: rgba(241,199,91,.16);
        color: #ffe39a;
      }
      body.theme-dark.portal-page .billing-difference-word {
        background: rgba(139,190,230,.16);
        color: #bfe2ff;
      }
      body.theme-dark.portal-page .today-training-mobile-summary,
      body.theme-dark.portal-page .recent-activity-top,
      body.theme-dark.portal-page .insight-score,
      body.theme-dark.portal-page .insight-loading,
      body.theme-dark.portal-page .insight-coach-comment,
      body.theme-dark.portal-page .insight-plan-update,
      body.theme-dark.portal-page .race-empty,
      body.theme-dark.portal-page .recent-activity-feedback,
      body.theme-dark.portal-page .nutrition-goal-note,
      body.theme-dark.portal-page .nutrition-macro-panel {
        border-color: rgba(194,224,132,.14);
        background: rgba(255,255,255,.07);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
      }
      body.theme-dark.portal-page .today-training .table-scroll {
        border-color: rgba(194,224,132,.14);
        background: rgba(255,255,255,.055);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
      }
      body.theme-dark.portal-page .today-training .mini-table th {
        border-bottom-color: rgba(194,224,132,.14);
        background: rgba(255,255,255,.08);
        color: rgba(238,247,239,.72);
      }
      body.theme-dark.portal-page .today-training .mini-table tbody tr:nth-child(odd),
      body.theme-dark.portal-page .today-training .mini-table tbody tr:nth-child(even) {
        background: transparent;
      }
      body.theme-dark.portal-page .today-training .mini-table tbody tr:hover {
        background: rgba(194,224,132,.08);
      }
      body.theme-dark.portal-page .today-training .empty-row,
      body.theme-dark.portal-page .today-training-mobile-empty {
        border-color: rgba(194,224,132,.2);
        background: rgba(255,255,255,.065);
        color: rgba(238,247,239,.76);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
      }
      body.theme-dark.portal-page .summary-panel .summary-item,
      body.theme-dark.portal-page .insight-metric,
      body.theme-dark.portal-page .today-training-mobile-row,
      body.theme-dark.portal-page .today-training-mobile-metric,
      body.theme-dark.portal-page .recent-activity-metric,
      body.theme-dark.portal-page .nutrition-metric {
        border-color: rgba(194,224,132,.14);
        background: rgba(255,255,255,.07);
        color: #eef7ef;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
      }
      body.theme-dark.portal-page .today-training-mobile-top h3,
      body.theme-dark.portal-page .today-training-mobile-what strong,
      body.theme-dark.portal-page .today-training-mobile-cell,
      body.theme-dark.portal-page .today-training-mobile-metric strong,
      body.theme-dark.portal-page .summary-item-title,
      body.theme-dark.portal-page .insight-score strong,
      body.theme-dark.portal-page .insight-metric strong,
      body.theme-dark.portal-page .insight-coach-comment span,
      body.theme-dark.portal-page .race-empty strong,
      body.theme-dark.portal-page .recent-activity-feedback span,
      body.theme-dark.portal-page .nutrition-score-explain strong,
      body.theme-dark.portal-page .nutrition-goal-note strong,
      body.theme-dark.portal-page .nutrition-metric strong,
      body.theme-dark.portal-page .nutrition-macro-head strong {
        color: #ffffff;
      }
      body.theme-dark.portal-page .today-training-mobile-summary p,
      body.theme-dark.portal-page .today-training-mobile-head,
      body.theme-dark.portal-page .today-training-mobile-date,
      body.theme-dark.portal-page .today-training-mobile-date .today-training-time-text,
      body.theme-dark.portal-page .today-training-mobile-metric span,
      body.theme-dark.portal-page .summary-item-note,
      body.theme-dark.portal-page .insight-score span,
      body.theme-dark.portal-page .insight-metric-label,
      body.theme-dark.portal-page .insight-metric small,
      body.theme-dark.portal-page .insight-metric em,
      body.theme-dark.portal-page .insight-plan-update span,
      body.theme-dark.portal-page .insight-plan-message,
      body.theme-dark.portal-page .race-event em,
      body.theme-dark.portal-page .race-prep-copy em,
      body.theme-dark.portal-page .race-prep-label strong,
      body.theme-dark.portal-page .race-empty span,
      body.theme-dark.portal-page .recent-activity-plan-context,
      body.theme-dark.portal-page .recent-activity-metric span,
      body.theme-dark.portal-page .recent-activity-metric small,
      body.theme-dark.portal-page .recent-activity-feedback strong,
      body.theme-dark.portal-page .nutrition-score-explain,
      body.theme-dark.portal-page .nutrition-goal-note span,
      body.theme-dark.portal-page .nutrition-metric span,
      body.theme-dark.portal-page .nutrition-metric small,
      body.theme-dark.portal-page .nutrition-metric strong em,
      body.theme-dark.portal-page .nutrition-weight-rate,
      body.theme-dark.portal-page .nutrition-macro-head span,
      body.theme-dark.portal-page .nutrition-macro-legend {
        color: rgba(238,247,239,.68);
      }
      body.theme-dark.portal-page .today-training-time,
      body.theme-dark.portal-page .today-workout-type,
      body.theme-dark.portal-page .summary-pill,
      body.theme-dark.portal-page .recent-activity-sport,
      body.theme-dark.portal-page .recent-activity-status,
      body.theme-dark.portal-page .legend-status,
      body.theme-dark.portal-page .calendar-pill,
      body.theme-dark.portal-page .workout-pill,
      body.theme-dark.portal-page .workout-switch,
      body.theme-dark.portal-page .detail-status,
      body.theme-dark.portal-page .status-badge {
        border-color: rgba(255,255,255,.16);
        background: rgba(255,255,255,.08);
        color: rgba(238,247,239,.8);
      }
      body.theme-dark.portal-page .today-training-mobile-date .today-training-time-flexible { border: 1px solid rgba(194,224,132,.72); background: #c2e084; color: #253b2d; font-weight: 850; }
      body.theme-dark.portal-page .today-training-mobile-target-inline { color: #c2e084; }
      body.theme-dark.portal-page .today-training-time-morning { background: rgba(255,196,87,.22); color: #ffd98a; }
      body.theme-dark.portal-page .today-training-time-afternoon { background: rgba(95,166,229,.22); color: #b9dbff; }
      body.theme-dark.portal-page .summary-pill.is-needed,
      body.theme-dark.portal-page .recent-activity-status.is-partial,
      body.theme-dark.portal-page .legend-status.is-partial,
      body.theme-dark.portal-page .calendar-pill.is-partial,
      body.theme-dark.portal-page .workout-pill.is-partial,
      body.theme-dark.portal-page .workout-switch.is-partial,
      body.theme-dark.portal-page .detail-status.is-partial,
      body.theme-dark.portal-page .status-badge.plan-status-partial {
        border-color: rgba(255,199,86,.68);
        background: rgba(255,199,86,.26);
        color: #ffe09a;
      }
      body.theme-dark.portal-page .recent-activity-status.is-revised,
      body.theme-dark.portal-page .legend-status.is-revised,
      body.theme-dark.portal-page .calendar-pill.is-revised,
      body.theme-dark.portal-page .workout-switch.is-revised,
      body.theme-dark.portal-page .detail-status.is-revised,
      body.theme-dark.portal-page .status-badge.plan-status-revised {
        border-color: rgba(93,194,255,.68);
        background: rgba(93,194,255,.24);
        color: #b9e7ff;
      }
      body.theme-dark.portal-page .recent-activity-status.is-skipped,
      body.theme-dark.portal-page .legend-status.is-skipped,
      body.theme-dark.portal-page .calendar-pill.is-skipped,
      body.theme-dark.portal-page .workout-pill.is-skipped,
      body.theme-dark.portal-page .workout-switch.is-skipped,
      body.theme-dark.portal-page .detail-status.is-skipped,
      body.theme-dark.portal-page .status-badge.plan-status-skipped {
        border-color: rgba(255,119,178,.66);
        background: rgba(255,119,178,.24);
        color: #ffc1dd;
      }
      body.theme-dark.portal-page .legend-status.is-planned,
      body.theme-dark.portal-page .calendar-pill.is-planned,
      body.theme-dark.portal-page .workout-pill.is-planned,
      body.theme-dark.portal-page .workout-switch.is-planned,
      body.theme-dark.portal-page .detail-status.is-planned,
      body.theme-dark.portal-page .status-badge.plan-status-planned,
      body.theme-dark.portal-page .recent-activity-status.is-planned {
        border-color: rgba(170,182,176,.36);
        background: rgba(170,182,176,.13);
        color: #d7ded9;
      }
      body.theme-dark.portal-page .detail-status.is-planned,
      body.theme-dark.portal-page .status-badge.plan-status-planned {
        border-color: rgba(93,194,255,.68);
        background: rgba(93,194,255,.24);
        color: #b9e7ff;
      }
      body.theme-dark.portal-page .recent-activity-status.is-matched,
      body.theme-dark.portal-page .legend-status.is-completed,
      body.theme-dark.portal-page .calendar-pill.is-completed,
      body.theme-dark.portal-page .workout-pill.is-completed,
      body.theme-dark.portal-page .workout-switch.is-completed,
      body.theme-dark.portal-page .detail-status.is-completed,
      body.theme-dark.portal-page .status-badge.plan-status-completed,
      body.theme-dark.portal-page .recent-activity-status.is-completed {
        border-color: rgba(116,235,164,.68);
        background: rgba(116,235,164,.24);
        color: #a7f3c5;
      }
      body.theme-dark.portal-page .legend-status.is-unplanned,
      body.theme-dark.portal-page .calendar-pill.is-unplanned,
      body.theme-dark.portal-page .workout-pill.is-unplanned,
      body.theme-dark.portal-page .workout-switch.is-unplanned,
      body.theme-dark.portal-page .detail-status.is-unplanned,
      body.theme-dark.portal-page .status-badge.plan-status-unplanned,
      body.theme-dark.portal-page .recent-activity-status.is-unplanned {
        border-color: rgba(239,142,86,.66);
        background: rgba(239,142,86,.24);
        color: #ffc19b;
      }
      body.theme-dark.portal-page .calendar-pill.is-neutral,
      body.theme-dark.portal-page .workout-pill.is-neutral,
      body.theme-dark.portal-page .workout-switch.is-neutral,
      body.theme-dark.portal-page .detail-status.is-neutral {
        border-color: rgba(255,255,255,.13);
        background: rgba(255,255,255,.06);
        color: rgba(238,247,239,.7);
      }
      body.theme-dark.portal-page .summary-dot {
        background: #c2e084;
        box-shadow: 0 0 0 3px rgba(194,224,132,.13);
      }
      body.theme-dark.portal-page .today-training-metric-icon {
        border-color: rgba(194,224,132,.18);
        background: rgba(194,224,132,.12);
        color: #c2e084;
      }
      body.theme-dark.portal-page .today-training-metric-icon-status-revised {
        border-color: rgba(93,194,255,.68);
        background: rgba(93,194,255,.24);
        color: #b9e7ff;
      }
      body.theme-dark.portal-page .today-training-metric-icon-status-completed {
        border-color: rgba(116,235,164,.68);
        background: rgba(116,235,164,.24);
        color: #a7f3c5;
      }
      body.theme-dark.portal-page .today-training-metric-icon-status-partial {
        border-color: rgba(255,199,86,.68);
        background: rgba(255,199,86,.26);
        color: #ffe09a;
      }
      body.theme-dark.portal-page .today-training-metric-icon-status-planned {
        border-color: rgba(170,182,176,.36);
        background: rgba(170,182,176,.13);
        color: #d7ded9;
      }
      body.theme-dark.portal-page .today-training-metric-icon-status-skipped {
        border-color: rgba(255,119,178,.66);
        background: rgba(255,119,178,.24);
        color: #ffc1dd;
      }
      body.theme-dark.portal-page .today-training-metric-icon-status-neutral {
        border-color: rgba(255,255,255,.13);
        background: rgba(255,255,255,.06);
        color: rgba(238,247,239,.7);
      }
      body.theme-dark.portal-page .today-training-mobile-view,
      body.theme-dark.portal-page .today-training-desktop-view {
        border-color: rgba(194,224,132,.2);
        background: rgba(255,255,255,.08);
        color: #dff0a9;
      }
      body.theme-dark.portal-page .insight-ring,
      body.theme-dark.portal-page .race-gauge,
      body.theme-dark.portal-page .nutrition-score-gauge,
      body.theme-dark.portal-page .recent-activity-load-ring {
        background-color: rgba(255,255,255,.08);
      }
      body.theme-dark.portal-page .insight-ring::before,
      body.theme-dark.portal-page .race-gauge::before,
      body.theme-dark.portal-page .nutrition-score-gauge::before,
      body.theme-dark.portal-page .recent-activity-load-ring::before {
        background: #102820;
        box-shadow: inset 0 0 0 1px rgba(255,255,255,.12);
      }
      body.theme-dark.portal-page .race-gauge span,
      body.theme-dark.portal-page .nutrition-score-gauge span,
      body.theme-dark.portal-page .insight-score em {
        color: #c2e084;
      }
      body.theme-dark.portal-page .insight-sleep-track,
      body.theme-dark.portal-page .insight-hr-track,
      body.theme-dark.portal-page .race-prep-track,
      body.theme-dark.portal-page .recent-activity-meter,
      body.theme-dark.portal-page .nutrition-macro-bar {
        background: rgba(255,255,255,.1);
        box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
      }
      body.theme-dark.portal-page .recent-activity-title h3 .plan-activity-icon,
      body.theme-dark.portal-page .today-training-mobile-kind,
      body.theme-dark.portal-page .today-training-mobile-kind .plan-activity-icon {
        color: #c2e084;
      }
      body.theme-dark.portal-page .nutrition-review {
        border-color: rgba(194,224,132,.16);
        background: rgba(7,25,19,.42);
      }
      body.theme-dark.portal-page .nutrition-review summary {
        background: rgba(255,255,255,.05);
      }
      body.theme-dark.portal-page .nutrition-review:not([open]) {
        border-color: rgba(194,224,132,.14);
        background: rgba(255,255,255,.07);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
      }
      body.theme-dark.portal-page .nutrition-review:not([open]) summary {
        background: transparent;
      }
      body.theme-dark.portal-page .nutrition-review summary span {
        color: #ffffff;
      }
      body.theme-dark.portal-page .nutrition-review summary em {
        color: rgba(238,247,239,.66);
      }
      body.theme-dark.portal-page .nutrition-review-toggle {
        border-color: rgba(194,224,132,.34);
        background: rgba(194,224,132,.12);
        color: #dff0a9;
      }
      body.theme-dark.portal-page .nutrition-review p {
        border-color: rgba(255,255,255,.12);
        background: rgba(255,255,255,.06);
        color: rgba(238,247,239,.7);
      }
      body.theme-dark.portal-page .nutrition-review-row {
        border-color: rgba(194,224,132,.14);
        background: rgba(7,25,19,.58);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
      }
      body.theme-dark.portal-page .nutrition-review-row.needs-review {
        border-color: rgba(245,190,92,.42);
        background: rgba(245,190,92,.12);
      }
      body.theme-dark.portal-page .nutrition-review-day {
        border-bottom-color: rgba(255,255,255,.12);
      }
      body.theme-dark.portal-page .nutrition-review-day span {
        color: rgba(238,247,239,.58);
      }
      body.theme-dark.portal-page .nutrition-review-day strong,
      body.theme-dark.portal-page .nutrition-review-intake > strong {
        color: #ffffff;
      }
      body.theme-dark.portal-page .nutrition-review-nutrients span:nth-child(1) {
        background: rgba(112,208,173,.18);
        color: #9be8cb;
      }
      body.theme-dark.portal-page .nutrition-review-nutrients span:nth-child(2) {
        background: rgba(194,224,132,.16);
        color: #dff0a9;
      }
      body.theme-dark.portal-page .nutrition-review-nutrients span:nth-child(3) {
        background: rgba(245,190,92,.17);
        color: #ffd88d;
      }
      body.theme-dark.portal-page .nutrition-status-options {
        border-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.07);
      }
      body.theme-dark.portal-page .nutrition-status-options label {
        border-right-color: rgba(255,255,255,.14);
        color: rgba(238,247,239,.72);
      }
      body.theme-dark.portal-page .nutrition-status-options label:has(input:checked) {
        background: #c2e084;
        color: #102820;
      }
      body.theme-dark.auth-page { color: #ffffff; background: #102820; }
      body.theme-dark.auth-page .language-switcher, body.theme-dark.auth-page .theme-switcher { border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.06); box-shadow: none; }
      body.theme-dark.auth-page .language-switcher button, body.theme-dark.auth-page .theme-switcher button { color: rgba(255,255,255,.72); }
      body.theme-dark.auth-page .language-switcher button.is-active, body.theme-dark.auth-page .theme-switcher button.is-active { background: rgba(194,224,132,.18); color: #ffffff; }
      body.theme-dark.ios-mobile.auth-page .mobile-page-language-selector::before { background: #102820; }
      body.theme-dark.auth-page .message { background: rgba(255,255,255,.08); color: rgba(255,255,255,.88); }
      body.theme-dark.auth-page .message.message-warning { background: rgba(120,72,10,.24); color: #ffd58a; }
      body.theme-dark.auth-page .auth-brand h2 { color: #ffffff; }
      body.theme-dark.auth-page .auth-brand-subtitle, body.theme-dark.auth-page .auth-note, body.theme-dark.auth-page .muted { color: rgba(255,255,255,.72); }
      body.theme-dark.auth-page .auth-field input { border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.1); color: #ffffff; }
      body.theme-dark.auth-page .auth-field input::placeholder { color: rgba(255,255,255,.5); }
      body.theme-dark.auth-page .auth-field input:focus { border-color: rgba(194,224,132,.72); outline: 2px solid rgba(194,224,132,.18); }
      body.theme-dark.auth-page .auth-links a { color: #c2e084; }
      body.theme-dark.auth-page .mobile-app-login-link { border-color: rgba(194,224,132,.32); background: rgba(255,255,255,.08); color: #ffffff; box-shadow: 0 8px 20px rgba(0,0,0,.28); }
      body.theme-dark.auth-page .mobile-app-login-link:hover, body.theme-dark.auth-page .mobile-app-login-link:focus-visible { border-color: #c2e084; background: rgba(194,224,132,.12); color: #ffffff; outline-color: rgba(194,224,132,.22); }
      body.theme-dark.auth-page .mobile-app-login-store-icon { filter: invert(1); opacity: .92; }
    }
    @media (max-width: 760px) {
      body.portal-page {
        --mobile-disclosure-collapsed-background: #f8faf7;
        --mobile-disclosure-selected-background: #f6f7f4;
        --mobile-disclosure-expanded-background: #fbfcfb;
        --mobile-disclosure-divider-offset: 5px;
      }
      body.theme-dark.portal-page {
        --mobile-disclosure-collapsed-background: rgba(255,255,255,.065);
        --mobile-disclosure-selected-background: rgba(139,190,230,.1);
        --mobile-disclosure-expanded-background: #1c3629;
        --mobile-disclosure-divider-offset: 8px;
      }
      body.portal-page .execution-chart,
      body.theme-dark.portal-page .execution-chart,
      body:not(.theme-light).portal-page .execution-chart {
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
      }
      body.portal-page .execution-laps,
      body.theme-dark.portal-page .execution-laps,
      body:not(.theme-light).portal-page .execution-laps {
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
      }
      body.theme-dark.portal-page .execution-laps-table th,
      body:not(.theme-light).portal-page .execution-laps-table th {
        background: rgba(194,224,132,.10);
        color: rgba(238,247,239,.74);
      }
      body.theme-dark.portal-page .execution-laps-table td,
      body:not(.theme-light).portal-page .execution-laps-table td {
        border-bottom-color: rgba(255,255,255,.14);
        background: rgba(255,255,255,.045);
      }
      body.theme-dark.portal-page .execution-laps-table tbody tr:nth-child(even) td,
      body:not(.theme-light).portal-page .execution-laps-table tbody tr:nth-child(even) td {
        background: rgba(255,255,255,.075);
      }
      body.portal-page .execution-chart-metrics,
      body.theme-dark.portal-page .execution-chart-metrics,
      body:not(.theme-light).portal-page .execution-chart-metrics {
        justify-content: center;
        width: 100%;
        margin: 0;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
      }
      body.portal-page .execution-chart-metrics label,
      body.theme-dark.portal-page .execution-chart-metrics label,
      body:not(.theme-light).portal-page .execution-chart-metrics label {
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
      }
    }
    @media (max-width: 760px) {
      body.portal-page .main-inner:has(.plan-page) {
        padding-top: var(--mobile-top-level-section-gap, 10px);
      }
      body.portal-page .main-inner:has(.plan-page) > .message-coach-settings-saved {
        display: none;
      }
      body.portal-page .plan-update-card.is-collapsed,
      body.theme-dark.portal-page .plan-update-card.is-collapsed,
      body:not(.theme-light).portal-page .plan-update-card.is-collapsed {
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
      }
      body.portal-page .calendar-panel,
      body.theme-dark.portal-page .calendar-panel,
      body:not(.theme-light).portal-page .calendar-panel {
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
      }
      body.theme-dark.portal-page .workout-purpose-general,
      body.theme-dark.portal-page .workout-purpose-rest { --workout-purpose-background: rgba(170,182,176,.13); --workout-purpose-color: #d7ded9; --workout-purpose-border: rgba(170,182,176,.36); }
      body.theme-dark.portal-page .workout-purpose-recovery,
      body.theme-dark.portal-page .workout-purpose-mobility { --workout-purpose-background: rgba(68,200,182,.17); --workout-purpose-color: #91e1d7; --workout-purpose-border: rgba(104,216,200,.46); }
      body.theme-dark.portal-page .workout-purpose-easy,
      body.theme-dark.portal-page .workout-purpose-technique { --workout-purpose-background: rgba(93,194,255,.17); --workout-purpose-color: #b9e7ff; --workout-purpose-border: rgba(93,194,255,.46); }
      body.theme-dark.portal-page .workout-purpose-long { --workout-purpose-background: rgba(255,174,64,.18); --workout-purpose-color: #ffd08c; --workout-purpose-border: rgba(255,190,100,.5); }
      body.theme-dark.portal-page .workout-purpose-quality { --workout-purpose-background: rgba(255,134,79,.18); --workout-purpose-color: #ffc0a3; --workout-purpose-border: rgba(255,151,105,.5); }
      body.theme-dark.portal-page .workout-purpose-strength { --workout-purpose-background: rgba(177,139,230,.18); --workout-purpose-color: #d8bef8; --workout-purpose-border: rgba(192,159,237,.48); }
      body.theme-dark.portal-page .workout-purpose-race { --workout-purpose-background: rgba(255,105,95,.18); --workout-purpose-color: #ffb4ad; --workout-purpose-border: rgba(255,128,119,.5); }
      body.theme-dark.portal-page .day-row .workout-pill.is-planned,
      body.theme-dark.portal-page .day-row .workout-pill.is-revised { border-color: var(--workout-purpose-border); background: var(--workout-purpose-background); color: var(--workout-purpose-color); }
      body.theme-dark.portal-page .day-row .workout-pill.is-unread-coach-update::after { background: #e41e3f; }
      body.theme-light.portal-page .day-row {
        border-color: #e0e6df;
        background: #fbfcfb;
        box-shadow: 0 4px 12px rgba(31,39,34,.10);
      }
      body.theme-light.portal-page .day-row.has-plan {
        background: #f8faf7;
      }
      body.theme-light.portal-page .day-row.is-today {
        border-color: #cfd8cf;
        background: #f8faf7;
      }
      body.theme-light.portal-page .day-row.is-selected,
      body.theme-light.portal-page .day-row.is-collapsed-selected {
        border-width: 2px;
        border-color: #316d8f;
        background: #fbfcfb;
        box-shadow: 0 4px 12px rgba(31,39,34,.10);
      }
      body.theme-light.portal-page .day-row.is-selected.is-switching-away {
        border-width: 1px;
        border-color: #e0e6df;
        background: #f8faf7;
        box-shadow: 0 4px 12px rgba(31,39,34,.10);
      }
      body.theme-light.portal-page .day-row.is-today.is-selected.is-switching-away {
        border-color: #cfd8cf;
      }
      body.theme-light.portal-page .day-row.is-selected:not(.is-switching-away)::after {
        content: none;
        box-shadow: none;
      }
      body.theme-light.portal-page .plan-calendar-mobile {
        --mobile-plan-control-surface: linear-gradient(145deg, #f8fbf2, #e7f3ed);
      }
      body.theme-light.portal-page .week-arrow-row-mobile {
        border-color: #abc88b;
        background: var(--mobile-plan-control-surface);
        box-shadow: 0 8px 20px rgba(20,55,43,.10);
      }
      body.theme-light.portal-page .week-arrow-row-mobile .week-arrow {
        border: 0;
        border-radius: 0;
        background: transparent;
        color: #286a57;
        box-shadow: none;
      }
      body.theme-light.portal-page .week-arrow-row-mobile .week-arrow:hover,
      body.theme-light.portal-page .week-arrow-row-mobile .week-arrow:focus {
        background: transparent;
        color: #286a57;
      }
      body.theme-light.portal-page .expanded-workout {
        padding-top: 19px;
        background: linear-gradient(to bottom, transparent 5px, #f4f5f2 5px);
      }
      body.theme-light.portal-page .expanded-workout::before {
        top: 5px;
      }
      body.theme-dark.portal-page .week-arrow-row-mobile {
        border-color: rgba(194,224,132,.46);
        background: linear-gradient(145deg, #26372f, #1b2c25);
        box-shadow: 0 9px 22px rgba(0,0,0,.28);
      }
      body.theme-dark.portal-page .week-arrow-row-mobile .week-arrow {
        border: 0;
        border-radius: 0;
        background: transparent;
        color: #c2e084;
        box-shadow: none;
      }
      body.theme-dark.portal-page .week-arrow-row-mobile .week-arrow:hover,
      body.theme-dark.portal-page .week-arrow-row-mobile .week-arrow:focus {
        background: transparent;
        color: #c2e084;
      }
      body.theme-dark.portal-page .mobile-week-period { color: #eef7ef; }
      body.theme-dark.portal-page .mobile-week-separator { color: rgba(238,247,239,.62); }
      body.theme-dark.portal-page .mobile-current-week-link,
      body.theme-dark.portal-page .mobile-current-week-link:hover,
      body.theme-dark.portal-page .mobile-current-week-link:focus { color: #c2e084; }
      body.theme-dark.portal-page .mobile-current-week-link.is-disabled,
      body.theme-dark.portal-page .mobile-current-week-link.is-disabled:hover,
      body.theme-dark.portal-page .mobile-current-week-link.is-disabled:focus { color: rgba(238,247,239,.62); }
      body.theme-dark.portal-page .season-roadmap-mobile-action {
        border-color: #526159;
        background: #202b25;
        color: #c2e084;
      }
      body.portal-page:not(.auth-page) .profile-section:not(.is-active):not(.is-collapsed-selected),
      body.portal-page:not(.auth-page) .profile-section:not(.is-active):not(.is-collapsed-selected) .profile-section-accordion,
      body.portal-page:not(.auth-page) .goal-card:not([open]):not(.is-collapsed-selected):not(.context-row-past):not(.new-goal-card),
      body.portal-page:not(.auth-page) .goal-card:not([open]):not(.is-collapsed-selected):not(.context-row-past):not(.new-goal-card) .goal-summary,
      body.portal-page:not(.auth-page) .event-card:not([open]):not(.is-collapsed-selected):not(.context-row-past):not(.new-event-card),
      body.portal-page:not(.auth-page) .event-card:not([open]):not(.is-collapsed-selected):not(.context-row-past):not(.new-event-card) .event-summary {
        background: var(--mobile-disclosure-collapsed-background);
      }
      body.portal-page:not(.auth-page) .day-row.is-selected,
      body.portal-page:not(.auth-page) .day-row.is-collapsed-selected,
      body.portal-page:not(.auth-page) .profile-section.is-active,
      body.portal-page:not(.auth-page) .profile-section.is-active .profile-section-accordion,
      body.portal-page:not(.auth-page) .profile-section.is-collapsed-selected,
      body.portal-page:not(.auth-page) .profile-section.is-collapsed-selected .profile-section-accordion,
      body.portal-page:not(.auth-page) .goal-card[open]:not(.context-row-past):not(.new-goal-card),
      body.portal-page:not(.auth-page) .goal-card[open]:not(.context-row-past):not(.new-goal-card) .goal-summary,
      body.portal-page:not(.auth-page) .goal-card.is-collapsed-selected:not([open]):not(.context-row-past):not(.new-goal-card),
      body.portal-page:not(.auth-page) .goal-card.is-collapsed-selected:not([open]):not(.context-row-past):not(.new-goal-card) .goal-summary,
      body.portal-page:not(.auth-page) .event-card[open]:not(.context-row-past):not(.new-event-card),
      body.portal-page:not(.auth-page) .event-card[open]:not(.context-row-past):not(.new-event-card) .event-summary,
      body.portal-page:not(.auth-page) .event-card.is-collapsed-selected:not([open]):not(.context-row-past):not(.new-event-card),
      body.portal-page:not(.auth-page) .event-card.is-collapsed-selected:not([open]):not(.context-row-past):not(.new-event-card) .event-summary {
        background: var(--mobile-disclosure-selected-background);
      }
      body.portal-page:not(.auth-page) .profile-section .profile-section-body,
      body.portal-page:not(.auth-page) .goal-card[open]:not(.context-row-past):not(.new-goal-card) .goal-editor,
      body.portal-page:not(.auth-page) .event-card[open]:not(.context-row-past):not(.new-event-card) .event-editor {
        background: var(--mobile-disclosure-expanded-background);
      }
      body.portal-page:not(.auth-page) .expanded-workout {
        background: linear-gradient(
          to bottom,
          transparent var(--mobile-disclosure-divider-offset),
          var(--mobile-disclosure-expanded-background) var(--mobile-disclosure-divider-offset)
        );
      }
    }
    @media (max-width: 760px) and (prefers-color-scheme: dark) {
      body:not(.theme-light).portal-page {
        --mobile-disclosure-collapsed-background: rgba(255,255,255,.065);
        --mobile-disclosure-selected-background: rgba(139,190,230,.1);
        --mobile-disclosure-expanded-background: #1c3629;
        --mobile-disclosure-divider-offset: 8px;
      }
      body:not(.theme-light).portal-page .workout-purpose-general,
      body:not(.theme-light).portal-page .workout-purpose-rest { --workout-purpose-background: rgba(170,182,176,.13); --workout-purpose-color: #d7ded9; --workout-purpose-border: rgba(170,182,176,.36); }
      body:not(.theme-light).portal-page .workout-purpose-recovery,
      body:not(.theme-light).portal-page .workout-purpose-mobility { --workout-purpose-background: rgba(68,200,182,.17); --workout-purpose-color: #91e1d7; --workout-purpose-border: rgba(104,216,200,.46); }
      body:not(.theme-light).portal-page .workout-purpose-easy,
      body:not(.theme-light).portal-page .workout-purpose-technique { --workout-purpose-background: rgba(93,194,255,.17); --workout-purpose-color: #b9e7ff; --workout-purpose-border: rgba(93,194,255,.46); }
      body:not(.theme-light).portal-page .workout-purpose-long { --workout-purpose-background: rgba(255,174,64,.18); --workout-purpose-color: #ffd08c; --workout-purpose-border: rgba(255,190,100,.5); }
      body:not(.theme-light).portal-page .workout-purpose-quality { --workout-purpose-background: rgba(255,134,79,.18); --workout-purpose-color: #ffc0a3; --workout-purpose-border: rgba(255,151,105,.5); }
      body:not(.theme-light).portal-page .workout-purpose-strength { --workout-purpose-background: rgba(177,139,230,.18); --workout-purpose-color: #d8bef8; --workout-purpose-border: rgba(192,159,237,.48); }
      body:not(.theme-light).portal-page .workout-purpose-race { --workout-purpose-background: rgba(255,105,95,.18); --workout-purpose-color: #ffb4ad; --workout-purpose-border: rgba(255,128,119,.5); }
      body:not(.theme-light).portal-page .day-row .workout-pill.is-planned,
      body:not(.theme-light).portal-page .day-row .workout-pill.is-revised { border-color: var(--workout-purpose-border); background: var(--workout-purpose-background); color: var(--workout-purpose-color); }
      body:not(.theme-light).portal-page .day-row .workout-pill.is-unread-coach-update::after { background: #e41e3f; }
      body:not(.theme-light).portal-page .week-arrow-row-mobile {
        border-color: rgba(194,224,132,.46);
        background: linear-gradient(145deg, #26372f, #1b2c25);
        box-shadow: 0 9px 22px rgba(0,0,0,.28);
      }
      body:not(.theme-light).portal-page .week-arrow-row-mobile .week-arrow {
        border: 0;
        border-radius: 0;
        background: transparent;
        color: #c2e084;
        box-shadow: none;
      }
      body:not(.theme-light).portal-page .week-arrow-row-mobile .week-arrow:hover,
      body:not(.theme-light).portal-page .week-arrow-row-mobile .week-arrow:focus {
        background: transparent;
        color: #c2e084;
      }
      body:not(.theme-light).portal-page .mobile-week-period { color: #eef7ef; }
      body:not(.theme-light).portal-page .mobile-week-separator { color: rgba(238,247,239,.62); }
      body:not(.theme-light).portal-page .mobile-current-week-link,
      body:not(.theme-light).portal-page .mobile-current-week-link:hover,
      body:not(.theme-light).portal-page .mobile-current-week-link:focus { color: #c2e084; }
      body:not(.theme-light).portal-page .mobile-current-week-link.is-disabled,
      body:not(.theme-light).portal-page .mobile-current-week-link.is-disabled:hover,
      body:not(.theme-light).portal-page .mobile-current-week-link.is-disabled:focus { color: rgba(238,247,239,.62); }
      body:not(.theme-light).portal-page .season-roadmap-mobile-action {
        border-color: #526159;
        background: #202b25;
        color: #c2e084;
      }
    }
    @media (min-width: 761px) {
      .calendar-title-row > .calendar-legend-toggle { margin-left: 16px; }
      .calendar-header > .calendar-last-updated { visibility: hidden; }
      .calendar-nav { gap: 6px; }
      .nav-group.navigate { margin-left: 0; }
      .calendar-title-row > .calendar-legend-toggle,
      .calendar-title-row > .season-roadmap-open-desktop,
      .calendar-nav .today-button {
        box-sizing: border-box;
        font-size: 13px;
      }
      .calendar-selects select,
      .calendar-nav .today-button {
        font-family: inherit;
        font-size: 13px;
      }
      .calendar-title-row > .calendar-legend-toggle,
      .calendar-title-row > .season-roadmap-open-desktop {
        height: 34px;
        min-height: 34px;
      }
      .calendar-title-row > .calendar-legend-toggle {
        flex: 0 0 116px;
        width: 116px;
      }
      .calendar-title-row > .season-roadmap-open-desktop {
        flex: 0 0 auto;
        width: auto;
        min-width: 116px;
        white-space: nowrap;
      }
      .calendar-title-row > .season-roadmap-open-desktop,
      .calendar-nav .today-button {
        border-color: #d7e2d7;
        background: #f6f8f4;
        color: #56645c;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
      }
      .calendar-title-row > .season-roadmap-open-desktop:hover,
      .calendar-title-row > .season-roadmap-open-desktop:focus,
      .calendar-nav .today-button:hover,
      .calendar-nav .today-button:focus {
        border-color: #c7d6ca;
        background: #edf5ef;
        color: #415047;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.82);
      }
      .calendar-title-row > .season-roadmap-open-desktop:focus-visible,
      .calendar-nav .today-button:focus-visible {
        outline: 2px solid rgba(40,106,87,.18);
        outline-offset: 2px;
      }
      body.theme-dark.portal-page .calendar-title-row > .calendar-legend-toggle,
      body.theme-dark.portal-page .calendar-title-row > .season-roadmap-open-desktop,
      body.theme-dark.portal-page .calendar-nav .today-button {
        border-color: #d7e2d7;
        background: #f6f8f4;
        color: #56645c;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
      }
      body.theme-dark.portal-page .calendar-title-row > .calendar-legend-toggle:hover,
      body.theme-dark.portal-page .calendar-title-row > .calendar-legend-toggle:focus,
      body.theme-dark.portal-page .calendar-title-row > .season-roadmap-open-desktop:hover,
      body.theme-dark.portal-page .calendar-title-row > .season-roadmap-open-desktop:focus,
      body.theme-dark.portal-page .calendar-nav .today-button:hover,
      body.theme-dark.portal-page .calendar-nav .today-button:focus {
        border-color: #c7d6ca;
        background: #edf5ef;
        color: #415047;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.82);
      }
    }
    @media (min-width: 761px) and (prefers-color-scheme: dark) {
      body:not(.theme-light).portal-page .calendar-title-row > .calendar-legend-toggle,
      body:not(.theme-light).portal-page .calendar-title-row > .season-roadmap-open-desktop,
      body:not(.theme-light).portal-page .calendar-nav .today-button {
        border-color: #d7e2d7;
        background: #f6f8f4;
        color: #56645c;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
      }
      body:not(.theme-light).portal-page .calendar-title-row > .calendar-legend-toggle:hover,
      body:not(.theme-light).portal-page .calendar-title-row > .calendar-legend-toggle:focus,
      body:not(.theme-light).portal-page .calendar-title-row > .season-roadmap-open-desktop:hover,
      body:not(.theme-light).portal-page .calendar-title-row > .season-roadmap-open-desktop:focus,
      body:not(.theme-light).portal-page .calendar-nav .today-button:hover,
      body:not(.theme-light).portal-page .calendar-nav .today-button:focus {
        border-color: #c7d6ca;
        background: #edf5ef;
        color: #415047;
        box-shadow: inset 0 1px 0 rgba(255,255,255,.82);
      }
    }
    .main-inner:has(.training-progress-page) { max-width: 820px; }
    .training-progress-page {
      --progress-surface: #ffffff;
      --progress-surface-soft: #f4f8f4;
      --progress-border: #dce6dd;
      --progress-text: #173027;
      --progress-muted: #66756d;
      --progress-accent: #286a57;
      --progress-lime: #c2e084;
      --mobile-plan-control-surface: linear-gradient(145deg, #f8fbf2, #e7f3ed);
      display: grid;
      gap: 14px;
      width: 100%;
      margin: 0 auto;
      color: var(--progress-text);
    }
    .training-progress-page,
    .training-progress-page * { box-sizing: border-box; }
    .training-progress-period-selector {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 3px;
      width: min(100%, 360px);
      margin: 0 auto;
      padding: 3px;
      box-sizing: border-box;
      border: 1px solid var(--progress-border);
      border-radius: 13px;
      background: var(--progress-surface-soft);
    }
    .training-progress-period-selector a {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
      min-height: 38px;
      border: 0;
      border-radius: 10px;
      background: transparent;
      color: var(--progress-muted);
      font-size: 12px;
      font-weight: 900;
      line-height: 1;
      text-decoration: none;
    }
    .portal-tab-notification-badge {
      position: static;
      min-width: 18px;
      height: 18px;
      padding: 0 5px;
      border-width: 0;
      box-shadow: none;
    }
    .training-progress-period-selector a.is-active {
      background: var(--progress-accent);
      color: var(--progress-surface);
      box-shadow: 0 4px 12px rgba(20,66,52,.14);
    }
    .training-progress-period-selector a:focus-visible {
      outline: 3px solid rgba(40,106,87,.16);
      outline-offset: 1px;
    }
    .training-progress-week-nav {
      display: grid;
      grid-template-columns: 48px minmax(0, 1fr) 48px;
      align-items: center;
      min-height: 58px;
      overflow: hidden;
      border: 1px solid #c9d9cd;
      border-radius: 16px;
      background: linear-gradient(145deg, #f8fbf5, #eaf4ee);
      box-shadow: 0 9px 22px rgba(28,68,54,.09);
    }
    .training-progress-week-nav > div {
      display: flex;
      align-items: baseline;
      justify-content: center;
      gap: 11px;
      min-width: 0;
      text-align: center;
    }
    .training-progress-week-nav strong {
      color: var(--progress-text);
      font-size: 17px;
      font-weight: 900;
      line-height: 1.1;
      letter-spacing: .01em;
      white-space: nowrap;
    }
    .training-progress-current {
      color: var(--progress-accent);
      font-size: 11px;
      font-weight: 950;
      line-height: 1;
      letter-spacing: .04em;
      text-decoration: none;
    }
    .training-progress-current.is-current { color: #8a978f; }
    .training-progress-week-arrow {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      align-self: stretch;
      border: 0;
      background: transparent;
      color: var(--progress-accent);
      font-size: 26px;
      font-weight: 500;
      line-height: 1;
      text-decoration: none;
    }
    .training-progress-week-arrow:hover,
    .training-progress-week-arrow:focus-visible {
      background: rgba(40,106,87,.08);
      color: #174c3e;
      outline: 0;
    }
    .training-progress-week-arrow.is-disabled {
      color: var(--progress-muted);
      opacity: .3;
      pointer-events: none;
      cursor: default;
    }
    .training-progress-mobile-week-nav .week-arrow.is-disabled {
      color: var(--progress-muted);
      opacity: .3;
      pointer-events: none;
      cursor: default;
    }
    .training-progress-period-range {
      max-width: min(100%, 520px);
      font-variant-numeric: tabular-nums;
    }
    .training-progress-story {
      overflow: hidden;
      border: 1px solid var(--progress-border);
      border-radius: 20px;
      background: var(--progress-surface);
      box-shadow: 0 16px 34px rgba(31,54,42,.09);
    }
    .training-progress-section { padding: 22px 24px; }
    .training-progress-section + .training-progress-section {
      border-top: 1px solid var(--progress-border);
    }
    .training-progress-section-heading {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      margin-bottom: 17px;
    }
    .training-progress-eyebrow {
      display: block;
      margin-bottom: 4px;
      color: var(--progress-muted);
      font-size: 10px;
      font-weight: 950;
      line-height: 1;
      letter-spacing: .08em;
      text-transform: uppercase;
    }
    .training-progress-section-heading h1,
    .training-progress-section-heading h2 {
      margin: 0;
      color: var(--progress-text);
      font-size: 21px;
      font-weight: 850;
      line-height: 1.1;
    }
    .training-progress-session-total {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      min-width: 42px;
      height: 34px;
      padding: 0 10px;
      border-radius: 999px;
      background: #eaf3ed;
      color: var(--progress-accent);
      font-size: 17px;
      font-weight: 950;
      white-space: nowrap;
    }
    .training-progress-session-total strong {
      color: inherit;
      font: inherit;
    }
    .training-progress-session-total small {
      color: var(--progress-muted);
      font-size: 8px;
      font-weight: 900;
      line-height: 1;
      letter-spacing: .05em;
      text-transform: uppercase;
    }
    .training-progress-execution-track {
      display: flex;
      height: 9px;
      overflow: hidden;
      border-radius: 999px;
      background: #e8eeea;
    }
    .training-progress-execution-track span { min-width: 2px; }
    .training-progress-execution-track .is-completed,
    .training-progress-status-list .is-completed .training-progress-status-dot { background: #2d9271; }
    .training-progress-execution-track .is-partial,
    .training-progress-status-list .is-partial .training-progress-status-dot { background: #e7a23c; }
    .training-progress-execution-track .is-skipped,
    .training-progress-status-list .is-skipped .training-progress-status-dot { background: #b46973; }
    .training-progress-execution-track .is-planned,
    .training-progress-status-list .is-planned .training-progress-status-dot { background: #86a8b3; }
    .training-progress-status-list .is-unplanned .training-progress-status-dot { background: #7e73b8; }
    .training-progress-status-list {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px 12px;
      margin: 15px 0 0;
      padding: 0;
      list-style: none;
    }
    .training-progress-status-list li {
      display: grid;
      grid-template-columns: 8px minmax(0, 1fr) auto;
      align-items: center;
      gap: 7px;
      min-width: 0;
      color: var(--progress-muted);
      font-size: 12px;
      font-weight: 750;
    }
    .training-progress-status-list strong {
      color: var(--progress-text);
      font-size: 14px;
      font-weight: 950;
    }
    .training-progress-status-dot {
      width: 8px;
      height: 8px;
      border-radius: 999px;
    }
    .training-progress-sport-list {
      display: grid;
      gap: 0;
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .training-progress-trend-list {
      display: grid;
      gap: 0;
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .training-progress-trend-row {
      display: grid;
      grid-template-columns: 58px minmax(0, 1fr);
      align-items: start;
      gap: 14px;
      padding: 17px 0;
      border-top: 1px solid var(--progress-border);
    }
    .training-progress-trend-row:first-child { padding-top: 0; border-top: 0; }
    .training-progress-trend-row:last-child { padding-bottom: 0; }
    .training-progress-trend-content { min-width: 0; }
    .training-progress-period-values {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 7px;
      margin: 0;
    }
    .training-progress-period-values div { min-width: 0; }
    .training-progress-period-values dt {
      overflow: hidden;
      margin-bottom: 3px;
      color: var(--progress-muted);
      font-size: 8px;
      font-weight: 900;
      line-height: 1.2;
      letter-spacing: .02em;
      text-overflow: ellipsis;
      text-transform: uppercase;
      white-space: nowrap;
    }
    .training-progress-period-values dd {
      display: flex;
      align-items: baseline;
      gap: 5px;
      min-width: 0;
      overflow: hidden;
      margin: 0;
      color: var(--progress-text);
      font-size: 13px;
      font-weight: 900;
      line-height: 1.2;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .training-progress-week-values {
      grid-column: 1 / -1;
      width: 100%;
      margin-top: 11px;
      border: 1px solid var(--progress-border);
      border-spacing: 0;
      border-radius: 12px;
      background: var(--progress-surface-soft);
      table-layout: fixed;
      font-variant-numeric: tabular-nums;
      overflow: hidden;
    }
    .training-progress-week-values col.is-week { width: 26%; }
    .training-progress-week-values col.is-value { width: 37%; }
    .training-progress-week-values th,
    .training-progress-week-values td {
      padding: 6px 8px;
      border-top: 1px solid var(--progress-border);
      text-align: right;
      white-space: nowrap;
    }
    .training-progress-week-values thead th {
      border-top: 0;
      color: var(--progress-muted);
      font-size: 8px;
      font-weight: 900;
      line-height: 1.2;
      letter-spacing: .02em;
      text-transform: uppercase;
    }
    .training-progress-week-values th:first-child {
      text-align: left;
    }
    .training-progress-week-values tbody th {
      color: var(--progress-muted);
      font-size: 10px;
      font-weight: 850;
      line-height: 1.2;
    }
    .training-progress-week-values tbody td {
      color: var(--progress-text);
      font-size: 11px;
      font-weight: 900;
      line-height: 1.2;
    }
    .training-progress-week-values tbody td[data-progress-week-value="completed"] {
      color: var(--progress-accent);
    }
    .training-progress-week-values tbody td.is-unavailable {
      color: var(--progress-muted);
    }
    .training-progress-sport-row {
      display: grid;
      grid-template-columns: 58px minmax(0, 1fr);
      align-items: center;
      gap: 14px;
      padding: 15px 0;
      border-top: 1px solid var(--progress-border);
    }
    .training-progress-sport-row:first-child { padding-top: 0; border-top: 0; }
    .training-progress-sport-row:last-child { padding-bottom: 0; }
    .training-progress-sport-mark {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 56px;
      height: 56px;
      border: 1px solid #cfe1d3;
      border-radius: 17px;
      background: linear-gradient(145deg, #f0f7e8, #deeee5);
      color: #155744;
    }
    .training-progress-sport-icon,
    .training-progress-sport-icon .plan-activity-icon {
      display: block;
      width: 38px;
      height: 38px;
    }
    .training-progress-sport-content { min-width: 0; }
    .training-progress-sport-heading {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 10px;
      margin-bottom: 9px;
    }
    .training-progress-sport-heading strong {
      overflow: hidden;
      color: var(--progress-text);
      font-size: 16px;
      font-weight: 900;
      line-height: 1.1;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .training-progress-sport-heading span {
      color: var(--progress-muted);
      font-size: 10px;
      font-weight: 850;
      letter-spacing: .04em;
      text-transform: uppercase;
      white-space: nowrap;
    }
    .training-progress-volume-values {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 10px;
      margin: 0;
    }
    .training-progress-volume-values div { min-width: 0; }
    .training-progress-volume-values dt {
      overflow: hidden;
      margin-bottom: 2px;
      color: var(--progress-muted);
      font-size: 9px;
      font-weight: 850;
      line-height: 1.2;
      letter-spacing: .025em;
      text-overflow: ellipsis;
      text-transform: uppercase;
      white-space: nowrap;
    }
    .training-progress-volume-values dd {
      overflow: hidden;
      margin: 0;
      color: var(--progress-text);
      font-size: 13px;
      font-weight: 900;
      line-height: 1.2;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .training-progress-volume-bars {
      display: grid;
      grid-template-columns: max-content minmax(0, 1fr);
      align-items: center;
      gap: 5px 9px;
      margin-top: 11px;
    }
    .training-progress-volume-bar-label {
      color: var(--progress-muted);
      font-size: 8px;
      font-weight: 900;
      line-height: 1;
      letter-spacing: .045em;
      text-transform: uppercase;
    }
    .training-progress-volume-bar-rail {
      display: block;
      box-sizing: border-box;
      min-width: 0;
      height: 5px;
      overflow: hidden;
      border-radius: 999px;
      background: #e8eeea;
    }
    .training-progress-volume-bar-rail.is-unavailable {
      border: 1px dashed #a9b5ae;
      background: transparent;
    }
    .training-progress-volume-bar-rail > span {
      display: block;
      height: 100%;
      border-radius: inherit;
    }
    .training-progress-volume-bar-rail.is-planned > span {
      background: #86a8b3;
    }
    .training-progress-volume-bar-rail.is-completed > span {
      background: #2d9271;
    }
    .training-progress-recovery {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-top: 17px;
      padding: 11px 13px;
      border: 1px solid #cce6e0;
      border-radius: 13px;
      background: #edf9f6;
      color: #176b61;
    }
    .training-progress-recovery-icon,
    .training-progress-recovery-icon .plan-activity-icon {
      display: block;
      width: 29px;
      height: 29px;
    }
    .training-progress-recovery > div {
      display: flex;
      gap: 14px;
      flex-wrap: wrap;
      font-size: 12px;
      font-weight: 800;
    }
    .training-progress-recovery b { font-size: 15px; }
    .training-progress-record-list {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
      gap: 10px;
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .training-progress-record-item {
      position: relative;
      display: grid;
      grid-template-columns: minmax(0, 1fr) 48px;
      align-items: center;
      gap: 10px;
      min-height: 64px;
      padding: 7px 9px 7px 14px;
      border: 1px solid #ead998;
      border-radius: 15px;
      background: linear-gradient(135deg, #fffaf0, #f7f5e7);
      color: #58491c;
    }
    .training-progress-record-link {
      display: grid;
      grid-column: 1 / -1;
      grid-template-columns: minmax(0, 1fr) 48px;
      align-items: center;
      gap: 10px;
      color: inherit;
      text-decoration: none;
    }
    .training-progress-record-link::before {
      position: absolute;
      inset: 0;
      border-radius: inherit;
      content: "";
      cursor: pointer;
    }
    .training-progress-record-link:focus-visible {
      outline: 0;
    }
    .training-progress-record-link:focus-visible::before {
      outline: 2px solid currentColor;
      outline-offset: 2px;
    }
    .training-progress-record-heading {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 6px;
      min-width: 0;
    }
    .training-progress-record-heading > strong {
      min-width: 0;
      overflow-wrap: anywhere;
      font-size: 14px;
      font-weight: 850;
      line-height: 1.2;
    }
    .training-progress-record-new {
      flex: 0 0 auto;
      margin-left: 0;
    }
    .training-progress-record-cotillion {
      position: relative;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 44px;
      height: 44px;
      overflow: visible;
      color: #886d08;
    }
    .training-progress-record-cotillion .personal-record-rosette {
      display: block;
      width: 30px;
      height: 30px;
      fill: #f2cf4a;
    }
    .training-progress-record-count {
      position: absolute;
      top: -3px;
      right: -4px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      box-sizing: border-box;
      width: 22px;
      min-width: 22px;
      height: 22px;
      padding: 0;
      border: 2px solid #ffffff;
      border-radius: 50%;
      background: #286a57;
      color: #ffffff;
      font-size: 10px;
      font-weight: 900;
      font-variant-numeric: tabular-nums;
      line-height: 1;
    }
    .training-progress-record-count > b {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      height: 100%;
      margin: 0;
      font: inherit;
      line-height: 1;
      text-align: center;
    }
    .training-progress-empty {
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 76px;
      border: 1px dashed #cbd8ce;
      border-radius: 14px;
      color: var(--progress-muted);
      font-size: 13px;
      font-weight: 800;
    }
    .training-progress-review {
      display: grid;
      grid-template-columns: 48px minmax(0, 1fr);
      align-items: start;
      gap: 10px 14px;
      margin: 0 24px 22px;
      padding: 16px;
      border: 1px solid #bddfd8;
      border-radius: 16px;
      background: linear-gradient(135deg, #e8f8f4, #f5f9e9);
      color: #184f45;
    }
    .training-progress-review-heading {
      align-self: center;
      min-width: 0;
    }
    .training-progress-review-icon {
      display: block;
      width: 46px;
      height: 46px;
      box-sizing: border-box;
      overflow: hidden;
      border: 2px solid rgba(40,106,87,.28);
      border-radius: 50%;
      background: #286a57;
    }
    .training-progress-review-avatar {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .training-progress-review h2 {
      margin: 0;
      color: #286a57;
      font-size: 11px;
      font-weight: 950;
      line-height: 1;
      letter-spacing: .08em;
      text-transform: uppercase;
    }
    .training-progress-review-status {
      display: block;
      grid-column: 1 / -1;
      margin: 1px 0 0;
      color: #173f35;
      font-size: 14px;
      font-weight: 400;
      line-height: 1.35;
    }
    .training-progress-review-copy {
      grid-column: 1 / -1;
      margin: 1px 0 0;
      color: #284e42;
      font-size: 14px;
      font-weight: 400;
      line-height: 1.45;
    }
    .training-progress-actions {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      padding: 0 24px 24px;
    }
    .training-progress-action {
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 44px;
      box-sizing: border-box;
      padding: 0 14px;
      border: 1px solid #c8d8cc;
      border-radius: 13px;
      background: #f7faf7;
      color: #286a57;
      font: inherit;
      font-size: 12px;
      font-weight: 900;
      line-height: 1.2;
      text-align: center;
      text-decoration: none;
      cursor: pointer;
    }
    .training-progress-action.is-primary {
      border-color: #286a57;
      background: #286a57;
      color: #ffffff;
    }
    .training-progress-action:hover,
    .training-progress-action:focus-visible {
      border-color: #286a57;
      outline: 3px solid rgba(40,106,87,.14);
    }
    .training-progress-action-main {
      display: inline-flex;
      align-items: center;
      min-width: 0;
      gap: 8px;
    }
    .training-progress-action-icon {
      flex: 0 0 auto;
      width: 20px;
      height: 20px;
      fill: none;
      stroke: currentColor;
      stroke-width: 1.8;
      stroke-linecap: round;
      stroke-linejoin: round;
    }
    .training-progress-roadmap-open-desktop { display: none; }
    @media (max-width: 760px) {
    body.theme-dark.portal-page .training-progress-page {
      --progress-surface: rgba(17,39,31,.95);
      --progress-surface-soft: rgba(255,255,255,.055);
      --progress-border: rgba(255,255,255,.12);
      --progress-text: #eef7ef;
      --progress-muted: rgba(238,247,239,.62);
      --progress-accent: #c2e084;
    }
    body.theme-dark.portal-page .training-progress-week-nav {
      border-color: rgba(194,224,132,.34);
      background: linear-gradient(145deg, #26372f, #1b2c25);
      box-shadow: 0 10px 24px rgba(0,0,0,.28);
    }
    body.theme-dark.portal-page .training-progress-week-nav a {
      border: 0;
      background: transparent;
      box-shadow: none;
    }
    body.theme-dark.portal-page .training-progress-period-selector a {
      border: 0;
      background: transparent;
      box-shadow: none;
      color: rgba(238,247,239,.62);
    }
    body.theme-dark.portal-page .training-progress-period-selector a.is-active {
      background: #c2e084;
      color: #102820;
      box-shadow: 0 4px 12px rgba(0,0,0,.24);
    }
    body.theme-dark.portal-page .training-progress-week-arrow:hover,
    body.theme-dark.portal-page .training-progress-week-arrow:focus-visible { background: rgba(194,224,132,.08); color: #e2f4bd; }
    body.theme-dark.portal-page .training-progress-week-arrow.is-disabled,
    body.theme-dark.portal-page .training-progress-current.is-current { color: rgba(238,247,239,.4); }
    body.theme-dark.portal-page .training-progress-mobile-week-nav .week-arrow.is-disabled { color: rgba(238,247,239,.4); }
    body.theme-light.portal-page .training-progress-mobile-week-nav .week-arrow.is-disabled,
    body.theme-light.portal-page .training-progress-mobile-week-nav .week-arrow.is-disabled:hover,
    body.theme-light.portal-page .training-progress-mobile-week-nav .week-arrow.is-disabled:focus {
      color: #8f9c94;
      opacity: .3;
    }
    body.theme-dark.portal-page .training-progress-story { box-shadow: 0 16px 38px rgba(0,0,0,.3); }
    body.theme-dark.portal-page .training-progress-session-total { background: rgba(194,224,132,.12); }
    body.theme-dark.portal-page .training-progress-execution-track,
    body.theme-dark.portal-page .training-progress-volume-bar-rail { background: rgba(255,255,255,.08); }
    body.theme-dark.portal-page .training-progress-volume-bar-rail.is-planned > span { background: #91b4c0; }
    body.theme-dark.portal-page .training-progress-volume-bar-rail.is-completed > span { background: #c2e084; }
    body.theme-dark.portal-page .training-progress-volume-bar-rail.is-unavailable { border-color: rgba(238,247,239,.4); background: transparent; }
    body.theme-dark.portal-page .training-progress-sport-mark {
      border-color: rgba(194,224,132,.22);
      background: linear-gradient(145deg, rgba(194,224,132,.13), rgba(69,150,123,.14));
      color: #c2e084;
    }
    body.theme-dark.portal-page .training-progress-recovery {
      border-color: rgba(104,216,200,.3);
      background: rgba(68,200,182,.1);
      color: #9ce4da;
    }
    body.theme-dark.portal-page .training-progress-record-item {
      border-color: rgba(242,207,74,.3);
      background: linear-gradient(135deg, rgba(242,207,74,.11), rgba(194,224,132,.055));
      color: #f4e6a4;
    }
    body.theme-dark.portal-page .training-progress-record-cotillion {
      color: #fff0a3;
    }
    body.theme-dark.portal-page .training-progress-record-cotillion .personal-record-rosette {
      fill: #d0a51b;
    }
    body.theme-dark.portal-page .training-progress-record-cotillion .personal-record-rosette path:last-child {
      fill: none;
    }
    body.theme-dark.portal-page .training-progress-record-count {
      border-color: #202b25;
      background: #9bd5ad;
      color: #163327;
    }
    body.theme-dark.portal-page .training-progress-empty { border-color: rgba(255,255,255,.17); }
    body.theme-dark.portal-page .training-progress-review {
      border-color: rgba(194,224,132,.24);
      background: linear-gradient(135deg, rgba(53,125,102,.2), rgba(194,224,132,.08));
      color: #eef7ef;
    }
    body.theme-dark.portal-page .training-progress-review h2 { color: #c2e084; }
    body.theme-dark.portal-page .training-progress-review-status { color: #ffffff; }
    body.theme-dark.portal-page .training-progress-review-copy { color: rgba(238,247,239,.82); }
    body.theme-dark.portal-page .training-progress-action {
      border-color: rgba(255,255,255,.17);
      background: rgba(255,255,255,.06);
      color: #c2e084;
    }
    body.theme-dark.portal-page .training-progress-action.is-primary {
      border-color: #c2e084;
      background: #c2e084;
      color: #102820;
    }
    }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-page {
      --progress-surface: rgba(17,39,31,.95);
      --progress-surface-soft: rgba(255,255,255,.055);
      --progress-border: rgba(255,255,255,.12);
      --progress-text: #eef7ef;
      --progress-muted: rgba(238,247,239,.62);
      --progress-accent: #c2e084;
    }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-week-nav {
      border-color: rgba(194,224,132,.34);
      background: linear-gradient(145deg, #26372f, #1b2c25);
      box-shadow: 0 10px 24px rgba(0,0,0,.28);
    }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-week-nav a { border: 0; background: transparent; box-shadow: none; }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-period-selector a { border: 0; background: transparent; box-shadow: none; color: rgba(238,247,239,.62); }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-period-selector a.is-active { background: #c2e084; color: #102820; box-shadow: 0 4px 12px rgba(0,0,0,.24); }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-week-arrow:hover,
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-week-arrow:focus-visible { background: rgba(194,224,132,.08); color: #e2f4bd; }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-week-arrow.is-disabled,
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-current.is-current { color: rgba(238,247,239,.4); }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-mobile-week-nav .week-arrow.is-disabled { color: rgba(238,247,239,.4); }
    body:is(.ios-mobile,.android-mobile).theme-light.portal-page .training-progress-mobile-week-nav .week-arrow.is-disabled,
    body:is(.ios-mobile,.android-mobile).theme-light.portal-page .training-progress-mobile-week-nav .week-arrow.is-disabled:hover,
    body:is(.ios-mobile,.android-mobile).theme-light.portal-page .training-progress-mobile-week-nav .week-arrow.is-disabled:focus { color: #8f9c94; opacity: .3; }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-story { box-shadow: 0 16px 38px rgba(0,0,0,.3); }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-session-total { background: rgba(194,224,132,.12); }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-execution-track,
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-volume-bar-rail { background: rgba(255,255,255,.08); }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-volume-bar-rail.is-planned > span { background: #91b4c0; }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-volume-bar-rail.is-completed > span { background: #c2e084; }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-volume-bar-rail.is-unavailable { border-color: rgba(238,247,239,.4); background: transparent; }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-sport-mark { border-color: rgba(194,224,132,.22); background: linear-gradient(145deg, rgba(194,224,132,.13), rgba(69,150,123,.14)); color: #c2e084; }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-recovery { border-color: rgba(104,216,200,.3); background: rgba(68,200,182,.1); color: #9ce4da; }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-record-item { border-color: rgba(242,207,74,.3); background: linear-gradient(135deg, rgba(242,207,74,.11), rgba(194,224,132,.055)); color: #f4e6a4; }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-record-cotillion { color: #fff0a3; }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-record-cotillion .personal-record-rosette { fill: #d0a51b; }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-record-cotillion .personal-record-rosette path:last-child { fill: none; }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-record-count { border-color: #202b25; background: #9bd5ad; color: #163327; }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-empty { border-color: rgba(255,255,255,.17); }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-review { border-color: rgba(194,224,132,.24); background: linear-gradient(135deg, rgba(53,125,102,.2), rgba(194,224,132,.08)); color: #eef7ef; }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-review h2 { color: #c2e084; }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-review-status { color: #ffffff; }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-review-copy { color: rgba(238,247,239,.82); }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-action { border-color: rgba(255,255,255,.17); background: rgba(255,255,255,.06); color: #c2e084; }
    body:is(.ios-mobile,.android-mobile).theme-dark.portal-page .training-progress-action.is-primary { border-color: #c2e084; background: #c2e084; color: #102820; }
    @media (max-width: 760px) and (prefers-color-scheme: dark) {
      body:not(.theme-light).portal-page .training-progress-page {
        --progress-surface: rgba(17,39,31,.95);
        --progress-surface-soft: rgba(255,255,255,.055);
        --progress-border: rgba(255,255,255,.12);
        --progress-text: #eef7ef;
        --progress-muted: rgba(238,247,239,.62);
        --progress-accent: #c2e084;
      }
      body:not(.theme-light).portal-page .training-progress-week-nav { border-color: rgba(194,224,132,.34); background: linear-gradient(145deg, #26372f, #1b2c25); box-shadow: 0 10px 24px rgba(0,0,0,.28); }
      body:not(.theme-light).portal-page .training-progress-week-nav a { border: 0; background: transparent; box-shadow: none; }
      body:not(.theme-light).portal-page .training-progress-period-selector a { border: 0; background: transparent; box-shadow: none; color: rgba(238,247,239,.62); }
      body:not(.theme-light).portal-page .training-progress-period-selector a.is-active { background: #c2e084; color: #102820; box-shadow: 0 4px 12px rgba(0,0,0,.24); }
      body:not(.theme-light).portal-page .training-progress-week-arrow:hover,
      body:not(.theme-light).portal-page .training-progress-week-arrow:focus-visible { background: rgba(194,224,132,.08); color: #e2f4bd; }
      body:not(.theme-light).portal-page .training-progress-week-arrow.is-disabled,
      body:not(.theme-light).portal-page .training-progress-current.is-current { color: rgba(238,247,239,.4); }
      body:not(.theme-light).portal-page .training-progress-mobile-week-nav .week-arrow.is-disabled { color: rgba(238,247,239,.4); }
      body:not(.theme-light).portal-page .training-progress-story { box-shadow: 0 16px 38px rgba(0,0,0,.3); }
      body:not(.theme-light).portal-page .training-progress-session-total { background: rgba(194,224,132,.12); }
      body:not(.theme-light).portal-page .training-progress-execution-track,
      body:not(.theme-light).portal-page .training-progress-volume-bar-rail { background: rgba(255,255,255,.08); }
      body:not(.theme-light).portal-page .training-progress-volume-bar-rail.is-planned > span { background: #91b4c0; }
      body:not(.theme-light).portal-page .training-progress-volume-bar-rail.is-completed > span { background: #c2e084; }
      body:not(.theme-light).portal-page .training-progress-volume-bar-rail.is-unavailable { border-color: rgba(238,247,239,.4); background: transparent; }
      body:not(.theme-light).portal-page .training-progress-sport-mark { border-color: rgba(194,224,132,.22); background: linear-gradient(145deg, rgba(194,224,132,.13), rgba(69,150,123,.14)); color: #c2e084; }
      body:not(.theme-light).portal-page .training-progress-recovery { border-color: rgba(104,216,200,.3); background: rgba(68,200,182,.1); color: #9ce4da; }
      body:not(.theme-light).portal-page .training-progress-record-item { border-color: rgba(242,207,74,.3); background: linear-gradient(135deg, rgba(242,207,74,.11), rgba(194,224,132,.055)); color: #f4e6a4; }
      body:not(.theme-light).portal-page .training-progress-record-cotillion { color: #fff0a3; }
      body:not(.theme-light).portal-page .training-progress-record-cotillion .personal-record-rosette { fill: #d0a51b; }
      body:not(.theme-light).portal-page .training-progress-record-cotillion .personal-record-rosette path:last-child { fill: none; }
      body:not(.theme-light).portal-page .training-progress-record-count { border-color: #202b25; background: #9bd5ad; color: #163327; }
      body:not(.theme-light).portal-page .training-progress-empty { border-color: rgba(255,255,255,.17); }
      body:not(.theme-light).portal-page .training-progress-review { border-color: rgba(194,224,132,.24); background: linear-gradient(135deg, rgba(53,125,102,.2), rgba(194,224,132,.08)); color: #eef7ef; }
      body:not(.theme-light).portal-page .training-progress-review h2 { color: #c2e084; }
      body:not(.theme-light).portal-page .training-progress-review-status { color: #ffffff; }
      body:not(.theme-light).portal-page .training-progress-review-copy { color: rgba(238,247,239,.82); }
      body:not(.theme-light).portal-page .training-progress-action { border-color: rgba(255,255,255,.17); background: rgba(255,255,255,.06); color: #c2e084; }
      body:not(.theme-light).portal-page .training-progress-action.is-primary { border-color: #c2e084; background: #c2e084; color: #102820; }
    }
    @media (prefers-color-scheme: dark) {
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-page { --progress-surface: rgba(17,39,31,.95); --progress-surface-soft: rgba(255,255,255,.055); --progress-border: rgba(255,255,255,.12); --progress-text: #eef7ef; --progress-muted: rgba(238,247,239,.62); --progress-accent: #c2e084; }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-week-nav { border-color: rgba(194,224,132,.34); background: linear-gradient(145deg, #26372f, #1b2c25); box-shadow: 0 10px 24px rgba(0,0,0,.28); }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-week-nav a { border: 0; background: transparent; box-shadow: none; }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-period-selector a { border: 0; background: transparent; box-shadow: none; color: rgba(238,247,239,.62); }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-period-selector a.is-active { background: #c2e084; color: #102820; box-shadow: 0 4px 12px rgba(0,0,0,.24); }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-week-arrow:hover,
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-week-arrow:focus-visible { background: rgba(194,224,132,.08); color: #e2f4bd; }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-week-arrow.is-disabled,
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-current.is-current { color: rgba(238,247,239,.4); }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-mobile-week-nav .week-arrow.is-disabled { color: rgba(238,247,239,.4); }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-story { box-shadow: 0 16px 38px rgba(0,0,0,.3); }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-session-total { background: rgba(194,224,132,.12); }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-execution-track,
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-volume-bar-rail { background: rgba(255,255,255,.08); }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-volume-bar-rail.is-planned > span { background: #91b4c0; }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-volume-bar-rail.is-completed > span { background: #c2e084; }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-volume-bar-rail.is-unavailable { border-color: rgba(238,247,239,.4); background: transparent; }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-sport-mark { border-color: rgba(194,224,132,.22); background: linear-gradient(145deg, rgba(194,224,132,.13), rgba(69,150,123,.14)); color: #c2e084; }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-recovery { border-color: rgba(104,216,200,.3); background: rgba(68,200,182,.1); color: #9ce4da; }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-record-item { border-color: rgba(242,207,74,.3); background: linear-gradient(135deg, rgba(242,207,74,.11), rgba(194,224,132,.055)); color: #f4e6a4; }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-record-cotillion { color: #fff0a3; }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-record-cotillion .personal-record-rosette { fill: #d0a51b; }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-record-cotillion .personal-record-rosette path:last-child { fill: none; }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-record-count { border-color: #202b25; background: #9bd5ad; color: #163327; }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-empty { border-color: rgba(255,255,255,.17); }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-review { border-color: rgba(194,224,132,.24); background: linear-gradient(135deg, rgba(53,125,102,.2), rgba(194,224,132,.08)); color: #eef7ef; }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-review h2 { color: #c2e084; }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-review-status { color: #ffffff; }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-review-copy { color: rgba(238,247,239,.82); }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-action { border-color: rgba(255,255,255,.17); background: rgba(255,255,255,.06); color: #c2e084; }
      body:is(.ios-mobile,.android-mobile):not(.theme-light).portal-page .training-progress-action.is-primary { border-color: #c2e084; background: #c2e084; color: #102820; }
    }
    @media (min-width: 761px) {
      body.portal-page:not(.ios-mobile):not(.android-mobile) .main-inner:has(.training-progress-page) {
        max-width: 1180px;
        padding-top: 24px;
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-page {
        grid-template-columns: max-content minmax(0, 1fr);
        gap: 18px 22px;
        align-items: stretch;
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-page > .training-progress-period-selector {
        grid-column: 1;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-self: stretch;
        width: auto;
        margin: 0;
        padding: 5px;
        border-color: #d3dfd6;
        background: #f1f6f2;
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-page > .training-progress-period-selector a {
        min-height: 48px;
        font-size: 13px;
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-page > .training-progress-week-nav-desktop {
        grid-column: 2;
        width: 100%;
        margin: 0;
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-story {
        display: grid;
        grid-column: 1 / -1;
        grid-template-columns: repeat(12, minmax(0, 1fr));
        gap: 18px;
        overflow: visible;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-section {
        border: 1px solid var(--progress-border);
        border-radius: 18px;
        background: var(--progress-surface);
        box-shadow: 0 12px 28px rgba(31,54,42,.07);
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-section + .training-progress-section {
        border-top: 1px solid var(--progress-border);
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-execution { grid-column: span 5; }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-execution:not(.training-progress-year-execution) .training-progress-status-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-execution:not(.training-progress-year-execution) .training-progress-status-label {
        overflow-wrap: normal;
        white-space: nowrap;
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-page .training-progress-status-list li.is-completed {
        --training-progress-status-accent: #286a57;
        border-color: #c7dfcd;
        background: #e5f4e9;
        color: #19362d;
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-page .training-progress-status-list li.is-partial {
        --training-progress-status-accent: #8a5b00;
        border-color: #ead38d;
        background: #fff2cc;
        color: #3d3218;
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-page .training-progress-status-list li.is-skipped {
        --training-progress-status-accent: #9d1f5d;
        border-color: #ef9ec7;
        background: #fde7f1;
        color: #462735;
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-page .training-progress-status-list li.is-unplanned {
        --training-progress-status-accent: #7c4d25;
        border-color: #dcc6b4;
        background: #f1e7de;
        color: #3d3026;
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-volume,
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-trends { grid-column: span 7; }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-records { grid-column: 1 / -1; }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-four-week .training-progress-execution {
        grid-column: 1 / span 5;
        grid-row: 1;
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-four-week .training-progress-trends {
        grid-column: 6 / -1;
        grid-row: 1 / span 2;
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-four-week .training-progress-records {
        grid-column: 1 / span 5;
        grid-row: 2;
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-review {
        grid-column: 1 / span 8;
        align-self: stretch;
        margin: 0;
        padding: 20px;
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-actions {
        grid-column: 9 / -1;
        grid-template-columns: 1fr;
        align-content: center;
        gap: 12px;
        padding: 20px;
        border: 1px solid var(--progress-border);
        border-radius: 18px;
        background: var(--progress-surface);
        box-shadow: 0 12px 28px rgba(31,54,42,.07);
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-actions > a[href="/roadmap"] { display: none; }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-roadmap-open-desktop { display: flex; }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-action { min-height: 48px; font-size: 13px; }
    }
    @media (max-width: 760px) {
      .main-inner:has(.training-progress-page) { max-width: 430px; padding: 12px 10px 16px; }
      .training-progress-page { gap: 11px; }
      .training-progress-period-selector { width: 100%; }
      .training-progress-period-selector a { min-height: 36px; font-size: 11px; }
      .training-progress-week-nav { grid-template-columns: 42px minmax(0, 1fr) 42px; min-height: 54px; border-radius: 14px; }
      .training-progress-week-nav > div { gap: 8px; }
      .training-progress-week-nav strong { font-size: 16px; }
      .training-progress-current { font-size: 10px; }
      .training-progress-week-arrow { font-size: 23px; }
      .training-progress-week-nav-desktop { display: none; }
      .training-progress-story { border-radius: 17px; }
      .training-progress-section { padding: 18px 16px; }
      .training-progress-section-heading { margin-bottom: 14px; }
      .training-progress-section-heading h1,
      .training-progress-section-heading h2 { font-size: 19px; }
      .training-progress-status-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 14px; }
      .training-progress-sport-row { grid-template-columns: 52px minmax(0, 1fr); gap: 11px; padding: 14px 0; }
      .training-progress-trend-row { grid-template-columns: 52px minmax(0, 1fr); gap: 11px; padding: 14px 0; }
      .training-progress-sport-mark { width: 50px; height: 50px; border-radius: 15px; }
      .training-progress-sport-icon,
      .training-progress-sport-icon .plan-activity-icon { width: 35px; height: 35px; }
      .training-progress-sport-heading strong { font-size: 15px; }
      .training-progress-volume-values { gap: 5px; }
      .training-progress-volume-values dt { font-size: 8px; letter-spacing: 0; }
      .training-progress-volume-values dd { font-size: 12px; }
      .training-progress-period-values { gap: 4px; }
      .training-progress-period-values dt { font-size: 8px; letter-spacing: 0; }
      .training-progress-period-values dd { gap: 3px; font-size: 11px; }
      .training-progress-review { grid-template-columns: 44px minmax(0, 1fr); gap: 12px; margin: 0 16px 18px; padding: 14px; }
      .training-progress-review-icon { width: 42px; height: 42px; }
      .training-progress-actions { gap: 8px; padding: 0 16px 18px; }
      .training-progress-action { min-height: 42px; padding: 0 11px; font-size: 11px; }
    }
    @media (max-width: 340px) {
      .training-progress-actions { grid-template-columns: 1fr; }
      .training-progress-record-list { grid-template-columns: 1fr; }
      .training-progress-section { padding-right: 12px; padding-left: 12px; }
      .training-progress-status-list { gap: 8px 10px; }
      .training-progress-status-list li {
        gap: 5px;
        font-size: 10px;
      }
      .training-progress-status-list strong { font-size: 12px; }
      .training-progress-trend-row {
        grid-template-columns: 44px minmax(0, 1fr);
        gap: 8px;
      }
      .training-progress-sport-mark {
        width: 44px;
        height: 44px;
        border-radius: 14px;
      }
      .training-progress-sport-icon,
      .training-progress-sport-icon .plan-activity-icon {
        width: 32px;
        height: 32px;
      }
      .training-progress-period-values { gap: 3px; }
      .training-progress-period-values dt { font-size: 7px; }
      .training-progress-period-values dd { font-size: 9px; }
      .training-progress-week-values th,
      .training-progress-week-values td { padding-right: 6px; padding-left: 6px; }
      .training-progress-week-values thead th { font-size: 7px; }
      .training-progress-week-values tbody th { font-size: 9px; }
      .training-progress-week-values tbody td { font-size: 10px; }
    }
    @media (max-width: 760px) {
      body.portal-page {
        --mobile-top-level-section-gap: 10px;
        --mobile-profile-divider-color: #d2dcd4;
      }
      body.theme-dark.portal-page {
        --mobile-profile-divider-color: rgba(194,224,132,.22);
      }
      body.theme-dark.portal-page:not(.auth-page) .profile-slider-anchor small {
        color: rgba(238,247,239,.82);
      }
      body.portal-page:not(.auth-page) .profile-section-panels,
      body.portal-page:not(.auth-page) .goals-list,
      body.portal-page:not(.auth-page) .events-list,
      body.portal-page:not(.auth-page) .plan-calendar-mobile .day-list {
        gap: var(--mobile-top-level-section-gap);
      }
      body.portal-page:not(.auth-page) .profile-section-body .profile-fields,
      body.portal-page:not(.auth-page) .profile-section-body .profile-zone-sports,
      body.portal-page:not(.auth-page) .profile-section-body .profile-zone-sport {
        gap: 0;
      }
      body.portal-page:not(.auth-page) .profile-section-body .profile-field,
      body.portal-page:not(.auth-page) .profile-section-body .profile-zone-group {
        position: relative;
        margin: 0;
        padding: 16px 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
      }
      body.portal-page:not(.auth-page) .profile-section-body .profile-field:first-child,
      body.portal-page:not(.auth-page) .profile-section-body .profile-zone-group:first-child {
        padding-top: 0;
      }
      body.portal-page:not(.auth-page) .profile-section-body .profile-field:last-child,
      body.portal-page:not(.auth-page) .profile-section-body .profile-zone-group:last-child {
        padding-bottom: 0;
      }
      body.portal-page:not(.auth-page) .profile-section-body .profile-field + .profile-field::before,
      body.portal-page:not(.auth-page) .profile-section-body .profile-zone-group + .profile-zone-group::before,
      body.portal-page:not(.auth-page) .profile-section-body .profile-zone-sport:not([hidden]) + .profile-zone-sport:not([hidden])::before {
        content: "";
        position: absolute;
        top: 0;
        right: -14px;
        left: -14px;
        height: 1px;
        background: var(--mobile-profile-divider-color);
        pointer-events: none;
      }
      body.portal-page:not(.auth-page) .profile-section-body .profile-zone-sport:not([hidden]) + .profile-zone-sport:not([hidden]) {
        position: relative;
        margin-top: 16px;
        padding-top: 16px;
      }
    }
    @media (max-width: 760px) and (prefers-color-scheme: dark) {
      body:not(.theme-light).portal-page {
        --mobile-profile-divider-color: rgba(194,224,132,.22);
      }
      body:not(.theme-light).portal-page:not(.auth-page) .profile-slider-anchor small {
        color: rgba(238,247,239,.82);
      }
    }

    /* Keep the three Progress ranges after the legacy responsive rules. */
    .training-progress-period-selector {
      grid-template-columns: repeat(3, minmax(0, 1fr));
      width: min(100%, 480px);
    }
    .training-progress-page > .training-progress-period-selector {
      grid-template-columns: repeat(3, minmax(max-content, 1fr));
    }
    .training-progress-page > .training-progress-period-selector > a {
      gap: 6px;
      padding: 8px;
      white-space: nowrap;
    }
    .training-progress-page > .training-progress-period-selector > a > span {
      flex-shrink: 0;
    }
    @media (min-width: 761px) {
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-page > .training-progress-period-selector {
        grid-template-columns: repeat(3, max-content);
      }
      body.portal-page:not(.ios-mobile):not(.android-mobile) .training-progress-page > .training-progress-period-selector > a {
        padding-right: 14px;
        padding-left: 14px;
      }
    }
