/* /Layout/ImmersiveLayout.razor.rz.scp.css */
/* No app-bar to size against, but content still gets MainLayout's own reading-width treatment
   (max-width + centering + padding) by default - "immersive" means no nav chrome, not edge-to-edge
   text. A page can still override this itself if it genuinely wants full-bleed content. */
[b-ab9pe4gptl] {
    display: block;
    min-height: 100vh;
    min-height: 100dvh;
    max-width: 720px;
    margin: 0 auto;
    padding: 1.5rem 1rem 3rem;
    box-sizing: border-box;
}

@media (min-width: 640px) {
    [b-ab9pe4gptl] {
        padding: 2rem 1.5rem 3.5rem;
    }
}

.immersive-error-card[b-ab9pe4gptl] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
    min-height: 100vh;
    min-height: 100dvh;
    padding: 1.5rem;
    text-align: center;
}
.immersive-error-card .bi[b-ab9pe4gptl] {
    color: var(--danger);
    font-size: 2rem;
}
/* /Layout/MainLayout.razor.rz.scp.css */
.app-bar[b-5wcoltymp3] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem 1.25rem;
    background: var(--surface);
    backdrop-filter: var(--blur);
    -webkit-backdrop-filter: var(--blur);
    border-bottom: 1px solid var(--surface-border);
    position: sticky;
    top: 0;
    z-index: 30;
}

.app-bar-actions[b-5wcoltymp3] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.brand[b-5wcoltymp3] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    text-decoration: none;
    color: var(--ink);
    flex-shrink: 0;
}
.brand-word[b-5wcoltymp3] {
    font-weight: 800;
    font-size: 1.05rem;
    letter-spacing: -0.01em;
}

.primary-nav[b-5wcoltymp3] {
    flex: 1;
    display: none; /* the inline nav is a desktop treatment - see the (min-width: 640px) block */
    gap: 1rem;
}
.primary-nav[b-5wcoltymp3]  a {
    color: var(--ink-muted);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.9rem;
    padding: 0.5rem 0.25rem;
    border-bottom: 2px solid transparent;
}
.primary-nav[b-5wcoltymp3]  a.active {
    color: var(--accent);
    border-bottom-color: var(--accent);
}
.primary-nav[b-5wcoltymp3]  a:hover {
    color: var(--accent);
}

.mobile-nav-toggle[b-5wcoltymp3] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    min-width: 44px; /* comfortable touch target */
    margin-left: auto; /* pins it next to the avatar when primary-nav is hidden (mobile) */
    border: 1px solid var(--surface-border);
    border-radius: 50%;
    background: var(--surface);
    color: var(--ink);
    font-size: 1.1rem;
    cursor: pointer;
}
.mobile-nav-toggle:hover[b-5wcoltymp3] {
    color: var(--accent);
}

.coaching-menu-wrap[b-5wcoltymp3] {
    position: relative;
    display: none; /* mobile is the hamburger menu - see (min-width: 640px) below */
}

.coaching-menu-trigger[b-5wcoltymp3] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    background: none;
    border: none;
    padding: 0.5rem 0.25rem;
    color: var(--ink-muted);
    font-weight: 600;
    font-size: 0.9rem;
    font-family: inherit;
    cursor: pointer;
}
.coaching-menu-trigger:hover[b-5wcoltymp3] {
    color: var(--accent);
}
.coaching-menu-trigger.active[b-5wcoltymp3] {
    color: var(--accent);
}
.coaching-menu-trigger .bi[b-5wcoltymp3] {
    font-size: 0.75rem;
}

.menu-overlay[b-5wcoltymp3] {
    position: fixed;
    inset: 0;
    z-index: 40;
    background: transparent;
}

.coaching-menu[b-5wcoltymp3] {
    position: absolute;
    top: 100%;
    left: 0;
    width: 240px;
    z-index: 50;
    background: var(--surface-strong);
    backdrop-filter: var(--blur);
    -webkit-backdrop-filter: var(--blur);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    box-shadow: 0 16px 40px -14px rgba(0, 0, 0, 0.35);
    padding: 0.5rem;
}
.coaching-menu hr[b-5wcoltymp3] {
    border: none;
    border-top: 1px solid var(--surface-border);
    margin: 0.4rem 0;
}
.coaching-menu[b-5wcoltymp3]  a[role="menuitem"] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    width: 100%;
    padding: 0.6rem;
    border-radius: var(--radius-sm);
    font-size: 0.9rem;
    color: var(--ink);
    text-decoration: none;
    min-height: 44px;
}
.coaching-menu[b-5wcoltymp3]  a[role="menuitem"]:hover {
    background: color-mix(in srgb, var(--accent) 12%, transparent);
}
.coaching-menu[b-5wcoltymp3]  a[role="menuitem"].active {
    color: var(--accent);
}
.coaching-menu .bi[b-5wcoltymp3] {
    font-size: 1rem;
    color: var(--ink-muted);
    width: 1.1rem;
    text-align: center;
}

.mobile-nav-section-label[b-5wcoltymp3] {
    display: block;
    margin: 0.5rem 0 0.15rem;
    padding: 0 0.6rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-muted);
}

.mobile-nav-overlay[b-5wcoltymp3] {
    position: fixed;
    inset: 0;
    z-index: 40;
    background: transparent;
}

.mobile-nav-menu[b-5wcoltymp3] {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 50;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.6rem;
    background: var(--surface-strong);
    backdrop-filter: var(--blur);
    -webkit-backdrop-filter: var(--blur);
    border-bottom: 1px solid var(--surface-border);
    box-shadow: 0 16px 40px -14px rgba(0, 0, 0, 0.35);
}
.mobile-nav-menu[b-5wcoltymp3]  a {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    min-height: 44px; /* comfortable touch target */
    padding: 0.6rem 0.75rem;
    border-radius: var(--radius-sm);
    color: var(--ink);
    text-decoration: none;
    font-weight: 600;
}
.mobile-nav-menu[b-5wcoltymp3]  a.active {
    color: var(--accent);
    background: color-mix(in srgb, var(--accent) 10%, transparent);
}
.mobile-nav-menu[b-5wcoltymp3]  .bi {
    color: var(--ink-muted);
    width: 1.1rem;
    text-align: center;
}
.mobile-nav-menu[b-5wcoltymp3]  a.active .bi {
    color: var(--accent);
}

main[b-5wcoltymp3] {
    flex: 1 0 auto;
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
    padding: 1.5rem 1rem 3rem;
}

.route-error-card[b-5wcoltymp3] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.85rem;
    margin-top: 1rem;
    padding: 1.25rem;
    border: 1px solid var(--danger);
    border-radius: var(--radius-lg);
    background: var(--surface);
    box-shadow: var(--shadow);
}
.route-error-card .bi[b-5wcoltymp3] {
    color: var(--danger);
    font-size: 1.4rem;
}
.route-error-title[b-5wcoltymp3] {
    margin: 0;
    font-weight: 700;
}
.route-error-hint[b-5wcoltymp3] {
    margin: 0.2rem 0 0;
    color: var(--ink-muted);
    font-size: 0.9rem;
}
.route-error-actions[b-5wcoltymp3] {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
}

/* Same sizing/shape as NotificationBell's own button - kept as a separate copy since Blazor CSS
   isolation scopes NotificationBell.razor.css's rule to that component only. */
.bug-report-trigger[b-5wcoltymp3] {
    width: 38px;
    height: 38px;
    min-width: 38px;
    border-radius: 50%;
    border: 1px solid var(--surface-border);
    background: var(--surface);
    color: var(--ink-muted);
    font-size: 1.05rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: filter 0.15s ease, transform 0.15s ease;
}
.bug-report-trigger:hover[b-5wcoltymp3] {
    filter: brightness(1.08);
    color: var(--accent);
}
.bug-report-trigger:active[b-5wcoltymp3] {
    transform: scale(0.96);
}

/* Mobile is the base (unqualified) ruleset above; this only adds breathing room once there's
   room to spare - the layout itself (single flex column, centered content) doesn't change. */
@media (min-width: 640px) {
    .app-bar[b-5wcoltymp3] {
        padding: 0.85rem 2rem;
    }
    .primary-nav[b-5wcoltymp3] {
        display: flex;
    }
    .coaching-menu-wrap[b-5wcoltymp3] {
        display: block;
    }
    .mobile-nav-toggle[b-5wcoltymp3] {
        display: none;
    }
    main[b-5wcoltymp3] {
        padding: 2rem 1.5rem 3.5rem;
    }
}
/* /Layout/UserMenu.razor.rz.scp.css */
.user-menu-wrap[b-vfbzqellq2] {
    position: relative;
}

.avatar-button[b-vfbzqellq2] {
    width: 38px;
    height: 38px;
    min-width: 38px; /* comfortable touch target, never shrinks below it */
    border-radius: 50%;
    border: 1.5px solid color-mix(in srgb, var(--accent-contrast) 25%, transparent);
    background: var(--accent);
    color: var(--accent-contrast);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 0.85rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px -2px color-mix(in srgb, var(--accent) 55%, transparent);
    transition: filter 0.15s ease, transform 0.15s ease;
}
.avatar-button:hover[b-vfbzqellq2] {
    filter: brightness(1.08);
}
.avatar-button:active[b-vfbzqellq2] {
    transform: scale(0.96);
}

.menu-overlay[b-vfbzqellq2] {
    position: fixed;
    inset: 0;
    z-index: 40;
    background: transparent;
}

.user-menu[b-vfbzqellq2] {
    position: absolute;
    top: 48px;
    right: 0;
    width: 220px;
    z-index: 50;
    background: var(--surface-strong);
    backdrop-filter: var(--blur);
    -webkit-backdrop-filter: var(--blur);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    box-shadow: 0 16px 40px -14px rgba(0, 0, 0, 0.35);
    padding: 0.5rem;
}

.user-menu-header[b-vfbzqellq2] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.6rem 0.7rem;
    color: var(--ink-muted);
    font-size: 0.85rem;
    border-bottom: 1px solid var(--surface-border);
    margin-bottom: 0.4rem;
}
.user-menu-name[b-vfbzqellq2] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.user-menu-section[b-vfbzqellq2] {
    padding: 0.3rem 0.6rem 0.5rem;
}
.user-menu-label[b-vfbzqellq2] {
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-muted);
    margin-bottom: 0.35rem;
}
.theme-options[b-vfbzqellq2] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.theme-options button[b-vfbzqellq2] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 0.45rem 0.5rem;
    border-radius: var(--radius-sm);
    font-size: 0.85rem;
    color: var(--ink);
    cursor: pointer;
    font-family: inherit;
}
.theme-options button:hover[b-vfbzqellq2] {
    background: color-mix(in srgb, var(--accent) 12%, transparent);
}
.theme-options .bi[b-vfbzqellq2] {
    width: 1rem;
    color: var(--accent);
}

.user-menu hr[b-vfbzqellq2] {
    border: none;
    border-top: 1px solid var(--surface-border);
    margin: 0.4rem 0;
}

.user-menu a[role="menuitem"][b-vfbzqellq2],
.user-menu button[role="menuitem"][b-vfbzqellq2] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 0.6rem;
    border-radius: var(--radius-sm);
    font-size: 0.9rem;
    font-family: inherit;
    color: var(--ink);
    text-decoration: none;
    cursor: pointer;
    min-height: 44px; /* comfortable touch target */
}
.user-menu a[role="menuitem"]:hover[b-vfbzqellq2],
.user-menu button[role="menuitem"]:hover[b-vfbzqellq2] {
    background: color-mix(in srgb, var(--accent) 12%, transparent);
}
.user-menu .bi[b-vfbzqellq2] {
    font-size: 1rem;
    color: var(--ink-muted);
    width: 1.1rem;
    text-align: center;
}

.btn-primary[b-vfbzqellq2] {
    display: inline-flex;
    align-items: center;
    background: var(--accent);
    color: var(--accent-contrast);
    padding: 0.5rem 1rem;
    border-radius: var(--radius-sm);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.9rem;
}
/* /Pages/Achievements.razor.rz.scp.css */
.back-link[b-rw4edtggl4] {
    display: inline-block;
    margin-bottom: 0.5rem;
    color: var(--ink-muted);
    text-decoration: none;
    font-weight: 600;
}
.back-link:hover[b-rw4edtggl4] { color: var(--accent); }

.hint[b-rw4edtggl4] {
    color: var(--ink-muted);
    font-size: 0.85rem;
    margin: 0 0 1.25rem;
}

.badge-grid[b-rw4edtggl4] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
}
@media (min-width: 640px) {
    .badge-grid[b-rw4edtggl4] {
        grid-template-columns: repeat(3, 1fr);
    }
}

.badge-card[b-rw4edtggl4] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.35rem;
    padding: 1.1rem 0.85rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    background: var(--surface);
}

.badge-icon[b-rw4edtggl4] {
    font-size: 1.8rem;
    margin-bottom: 0.15rem;
}

.badge-unlocked[b-rw4edtggl4] {
    box-shadow: var(--shadow);
}
.badge-unlocked .badge-icon[b-rw4edtggl4] {
    color: var(--accent);
}
.badge-unlocked .badge-name[b-rw4edtggl4] {
    color: var(--ink);
}

.badge-locked[b-rw4edtggl4] {
    opacity: 0.5;
}
.badge-locked .badge-icon[b-rw4edtggl4] {
    color: var(--ink-muted);
}

.badge-name[b-rw4edtggl4] {
    font-weight: 700;
    font-size: 0.9rem;
}

.badge-description[b-rw4edtggl4] {
    color: var(--ink-muted);
    font-size: 0.78rem;
}

.badge-progress[b-rw4edtggl4] {
    margin-top: 0.15rem;
    font-family: var(--font-mono);
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--accent-2);
}
/* /Pages/ActiveWorkout.razor.rz.scp.css */
.active-workout-empty[b-thhm74yyvy] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
    padding: 2rem 0;
}

.active-workout[b-thhm74yyvy] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    overflow-x: hidden; /* defensive backstop for the whole guided-workout screen, not just the inputs row */
}

.active-workout-header[b-thhm74yyvy] {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.active-workout-exit[b-thhm74yyvy] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    min-width: 44px; /* comfortable touch target */
    border-radius: 50%;
    color: var(--ink-muted);
    text-decoration: none;
    background: var(--surface);
    border: 1px solid var(--surface-border);
}
.active-workout-exit:hover[b-thhm74yyvy] {
    color: var(--danger);
}

.active-workout-timer[b-thhm74yyvy] {
    font-family: var(--font-mono);
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}

.active-workout-progress[b-thhm74yyvy] {
    margin-left: auto;
    color: var(--ink-muted);
    font-size: 0.9rem;
    font-weight: 600;
}

.active-workout-slot[b-thhm74yyvy],
.active-workout-rest[b-thhm74yyvy] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 1rem;
    padding: 1.5rem 0;
}

.active-workout-title-row[b-thhm74yyvy] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.active-workout-title-row h1[b-thhm74yyvy] {
    margin: 0;
}

.active-workout-video-button[b-thhm74yyvy] {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    min-width: 44px; /* comfortable touch target */
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: color-mix(in srgb, var(--accent) 14%, transparent);
    color: var(--accent);
    font-size: 1.3rem;
    cursor: pointer;
}
.active-workout-video-button:hover[b-thhm74yyvy] {
    background: color-mix(in srgb, var(--accent) 22%, transparent);
}

.active-workout-set-label[b-thhm74yyvy] {
    color: var(--ink-muted);
    font-weight: 600;
}

.active-workout-progression[b-thhm74yyvy] {
    margin: -0.3rem 0 0.6rem;
    font-size: 0.82rem;
    color: var(--ink-muted);
}

.active-workout-progression-tag[b-thhm74yyvy] {
    display: inline-block;
    margin-left: 0.4rem;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--accent) 15%, transparent);
    color: var(--accent);
    font-size: 0.72rem;
    font-weight: 700;
}
.active-workout-progression-tag.deload[b-thhm74yyvy] {
    background: color-mix(in srgb, var(--danger, #dc3545) 15%, transparent);
    color: var(--danger, #dc3545);
}

.active-workout-superset-tag[b-thhm74yyvy] {
    display: inline-block;
    margin-right: 0.5rem;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--accent) 15%, transparent);
    color: var(--accent);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.active-workout-inputs[b-thhm74yyvy] {
    display: flex;
    gap: 0.75rem;
    width: 100%;
    max-width: 20rem;
    overflow: hidden; /* defensive backstop - nothing inside this row should ever be able to visually escape it */
}

.active-workout-input[b-thhm74yyvy] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    flex: 1;
    min-width: 0; /* without this, the input's own intrinsic width can overflow the flex row -
                     this was the actual cause of the weight field pushing off screen on narrow phones */
    text-align: left;
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--ink-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.active-workout-input input[b-thhm74yyvy] {
    width: 100%;
    box-sizing: border-box;
    min-height: 3rem;
    padding: 0 0.75rem;
    font-size: 1.15rem;
    font-family: var(--font-mono);
    text-align: center;
    border: 2px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

/* A previous pass used a scale() transform here for the "now editing this" affordance - that grows
   the box outward from its own center in both directions, and for the rightmost input in a row
   already close to the edge of a narrow phone, that growth was very likely what was visually
   pushing it past the viewport. A border/background change never changes the element's own size or
   position, so it can't cause this regardless of screen width. */
.active-workout-input input:focus[b-thhm74yyvy] {
    outline: none;
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent) 8%, var(--surface));
}

.active-workout-suggested-weight[b-thhm74yyvy] {
    margin: -0.5rem 0 0;
    color: var(--accent-2);
    font-weight: 600;
    font-size: 0.85rem;
    font-family: var(--font-mono);
}

.active-workout-effort-label[b-thhm74yyvy] {
    font-weight: 600;
    margin-top: 0.5rem;
}

.active-workout-effort-faces[b-thhm74yyvy] {
    display: flex;
    gap: 0.75rem;
    width: 100%;
    max-width: 22rem;
}

.active-workout-face[b-thhm74yyvy] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    min-height: 4.5rem;
    padding: 0.75rem 0.5rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    background: var(--surface);
    color: var(--ink);
    font-family: inherit;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
}
.active-workout-face .bi[b-thhm74yyvy] {
    font-size: 1.8rem;
    color: var(--accent);
}
.active-workout-face:hover[b-thhm74yyvy] {
    background: color-mix(in srgb, var(--accent) 12%, var(--surface));
    border-color: var(--accent);
}
.active-workout-face:disabled[b-thhm74yyvy] {
    opacity: 0.5;
    cursor: default;
}

.active-workout-nav[b-thhm74yyvy] {
    display: flex;
    gap: 1rem;
    margin-top: 0.5rem;
}
.active-workout-nav button[b-thhm74yyvy] {
    background: none;
    border: none;
    color: var(--ink-muted);
    font-family: inherit;
    font-weight: 600;
    text-decoration: underline;
    cursor: pointer;
    min-height: 44px;
}
.active-workout-nav button:disabled[b-thhm74yyvy] {
    opacity: 0.4;
    cursor: default;
}

.active-workout-rest-label[b-thhm74yyvy] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--ink-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 0;
}
.active-workout-rest-time[b-thhm74yyvy] {
    font-family: var(--font-mono);
    font-size: 3.5rem;
    font-weight: 800;
    color: var(--accent);
    font-variant-numeric: tabular-nums;
    margin: 0;
}
.active-workout-rest-actions[b-thhm74yyvy] {
    display: flex;
    gap: 0.75rem;
}

/* Bootstrap's default .btn-secondary (from the vendored full bootstrap.min.css) is flat grey and
   doesn't follow this app's theme tokens - overridden here rather than adding a whole new class,
   since CSS isolation's scoped attribute selector already wins over the global rule. */
.btn-secondary[b-thhm74yyvy] {
    background: var(--surface);
    color: var(--ink);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    padding: 0.5rem 1rem;
    font-weight: 600;
    cursor: pointer;
}
.btn-secondary:hover[b-thhm74yyvy] {
    background: color-mix(in srgb, var(--accent) 10%, var(--surface));
}

.active-workout-summary[b-thhm74yyvy] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 1rem;
    padding: 2rem 0;
}
.active-workout-summary-time[b-thhm74yyvy] {
    font-family: var(--font-mono);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--accent);
    margin: 0;
}
.active-workout-summary-list[b-thhm74yyvy] {
    list-style: none;
    padding: 0;
    margin: 0.5rem 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
    max-width: 22rem;
}
.active-workout-summary-list li[b-thhm74yyvy] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.6rem 0.9rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
}
.active-workout-summary-name[b-thhm74yyvy] {
    font-weight: 600;
}
.active-workout-summary-detail[b-thhm74yyvy] {
    color: var(--ink-muted);
    font-size: 0.85rem;
}

@media (min-width: 640px) {
    .active-workout-slot[b-thhm74yyvy],
    .active-workout-rest[b-thhm74yyvy],
    .active-workout-summary[b-thhm74yyvy] {
        padding: 2.5rem 0;
    }
}
/* /Pages/Admin.razor.rz.scp.css */
.admin-header[b-fhxg9vo49q] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
}
.admin-header-links[b-fhxg9vo49q] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1.25rem;
}

.admin-manage-roles-link[b-fhxg9vo49q] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--accent);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.9rem;
}
.admin-manage-roles-link:hover[b-fhxg9vo49q] {
    text-decoration: underline;
}

@media (min-width: 640px) {
    .admin-header[b-fhxg9vo49q] {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
}

.admin-stats-strip[b-fhxg9vo49q] {
    display: flex;
    gap: 0.6rem;
    margin: 1rem 0;
}
.admin-stat[b-fhxg9vo49q] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    background: var(--surface);
}
.admin-stat-value[b-fhxg9vo49q] {
    font-family: var(--font-mono);
    font-weight: 700;
    font-size: 1.3rem;
    color: var(--accent);
}
.admin-stat-label[b-fhxg9vo49q] {
    color: var(--ink-muted);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.admin-search[b-fhxg9vo49q] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0.5rem 0 1rem;
    padding: 0 0.85rem;
    min-height: 2.75rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink-muted);
}
.admin-search input[b-fhxg9vo49q] {
    flex: 1;
    min-width: 0;
    border: none;
    background: none;
    color: var(--ink);
    font-size: 0.95rem;
}
.admin-search input:focus[b-fhxg9vo49q] {
    outline: none;
}

.admin-user-list[b-fhxg9vo49q] {
    list-style: none;
    padding: 0;
    margin: 1rem 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.admin-user-list-item[b-fhxg9vo49q] {
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
}

.admin-user-row[b-fhxg9vo49q] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex: 1;
    min-width: 0;
    min-height: 3.5rem;
    padding: 0.5rem 1rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    background: var(--surface);
    color: var(--ink);
    text-decoration: none;
    font-weight: 600;
}
.admin-user-row:hover[b-fhxg9vo49q] {
    background: color-mix(in srgb, var(--accent) 10%, var(--surface));
}

.admin-user-row .bi[b-fhxg9vo49q] {
    color: var(--ink-muted);
    flex-shrink: 0;
}
.admin-user-text[b-fhxg9vo49q] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}
.admin-user-name[b-fhxg9vo49q] {
    font-weight: 700;
}

.admin-user-last-login[b-fhxg9vo49q] {
    font-weight: 500;
    font-size: 0.8rem;
    color: var(--ink-muted);
    font-family: var(--font-mono);
}
/* /Pages/AdminExerciseLibrary.razor.rz.scp.css */
.exercise-library-header[b-bp1192i5pe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}
.exercise-library-header h1[b-bp1192i5pe] {
    margin: 0;
}
.exercise-library-header .btn[b-bp1192i5pe] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.add-exercise-form[b-bp1192i5pe] {
    display: flex;
    gap: 0.5rem;
    margin: 1rem 0;
}
.add-exercise-form input[b-bp1192i5pe] {
    flex: 1;
    min-height: 2.75rem;
    padding: 0 0.75rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: 1rem;
}

.exercise-library-list[b-bp1192i5pe] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.exercise-library-row[b-bp1192i5pe] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    background: var(--surface);
}

.exercise-library-thumb[b-bp1192i5pe] {
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: var(--radius-md);
    object-fit: cover;
    background: black;
}

.exercise-library-upload-status[b-bp1192i5pe] {
    flex-basis: 100%;
    order: 3;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--accent);
}

.exercise-library-name[b-bp1192i5pe] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 700;
    min-width: 0;
}

.exercise-library-duration[b-bp1192i5pe] {
    font-size: 0.78rem;
    font-weight: 600;
    font-family: var(--font-mono);
    color: var(--ink-muted);
}

.exercise-library-actions[b-bp1192i5pe] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.exercise-library-icon-button[b-bp1192i5pe] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 2.75rem;
    min-height: 2.75rem;
    border: none;
    border-radius: 50%;
    background: none;
    color: var(--ink-muted);
    cursor: pointer;
}
.exercise-library-icon-button:hover[b-bp1192i5pe] {
    color: var(--ink);
    background: color-mix(in srgb, var(--ink) 10%, transparent);
}

.video-upload-label[b-bp1192i5pe] {
    position: relative;
    overflow: hidden;
    cursor: pointer;
}
.video-upload-label[b-bp1192i5pe]  input[type="file"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.exercise-library-rename-form[b-bp1192i5pe] {
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.exercise-library-rename-form input[b-bp1192i5pe] {
    flex: 1;
    min-width: 8rem;
    min-height: 2.75rem;
    padding: 0 0.75rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: 1rem;
}
/* /Pages/AdminPlanDetail.razor.rz.scp.css */
.back-link[b-frktbo6oq5] {
    display: inline-block;
    margin-bottom: 0.5rem;
    color: var(--ink-muted);
    text-decoration: none;
    font-weight: 600;
}
.back-link:hover[b-frktbo6oq5] { color: var(--accent); }

.hint[b-frktbo6oq5] {
    color: var(--ink-muted);
    font-size: 0.85rem;
}
/* /Pages/AdminUserDetail.razor.rz.scp.css */
.back-link[b-g5lfmv9pnm] {
    display: inline-block;
    margin-bottom: 0.5rem;
    color: var(--ink-muted);
    text-decoration: none;
    font-weight: 600;
}
.back-link:hover[b-g5lfmv9pnm] { color: var(--accent); }

.hint[b-g5lfmv9pnm] {
    color: var(--ink-muted);
    font-size: 0.85rem;
}

.admin-tab-strip[b-g5lfmv9pnm] {
    display: flex;
    gap: 0.25rem;
    margin: 1.25rem 0 0.5rem;
    border-bottom: 1px solid var(--surface-border);
}
.admin-tab-strip button[b-g5lfmv9pnm] {
    padding: 0.6rem 1rem;
    border: none;
    background: none;
    color: var(--ink-muted);
    font-weight: 600;
    font-family: inherit;
    font-size: 0.9rem;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}
.admin-tab-strip button:hover[b-g5lfmv9pnm] {
    color: var(--ink);
}
.admin-tab-strip button.active[b-g5lfmv9pnm] {
    color: var(--accent);
    border-bottom-color: var(--accent);
}
/* /Pages/BuyPackages.razor.rz.scp.css */
.buy-package-list[b-2jhm1gpb6b] {
    list-style: none;
    margin: 1rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.buy-package-card[b-2jhm1gpb6b] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem 1rem;
    background: var(--surface);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
}

.buy-package-name[b-2jhm1gpb6b] {
    display: block;
    font-weight: 700;
}
.buy-package-meta[b-2jhm1gpb6b] {
    display: block;
    font-size: 0.82rem;
    color: var(--ink-muted);
}
/* /Pages/Calendar.razor.rz.scp.css */
.calendar-toolbar[b-sx73qkiqzx] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 1rem 0;
}

.calendar-month-label[b-sx73qkiqzx] {
    font-family: var(--font-display);
    font-weight: 700;
    min-width: 9rem;
    text-align: center;
}

.calendar-today-btn[b-sx73qkiqzx] {
    margin-left: auto;
}

.calendar-grid[b-sx73qkiqzx] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;
    background: var(--surface-border);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.calendar-weekday[b-sx73qkiqzx] {
    padding: 0.4rem 0;
    text-align: center;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--ink-muted);
    background: var(--surface);
}

.calendar-day[b-sx73qkiqzx] {
    min-height: 5rem;
    padding: 0.3rem;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    background: var(--surface);
}

.calendar-day-outside[b-sx73qkiqzx] {
    background: color-mix(in srgb, var(--surface) 60%, transparent);
}
.calendar-day-outside .calendar-day-number[b-sx73qkiqzx] {
    color: var(--ink-muted);
}

.calendar-day-today .calendar-day-number[b-sx73qkiqzx] {
    background: var(--accent);
    color: var(--accent-contrast, #fff);
}

.calendar-day-number[b-sx73qkiqzx] {
    align-self: flex-start;
    width: 1.6rem;
    height: 1.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: none;
    color: var(--ink);
    font-size: 0.8rem;
    font-family: var(--font-mono);
    cursor: pointer;
}

.calendar-chip[b-sx73qkiqzx] {
    display: flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.15rem 0.3rem 0.15rem 0.4rem;
    border-radius: var(--radius-md);
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.3;
}

.calendar-chip-label[b-sx73qkiqzx] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.calendar-chip[draggable="true"][b-sx73qkiqzx] {
    cursor: grab;
}
.calendar-chip[draggable="true"]:active[b-sx73qkiqzx] {
    cursor: grabbing;
}

.calendar-chip-cancel[b-sx73qkiqzx] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
    margin-left: auto;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: none;
    color: inherit;
    opacity: 0.55;
    cursor: pointer;
}
.calendar-chip-cancel:hover[b-sx73qkiqzx] {
    opacity: 1;
    background: color-mix(in srgb, currentColor 20%, transparent);
}

.calendar-chip-upcoming[b-sx73qkiqzx] {
    background: color-mix(in srgb, var(--accent) 16%, transparent);
    color: var(--accent);
}

.calendar-chip-done[b-sx73qkiqzx] {
    background: color-mix(in srgb, var(--accent-2) 18%, transparent);
    color: var(--accent-2);
}

.calendar-chip-missed[b-sx73qkiqzx] {
    background: var(--danger-bg);
    color: var(--danger);
    text-decoration: line-through;
}

/* Cancelled, or the original slot of a moved occurrence - tracked rather than deleted outright, so
   it stays visible but visually inert (no drag handle, no cancel button rendered for it at all). */
.calendar-chip-cancelled[b-sx73qkiqzx] {
    background: color-mix(in srgb, var(--ink-muted) 14%, transparent);
    color: var(--ink-muted);
    text-decoration: line-through;
}

.calendar-schedule-form[b-sx73qkiqzx] {
    margin-top: 1.75rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--surface-border);
}
.calendar-schedule-form h2[b-sx73qkiqzx] {
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 0.75rem;
}
.calendar-schedule-form form[b-sx73qkiqzx] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: 24rem;
}
.calendar-schedule-form label[b-sx73qkiqzx] {
    font-size: 0.8rem;
    color: var(--ink-muted);
}
.calendar-schedule-form select[b-sx73qkiqzx],
.calendar-schedule-form input[type="date"][b-sx73qkiqzx],
.calendar-schedule-form input[type="time"][b-sx73qkiqzx] {
    min-height: 2.75rem;
    padding: 0 0.75rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: 1rem; /* >=16px avoids iOS Safari auto-zoom on focus */
}

.calendar-recurring-toggle[b-sx73qkiqzx] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-direction: row;
}

.calendar-weekday-picker[b-sx73qkiqzx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.calendar-weekday-check[b-sx73qkiqzx] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    flex-direction: row;
    padding: 0.3rem 0.5rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
}

.calendar-schedule-form button[type="submit"][b-sx73qkiqzx] {
    align-self: flex-start;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 8rem;
}
/* /Pages/ExerciseProgress.razor.rz.scp.css */
.hint[b-1xv10bwych] {
    color: var(--ink-muted);
    font-size: 0.85rem;
}

.progress-picker[b-1xv10bwych] {
    display: block;
    margin: 1rem 0 1.5rem;
}
.progress-picker select[b-1xv10bwych] {
    width: 100%;
    min-height: 2.75rem;
    padding: 0 0.75rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: 1rem;
    font-weight: 600;
}

.progress-section[b-1xv10bwych] {
    margin-bottom: 1.25rem;
}
.progress-section h2[b-1xv10bwych] {
    font-family: var(--font-display);
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0 0 0.5rem;
}

.progress-table-wrap[b-1xv10bwych] {
    overflow-x: auto;
    margin-top: 1.5rem;
}

.progress-table[b-1xv10bwych] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}
.progress-table th[b-1xv10bwych] {
    text-align: left;
    padding: 0.5rem 0.6rem;
    color: var(--ink-muted);
    font-weight: 600;
    border-bottom: 1px solid var(--surface-border);
    white-space: nowrap;
}
.progress-table td[b-1xv10bwych] {
    padding: 0.5rem 0.6rem;
    border-bottom: 1px solid var(--surface-border);
    font-family: var(--font-mono);
    white-space: nowrap;
}
/* /Pages/Home.razor.rz.scp.css */
.login-screen[b-3zkgghyx84] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 60vh;
    min-height: 60dvh;
    gap: 0.75rem;
}

.login-screen h1[b-3zkgghyx84] {
    font-size: 2.5rem;
    margin-bottom: 0;
}

.login-screen .tagline[b-3zkgghyx84] {
    color: var(--ink-muted);
    margin-bottom: 1rem;
}

.login-screen .btn-lg[b-3zkgghyx84] {
    min-width: 10rem;
    min-height: 3rem; /* comfortable touch target */
    font-size: 1.1rem;
}

@media (min-width: 640px) {
    .login-screen[b-3zkgghyx84] {
        min-height: 70vh;
        min-height: 70dvh;
        gap: 1rem;
    }
    .login-screen h1[b-3zkgghyx84] {
        font-size: 3rem;
    }
}

.dash-section[b-3zkgghyx84] {
    margin-top: 2rem;
}
.dash-section h2[b-3zkgghyx84] {
    margin: 0 0 0.75rem;
    font-size: 1.15rem;
}
.dash-section-header[b-3zkgghyx84] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}
.dash-see-all[b-3zkgghyx84] {
    color: var(--ink-muted);
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 600;
}
.dash-see-all:hover[b-3zkgghyx84] {
    color: var(--accent);
}

.dash-client-list[b-3zkgghyx84],
.dash-booking-list[b-3zkgghyx84],
.dash-plan-list[b-3zkgghyx84] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.dash-client-row[b-3zkgghyx84] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
    background: var(--surface);
    backdrop-filter: var(--blur);
    -webkit-backdrop-filter: var(--blur);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}
.dash-client-info[b-3zkgghyx84] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.dash-client-name[b-3zkgghyx84] {
    font-weight: 700;
}
.dash-client-meta[b-3zkgghyx84] {
    color: var(--ink-muted);
    font-size: 0.85rem;
}
.dash-client-actions[b-3zkgghyx84] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}
.dash-client-actions select[b-3zkgghyx84] {
    flex: 1 1 10rem;
    min-height: 2.5rem;
    padding: 0 0.5rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-sm);
    background: var(--surface);
    color: var(--ink);
    font-size: 0.9rem;
}

.dash-booking-list a[b-3zkgghyx84],
.dash-plan-list a[b-3zkgghyx84] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    background: var(--surface);
    backdrop-filter: var(--blur);
    -webkit-backdrop-filter: var(--blur);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    text-decoration: none;
    color: var(--ink);
}
.dash-booking-list a:hover[b-3zkgghyx84],
.dash-plan-list a:hover[b-3zkgghyx84] {
    background: color-mix(in srgb, var(--accent) 8%, var(--surface));
}
.dash-booking-time[b-3zkgghyx84],
.dash-plan-name[b-3zkgghyx84] {
    font-weight: 700;
}
.dash-booking-with[b-3zkgghyx84],
.dash-plan-meta[b-3zkgghyx84] {
    color: var(--ink-muted);
    font-size: 0.85rem;
    text-align: right;
}
/* /Pages/LoaderPreview.razor.rz.scp.css */
.loader-preview-section[b-qlg15ykttd] {
    margin-top: 2rem;
}
.loader-preview-section h2[b-qlg15ykttd] {
    margin: 0 0 0.5rem;
    font-size: 1.1rem;
}

.loader-preview-box[b-qlg15ykttd] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 8rem;
    padding: 1rem;
    border: 1px dashed var(--surface-border);
    border-radius: var(--radius-lg);
    background: var(--surface);
}

.loader-preview-zoom[b-qlg15ykttd] {
    min-height: 18rem;
}

.loader-preview-dismiss[b-qlg15ykttd] {
    position: fixed;
    inset: 0;
    z-index: 999;
    cursor: pointer;
}
/* /Pages/Messages.razor.rz.scp.css */
.thread-list[b-iqdw8euprc] {
    list-style: none;
    margin: 1rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.thread-row[b-iqdw8euprc] {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    background: var(--surface);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    cursor: pointer;
    text-align: left;
    transition: filter 0.15s ease;
}
.thread-row:hover[b-iqdw8euprc] {
    filter: brightness(1.05);
}

.thread-row-main[b-iqdw8euprc] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.thread-row-name[b-iqdw8euprc] {
    font-weight: 600;
    color: var(--ink);
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
}

.thread-row-role[b-iqdw8euprc] {
    font-size: 0.7rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--ink-muted);
}

.thread-row-preview[b-iqdw8euprc] {
    font-size: 0.85rem;
    color: var(--ink-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.thread-row-meta[b-iqdw8euprc] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.35rem;
    flex-shrink: 0;
}

.thread-row-time[b-iqdw8euprc] {
    font-size: 0.72rem;
    color: var(--ink-muted);
}

.thread-row-badge[b-iqdw8euprc] {
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 999px;
    background: var(--danger, #dc3545);
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 18px;
    text-align: center;
}
/* /Pages/MessageThread.razor.rz.scp.css */
.thread-role-hint[b-n9sl3kwdhb] {
    margin: -0.3rem 0 1rem;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--ink-muted);
}

.thread-load-more[b-n9sl3kwdhb] {
    display: block;
    margin: 0 auto 1rem;
}

.message-list[b-n9sl3kwdhb] {
    list-style: none;
    margin: 0;
    /* Bottom padding, not the composer's own document-flow space, keeps the last few messages
       clear of the fixed composer bar below - generous rather than exact, since the composer's
       own height flexes with the draft textarea and an attached-session picker. */
    padding: 0 0 6rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.message-row[b-n9sl3kwdhb] {
    display: flex;
}
.message-row.mine[b-n9sl3kwdhb] {
    justify-content: flex-end;
}
.message-row.theirs[b-n9sl3kwdhb] {
    justify-content: flex-start;
}

.message-bubble[b-n9sl3kwdhb] {
    max-width: min(78%, 480px);
    padding: 0.55rem 0.8rem;
    border-radius: var(--radius-md);
    background: var(--surface);
    border: 1px solid var(--surface-border);
}
.message-row.mine .message-bubble[b-n9sl3kwdhb] {
    background: color-mix(in srgb, var(--accent) 16%, var(--surface));
    border-color: color-mix(in srgb, var(--accent) 30%, var(--surface-border));
}

.message-session-tag[b-n9sl3kwdhb] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--accent);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-bottom: 0.3rem;
}

.message-body[b-n9sl3kwdhb] {
    margin: 0;
    color: var(--ink);
    white-space: pre-wrap;
    overflow-wrap: break-word;
}

.message-time[b-n9sl3kwdhb] {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.68rem;
    color: var(--ink-muted);
}

/* Fixed to the actual viewport, not sticky-in-flow - this page's content otherwise scrolls in
   the app's normal document flow (see MainLayout's <main>), where position:sticky only "sticks"
   within its own container's bounds and doesn't behave like a real pinned chat composer once the
   thread is taller than one screen. left/right:0 + max-width + margin:auto centers it within the
   same column every other page uses, on wide viewports. env(safe-area-inset-bottom) keeps it clear
   of the home-indicator on notched phones. */
.composer[b-n9sl3kwdhb] {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 20;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    max-width: 720px;
    margin: 0 auto;
    padding: 0.75rem;
    padding-bottom: calc(0.75rem + env(safe-area-inset-bottom));
    background: var(--surface-strong);
    backdrop-filter: var(--blur);
    -webkit-backdrop-filter: var(--blur);
    border-top: 1px solid var(--surface-border);
}

.composer-session[b-n9sl3kwdhb] {
    flex: 1 1 100%;
    padding: 0.4rem 0.5rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--surface-border);
    background: var(--surface);
    color: var(--ink);
    font-size: 0.82rem;
}

.composer-text[b-n9sl3kwdhb] {
    flex: 1 1 auto;
    min-height: 2.5rem;
    max-height: 8rem;
    resize: vertical;
    padding: 0.5rem 0.65rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--surface-border);
    background: var(--surface);
    color: var(--ink);
    font: inherit;
}

.composer button[b-n9sl3kwdhb] {
    flex-shrink: 0;
    align-self: flex-end;
}
/* /Pages/Metrics.razor.rz.scp.css */
.hint[b-7ikchku27j] {
    color: var(--ink-muted);
    font-size: 0.85rem;
}

.metrics-section[b-7ikchku27j] {
    margin-top: 1.75rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--surface-border);
}
.metrics-section:first-of-type[b-7ikchku27j] {
    margin-top: 1rem;
    padding-top: 0;
    border-top: none;
}
.metrics-section-header[b-7ikchku27j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}
.metrics-section-header h2[b-7ikchku27j] {
    margin: 0;
}
.metrics-section-links[b-7ikchku27j] {
    display: flex;
    gap: 1rem;
}
.metrics-section-links a[b-7ikchku27j] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    color: var(--accent);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.85rem;
}
.metrics-section-links a:hover[b-7ikchku27j] {
    text-decoration: underline;
}

.metrics-section h2[b-7ikchku27j] {
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 0.75rem;
}

.log-weight-form[b-7ikchku27j] {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1rem;
}
.log-weight-form input[b-7ikchku27j] {
    flex: 1;
    min-width: 0;
    min-height: 2.75rem;
    padding: 0 0.75rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: 1rem;
}
.log-weight-form button[b-7ikchku27j] {
    flex-shrink: 0;
    min-width: 4.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.weight-entry-list[b-7ikchku27j] {
    list-style: none;
    padding: 0;
    margin: 1rem 0 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.weight-entry-row[b-7ikchku27j] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 0.85rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    background: var(--surface);
}

.weight-entry-date[b-7ikchku27j] {
    flex: 1;
    color: var(--ink-muted);
    font-size: 0.85rem;
}

.weight-entry-value[b-7ikchku27j] {
    font-family: var(--font-mono);
    font-weight: 700;
    color: var(--accent-2);
}

.weight-entry-delete[b-7ikchku27j] {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    min-width: 44px; /* comfortable touch target */
    border: none;
    background: none;
    color: var(--ink-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}
.weight-entry-delete:hover[b-7ikchku27j] {
    color: var(--danger);
    background: var(--danger-bg);
}
/* /Pages/MyPackages.razor.rz.scp.css */
.my-package-list[b-wg5brql9xe] {
    list-style: none;
    margin: 1rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.my-package-card[b-wg5brql9xe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem 1rem;
    background: var(--surface);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
}

.my-package-name[b-wg5brql9xe] {
    display: block;
    font-weight: 700;
}
.my-package-meta[b-wg5brql9xe] {
    display: block;
    font-size: 0.82rem;
    color: var(--ink-muted);
}

.my-package-credits[b-wg5brql9xe] {
    font-weight: 700;
    color: var(--accent);
    white-space: nowrap;
}
.my-package-credits.empty[b-wg5brql9xe] {
    color: var(--ink-muted);
}
/* /Pages/PersonalRecords.razor.rz.scp.css */
.back-link[b-dnus36ymrq] {
    display: inline-block;
    margin-bottom: 0.5rem;
    color: var(--ink-muted);
    text-decoration: none;
    font-weight: 600;
}
.back-link:hover[b-dnus36ymrq] { color: var(--accent); }

.hint[b-dnus36ymrq] {
    color: var(--ink-muted);
    font-size: 0.85rem;
    margin: 0 0 1.25rem;
}
/* /Pages/Profile.razor.rz.scp.css */
.profile-form[b-3f042tzt84] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: 20rem;
    margin-top: 1rem;
}
.profile-form label[b-3f042tzt84] {
    font-size: 0.8rem;
    color: var(--ink-muted);
}
.profile-form input[b-3f042tzt84] {
    min-height: 2.75rem;
    padding: 0 0.75rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: 1rem; /* >=16px avoids iOS Safari auto-zoom on focus */
}
.profile-form button[b-3f042tzt84] {
    margin-top: 0.5rem;
    align-self: flex-start;
    min-width: 8rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* /Pages/TrainerPackages.razor.rz.scp.css */
.connect-card[b-lat7svtj76] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    padding: 0.9rem 1rem;
    margin: 1rem 0;
    background: var(--surface);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
}
.connect-card p[b-lat7svtj76] {
    margin: 0;
    flex: 1 1 220px;
}
.connect-card .bi-check-circle-fill[b-lat7svtj76] {
    color: var(--success, #2f7a4f);
    margin-right: 0.3rem;
}

.package-list[b-lat7svtj76] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.package-card[b-lat7svtj76] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    background: var(--surface);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
}
.package-card.inactive[b-lat7svtj76] {
    opacity: 0.55;
}

.package-card-main[b-lat7svtj76] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.package-card-name[b-lat7svtj76] {
    font-weight: 700;
}
.package-card-meta[b-lat7svtj76] {
    font-size: 0.82rem;
    color: var(--ink-muted);
}

.package-form-heading[b-lat7svtj76] {
    margin-top: 2rem;
    font-size: 1.3rem;
}

.package-form[b-lat7svtj76] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    max-width: 380px;
}
.package-form label[b-lat7svtj76] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.85rem;
    font-weight: 600;
}
.package-form input[b-lat7svtj76] {
    padding: 0.5rem 0.65rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--surface-border);
    background: var(--surface);
    color: var(--ink);
    font: inherit;
    font-weight: 400;
}
/* /Pages/Trainers.razor.rz.scp.css */
.trainer-list[b-q4w9yb1itt] {
    list-style: none;
    padding: 0;
    margin: 1rem 0;
}

.trainer-row[b-q4w9yb1itt] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    min-height: 3.5rem;
    padding: 0.75rem 1rem;
    margin-bottom: 0.5rem;
    background: var(--surface);
    backdrop-filter: var(--blur);
    -webkit-backdrop-filter: var(--blur);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    color: var(--ink);
    -webkit-tap-highlight-color: transparent;
}

.trainer-row:hover[b-q4w9yb1itt] {
    background: color-mix(in srgb, var(--accent) 8%, var(--surface));
}

.trainer-row-name[b-q4w9yb1itt] {
    font-weight: 700;
}

.trainer-row .bi[b-q4w9yb1itt] {
    color: var(--ink-muted);
    flex-shrink: 0;
}
/* /Pages/TrainerTemplateDetail.razor.rz.scp.css */
.back-link[b-cmtzkbalzc] {
    display: inline-block;
    margin-bottom: 0.5rem;
    color: var(--ink-muted);
    text-decoration: none;
    font-weight: 600;
}
.back-link:hover[b-cmtzkbalzc] { color: var(--accent); }

.plan-detail-header[b-cmtzkbalzc] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 1rem;
}
.plan-detail-actions[b-cmtzkbalzc] {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.template-category-badge[b-cmtzkbalzc] {
    margin-left: 0.6rem;
    padding: 0.15rem 0.6rem;
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--accent) 14%, var(--surface));
    color: var(--accent);
    font-weight: 600;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    vertical-align: middle;
}

.template-header-edit-form[b-cmtzkbalzc] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    width: 100%;
}
.template-header-edit-form input[b-cmtzkbalzc] {
    flex: 1 1 12rem;
    min-height: 2.75rem;
    padding: 0 0.75rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: 1rem;
}

.assign-panel[b-cmtzkbalzc] {
    margin-top: 2rem;
    padding: 1.25rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    background: var(--surface);
}
.assign-panel h2[b-cmtzkbalzc] {
    margin: 0 0 0.75rem;
    font-size: 1.1rem;
}

.assign-form[b-cmtzkbalzc] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.assign-form select[b-cmtzkbalzc] {
    flex: 1 1 14rem;
    min-height: 2.75rem;
    padding: 0 0.75rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: 1rem;
}

@media (min-width: 640px) {
    .plan-detail-header[b-cmtzkbalzc] {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
}
/* /Pages/TrainerTemplates.razor.rz.scp.css */
.plan-list[b-ts6ebes31j] {
    list-style: none;
    padding: 0;
    margin: 1rem 0;
}

.plan-row[b-ts6ebes31j] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    min-height: 3.5rem;
    padding: 0.75rem 1rem;
    margin-bottom: 0.5rem;
    background: var(--surface);
    backdrop-filter: var(--blur);
    -webkit-backdrop-filter: var(--blur);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    color: var(--ink);
    -webkit-tap-highlight-color: transparent;
}

.plan-row:hover[b-ts6ebes31j] {
    background: color-mix(in srgb, var(--accent) 8%, var(--surface));
}

.plan-row-text[b-ts6ebes31j] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.plan-row-name[b-ts6ebes31j] {
    font-weight: 700;
}

.plan-row-meta[b-ts6ebes31j] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--ink-muted);
    font-size: 0.85rem;
    font-family: var(--font-mono);
}

.template-category-badge[b-ts6ebes31j] {
    padding: 0.1rem 0.5rem;
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--accent) 14%, var(--surface));
    color: var(--accent);
    font-family: inherit;
    font-weight: 600;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.plan-row .bi[b-ts6ebes31j] {
    color: var(--ink-muted);
    flex-shrink: 0;
}

.add-plan-form[b-ts6ebes31j] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}

.add-plan-form input[b-ts6ebes31j] {
    flex: 1 1 12rem;
    min-height: 2.75rem;
    padding: 0 0.75rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: 1rem;
}

.add-plan-form button[b-ts6ebes31j] {
    min-width: 6rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* /Pages/TrainingBlocks.razor.rz.scp.css */
.block-list[b-pq9ilbqn7p] {
    list-style: none;
    margin: 1rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.block-card[b-pq9ilbqn7p] {
    background: var(--surface);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    padding: 0.9rem 1rem;
}

.block-card-head[b-pq9ilbqn7p] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
}

.block-card-name[b-pq9ilbqn7p] {
    font-weight: 700;
}

.block-card-status[b-pq9ilbqn7p] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--accent);
}

.block-card-meta[b-pq9ilbqn7p] {
    margin: 0.2rem 0 0.7rem;
    color: var(--ink-muted);
    font-size: 0.85rem;
}

.block-week-list[b-pq9ilbqn7p] {
    list-style: none;
    margin: 0 0 0.5rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}
.block-week-list li[b-pq9ilbqn7p] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.6rem;
    padding: 0.3rem 0.5rem;
    border-radius: var(--radius-sm);
    font-size: 0.85rem;
}
.block-week-list li.current[b-pq9ilbqn7p] {
    background: color-mix(in srgb, var(--accent) 12%, transparent);
}
.block-week-list li.editing[b-pq9ilbqn7p] {
    flex-wrap: wrap;
    background: var(--surface-2);
    padding: 0.5rem;
}
.block-week-edit-form[b-pq9ilbqn7p] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
    flex: 1 1 auto;
}
.block-week-edit-btn[b-pq9ilbqn7p] {
    margin-left: auto;
    padding: 0.2rem 0.35rem;
    border: none;
    background: transparent;
    color: var(--ink-muted);
    cursor: pointer;
}
.block-week-edit-btn:hover[b-pq9ilbqn7p] {
    color: var(--accent);
}
.block-week-inline-field[b-pq9ilbqn7p],
.block-week-inline-deload[b-pq9ilbqn7p] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.8rem;
    color: var(--ink-muted);
}
.block-week-inline-field input[type="number"][b-pq9ilbqn7p] {
    width: 4rem;
    padding: 0.25rem 0.35rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--surface-border);
    background: var(--surface);
    color: var(--ink);
}
.block-week-inline-notes[b-pq9ilbqn7p] {
    flex: 1 1 120px;
    min-width: 100px;
    padding: 0.25rem 0.4rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--surface-border);
    background: var(--surface);
    color: var(--ink);
    font: inherit;
}
.block-week-num[b-pq9ilbqn7p] {
    font-weight: 600;
    min-width: 3.5rem;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.block-week-current-tag[b-pq9ilbqn7p] {
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    background: var(--accent);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.block-week-load[b-pq9ilbqn7p] {
    color: var(--ink-muted);
}
.block-week-notes[b-pq9ilbqn7p] {
    color: var(--ink-muted);
    font-style: italic;
    margin-left: auto;
}

.block-week-days[b-pq9ilbqn7p] {
    list-style: none;
    margin: 0.2rem 0 0;
    padding: 0;
    display: flex;
    gap: 0.3rem;
    flex-basis: 100%;
}
.block-week-day-cell[b-pq9ilbqn7p] {
    display: flex;
}
.block-week-day[b-pq9ilbqn7p] {
    width: 1.5rem;
    height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--ink-muted);
    background: var(--surface-2);
    text-decoration: none;
}
a.block-week-day.has-workout[b-pq9ilbqn7p] {
    background: var(--accent);
    color: #fff;
}

.block-form-heading[b-pq9ilbqn7p] {
    margin-top: 2rem;
    font-size: 1.3rem;
}

.block-form[b-pq9ilbqn7p] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    max-width: 480px;
}

.block-form-field[b-pq9ilbqn7p] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.85rem;
    font-weight: 600;
}
.block-form-field input[b-pq9ilbqn7p],
.block-form-field select[b-pq9ilbqn7p] {
    padding: 0.5rem 0.65rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--surface-border);
    background: var(--surface);
    color: var(--ink);
    font: inherit;
    font-weight: 400;
}

.block-week-editor[b-pq9ilbqn7p] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.block-week-editor li[b-pq9ilbqn7p] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem;
    padding: 0.5rem;
    background: var(--surface);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-sm);
}
.block-week-editor-num[b-pq9ilbqn7p] {
    font-weight: 700;
    min-width: 4.5rem;
}
.block-week-editor label[b-pq9ilbqn7p] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.8rem;
    color: var(--ink-muted);
}
.block-week-editor label input[type="number"][b-pq9ilbqn7p] {
    width: 4.5rem;
    padding: 0.3rem 0.4rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--surface-border);
    background: var(--surface);
    color: var(--ink);
}
.block-week-editor-deload[b-pq9ilbqn7p] {
    flex-direction: row-reverse;
}
.block-week-editor-notes[b-pq9ilbqn7p] {
    flex: 1 1 140px;
    min-width: 120px;
    padding: 0.3rem 0.5rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--surface-border);
    background: var(--surface);
    color: var(--ink);
    font: inherit;
}
/* /Pages/WorkoutHistory.razor.rz.scp.css */
.back-link[b-rihmq0azeh] {
    display: inline-block;
    margin-bottom: 0.5rem;
    color: var(--ink-muted);
    text-decoration: none;
    font-weight: 600;
}
.back-link:hover[b-rihmq0azeh] { color: var(--accent); }

.hint[b-rihmq0azeh] {
    color: var(--ink-muted);
    font-size: 0.85rem;
}

.history-empty[b-rihmq0azeh] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
    padding: 2rem 0;
}
/* /Pages/WorkoutPlanDetail.razor.rz.scp.css */
.back-link[b-3fwrfu2r95] {
    display: inline-block;
    margin-bottom: 0.5rem;
    color: var(--ink-muted);
    text-decoration: none;
    font-weight: 600;
}
.back-link:hover[b-3fwrfu2r95] { color: var(--accent); }

.plan-detail-header[b-3fwrfu2r95] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
}
.plan-detail-actions[b-3fwrfu2r95] {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.start-workout-button[b-3fwrfu2r95] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}
.history-link[b-3fwrfu2r95] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--ink-muted);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.9rem;
}
.history-link:hover[b-3fwrfu2r95] {
    color: var(--accent);
}

@media (min-width: 640px) {
    .plan-detail-header[b-3fwrfu2r95] {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
}
/* /Pages/WorkoutPlans.razor.rz.scp.css */
.plan-list[b-vjh2eeev2d] {
    list-style: none;
    padding: 0;
    margin: 1rem 0;
}

.plan-row[b-vjh2eeev2d] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    min-height: 3.5rem; /* comfortable tap target on touch screens */
    padding: 0.75rem 1rem;
    margin-bottom: 0.5rem;
    background: var(--surface);
    backdrop-filter: var(--blur);
    -webkit-backdrop-filter: var(--blur);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    color: var(--ink);
    -webkit-tap-highlight-color: transparent;
}

.plan-row:hover[b-vjh2eeev2d] {
    background: color-mix(in srgb, var(--accent) 8%, var(--surface));
}

.plan-row-text[b-vjh2eeev2d] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.plan-row-name[b-vjh2eeev2d] {
    font-weight: 700;
}

.plan-row-meta[b-vjh2eeev2d] {
    color: var(--ink-muted);
    font-size: 0.85rem;
    font-family: var(--font-mono);
}

.plan-row .bi[b-vjh2eeev2d] {
    color: var(--ink-muted);
    flex-shrink: 0;
}

.add-plan-form[b-vjh2eeev2d] {
    display: flex;
    gap: 0.5rem;
    margin-top: 1rem;
}

.add-plan-form input[b-vjh2eeev2d] {
    flex: 1;
    min-height: 2.75rem;
    padding: 0 0.75rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: 1rem; /* >=16px avoids iOS Safari auto-zoom on focus */
}

.add-plan-form button[b-vjh2eeev2d] {
    min-width: 6rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* /Shared/ActivityHeatmap.razor.rz.scp.css */
.streak-stats[b-2egm7l40n3] {
    display: flex;
    gap: 0.6rem;
    margin-bottom: 1rem;
}
.streak-stat[b-2egm7l40n3] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.65rem 0.85rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    background: var(--surface);
}
.streak-stat-value[b-2egm7l40n3] {
    font-family: var(--font-mono);
    font-weight: 700;
    font-size: 1.3rem;
    color: var(--accent);
}
.streak-stat-label[b-2egm7l40n3] {
    color: var(--ink-muted);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.heatmap-scroll[b-2egm7l40n3] {
    overflow-x: auto;
    padding-bottom: 0.25rem;
}

.heatmap-grid[b-2egm7l40n3] {
    display: flex;
    gap: 3px;
    width: max-content;
}

.heatmap-week[b-2egm7l40n3] {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.heatmap-cell[b-2egm7l40n3] {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    background: var(--surface-border);
}
.heatmap-cell-empty[b-2egm7l40n3] {
    background: transparent;
}
.heatmap-level-0[b-2egm7l40n3] { background: var(--surface-border); }
.heatmap-level-1[b-2egm7l40n3] { background: color-mix(in srgb, var(--accent-2) 40%, var(--surface-border)); }
.heatmap-level-2[b-2egm7l40n3] { background: color-mix(in srgb, var(--accent-2) 70%, var(--surface-border)); }
.heatmap-level-3[b-2egm7l40n3] { background: var(--accent-2); }
/* /Shared/AdminMetricsTab.razor.rz.scp.css */
.hint[b-4freec4ms8] {
    color: var(--ink-muted);
    font-size: 0.85rem;
}

.metrics-section[b-4freec4ms8] {
    margin-top: 1.75rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--surface-border);
}
.metrics-section:first-of-type[b-4freec4ms8] {
    margin-top: 1rem;
    padding-top: 0;
    border-top: none;
}
.metrics-section h2[b-4freec4ms8] {
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 0.75rem;
}

.metrics-latest[b-4freec4ms8] {
    margin-top: 0.5rem;
}
/* /Shared/AdminPlansTab.razor.rz.scp.css */
.hint[b-leqayy0fxc] {
    color: var(--ink-muted);
    font-size: 0.85rem;
}

.plan-list[b-leqayy0fxc] {
    list-style: none;
    padding: 0;
    margin: 1rem 0;
}

.plan-row[b-leqayy0fxc] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    min-height: 3.5rem;
    padding: 0.75rem 1rem;
    margin-bottom: 0.5rem;
    background: var(--surface);
    backdrop-filter: var(--blur);
    -webkit-backdrop-filter: var(--blur);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    font-family: inherit;
    text-align: left;
    text-decoration: none;
    color: var(--ink);
    -webkit-tap-highlight-color: transparent;
}
.plan-row:hover[b-leqayy0fxc] {
    background: color-mix(in srgb, var(--accent) 8%, var(--surface));
}

.plan-row-text[b-leqayy0fxc] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}
.plan-row-name[b-leqayy0fxc] {
    font-weight: 700;
}
.plan-row-meta[b-leqayy0fxc] {
    color: var(--ink-muted);
    font-size: 0.85rem;
    font-family: var(--font-mono);
}
.plan-row .bi[b-leqayy0fxc] {
    color: var(--ink-muted);
    flex-shrink: 0;
}

.add-plan-form[b-leqayy0fxc] {
    display: flex;
    gap: 0.5rem;
    margin-top: 1rem;
}
.add-plan-form input[b-leqayy0fxc] {
    flex: 1;
    min-height: 2.75rem;
    padding: 0 0.75rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: 1rem;
}
.add-plan-form button[b-leqayy0fxc] {
    min-width: 6rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* /Shared/AdminSettingsTab.razor.rz.scp.css */
.hint[b-3iriqtelot] {
    color: var(--ink-muted);
    font-size: 0.85rem;
}

.settings-section[b-3iriqtelot] {
    margin-top: 1.75rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--surface-border);
}
.settings-section h2[b-3iriqtelot] {
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 0.3rem;
}

.rest-default-row[b-3iriqtelot] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-top: 0.75rem;
}
.rest-default-row input[b-3iriqtelot] {
    width: 5.5rem;
    min-height: 2.75rem;
    padding: 0 0.75rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: 1rem;
    text-align: center;
}
.rest-default-row span[b-3iriqtelot] {
    color: var(--ink-muted);
    font-size: 0.9rem;
}

.add-suggestion-form[b-3iriqtelot] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.75rem;
}
.add-suggestion-form input[b-3iriqtelot] {
    min-height: 2.75rem;
    padding: 0 0.75rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: 1rem;
}
.add-suggestion-form input:first-child[b-3iriqtelot] {
    flex: 1;
    min-width: 0;
}
.add-suggestion-form input[type="number"][b-3iriqtelot] {
    width: 7.5rem;
    text-align: center;
}

.exercise-suggestion-list[b-3iriqtelot] {
    list-style: none;
    padding: 0;
    margin: 1rem 0 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.exercise-suggestion-row[b-3iriqtelot] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.6rem 0.85rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    background: var(--surface);
}

.exercise-suggestion-name[b-3iriqtelot] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    font-weight: 600;
    min-width: 0;
}

.exercise-suggestion-last[b-3iriqtelot] {
    font-weight: 500;
    font-size: 0.78rem;
    color: var(--ink-muted);
    font-family: var(--font-mono);
}

.exercise-suggestion-row input[b-3iriqtelot] {
    width: 6rem;
    min-height: 2.5rem;
    padding: 0 0.6rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface-strong);
    color: var(--ink);
    text-align: center;
    flex-shrink: 0;
}
/* /Shared/AuthorizingFallback.razor.rz.scp.css */
.authorizing-fallback[b-hlyt93brz3] {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    text-align: center;
    padding: 2rem;
}

.authorizing-fallback .bi-exclamation-triangle-fill[b-hlyt93brz3] {
    font-size: 1.75rem;
    color: var(--danger, #d9534f);
    margin-bottom: 0.5rem;
}

.authorizing-fallback-title[b-hlyt93brz3] {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--ink);
    margin: 0;
}

.authorizing-fallback-hint[b-hlyt93brz3] {
    color: var(--ink-muted);
    margin: 0 0 0.75rem;
    max-width: 24rem;
}
/* /Shared/BugReportModal.razor.rz.scp.css */
label[for="bug-report-description"][b-859b1c368o] {
    display: block;
    font-weight: 600;
    font-size: 0.9rem;
    margin-bottom: 0.4rem;
}

textarea[b-859b1c368o] {
    width: 100%;
    resize: vertical;
    min-height: 6rem;
}

.bug-report-context[b-859b1c368o] {
    padding: 0.6rem 0.75rem;
    margin: 0 0 0.75rem;
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--danger) 10%, transparent);
    font-size: 0.85rem;
}

.bug-report-hint[b-859b1c368o] {
    margin: 0.4rem 0 0;
    color: var(--ink-muted);
    font-size: 0.82rem;
}

.bug-report-actions[b-859b1c368o] {
    display: flex;
    justify-content: flex-end;
    gap: 0.6rem;
    margin-top: 1rem;
}
/* /Shared/ConfirmDialog.razor.rz.scp.css */
.confirm-dialog-message[b-6a8fx5wfnj] {
    margin: 0 0 1rem;
    color: var(--ink-muted);
}

.confirm-dialog-actions[b-6a8fx5wfnj] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}
.confirm-dialog-actions button[b-6a8fx5wfnj] {
    min-height: 2.75rem;
}
/* /Shared/ExerciseVideoModal.razor.rz.scp.css */
.video-modal-player[b-x37wa1t8bb] {
    display: block;
    width: 100%;
    max-height: 70vh;
    border-radius: var(--radius-md);
    background: black;
}

.video-modal-error[b-x37wa1t8bb] {
    margin: 0.5rem 0 0;
    color: var(--ink-muted);
}
/* /Shared/Footer.razor.rz.scp.css */
.app-footer[b-ye66nx63mt] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 1.25rem 1rem 2.5rem;
    font-size: 0.78rem;
    color: var(--ink-muted);
}

.app-footer a[b-ye66nx63mt] {
    color: var(--ink-muted);
    text-decoration: underline;
}
.app-footer a:hover[b-ye66nx63mt] {
    color: var(--ink);
}

.app-footer-email[b-ye66nx63mt] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    text-decoration: none !important;
}
.app-footer-email:hover[b-ye66nx63mt] {
    background: color-mix(in srgb, var(--ink) 10%, transparent);
}
/* /Shared/FullScreenLoader.razor.rz.scp.css */
.full-screen-loader[b-1foqbcbfte] {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.25rem;
    text-align: center;
    padding: 2rem;
}

.full-screen-loader-text[b-1foqbcbfte] {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--ink);
    margin: 0;
}
/* /Shared/MessagesNavBadge.razor.rz.scp.css */
.messages-nav-badge[b-qjqkz56rtn] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    margin-left: 0.3rem;
    border-radius: 999px;
    background: var(--danger, #dc3545);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    line-height: 16px;
    vertical-align: middle;
}
/* /Shared/ModalSheet.razor.rz.scp.css */
.modal-sheet-backdrop[b-u8clqcfpna] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: flex-end;
    justify-content: center;
    z-index: 1300;
}

.modal-sheet[b-u8clqcfpna] {
    width: 100%;
    max-width: 26rem;
    max-height: 88vh;
    overflow-y: auto;
    padding: 0.9rem 1rem 1.1rem;
    border-radius: 1.25rem 1.25rem 0 0;
    background: var(--surface);
    border: 1px solid var(--surface-border);
    box-shadow: var(--shadow);
    -webkit-overflow-scrolling: touch;
}

.modal-sheet-handle[b-u8clqcfpna] {
    width: 2.5rem;
    height: 0.3rem;
    margin: 0 auto 0.75rem;
    border-radius: 999px;
    background: var(--surface-border);
}

.modal-sheet-header[b-u8clqcfpna] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}
.modal-sheet-header h3[b-u8clqcfpna] {
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.modal-sheet-close[b-u8clqcfpna] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 2.75rem;
    min-height: 2.75rem;
    border: none;
    border-radius: 50%;
    background: none;
    color: var(--ink-muted);
    cursor: pointer;
}
.modal-sheet-close:hover[b-u8clqcfpna] {
    color: var(--ink);
    background: color-mix(in srgb, var(--ink) 10%, transparent);
}

.modal-sheet-body[b-u8clqcfpna] {
    display: contents;
}

@media (min-width: 640px) {
    .modal-sheet-backdrop[b-u8clqcfpna] {
        align-items: center;
        padding: 1rem;
    }
    .modal-sheet[b-u8clqcfpna] {
        border-radius: var(--radius-lg);
    }
}
/* /Shared/NotificationBell.razor.rz.scp.css */
.notif-bell-wrap[b-sy5csaqxdn] {
    position: relative;
}

/* Blazor CSS isolation scopes UserMenu.razor.css's identical rule to that component only - this
   needs its own copy to close the dropdown on an outside click. */
.menu-overlay[b-sy5csaqxdn] {
    position: fixed;
    inset: 0;
    z-index: 40;
    background: transparent;
}

.notif-bell-button[b-sy5csaqxdn] {
    position: relative;
    width: 38px;
    height: 38px;
    min-width: 38px;
    border-radius: 50%;
    border: 1px solid var(--surface-border);
    background: var(--surface);
    color: var(--ink-muted);
    font-size: 1.05rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: filter 0.15s ease, transform 0.15s ease;
}
.notif-bell-button:hover[b-sy5csaqxdn] {
    filter: brightness(1.08);
}
.notif-bell-button:active[b-sy5csaqxdn] {
    transform: scale(0.96);
}

.notif-bell-badge[b-sy5csaqxdn] {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 16px;
    height: 16px;
    padding: 0 3px;
    border-radius: 999px;
    background: var(--danger, #dc3545);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
}

.notif-bell-panel[b-sy5csaqxdn] {
    position: absolute;
    top: 48px;
    right: 0;
    width: 300px;
    max-height: 360px;
    overflow-y: auto;
    z-index: 50;
    background: var(--surface-strong);
    backdrop-filter: var(--blur);
    -webkit-backdrop-filter: var(--blur);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    box-shadow: 0 16px 40px -14px rgba(0, 0, 0, 0.35);
    padding: 0.5rem;
}

.notif-bell-header[b-sy5csaqxdn] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-muted);
    padding: 0.4rem 0.6rem 0.6rem;
    border-bottom: 1px solid var(--surface-border);
    margin-bottom: 0.3rem;
}

.notif-bell-empty[b-sy5csaqxdn] {
    padding: 0.8rem 0.6rem;
    color: var(--ink-muted);
    font-size: 0.9rem;
    margin: 0;
}

.notif-bell-list[b-sy5csaqxdn] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.notif-bell-item[b-sy5csaqxdn] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.55rem 0.6rem;
    border-radius: var(--radius-sm);
}
.notif-bell-item:hover[b-sy5csaqxdn] {
    background: color-mix(in srgb, var(--accent) 10%, transparent);
}

/* Clickable rows (LinkUrl present) render as a <button class="notif-bell-item"> instead of a
   bare <li> - reset the button chrome so it still looks like a plain row. */
button.notif-bell-item[b-sy5csaqxdn] {
    width: 100%;
    border: none;
    background: none;
    font: inherit;
    color: inherit;
    text-align: left;
    margin: 0;
}

/* Only rows with a LinkUrl should look clickable - see NotificationBell.razor. */
.notif-bell-item--link[b-sy5csaqxdn] {
    cursor: pointer;
}

.notif-bell-message[b-sy5csaqxdn] {
    font-size: 0.88rem;
    color: var(--ink);
    line-height: 1.35;
}

.notif-bell-time[b-sy5csaqxdn] {
    font-size: 0.72rem;
    color: var(--ink-muted);
}
/* /Shared/PersonalRecordsList.razor.rz.scp.css */
.hint[b-b1wat9212y] {
    color: var(--ink-muted);
    font-size: 0.85rem;
}

.record-list[b-b1wat9212y] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.record-row[b-b1wat9212y] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    background: var(--surface);
    box-shadow: var(--shadow);
}

.record-name[b-b1wat9212y] {
    font-weight: 700;
}

.record-stats[b-b1wat9212y] {
    display: flex;
    gap: 1.25rem;
}

.record-stat[b-b1wat9212y] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.1rem;
}

.record-stat-value[b-b1wat9212y] {
    font-family: var(--font-mono);
    font-weight: 700;
    color: var(--accent-2);
}

.record-stat-label[b-b1wat9212y] {
    font-size: 0.75rem;
    color: var(--ink-muted);
}
/* /Shared/ProgressChart.razor.rz.scp.css */
.progress-chart[b-ul9ssj3e54] {
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    background: var(--surface);
    padding: 0.85rem 1rem;
}

/* Grid, not flexbox - the y-axis column's width is intrinsic (sized by its longest value label),
   and grid keeps that same column width consistent between the plot row and the date-tick row
   below it. Flexbox has no equivalent "match this column's width across two separate flex
   containers" primitive, which is exactly what made the date labels below the old flex-row plot
   visually misaligned with the chart above it. */
.progress-chart-grid[b-ul9ssj3e54] {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 0.5rem;
    row-gap: 0.15rem;
    align-items: stretch;
}

.progress-chart-yaxis[b-ul9ssj3e54] {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    color: var(--ink-muted);
    font-size: 0.72rem;
    font-family: var(--font-mono);
    text-align: right;
    white-space: nowrap;
    padding: 0.15rem 0;
}

.progress-chart-svg[b-ul9ssj3e54] {
    width: 100%;
    min-width: 0;
    height: 6rem;
    display: block;
}

.progress-chart-ticks[b-ul9ssj3e54] {
    width: 100%;
    min-width: 0;
    height: 1rem;
    display: block;
}

/* Deliberately more visible than a typical subtle gridline - round-capped dots (not dashes) so it
   reads unambiguously as "this line belongs to that date label," the whole point of drawing it. */
.progress-chart-gridline[b-ul9ssj3e54] {
    stroke: var(--ink-muted);
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-dasharray: 0.1 4;
    opacity: 0.6;
}

/* .progress-chart-tick-label lives in wwwroot/css/app.css (global), not here - it's injected via
   MarkupString (Razor treats a literal <text> tag as a reserved construct that can't take
   attributes), so it never gets this file's scoped b-xxxx attribute. */

.progress-chart-empty[b-ul9ssj3e54] {
    margin: 0;
    color: var(--ink-muted);
    font-size: 0.85rem;
}
/* /Shared/SessionHistoryFeed.razor.rz.scp.css */
.hint[b-hrdpn2go7e] {
    color: var(--ink-muted);
    font-size: 0.85rem;
}

.feed-filters[b-hrdpn2go7e] {
    display: flex;
    gap: 0.4rem;
    margin: 0.5rem 0 1rem;
    overflow-x: auto;
}
.feed-filters button[b-hrdpn2go7e] {
    flex-shrink: 0;
    padding: 0.4rem 0.9rem;
    border: 1px solid var(--surface-border);
    border-radius: 999px;
    background: var(--surface);
    color: var(--ink-muted);
    font-weight: 600;
    font-size: 0.82rem;
    font-family: inherit;
    cursor: pointer;
}
.feed-filters button.active[b-hrdpn2go7e] {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--accent-contrast);
}

.feed-list[b-hrdpn2go7e] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.feed-card[b-hrdpn2go7e] {
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    background: var(--surface);
    box-shadow: var(--shadow);
    overflow: hidden;
}

.feed-card-header[b-hrdpn2go7e] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    padding: 0.85rem 1rem;
    border: none;
    background: none;
    text-align: left;
    font-family: inherit;
    cursor: pointer;
    color: var(--ink);
}
.feed-card-header .bi[b-hrdpn2go7e] {
    flex-shrink: 0;
    color: var(--ink-muted);
    margin-top: 0.15rem;
}

.feed-card-summary[b-hrdpn2go7e] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}
.feed-card-plan[b-hrdpn2go7e] {
    color: var(--accent);
    font-weight: 700;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.feed-card-date[b-hrdpn2go7e] {
    font-weight: 700;
    font-size: 1rem;
}
.feed-card-meta[b-hrdpn2go7e] {
    color: var(--ink-muted);
    font-size: 0.82rem;
    font-family: var(--font-mono);
}
.feed-card-exercises[b-hrdpn2go7e] {
    color: var(--ink-muted);
    font-size: 0.85rem;
    margin-top: 0.15rem;
}

.feed-card-detail[b-hrdpn2go7e] {
    padding: 0 1rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.feed-exercise[b-hrdpn2go7e] {
    border-top: 1px solid var(--surface-border);
    padding-top: 0.75rem;
}
.feed-exercise-header[b-hrdpn2go7e] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.4rem;
}
.feed-exercise-name[b-hrdpn2go7e] {
    font-weight: 700;
}
.feed-progress-link[b-hrdpn2go7e] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    flex-shrink: 0;
    color: var(--accent);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.78rem;
}
.feed-progress-link:hover[b-hrdpn2go7e] {
    text-decoration: underline;
}

.feed-set-list[b-hrdpn2go7e] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}
.feed-set[b-hrdpn2go7e] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.88rem;
}
.feed-set-number[b-hrdpn2go7e] {
    color: var(--ink-muted);
    font-weight: 600;
    min-width: 3.5rem;
}
.feed-set-detail[b-hrdpn2go7e] {
    flex: 1;
    font-family: var(--font-mono);
    color: var(--accent-2);
    font-weight: 600;
}
.feed-set .bi[b-hrdpn2go7e] {
    color: var(--accent);
    font-size: 1.05rem;
}

.feed-sentinel[b-hrdpn2go7e] {
    height: 1px;
}

.feed-end[b-hrdpn2go7e] {
    text-align: center;
    padding: 1rem 0;
}
/* /Shared/SessionHistoryList.razor.rz.scp.css */
.history-empty[b-ca2ckv2dar] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
    padding: 2rem 0;
}

.history-header[b-ca2ckv2dar] {
    margin-bottom: 0.5rem;
}
.history-plan-name[b-ca2ckv2dar] {
    margin: 0 0 0.15rem;
    color: var(--accent);
    font-weight: 700;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.history-meta[b-ca2ckv2dar] {
    color: var(--ink-muted);
    font-family: var(--font-mono);
    font-size: 0.9rem;
    margin: 0.2rem 0 0;
}

.history-nav[b-ca2ckv2dar] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 1rem 0;
    padding: 0.5rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
}
.history-nav button[b-ca2ckv2dar] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    min-height: 44px; /* comfortable touch target */
    padding: 0 0.75rem;
    border: none;
    background: none;
    color: var(--ink);
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
}
.history-nav button:disabled[b-ca2ckv2dar] {
    opacity: 0.35;
    cursor: default;
}
.history-position[b-ca2ckv2dar] {
    color: var(--ink-muted);
    font-size: 0.85rem;
    font-family: var(--font-mono);
}

.history-exercise-list[b-ca2ckv2dar] {
    list-style: none;
    padding: 0;
    margin: 1rem 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.history-exercise[b-ca2ckv2dar] {
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    background: var(--surface);
    box-shadow: var(--shadow);
    padding: 0.85rem 1rem;
}
.history-exercise-header[b-ca2ckv2dar] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}
.history-exercise-name[b-ca2ckv2dar] {
    font-weight: 700;
    font-size: 1.05rem;
}
.history-progress-link[b-ca2ckv2dar] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    flex-shrink: 0;
    color: var(--accent);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.8rem;
}
.history-progress-link:hover[b-ca2ckv2dar] {
    text-decoration: underline;
}

.history-set-list[b-ca2ckv2dar] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.history-set[b-ca2ckv2dar] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.9rem;
}
.history-set-number[b-ca2ckv2dar] {
    color: var(--ink-muted);
    font-weight: 600;
    min-width: 3.5rem;
}
.history-set-detail[b-ca2ckv2dar] {
    flex: 1;
    font-family: var(--font-mono);
    color: var(--accent-2);
    font-weight: 600;
}
.history-set .bi[b-ca2ckv2dar] {
    color: var(--accent);
    font-size: 1.1rem;
}
/* /Shared/ToastHost.razor.rz.scp.css */
.toast-host[b-d46h9r390k] {
    position: fixed;
    left: 50%;
    bottom: 1.25rem;
    transform: translateX(-50%);
    z-index: 1200;
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    gap: 0.5rem;
    width: max-content;
    max-width: calc(100vw - 2rem);
    pointer-events: none;
}

.toast-card[b-d46h9r390k] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.65rem 1rem;
    border-radius: var(--radius-md);
    background: var(--ink);
    color: var(--ground);
    font-weight: 600;
    font-size: 0.9rem;
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.25);
    animation: toast-in-b-d46h9r390k 0.15s ease-out;
}

.toast-success .bi[b-d46h9r390k] { color: var(--accent-2); }
.toast-error .bi[b-d46h9r390k] { color: var(--danger); }
.toast-info .bi[b-d46h9r390k] { color: var(--accent); }

@keyframes toast-in-b-d46h9r390k {
    from { opacity: 0; transform: translateY(0.5rem); }
    to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .toast-card[b-d46h9r390k] {
        animation: none;
    }
}
/* /Shared/TrainerCalendar.razor.rz.scp.css */
.trainer-cal-group-list[b-nh7pev39lx] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: 28rem;
}

.trainer-cal-group-row[b-nh7pev39lx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.6rem 0.85rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    background: var(--surface);
}

.trainer-cal-group-summary[b-nh7pev39lx] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.trainer-cal-group-pattern[b-nh7pev39lx] {
    font-weight: 700;
}

.trainer-cal-group-range[b-nh7pev39lx],
.trainer-cal-group-counts[b-nh7pev39lx] {
    font-size: 0.78rem;
    color: var(--ink-muted);
    font-family: var(--font-mono);
}

.trainer-cal-group-actions[b-nh7pev39lx] {
    display: flex;
    gap: 0.35rem;
    flex-shrink: 0;
}
.trainer-cal-group-actions .trainer-cal-chip-action[b-nh7pev39lx] {
    position: static;
    width: 1.75rem;
    height: 1.75rem;
    color: var(--ink-muted);
}
.trainer-cal-group-actions .trainer-cal-chip-action:hover[b-nh7pev39lx] {
    color: var(--ink);
    background: color-mix(in srgb, var(--ink) 10%, transparent);
}

.trainer-cal-group-edit-form[b-nh7pev39lx] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
}

.trainer-cal-hint[b-nh7pev39lx] {
    margin: 0.75rem 0 0;
    font-size: 0.8rem;
    color: var(--ink-muted);
}

/* Mobile-first: both modals open as a bottom sheet by default (easiest thumb reach), become a
   centered dialog at the sm breakpoint below - shell (backdrop/sheet/handle/header) is owned by
   ModalSheet now; ::deep reaches into its SheetClass-tagged wrapper for the sizing/content
   overrides specific to each of these two modals. */
[b-nh7pev39lx] .modal-sheet.trainer-cal-slot-sheet {
    max-width: 22rem;
    padding: 1.25rem;
}
[b-nh7pev39lx] .trainer-cal-slot-sheet form {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
[b-nh7pev39lx] .trainer-cal-slot-sheet label {
    font-size: 0.8rem;
    color: var(--ink-muted);
}
[b-nh7pev39lx] .trainer-cal-slot-sheet input[type="date"],
[b-nh7pev39lx] .trainer-cal-slot-sheet input[type="time"] {
    min-height: 2.75rem;
    padding: 0 0.75rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: 1rem; /* >=16px avoids iOS Safari auto-zoom on focus */
}

/* --- Day sheet (click a day -> pick hours) --- */

.trainer-cal-hour-section[b-nh7pev39lx] {
    margin-bottom: 0.9rem;
}
.trainer-cal-hour-section h4[b-nh7pev39lx] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-muted);
    margin: 0 0 0.4rem;
}

.trainer-cal-hour-grid[b-nh7pev39lx] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.45rem;
}

/* min-height/min-width 2.75rem = 44px, the WCAG 2.5.5 minimum touch target size. */
.trainer-cal-hour-btn[b-nh7pev39lx] {
    min-height: 2.75rem;
    min-width: 2.75rem;
    padding: 0.4rem 0.3rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: 0.85rem;
    font-weight: 600;
    font-family: var(--font-mono);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
.trainer-cal-hour-btn:focus-visible[b-nh7pev39lx] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}
.trainer-cal-hour-btn-selected[b-nh7pev39lx] {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--accent-contrast, #fff);
}
.trainer-cal-hour-btn-occupied[b-nh7pev39lx] {
    background: color-mix(in srgb, var(--ink-muted) 12%, transparent);
    border-color: transparent;
    color: var(--ink-muted);
    text-decoration: line-through;
    cursor: not-allowed;
}

.trainer-cal-more-hours-btn[b-nh7pev39lx] {
    display: block;
    width: 100%;
    min-height: 2.75rem;
    margin-bottom: 0.5rem;
    border: 1px dashed var(--surface-border);
    border-radius: var(--radius-md);
    background: none;
    color: var(--accent);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
}

.trainer-cal-repeat-section[b-nh7pev39lx] {
    margin: 0.9rem 0 0.6rem;
    padding-top: 0.9rem;
    border-top: 1px solid var(--surface-border);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.trainer-cal-repeat-toggle[b-nh7pev39lx] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    font-size: 0.9rem;
    min-height: 2.75rem;
}
.trainer-cal-repeat-toggle input[type="checkbox"][b-nh7pev39lx] {
    width: 1.15rem;
    height: 1.15rem;
    flex-shrink: 0;
}

.trainer-cal-repeat-section label:not(.trainer-cal-repeat-toggle):not(.trainer-cal-weekday-check)[b-nh7pev39lx] {
    font-size: 0.8rem;
    color: var(--ink-muted);
}
.trainer-cal-repeat-section input[type="date"][b-nh7pev39lx] {
    min-height: 2.75rem;
    padding: 0 0.75rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: 1rem;
    width: 100%;
}

.trainer-cal-sheet-actions[b-nh7pev39lx] {
    position: sticky;
    bottom: -1.1rem;
    margin: 0.75rem -1rem -1.1rem;
    padding: 0.75rem 1rem calc(1.1rem + env(safe-area-inset-bottom, 0px));
    background: var(--surface);
    border-top: 1px solid var(--surface-border);
}
.trainer-cal-sheet-actions button[b-nh7pev39lx] {
    min-height: 2.75rem;
    flex: 1;
}

@media (min-width: 640px) {
    [b-nh7pev39lx] .modal-sheet.trainer-cal-day-sheet {
        max-width: 28rem;
        max-height: 85vh;
    }
    [b-nh7pev39lx] .trainer-cal-day-sheet .modal-sheet-handle {
        display: none;
    }
    .trainer-cal-hour-grid[b-nh7pev39lx] {
        grid-template-columns: repeat(4, 1fr);
    }
    .trainer-cal-sheet-actions button[b-nh7pev39lx] {
        flex: none;
    }
}

.trainer-cal-toolbar[b-nh7pev39lx] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 1rem 0;
}

.trainer-cal-month-label[b-nh7pev39lx] {
    font-family: var(--font-display);
    font-weight: 700;
    min-width: 9rem;
    text-align: center;
}

.trainer-cal-today-btn[b-nh7pev39lx] {
    margin-left: auto;
}

.trainer-cal-grid[b-nh7pev39lx] {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 1px;
    background: var(--surface-border);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.trainer-cal-weekday[b-nh7pev39lx] {
    padding: 0.4rem 0;
    text-align: center;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--ink-muted);
    background: var(--surface);
}

.trainer-cal-day[b-nh7pev39lx] {
    min-width: 0;
    min-height: 4.25rem;
    padding: 0.2rem;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    background: var(--surface);
}

@media (min-width: 640px) {
    .trainer-cal-day[b-nh7pev39lx] {
        min-height: 5.5rem;
        padding: 0.3rem;
    }
}

.trainer-cal-day-outside[b-nh7pev39lx] {
    background: color-mix(in srgb, var(--surface) 60%, transparent);
}
.trainer-cal-day-outside .trainer-cal-day-number[b-nh7pev39lx] {
    color: var(--ink-muted);
}

.trainer-cal-day-today .trainer-cal-day-number[b-nh7pev39lx] {
    background: var(--accent);
    color: var(--accent-contrast, #fff);
}

.trainer-cal-day-number[b-nh7pev39lx] {
    align-self: flex-start;
    width: 1.6rem;
    height: 1.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: none;
    color: var(--ink);
    font-size: 0.8rem;
    font-family: var(--font-mono);
    cursor: pointer;
}
.trainer-cal-day-number:disabled[b-nh7pev39lx] {
    cursor: default;
}

/* Grid-cell chips are now purely a compact "what's here" indicator - no inline action buttons,
   so they can never overflow their 1fr column and get painted over by the next day's cell (the
   old chip design, with a full time range + inline Book/edit/delete buttons, had no minimum-width
   ceiling and could overflow horizontally past the cell edge, right into the next day's paint).
   Tapping any of them opens the day sheet, where every action gets a full-width row instead. */
.trainer-cal-day-chips[b-nh7pev39lx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.15rem;
    min-width: 0;
}

.trainer-cal-mini-chip[b-nh7pev39lx] {
    flex-shrink: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 0.1rem 0.3rem;
    border: none;
    border-radius: var(--radius-sm, 0.35rem);
    font-size: 0.6rem;
    font-weight: 700;
    font-family: var(--font-mono);
    line-height: 1.4;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
.trainer-cal-mini-chip:focus-visible[b-nh7pev39lx] {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
}

.trainer-cal-mini-chip-more[b-nh7pev39lx] {
    flex-shrink: 0;
    padding: 0.1rem 0.3rem;
    border: none;
    border-radius: var(--radius-sm, 0.35rem);
    background: color-mix(in srgb, var(--ink-muted) 14%, transparent);
    color: var(--ink-muted);
    font-size: 0.6rem;
    font-weight: 700;
    font-family: var(--font-mono);
    cursor: pointer;
}

/* Open - unbooked, still available */
.trainer-cal-mini-chip-open[b-nh7pev39lx] {
    background: color-mix(in srgb, var(--accent-2) 16%, transparent);
    color: var(--accent-2);
}

/* Booked, owner's own management view */
.trainer-cal-mini-chip-booked[b-nh7pev39lx] {
    background: color-mix(in srgb, var(--accent) 14%, transparent);
    color: var(--accent);
}

/* Booked by the current viewer */
.trainer-cal-mini-chip-mine[b-nh7pev39lx] {
    background: color-mix(in srgb, var(--accent) 16%, transparent);
    color: var(--accent);
}

/* Booked by someone else - taken, not actionable */
.trainer-cal-mini-chip-taken[b-nh7pev39lx] {
    background: color-mix(in srgb, var(--ink-muted) 14%, transparent);
    color: var(--ink-muted);
}

/* --- Day sheet: the existing-slots list (header is now ModalSheet's own) --- */

.trainer-cal-day-slot-list[b-nh7pev39lx] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 0.9rem;
}

.trainer-cal-day-slot-row[b-nh7pev39lx] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.5rem 0.6rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
}

.trainer-cal-day-slot-time[b-nh7pev39lx] {
    font-family: var(--font-mono);
    font-weight: 700;
    font-size: 0.85rem;
}

.trainer-cal-day-slot-note[b-nh7pev39lx] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 12rem;
    color: var(--ink-muted);
    font-size: 0.8rem;
}

.trainer-cal-day-slot-actions[b-nh7pev39lx] {
    display: flex;
    gap: 0.35rem;
    margin-left: auto;
}
.trainer-cal-day-slot-actions .trainer-cal-chip-action[b-nh7pev39lx] {
    position: static;
    width: 1.9rem;
    height: 1.9rem;
    opacity: 1;
    color: var(--ink-muted);
}
.trainer-cal-day-slot-actions .trainer-cal-chip-action:hover[b-nh7pev39lx] {
    color: var(--ink);
    background: color-mix(in srgb, var(--ink) 10%, transparent);
}

.trainer-cal-day-slot-row .btn[b-nh7pev39lx] {
    margin-left: auto;
    min-height: 2.25rem;
}

.trainer-cal-day-divider[b-nh7pev39lx] {
    height: 1px;
    margin: 0.9rem 0;
    background: var(--surface-border);
}

.trainer-cal-add-more-label[b-nh7pev39lx] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-muted);
    margin: 0 0 0.6rem;
}

/* .trainer-cal-chip-action is still used standalone in the Recurring patterns list below. */
.trainer-cal-chip-action[b-nh7pev39lx] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
    margin-left: auto;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: none;
    color: inherit;
    opacity: 0.6;
    cursor: pointer;
}
.trainer-cal-chip-action:hover[b-nh7pev39lx] {
    opacity: 1;
    background: color-mix(in srgb, currentColor 20%, transparent);
}

.trainer-cal-form-section[b-nh7pev39lx] {
    margin-top: 1.75rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--surface-border);
}
.trainer-cal-day-presets[b-nh7pev39lx] {
    display: flex;
    gap: 0.4rem;
    margin-bottom: 0.4rem;
}
.trainer-cal-day-presets button[b-nh7pev39lx] {
    padding: 0.25rem 0.6rem;
    font-size: 0.75rem;
}

.trainer-cal-weekday-picker[b-nh7pev39lx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.trainer-cal-weekday-check[b-nh7pev39lx] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    flex-direction: row;
    padding: 0.3rem 0.5rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
}

.trainer-cal-form-section h3[b-nh7pev39lx] {
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 0.75rem;
}
.trainer-cal-form-section form[b-nh7pev39lx] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: 20rem;
}
.trainer-cal-form-section label[b-nh7pev39lx] {
    font-size: 0.8rem;
    color: var(--ink-muted);
}
.trainer-cal-form-section input[type="date"][b-nh7pev39lx],
.trainer-cal-form-section input[type="time"][b-nh7pev39lx] {
    min-height: 2.75rem;
    padding: 0 0.75rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: 1rem; /* >=16px avoids iOS Safari auto-zoom on focus */
}

.trainer-cal-form-actions[b-nh7pev39lx] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.25rem;
}
.trainer-cal-form-actions button[type="submit"][b-nh7pev39lx] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 8rem;
}
/* /Shared/VersionBadge.razor.rz.scp.css */
.version-badge[b-ufzbgkdbrk] {
    position: fixed;
    left: 0.5rem;
    bottom: 0.5rem;
    z-index: 5;
    padding: 0.2rem 0.5rem;
    font-size: 0.7rem;
    font-family: var(--font-mono);
    color: var(--ink-muted);
    background: var(--surface);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-sm);
    opacity: 0.55;
}
.version-badge:hover[b-ufzbgkdbrk] {
    opacity: 1;
}
/* /Shared/WorkoutItemList.razor.rz.scp.css */
.hint[b-33z7icbahe] {
    color: var(--ink-muted);
    font-size: 0.85rem;
}

.video-library-hint[b-33z7icbahe] {
    margin-top: 0.35rem;
}
.video-library-hint .bi[b-33z7icbahe] {
    color: var(--accent);
    margin-right: 0.15rem;
}
.video-library-hint a[b-33z7icbahe] {
    color: var(--accent);
    font-weight: 600;
}

.item-list[b-33z7icbahe] {
    list-style: none;
    padding: 0;
    margin: 1rem 0;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.item-row[b-33z7icbahe] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--surface);
    backdrop-filter: var(--blur);
    -webkit-backdrop-filter: var(--blur);
    box-shadow: var(--shadow);
    transition: background-color 0.15s ease, box-shadow 0.15s ease;
}

.item-row.item-done[b-33z7icbahe] {
    background: color-mix(in srgb, var(--accent-2) 14%, var(--surface));
}

/* Picked up - either by pointer drag (dragging, transform set inline alongside the live
   translateY so the lift survives the position tracking) or by the keyboard-grab alternative
   (item-lifted, a plain class-driven transform since nothing else touches transform then). */
.item-row.item-lifted[b-33z7icbahe] {
    transform: scale(1.03);
}
.item-row.item-lifted[b-33z7icbahe],
.item-row.dragging[b-33z7icbahe] {
    box-shadow: 0 14px 28px -10px rgba(0, 0, 0, 0.4);
    background: var(--surface-strong);
    z-index: 5;
}
.item-row.dragging[b-33z7icbahe] {
    cursor: grabbing;
    transition: none; /* instant follow under the pointer - only siblings animate */
}

.drag-handle[b-33z7icbahe] {
    flex-shrink: 0;
    width: 2.75rem;
    height: 3.25rem;
    min-width: 44px; /* comfortable touch target */
    border: none;
    background: none;
    color: var(--ink-muted);
    cursor: grab;
    display: flex;
    align-items: center;
    justify-content: center;
    touch-action: none; /* this handle reads all pointer movement itself - no native scroll here */
}
.drag-handle:hover[b-33z7icbahe] {
    color: var(--accent);
}
.drag-handle:active[b-33z7icbahe] {
    cursor: grabbing;
}
.item-row.item-lifted .drag-handle[b-33z7icbahe],
.item-row.dragging .drag-handle[b-33z7icbahe] {
    color: var(--accent);
}

.item-checkbox[b-33z7icbahe] {
    width: 22px;
    height: 22px;
    min-width: 22px;
    accent-color: var(--accent-2);
    cursor: pointer;
    flex-shrink: 0;
}

/* The gesture surface is the swipeable/tappable element IOGesture wraps. touch-action: pan-y
   lets the browser keep handling vertical scroll of the page natively while IOGesture reads
   horizontal movement for swipe detection - without this, swiping would fight page scrolling. */
.item-gesture-surface[b-33z7icbahe] {
    display: flex;
    align-items: center;
    flex: 1;
    min-width: 0;
    min-height: 3.25rem; /* comfortable touch target */
    touch-action: pan-y;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}

.item-name-button[b-33z7icbahe] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 0.75rem 0.25rem;
    font-family: inherit;
    cursor: pointer;
    min-width: 0;
}

.item-name[b-33z7icbahe] {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--ink);
}
.item-done .item-name[b-33z7icbahe] {
    text-decoration: line-through;
    color: var(--ink-muted);
}

.item-stats[b-33z7icbahe] {
    color: var(--accent-2);
    font-size: 0.85rem;
    font-weight: 700;
    font-family: var(--font-mono);
}

.item-detail[b-33z7icbahe] {
    color: var(--ink-muted);
    font-size: 0.85rem;
    font-family: var(--font-mono);
}

/* Full-screen on mobile (so there's room to scroll and actually read the fields, per the user
   report that the old cramped inline row was "whack"), a centered dialog on desktop. Close/Save
   live in a header that's structurally outside the scrollable body - not just CSS-sticky - so
   they're always reachable regardless of scroll position. Shell (backdrop/sheet/header wiring,
   back-button handling) is ModalSheet's now; this overrides its default bottom-sheet sizing with
   the compound `.modal-sheet.item-edit-modal` selector so it wins over ModalSheet's own same-
   specificity base rule regardless of which stylesheet the bundler happens to emit first. */
[b-33z7icbahe] .modal-sheet.item-edit-modal {
    position: fixed;
    inset: 0;
    width: auto;
    max-width: none;
    max-height: none;
    padding: 0;
    overflow: hidden;
    border: none;
    border-radius: 0;
    display: flex;
    flex-direction: column;
    background: var(--surface-strong);
    backdrop-filter: var(--blur);
    -webkit-backdrop-filter: var(--blur);
}

[b-33z7icbahe] .modal-sheet.item-edit-modal .modal-sheet-header {
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    margin-bottom: 0;
    border-bottom: 1px solid var(--surface-border);
    flex-shrink: 0;
}

[b-33z7icbahe] .modal-sheet.item-edit-modal .modal-sheet-body {
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
    flex: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 1.25rem 1.1rem 2rem;
}

.item-edit-modal-title[b-33z7icbahe] {
    font-family: var(--font-display);
    font-weight: 700;
    color: var(--ink);
}

.item-edit-modal-close[b-33z7icbahe],
.item-edit-modal-save[b-33z7icbahe] {
    min-height: 44px; /* comfortable touch target */
    min-width: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    font-weight: 700;
    font-family: inherit;
    font-size: 0.95rem;
}
.item-edit-modal-close[b-33z7icbahe] {
    background: none;
    color: var(--ink-muted);
    padding: 0 0.5rem;
}
.item-edit-modal-close:hover[b-33z7icbahe] {
    color: var(--danger);
}
.item-edit-modal-save[b-33z7icbahe] {
    background: var(--accent);
    color: var(--accent-contrast);
    padding: 0 1.25rem;
}
.item-edit-modal-save:hover[b-33z7icbahe] {
    filter: brightness(1.08);
}

[b-33z7icbahe] .modal-sheet.item-edit-modal .modal-sheet-body label {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--ink-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

[b-33z7icbahe] .modal-sheet.item-edit-modal .modal-sheet-body .item-edit-checkbox-field {
    flex-direction: row;
    align-items: center;
    gap: 0.6rem;
    text-transform: none;
    letter-spacing: normal;
    font-weight: 500;
    font-size: 0.9rem;
    color: var(--ink);
}
.item-edit-checkbox-field input[type="checkbox"][b-33z7icbahe] {
    min-height: 0;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    accent-color: var(--accent);
}

.item-superset-badge[b-33z7icbahe] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    color: var(--accent);
    font-size: 1.1rem;
}

.item-edit-last-used[b-33z7icbahe] {
    margin: -0.5rem 0 0;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--accent-2);
    font-family: var(--font-mono);
}

[b-33z7icbahe] .modal-sheet.item-edit-modal .modal-sheet-body input {
    min-height: 3rem;
    padding: 0 0.85rem;
    font-size: 1.1rem;
    font-family: inherit;
    text-transform: none;
    letter-spacing: normal;
    font-weight: 500;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
}

@media (min-width: 640px) {
    [b-33z7icbahe] .modal-sheet.item-edit-modal {
        inset: auto;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 90vw;
        max-width: 28rem;
        max-height: 85vh;
        border-radius: var(--radius-lg);
        border: 1px solid var(--surface-border);
        box-shadow: 0 24px 60px -20px rgba(0, 0, 0, 0.4);
    }
}

.item-delete-button[b-33z7icbahe] {
    flex-shrink: 0;
    width: 3rem;
    height: 3.25rem;
    min-width: 44px; /* comfortable touch target */
    border: none;
    background: none;
    color: var(--ink-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}
.item-delete-button:hover[b-33z7icbahe] {
    color: var(--danger);
    background: var(--danger-bg);
}

.item-video-button[b-33z7icbahe] {
    flex-shrink: 0;
    width: 3rem;
    height: 3.25rem;
    min-width: 44px; /* comfortable touch target */
    border: none;
    background: none;
    color: var(--accent);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
}
.item-video-button:hover[b-33z7icbahe] {
    background: color-mix(in srgb, var(--accent) 14%, transparent);
}

.add-item-form[b-33z7icbahe] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 1rem;
}

.add-item-form input[b-33z7icbahe] {
    min-height: 2.75rem;
    padding: 0 0.75rem;
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: 1rem; /* >=16px avoids iOS Safari auto-zoom on focus */
    width: 100%;
}

.add-item-name-field[b-33z7icbahe] {
    position: relative;
}

.add-item-row-2[b-33z7icbahe] {
    display: flex;
    gap: 0.5rem;
}

.add-item-numbers[b-33z7icbahe] {
    display: flex;
    gap: 0.4rem;
    flex: 1;
    min-width: 0;
}

.add-item-numbers input[b-33z7icbahe] {
    flex: 1;
    width: auto;
    min-width: 0;
    text-align: center;
}

.add-item-row-2 button[b-33z7icbahe] {
    flex-shrink: 0;
    min-width: 4.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.suggestion-list[b-33z7icbahe] {
    position: absolute;
    top: calc(100% + 0.25rem);
    left: 0;
    right: 0;
    z-index: 20;
    list-style: none;
    margin: 0;
    padding: 0.3rem;
    max-height: 14rem;
    overflow-y: auto;
    background: var(--surface-strong);
    backdrop-filter: var(--blur);
    -webkit-backdrop-filter: var(--blur);
    border: 1px solid var(--surface-border);
    border-radius: var(--radius-md);
    box-shadow: 0 16px 40px -14px rgba(0, 0, 0, 0.35);
}

.suggestion-list button[b-33z7icbahe] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 0.5rem 0.6rem;
    border-radius: var(--radius-sm);
    cursor: pointer;
    min-height: 44px; /* comfortable touch target */
    font-family: inherit;
}
.suggestion-list button:hover[b-33z7icbahe],
.suggestion-list button:focus-visible[b-33z7icbahe] {
    background: color-mix(in srgb, var(--accent) 12%, transparent);
}
.suggestion-highlighted button[b-33z7icbahe] {
    background: color-mix(in srgb, var(--accent) 12%, transparent);
}

.suggestion-name[b-33z7icbahe] {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--ink);
}

.suggestion-last[b-33z7icbahe] {
    font-size: 0.78rem;
    color: var(--ink-muted);
    font-family: var(--font-mono);
}

.undo-toast-stack[b-33z7icbahe] {
    position: fixed;
    left: 50%;
    bottom: 1.25rem;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    gap: 0.5rem;
    z-index: 1000;
}

.undo-toast[b-33z7icbahe] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 1rem;
    background: var(--ink);
    color: var(--ground);
    border-radius: var(--radius-md);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.25);
    white-space: nowrap;
}

.undo-toast button[b-33z7icbahe] {
    color: var(--accent-2);
    font-weight: 600;
    text-decoration: none;
    background: none;
    border: none;
    cursor: pointer;
}
