/* ============ Design tokens (konszolidalt :root — 5 blokkbol osszevonva) ============ */
:root {
    color-scheme: light;
    --gg-font-display: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --gg-font-body: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --gg-font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    --gg-shadow-soft: 0 1px 2px rgba(15, 23, 42, .06), 0 12px 32px rgba(15, 23, 42, .07);
    --gg-accent-yellow: #D9A15F;
    --gg-accent-yellow-soft: #F1DEC2;
    --gg-accent-yellow-deep: #9C6A2D;
    --gg-radius-xs: 6px;
    --gg-radius-sm: 7px;
    --gg-radius-md: 12px;
    --gg-radius-lg: 18px;
    --gg-radius-xl: 24px;
    --gg-control-height: 44px;
    --gg-focus-ring: 0 0 0 3px color-mix(in srgb, var(--gg-primary) 24%, transparent);
    --gg-shadow-lift: 0 18px 50px color-mix(in srgb, #000 24%, transparent);
    --gg-border-soft: color-mix(in srgb, var(--gg-border) 82%, transparent);
    --gg-shell-gap: 16px;
    --gg-bg: #F5F8FA;
    --gg-bg-elevated: #ffffff;
    --gg-surface: #ffffff;
    --gg-surface-muted: #EEF3F5;
    --gg-surface-subtle: #E4ECEF;
    --gg-border: rgba(29, 43, 54, 0.10);
    --gg-border-strong: rgba(29, 43, 54, 0.18);
    --gg-text: #1D2B36;
    --gg-text-muted: #3C515E;
    --gg-text-faint: #708693;
    --gg-primary: #1D2B36;
    --gg-primary-strong: #101820;
    --gg-primary-soft: #E5ECEF;
    --gg-on-primary: #F8FAFC;
    --gg-accent: #D9A15F;
    --gg-accent-soft: color-mix(in srgb, var(--gg-accent) 8%, transparent);
    --gg-accent-border: color-mix(in srgb, var(--gg-accent) 22%, transparent);
    --gg-glow: color-mix(in srgb, var(--gg-accent) 6%, transparent);
    --gg-topbar-height: 58px;
    --gg-ease: 160ms ease;
    --gg-material: color-mix(in srgb, var(--gg-surface) 88%, transparent);
    --gg-material-muted: color-mix(in srgb, var(--gg-surface-muted) 72%, transparent);
    --gg-hairline: color-mix(in srgb, var(--gg-border) 72%, transparent);
    --gg-hairline-strong: color-mix(in srgb, var(--gg-border-strong) 82%, transparent);
    --gg-row-hover: color-mix(in srgb, var(--gg-accent) 5%, transparent);
    --gg-row-selected: color-mix(in srgb, var(--gg-accent) 8%, transparent);

    /* Framework-independent semantic palette.  These names deliberately mirror
       the MAUI Colors.xaml contract so the client portal and native app share a
       visual language without coupling either side to a UI framework. */
    --gg-palette-primary: var(--gg-primary);
    --gg-palette-primary-darken: var(--gg-primary-strong);
    --gg-palette-primary-hover: color-mix(in srgb, var(--gg-primary) 10%, transparent);
    --gg-palette-primary-text: var(--gg-on-primary);
    --gg-palette-secondary: var(--gg-accent);
    --gg-palette-tertiary: #708693;
    --gg-palette-background: var(--gg-bg);
    --gg-palette-background-grey: var(--gg-surface-muted);
    --gg-palette-surface: var(--gg-surface);
    --gg-palette-divider: var(--gg-border);
    --gg-palette-lines-default: var(--gg-border);
    --gg-palette-text-primary: var(--gg-text);
    --gg-palette-text-secondary: var(--gg-text-muted);
    --gg-palette-text-disabled: color-mix(in srgb, var(--gg-text-muted) 48%, transparent);
    --gg-palette-drawer-background: var(--gg-surface-muted);
    --gg-palette-drawer-text: var(--gg-text);
    --gg-palette-appbar-background: var(--gg-surface);
    --gg-palette-black: #0B1117;
    --gg-palette-success: #0B9116;
    --gg-palette-success-darken: #087110;
    --gg-palette-warning: #B77834;
    --gg-palette-warning-darken: #8D5723;
    --gg-palette-error: #DC3F4D;
    --gg-palette-error-darken: #A92231;
    --gg-palette-info: #1D4ED8;
    --gg-palette-info-darken: #1E40AF;
    --gg-palette-action-default-hover: rgba(29, 43, 54, .06);
}

html.gg-dark {
    color-scheme: dark;
    --gg-bg: #0B1117;
    --gg-bg-elevated: #101820;
    --gg-surface: #111A21;
    --gg-surface-muted: #16222B;
    --gg-surface-subtle: #1C2A34;
    --gg-border: rgba(183, 196, 204, .14);
    --gg-border-strong: rgba(183, 196, 204, .24);
    --gg-text: #F4F7F8;
    --gg-text-muted: #B7C4CC;
    --gg-text-faint: #8296A2;
    --gg-primary: #F4F7F8;
    --gg-primary-strong: #FFFFFF;
    --gg-primary-soft: #24343F;
    --gg-on-primary: #101820;
    --gg-shadow-soft: 0 1px 2px rgba(0, 0, 0, .22), 0 18px 48px rgba(0, 0, 0, .26);
}

/* Client routes use the same neutral/coral system as the trainer application.
   Green is reserved for success states rather than acting as the product theme. */
.gg-client-app,
.gg-public-player-layout,
.gg-client-auth-page,
.gg-cdash-screen {
    --gg-primary: #C95F4B;
    --gg-primary-strong: #A94735;
    --gg-primary-soft: #F9E8E4;
    --gg-on-primary: #FFFFFF;
    --gg-accent: #C95F4B;
    --gg-radius-lg: 18px;
}

html,
body {
    min-height: 100%;
    margin: 0;
    background: var(--gg-palette-background);
    color: var(--gg-palette-text-primary);
    font-family: var(--gg-font-body);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

:focus-visible {
    outline: 2px solid var(--gg-primary);
    outline-offset: 3px;
}

::selection {
    background: color-mix(in srgb, var(--gg-primary) 22%, transparent);
}

button,
input,
textarea,
select,
.gg-legacy-typography,
.gg-legacy-button-label,
.gg-legacy-input-label,
.gg-legacy-input,
.gg-legacy-chip-content {
    font-family: var(--gg-font-body);
}

#app {
    min-height: 100vh;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}
    .gg-finance-layout {
        gap: 1rem;
    }
    .gg-finance-strip-surface {
        padding: 0.75rem 1rem;
    }
    .gg-finance-strip {
        display: grid;
        gap: 0.75rem;
        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    }
    .gg-finance-strip-item {
        min-height: 0;
        padding: 18px 20px;
        border-radius: 22px;
        border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 18%, var(--gg-palette-divider));
        background: linear-gradient(180deg, color-mix(in srgb, var(--gg-palette-surface) 92%, var(--gg-palette-primary) 8%) 0%, var(--gg-palette-surface) 100%);
        box-shadow: var(--gg-shadow-soft);
    }
    .gg-finance-strip-item-balance {
        border-color: color-mix(in srgb, var(--gg-palette-warning) 22%, var(--gg-palette-divider));
        background: linear-gradient(180deg, color-mix(in srgb, var(--gg-palette-surface) 88%, var(--gg-palette-warning) 12%) 0%, var(--gg-palette-surface) 100%);
    }
    .gg-finance-strip-item .gg-muted {
        color: var(--gg-palette-text-secondary) !important;
        opacity: 0.98;
    }
    .gg-package-surface {
        overflow: hidden;
    }
    .gg-package-workspace {
        align-items: flex-start;
    }
    .gg-package-empty-state {
        min-height: 220px;
    }
    .gg-active-pass-card {
        padding: 1.25rem;
        border-radius: 24px;
        background:
            radial-gradient(circle at top right, color-mix(in srgb, var(--gg-palette-primary) 18%, transparent), transparent 38%),
            linear-gradient(180deg,
                color-mix(in srgb, var(--gg-palette-surface) 96%, var(--gg-palette-primary) 4%),
                color-mix(in srgb, var(--gg-palette-surface) 92%, var(--gg-palette-primary) 8%));
        border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 18%, var(--gg-palette-divider));
        color: var(--gg-palette-text-primary);
    }
    .gg-pass-name-prominent,
    .gg-pass-panel-name {
        letter-spacing: -0.03em;
        line-height: 1.05;
    }
    .gg-package-primary-actions {
        flex-wrap: wrap;
    }
    .gg-active-pass-metrics {
        display: grid;
        gap: 0.85rem;
        grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    }
    .gg-active-pass-metric {
        padding: 1rem;
        border-radius: 18px;
        background: color-mix(in srgb, var(--gg-palette-surface) 90%, var(--gg-palette-primary) 10%);
        border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 12%, var(--gg-palette-divider));
        color: var(--gg-palette-text-primary);
    }
    .gg-pass-panel-metrics {
        display: grid;
        gap: 0.75rem;
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    }
    .gg-pass-panel-metric {
        min-height: 100%;
        border-color: color-mix(in srgb, var(--gg-palette-primary) 12%, var(--gg-palette-divider)) !important;
        background: linear-gradient(180deg,
            color-mix(in srgb, var(--gg-palette-surface) 96%, var(--gg-palette-primary) 4%),
            color-mix(in srgb, var(--gg-palette-surface) 92%, var(--gg-palette-primary) 8%)) !important;
        color: var(--gg-palette-text-primary);
    }
    .gg-pass-panel-actions,
    .gg-pass-panel-danger {
        display: grid;
        gap: 0.75rem;
        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    }
    .gg-pass-side-panel {
        position: sticky;
        top: 1rem;
        border-radius: 24px;
        animation: gg-slide-in-panel 220ms ease-out;
    }
    .gg-pass-panel-action-list {
        display: grid;
        gap: 0.75rem;
    }
    .gg-pass-action-card {
        padding: 0.7rem 0.8rem;
        border-radius: 18px;
        border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 12%, var(--gg-palette-divider));
        background: linear-gradient(180deg,
            color-mix(in srgb, var(--gg-palette-surface) 96%, var(--gg-palette-primary) 4%),
            color-mix(in srgb, var(--gg-palette-surface) 92%, var(--gg-palette-primary) 8%));
        box-shadow: 0 8px 20px color-mix(in srgb, var(--gg-palette-black) 10%, transparent);
        color: var(--gg-palette-text-primary);
    }
    .gg-pass-action-card .gg-legacy-button-root {
        justify-content: flex-start;
        padding-inline: 0.2rem;
    }
    .gg-pass-action-card .gg-legacy-button-root.gg-legacy-button-text-default {
        color: var(--gg-palette-text-primary) !important;
    }
    .gg-pass-action-card-danger {
        border-color: color-mix(in srgb, var(--gg-palette-error) 22%, var(--gg-palette-divider));
        background: linear-gradient(180deg,
            color-mix(in srgb, var(--gg-palette-surface) 94%, var(--gg-palette-error) 6%),
            color-mix(in srgb, var(--gg-palette-surface) 90%, var(--gg-palette-error) 10%));
    }
    .gg-active-pass-card .gg-muted,
    .gg-active-pass-metric .gg-muted,
    .gg-pass-side-panel .gg-muted,
    .gg-pass-action-card .gg-muted,
    .gg-pass-panel-metric .gg-muted {
        color: var(--gg-palette-text-secondary) !important;
        opacity: 0.98;
    }
    .gg-pass-credit-surface {
        border: 1px solid color-mix(in srgb, var(--gg-accent-yellow) 16%, transparent);
        background:
            radial-gradient(circle at top right, color-mix(in srgb, var(--gg-accent-yellow) 8%, transparent), transparent 35%),
            linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 250, 248, 0.96));
    }
    .gg-pass-credit-choice-grid .gg-legacy-grid-item {
        display: flex;
    }
    .gg-pass-credit-choice {
        width: 100%;
        padding: 0.8rem;
        border-radius: 20px;
        border: 1px solid rgba(15, 23, 42, 0.08);
        background: rgba(255, 255, 255, 0.72);
    }
    .gg-pass-credit-choice .gg-legacy-button-root {
        justify-content: flex-start;
        padding-inline: 0.1rem;
    }
    .gg-pass-credit-choice-selected {
        border-color: color-mix(in srgb, var(--gg-accent-yellow) 30%, transparent);
        background: linear-gradient(180deg, color-mix(in srgb, var(--gg-accent-yellow) 12%, #fff), color-mix(in srgb, var(--gg-accent-yellow) 8%, #fff));
        box-shadow: 0 10px 24px color-mix(in srgb, var(--gg-accent-yellow) 10%, transparent);
    }
    .gg-pass-linked-session-card {
        border-radius: 18px;
        border-color: rgba(59, 130, 246, 0.18) !important;
        background: linear-gradient(180deg, rgba(248, 250, 255, 0.98), rgba(240, 246, 255, 0.95));
    }
    .gg-pass-session-preview {
        border-radius: 16px;
        border: 1px solid rgba(15, 23, 42, 0.08);
        background: rgba(255, 255, 255, 0.76);
    }
    .gg-pass-session-preview-grid {
        display: grid;
        gap: 0.75rem;
        grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    }
    .gg-pass-actions-dialog .gg-legacy-dialog-content {
        padding-top: 0.5rem;
    }
    @keyframes gg-slide-in-panel {
        from {
            opacity: 0;
            transform: translateX(16px);
        }
        to {
            opacity: 1;
            transform: translateX(0);
        }
    }
    @media (max-width: 959.98px) {
        .gg-finance-strip-surface {
            padding: 0.75rem;
        }
        .gg-active-pass-card {
            padding: 1rem;
        }
        .gg-pass-side-panel {
            position: static;
        }
    }

.invalid {
    outline: 1px solid #dc2626;
}

.validation-message {
    color: #dc2626;
}

#blazor-error-ui {
    color-scheme: light only;
    background: #fff5f5;
    border-top: 1px solid #fecaca;
    bottom: 0;
    box-shadow: 0 -6px 18px rgba(185, 28, 28, 0.15);
    box-sizing: border-box;
    color: #7f1d1d;
    display: none;
    left: 0;
    padding: 0.7rem 1.2rem;
    position: fixed;
    width: 100%;
    z-index: 1400;
}

#blazor-error-ui .dismiss {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.4rem;
}

.loading-progress {
    position: absolute;
    display: block;
    width: 8rem;
    height: 8rem;
    inset: 20vh 0 auto 0;
    margin: 0 auto;
}

.loading-progress circle {
    fill: none;
    stroke: #d8e1db;
    stroke-width: 0.6rem;
    transform-origin: 50% 50%;
    transform: rotate(-90deg);
}

.loading-progress circle:last-child {
    stroke: var(--gg-palette-primary);
    stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%) * 0.8), 500%;
    transition: stroke-dasharray 0.05s ease-in-out;
}

.loading-progress-text {
    position: absolute;
    text-align: center;
    font-weight: 700;
    inset: calc(20vh + 3.25rem) 0 auto 0.2rem;
}

.loading-progress-text:after {
    content: var(--blazor-load-percentage-text, "Loading");
}

.gg-main {
    min-height: 100vh;
    padding-top: 0 !important;
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--gg-palette-background) 92%, var(--gg-palette-primary) 8%) 0%,
        var(--gg-palette-background) 220px
    );
}

.gg-page {
    padding: 16px 24px 24px;
}

.gg-page-shell {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.gg-sidebar {
    border-right: 1px solid var(--gg-palette-divider);
}

.gg-sidebar .gg-legacy-drawer-content {
    background: var(--gg-palette-drawer-background);
}

.gg-logo-wrap {
    padding: 26px 22px 16px;
    display: flex;
    gap: 14px;
    align-items: center;
}

.gg-logo-mark {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    background: var(--gg-palette-primary);
    color: var(--gg-palette-primary-text);
    font-family: var(--gg-font-display);
    font-weight: 800;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--gg-shadow-soft);
}

.gg-logo {
    font-family: var(--gg-font-display);
    font-size: 1.7rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--gg-palette-drawer-text);
    line-height: 1;
}

.gg-logo-sub {
    margin-top: 5px;
    font-size: 0.74rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--gg-palette-drawer-text) 78%, transparent);
}

.gg-nav-section {
    padding: 0 20px 6px;
    font-size: 0.66rem;
    letter-spacing: 0.14em;
    font-weight: 800;
    color: color-mix(in srgb, var(--gg-palette-drawer-text) 60%, transparent);
}

.gg-sidebar .gg-legacy-navmenu {
    padding: 0 10px 16px;
}

.gg-sidebar .gg-legacy-nav-link.gg-nav-link {
    border-radius: 12px;
    margin: 3px 8px;
    padding: 10px 12px;
    color: color-mix(in srgb, var(--gg-palette-drawer-text) 84%, transparent);
    font-weight: 600;
    transition: all 160ms ease;
}

.gg-sidebar .gg-legacy-nav-link.gg-nav-link:hover {
    background: color-mix(in srgb, var(--gg-palette-primary) 16%, transparent);
    color: var(--gg-palette-drawer-text);
}

.gg-sidebar .gg-legacy-nav-link.gg-nav-link.active {
    color: var(--gg-palette-drawer-text);
    background: color-mix(in srgb, var(--gg-palette-primary) 26%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gg-palette-primary) 40%, transparent);
}

.gg-sidebar-note {
    margin: 18px;
    padding: 14px;
    border-radius: 14px;
    color: color-mix(in srgb, var(--gg-palette-drawer-text) 90%, transparent);
    background: color-mix(in srgb, var(--gg-palette-primary) 14%, transparent);
    border-color: color-mix(in srgb, var(--gg-palette-primary) 35%, transparent);
}

.gg-topbar {
    border-bottom: 1px solid var(--gg-palette-divider);
    padding: 0 8px;
    background: var(--gg-palette-appbar-background);
}

.gg-topbar .gg-legacy-toolbar {
    min-height: 42px !important;
    padding-top: 0;
    padding-bottom: 0;
}

.gg-topbar-menu {
    border-radius: 12px;
    border: 1px solid var(--gg-palette-divider);
    background: color-mix(in srgb, var(--gg-palette-surface) 88%, var(--gg-palette-primary) 12%);
}

.gg-topbar-title {
    font-family: var(--gg-font-display);
    font-weight: 700;
    font-size: 0.92rem;
    line-height: 1.2;
    letter-spacing: 0.01em;
}

.gg-topbar-callout {
    min-height: 30px;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-warning) 30%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-warning) 8%, var(--gg-palette-surface));
    font-weight: 700;
    white-space: nowrap;
}

.gg-topbar-callout:hover {
    background: color-mix(in srgb, var(--gg-palette-warning) 14%, var(--gg-palette-surface));
}

.gg-topbar-callout-badge {
    min-width: 28px;
    justify-content: center;
    font-weight: 800;
}

.gg-topbar .gg-legacy-chip {
    height: 24px;
    font-size: 0.72rem;
}

.gg-topbar .gg-legacy-switch {
    margin: 0;
}

.gg-topbar .gg-legacy-switch .gg-legacy-switch-label {
    font-size: 0.82rem;
}

.gg-topbar-theme-switch .gg-legacy-switch-label {
    font-weight: 700;
}

.gg-topbar-auth-btn {
    min-height: 30px;
    border-radius: 999px;
    font-weight: 800;
    text-transform: none;
}

.gg-topbar .gg-avatar {
    width: 32px;
    height: 32px;
    font-size: 0.92rem;
}

.gg-view-toggle-btn {
    min-width: 88px;
    font-weight: 700;
}

.gg-view-toggle-btn-active {
    box-shadow: inset 0 -2px 0 color-mix(in srgb, var(--gg-palette-primary-text) 70%, transparent);
}

.gg-topbar-subtitle {
    color: var(--gg-palette-text-secondary);
    margin-top: -3px;
}

.gg-avatar {
    background: color-mix(in srgb, var(--gg-palette-primary) 75%, var(--gg-palette-secondary) 25%);
    color: var(--gg-palette-primary-text);
    font-weight: 700;
}

.gg-auth-card {
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
}

.gg-page-header {
    padding: 26px;
    border-radius: 24px;
    border: 1px solid var(--gg-palette-divider);
    background: var(--gg-palette-surface);
    box-shadow: var(--gg-shadow-soft);
}

.gg-eyebrow {
    font-size: 0.73rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--gg-palette-text-secondary);
    font-weight: 800;
}

.gg-title {
    margin-top: 4px;
    font-family: var(--gg-font-display);
    font-weight: 800;
    letter-spacing: -0.02em;
}

.gg-surface {
    padding: 22px;
    border-radius: 20px;
    border: 1px solid var(--gg-palette-divider);
    background: var(--gg-palette-surface);
    box-shadow: var(--gg-shadow-soft);
}

.gg-sub-surface {
    border-radius: 16px;
    border: 1px solid var(--gg-palette-divider);
    background: color-mix(in srgb, var(--gg-palette-surface) 92%, var(--gg-palette-primary) 8%);
}

.gg-kpi-card {
    padding: 20px;
    border-radius: 20px;
    border: 1px solid var(--gg-palette-divider);
    background: var(--gg-palette-surface);
    min-height: 148px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: var(--gg-shadow-soft);
}

.gg-kpi-value {
    font-family: var(--gg-font-display);
    font-size: 2rem;
    font-weight: 800;
    line-height: 1.1;
}

.gg-cockpit-kpi-card {
    min-height: 138px;
}

.gg-cockpit-card {
    min-height: 100%;
}

/* ── Cockpit hero: „Most következik" + élő számok ── */
.gg-cockpit-hero {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    align-items: stretch;
    justify-content: space-between;
    padding: 20px 22px !important;
    background:
        linear-gradient(135deg,
        color-mix(in srgb, var(--gg-palette-primary) 16%, var(--gg-palette-surface)) 0%,
        color-mix(in srgb, var(--gg-palette-surface) 92%, var(--gg-palette-primary) 8%) 70%);
}
.gg-cockpit-hero-now { display: flex; flex-direction: column; gap: 4px; min-width: 240px; flex: 1 1 320px; }
.gg-cockpit-hero-client { font-size: 1.6rem; font-weight: 850; line-height: 1.1; color: var(--gg-palette-text-primary); }
.gg-cockpit-hero-headline { font-size: 0.95rem; font-weight: 650; color: var(--gg-palette-text-primary); }
.gg-cockpit-hero-meta { font-size: 0.82rem; color: var(--gg-palette-text-secondary); }
.gg-cockpit-hero-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.gg-cockpit-hero-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(124px, 1fr));
    gap: 10px;
    flex: 1 1 360px;
    align-content: center;
}
.gg-cockpit-stat--star {
    border-color: color-mix(in srgb, var(--gg-palette-primary) 55%, transparent);
    background: color-mix(in srgb, var(--gg-palette-primary) 13%, var(--gg-palette-surface));
}
.gg-cockpit-stat--star .gg-cockpit-stat-value { color: var(--gg-palette-primary); }
.gg-cockpit-stat {
    display: flex; flex-direction: column; gap: 1px;
    padding: 10px 12px; border-radius: 12px;
    background: color-mix(in srgb, var(--gg-palette-surface) 70%, transparent);
    border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,0.06));
}
.gg-cockpit-stat--alert { border-color: color-mix(in srgb, var(--gg-palette-warning) 55%, transparent); background: color-mix(in srgb, var(--gg-palette-warning) 10%, var(--gg-palette-surface)); }
.gg-cockpit-stat-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--gg-palette-text-secondary); }
.gg-cockpit-stat-value { font-size: 1.4rem; font-weight: 850; line-height: 1.1; color: var(--gg-palette-text-primary); }
.gg-cockpit-stat-sub { font-size: 0.72rem; color: var(--gg-palette-text-secondary); }
.gg-cockpit-calendar { display: flex; flex-direction: column; }

/* Split the "Most következik" hero from the live KPI numbers into two separate cards. */
.gg-cockpit-hero-split { display: flex; flex-wrap: wrap; gap: 16px; align-items: stretch; }
.gg-cockpit-hero-split .gg-cockpit-hero { flex: 1 1 320px; }
.gg-cockpit-statspanel { flex: 1 1 360px; padding: 20px 22px !important; display: flex; align-items: center; }
.gg-cockpit-statspanel .gg-cockpit-hero-stats { width: 100%; flex: 1; }

/* Day-focus card briefly pulses when the selected day changes (re-keyed in markup),
   signalling that it now reflects the picked day. */
.gg-cockpit-card--focus-pulse {
    animation: gg-focus-pulse 0.6s ease;
}

@keyframes gg-focus-pulse {
    0%   { outline: 2px solid color-mix(in srgb, var(--gg-palette-primary) 55%, transparent); outline-offset: 0; transform: scale(1.015); }
    100% { outline: 2px solid transparent; outline-offset: 6px; transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
    .gg-cockpit-card--focus-pulse { animation: none; }
}

/* ── Coaching jóváhagyási sor (online beküldések) ── */
.gg-cockpit-review { padding: 16px 18px !important; }
.gg-cockpit-review-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.gg-cockpit-review-empty { display: flex; align-items: center; gap: 12px; }
.gg-cockpit-review-empty-text { flex: 1 1 auto; min-width: 0; }
.gg-cockpit-review-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.gg-cockpit-review-item {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 12px; border-radius: 12px;
    background: color-mix(in srgb, var(--gg-palette-warning) 8%, var(--gg-palette-surface));
    border: 1px solid color-mix(in srgb, var(--gg-palette-warning) 40%, transparent);
}
.gg-cockpit-review-avatar {
    flex: 0 0 auto; width: 36px; height: 36px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 0.8rem; font-weight: 800;
    background: color-mix(in srgb, var(--gg-palette-primary) 24%, transparent);
    color: var(--gg-palette-primary);
}
.gg-cockpit-review-main { flex: 1 1 auto; min-width: 0; }
.gg-cockpit-review-main .gg-legacy-typography { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ── Coaching review: átfedő kártyacsomag + hover fan-out + Play (desktop) ── */
.gg-review-launch { display: flex; flex-direction: column; gap: 12px; }
.gg-review-fan { display: flex; align-items: center; padding: 12px 6px 16px; min-height: 78px; }
.gg-review-fan-card {
    flex: 0 0 auto; display: flex; align-items: center; gap: 10px;
    width: 240px; padding: 11px 15px; text-align: left; cursor: pointer;
    border-radius: 16px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-warning) 42%, transparent);
    background: color-mix(in srgb, var(--gg-palette-warning) 9%, var(--gg-palette-surface));
    box-shadow: 0 8px 20px rgba(0,0,0,0.32);
    transition: transform .28s cubic-bezier(.2,.7,.3,1), box-shadow .2s ease;
}
.gg-review-fan-card:not(:first-child) { margin-left: -176px; }
.gg-review-fan-avatar {
    flex: 0 0 auto; width: 38px; height: 38px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 0.84rem; font-weight: 800;
    background: color-mix(in srgb, var(--gg-palette-primary) 26%, transparent);
    color: var(--gg-palette-primary);
}
.gg-review-fan-info { display: flex; flex-direction: column; min-width: 0; }
.gg-review-fan-name { font-size: 0.9rem; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--gg-palette-text-primary); }
.gg-review-fan-workout { font-size: 0.74rem; color: var(--gg-palette-text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

@media (hover: hover) {
    .gg-review-fan-card:hover { transform: translateY(-10px) scale(1.04); z-index: 6; box-shadow: 0 18px 38px rgba(0,0,0,0.48); }
    .gg-review-fan-card:hover ~ .gg-review-fan-card { transform: translateX(186px); }
}

.gg-review-play { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.gg-review-play-hint { font-size: 0.8rem; color: var(--gg-palette-text-secondary); }

/* ── Mobil: csak avatar-csomag + Play ── */
.gg-review-m { padding: 14px 16px !important; display: flex; flex-direction: column; gap: 12px; }
.gg-review-m-head { display: flex; align-items: center; gap: 12px; }
.gg-review-m-avatars { display: flex; }
.gg-review-m-avatar {
    width: 34px; height: 34px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 0.74rem; font-weight: 800;
    background: color-mix(in srgb, var(--gg-palette-primary) 24%, transparent);
    color: var(--gg-palette-primary);
    border: 2px solid var(--gg-palette-surface);
}
.gg-review-m-avatar:not(:first-child) { margin-left: -10px; }
.gg-review-m-text { display: flex; flex-direction: column; min-width: 0; }
.gg-review-m-text strong { font-size: 0.9rem; color: var(--gg-palette-text-primary); }
.gg-review-m-text span { font-size: 0.76rem; color: var(--gg-palette-text-secondary); }

/* ── Online edzés-átnéző pakli ── */
.gg-deck { width: min(540px, calc(100vw - 24px)); display: flex; flex-direction: column; gap: 10px; }
.gg-deck-head { display: flex; align-items: center; justify-content: space-between; color: var(--gg-palette-text-primary); }
.gg-deck-head-title { font-size: 1.15rem; font-weight: 850; }
.gg-deck-stack { position: relative; }
.gg-deck-ghost {
    position: absolute; left: 0; right: 0; top: 0; height: 60px;
    border-radius: 16px; background: var(--gg-palette-surface);
    border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,0.08));
}
.gg-deck-ghost-1 { transform: translateY(-8px) scale(0.97); opacity: 0.7; }
.gg-deck-ghost-2 { transform: translateY(-16px) scale(0.94); opacity: 0.45; }
.gg-deck-card {
    position: relative;
    display: flex; flex-direction: column;
    max-height: min(78vh, 720px);
    border-radius: 16px;
    background: var(--gg-palette-surface);
    border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,0.10));
    box-shadow: 0 18px 40px rgba(0,0,0,0.4);
    overflow: hidden;
    animation: gg-deck-in .3s cubic-bezier(.2,.7,.3,1.1);
    transform-origin: bottom center;
}
.gg-deck-card.is-leaving { animation: gg-deck-out .3s ease forwards; }
@keyframes gg-deck-in {
    from { opacity: 0; transform: translateY(18px) scale(0.95) rotate(-1deg); }
    to { opacity: 1; transform: none; }
}
@keyframes gg-deck-out {
    to { opacity: 0; transform: translateX(80px) translateY(-12px) rotate(7deg) scale(0.92); }
}
.gg-deck-ghost { transition: transform .3s ease, opacity .3s ease; }
.gg-deck-card.is-leaving ~ .gg-deck-ghost,
.gg-deck-stack:has(.is-leaving) .gg-deck-ghost-1 { transform: translateY(-4px) scale(0.98); }
.gg-deck-card-head {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 16px 18px; border-bottom: 1px solid var(--gg-palette-divider);
}
.gg-deck-card-workout { font-size: 1.05rem; font-weight: 800; color: var(--gg-palette-text-primary); }
.gg-deck-card-meta { font-size: 0.8rem; color: var(--gg-palette-text-secondary); }
.gg-deck-adherence { display: flex; flex-direction: column; align-items: flex-end; line-height: 1; }
.gg-deck-adherence-value { font-size: 1.7rem; font-weight: 850; }
.gg-deck-adherence-label { font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--gg-palette-text-secondary); }
.gg-deck-adherence.is-high .gg-deck-adherence-value { color: var(--gg-palette-success); }
.gg-deck-adherence.is-mid .gg-deck-adherence-value { color: var(--gg-palette-warning); }
.gg-deck-adherence.is-low .gg-deck-adherence-value { color: var(--gg-palette-error); }

.gg-deck-card-body { flex: 1 1 auto; overflow-y: auto; padding: 12px 18px; display: flex; flex-direction: column; gap: 8px; }
.gg-deck-ex { padding: 8px 10px; border-radius: 10px; background: color-mix(in srgb, var(--gg-palette-background) 55%, var(--gg-palette-surface)); }
.gg-deck-ex-main { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 4px; }
.gg-deck-ex-name { font-size: 0.88rem; font-weight: 700; color: var(--gg-palette-text-primary); }
.gg-deck-ex-status { font-size: 0.66rem; font-weight: 800; padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
.gg-deck-ex-status.is-done { color: var(--gg-palette-success); background: color-mix(in srgb, var(--gg-palette-success) 16%, transparent); }
.gg-deck-ex-status.is-partial { color: var(--gg-palette-warning); background: color-mix(in srgb, var(--gg-palette-warning) 16%, transparent); }
.gg-deck-ex-status.is-missed { color: var(--gg-palette-error); background: color-mix(in srgb, var(--gg-palette-error) 16%, transparent); }
.gg-deck-ex-cols { display: flex; align-items: center; gap: 8px; }
.gg-deck-ex-col { display: flex; flex-direction: column; flex: 1 1 0; min-width: 0; }
.gg-deck-ex-col-label { font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--gg-palette-text-secondary); }
.gg-deck-ex-col-val { font-size: 0.84rem; font-weight: 650; color: var(--gg-palette-text-primary); }
.gg-deck-ex-arrow { color: var(--gg-palette-text-secondary); flex: 0 0 auto; }
.gg-deck-empty { font-size: 0.84rem; color: var(--gg-palette-text-secondary); padding: 10px 0; }

.gg-deck-card-summary {
    display: flex; gap: 14px; align-items: center;
    padding: 12px 18px; border-top: 1px solid var(--gg-palette-divider);
    background: color-mix(in srgb, var(--gg-palette-background) 40%, var(--gg-palette-surface));
}
.gg-deck-summary-heatmap { flex: 0 0 auto; }
.gg-deck-summary-heatmap .gg-muscle-heatmap { width: 116px; }
.gg-deck-summary-info { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.gg-deck-summary-row { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.gg-deck-summary-k { font-size: 0.72rem; color: var(--gg-palette-text-secondary); }
.gg-deck-summary-v { font-size: 0.86rem; font-weight: 800; color: var(--gg-palette-text-primary); }
.gg-deck-summary-muscles { font-weight: 650; text-align: right; }
.gg-deck-summary-bar { height: 8px; border-radius: 999px; background: var(--gg-palette-lines-default, rgba(255,255,255,0.1)); overflow: hidden; }
.gg-deck-summary-bar span { display: block; height: 100%; border-radius: 999px; background: var(--gg-palette-primary); }
.gg-deck-summary-bar span.is-high { background: var(--gg-palette-success); }
.gg-deck-summary-bar span.is-mid { background: var(--gg-palette-warning); }
.gg-deck-summary-bar span.is-low { background: var(--gg-palette-error); }

.gg-deck-card-footer {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 12px 18px; border-top: 1px solid var(--gg-palette-divider);
    background: var(--gg-palette-surface);
}
.gg-deck-progress { font-size: 0.78rem; font-weight: 700; color: var(--gg-palette-text-secondary); }
.gg-deck-card-footer .gg-legacy-button-root { min-width: 120px; }

.gg-deck-done { align-items: center; justify-content: center; text-align: center; padding: 40px 26px; gap: 12px; }
.gg-deck-done-icon { font-size: 3.2rem !important; width: 3.2rem !important; height: 3.2rem !important; }
.gg-deck-done-title { font-size: 1.35rem; font-weight: 850; color: var(--gg-palette-text-primary); }
.gg-deck-done-sub { font-size: 0.86rem; color: var(--gg-palette-text-secondary); max-width: 340px; }
.gg-deck-done-actions { display: flex; gap: 10px; margin-top: 10px; }

/* ── Online coaching hub: triage-sáv + kliens-állapotok ── */
.gg-oc-triage { padding: 14px 18px !important; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.gg-oc-triage-done { display: flex; align-items: center; gap: 10px; font-weight: 750; color: var(--gg-palette-text-primary); }
.gg-oc-triage-items { display: flex; gap: 10px; flex-wrap: wrap; }
.gg-oc-triage-item { display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border-radius: 999px; font-size: 0.85rem; font-weight: 700; border: 1px solid transparent; }
.gg-oc-triage-item strong { font-size: 1.05rem; }
button.gg-oc-triage-item { cursor: pointer; }
.gg-oc-triage-item.is-review { color: var(--gg-palette-primary); background: color-mix(in srgb, var(--gg-palette-primary) 14%, transparent); border-color: color-mix(in srgb, var(--gg-palette-primary) 40%, transparent); }
.gg-oc-triage-item.is-noplan { color: var(--gg-palette-error); background: color-mix(in srgb, var(--gg-palette-error) 12%, transparent); border-color: color-mix(in srgb, var(--gg-palette-error) 38%, transparent); }
.gg-oc-triage-item.is-silent { color: var(--gg-palette-warning); background: color-mix(in srgb, var(--gg-palette-warning) 12%, transparent); border-color: color-mix(in srgb, var(--gg-palette-warning) 38%, transparent); }

.gg-oc-client-list { display: flex; flex-direction: column; gap: 8px; }
.gg-oc-client { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--gg-palette-divider); background: color-mix(in srgb, var(--gg-palette-background) 30%, var(--gg-palette-surface)); }
.gg-oc-client.is-review { border-color: color-mix(in srgb, var(--gg-palette-primary) 45%, transparent); }
.gg-oc-client.is-noplan { border-color: color-mix(in srgb, var(--gg-palette-error) 40%, transparent); }
.gg-oc-client.is-silent, .gg-oc-client.is-behind { border-color: color-mix(in srgb, var(--gg-palette-warning) 40%, transparent); }
.gg-oc-client-avatar { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 0.85rem; background: color-mix(in srgb, var(--gg-palette-primary) 24%, transparent); color: var(--gg-palette-primary); }
.gg-oc-client-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.gg-oc-client-name { font-weight: 750; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gg-oc-badge { align-self: flex-start; font-size: 0.66rem; font-weight: 800; padding: 1px 8px; border-radius: 999px; }
.gg-oc-badge.is-review { color: var(--gg-palette-primary); background: color-mix(in srgb, var(--gg-palette-primary) 16%, transparent); }
.gg-oc-badge.is-noplan { color: var(--gg-palette-error); background: color-mix(in srgb, var(--gg-palette-error) 14%, transparent); }
.gg-oc-badge.is-silent, .gg-oc-badge.is-behind { color: var(--gg-palette-warning); background: color-mix(in srgb, var(--gg-palette-warning) 14%, transparent); }
.gg-oc-badge.is-ok { color: var(--gg-palette-success); background: color-mix(in srgb, var(--gg-palette-success) 12%, transparent); }
.gg-oc-client-adherence { flex: 0 0 auto; display: flex; align-items: baseline; gap: 5px; font-size: 0.8rem; color: var(--gg-palette-text-secondary); }
.gg-oc-client-adherence strong { font-size: 0.98rem; color: var(--gg-palette-text-primary); }
.gg-oc-client-action { flex: 0 0 auto; }
@media (max-width: 760px) { .gg-oc-client-adherence { display: none; } }

/* ── Gyakorlat kedvenc (szív) + gyakran-használt (sárga csillag) ── */
.gg-ex-name-cell { display: flex; align-items: center; gap: 6px; }
.gg-ex-name-line { display: flex; align-items: center; gap: 4px; }

/* ── Izomcsoport-címke (PNG + név) a listákban ── */
.gg-mg-tag { display: inline-flex; align-items: center; gap: 7px; min-width: 0; }
.gg-mg-tag-img { width: 36px; height: 36px; object-fit: contain; flex: 0 0 auto; }
.gg-mg-tag-name { font-size: 0.84rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gg-equip-tag { display: inline-flex; align-items: center; gap: 9px; min-width: 0; }
/* Az eszközképek átlátszó hátterűek → világos, lekerekített keret; a kép a kereten belül kinagyítva (overflow: hidden klippel). */
.gg-equip-tag-frame { width: 54px; height: 54px; flex: 0 0 auto; border-radius: 12px; background: #fff; border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 55%, transparent); overflow: hidden; display: inline-flex; align-items: center; justify-content: center; }
.gg-equip-tag-img { width: 100%; height: 100%; object-fit: contain; transform: scale(1.1); }
.gg-equip-tag-name { font-size: 0.84rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gg-force-tag { display: inline-flex; align-items: center; gap: 7px; min-width: 0; }
.gg-force-tag-img { width: 46px; height: 46px; object-fit: contain; flex: 0 0 auto; }
.gg-force-tag-name { font-size: 0.84rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gg-level-tag { display: inline-flex; align-items: center; gap: 7px; min-width: 0; }
.gg-level-tag-img { width: 46px; height: 46px; object-fit: contain; flex: 0 0 auto; }
.gg-level-tag-name { font-size: 0.84rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gg-mechanic-tag { display: inline-flex; align-items: center; gap: 7px; min-width: 0; }
.gg-mechanic-tag-img { width: 46px; height: 46px; object-fit: contain; flex: 0 0 auto; }
.gg-mechanic-tag-name { font-size: 0.84rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gg-category-tag { display: inline-flex; align-items: center; gap: 7px; min-width: 0; }
.gg-category-tag-img { width: 46px; height: 46px; object-fit: contain; flex: 0 0 auto; }
.gg-category-tag-name { font-size: 0.84rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Detail-modal attribútum-kártyák: a tag "kártya" módja — ikon balra, mellette (címke fölött / érték alatt), függőlegesen középre igazítva. */
.gg-attr-card { height: 100%; display: flex; align-items: center; }
.gg-tag-card { align-items: center; gap: 12px; width: 100%; }
.gg-tag-card-body { display: inline-flex; flex-direction: column; min-width: 0; gap: 1px; }
.gg-tag-card-label { font-size: 0.72rem; letter-spacing: 0.02em; line-height: 1.25; color: var(--gg-palette-text-secondary); }
.gg-tag-card .gg-level-tag-name,
.gg-tag-card .gg-mg-tag-name,
.gg-tag-card .gg-force-tag-name,
.gg-tag-card .gg-mechanic-tag-name,
.gg-tag-card .gg-category-tag-name,
.gg-tag-card .gg-equip-tag-name { font-size: 0.95rem; font-weight: 600; line-height: 1.2; white-space: normal; overflow: visible; text-overflow: clip; }
/* Egységes ikonméret kártya-módban → minden kártyán azonos x-en kezdődik a szövegblokk. */
.gg-tag-card .gg-level-tag-img,
.gg-tag-card .gg-mg-tag-img,
.gg-tag-card .gg-force-tag-img,
.gg-tag-card .gg-category-tag-img,
.gg-tag-card .gg-mechanic-tag-img { width: 44px; height: 44px; }
.gg-tag-card .gg-equip-tag-frame { width: 44px; height: 44px; }

/* Exercise photos: list info-icon hover popup + detail-modal images */
.gg-ex-info-icon { color: var(--gg-palette-text-secondary); cursor: help; margin-left: 2px; }
.gg-ex-info-icon:hover { color: var(--gg-palette-primary); }
.gg-ex-info-icon-clickable { cursor: pointer; }
.gg-ex-imgpop { display: flex; gap: 8px; padding: 2px; }
.gg-ex-imgpop img { width: 150px; height: 150px; object-fit: contain; background: #fff; border-radius: 8px; }
.gg-ex-detail-images { display: flex; flex-wrap: wrap; gap: 12px; margin: 4px 0 8px; }
.gg-ex-detail-images img { width: 260px; max-width: 100%; aspect-ratio: 1 / 1; object-fit: contain; background: #fff; border-radius: 12px; border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 50%, transparent); }

/* ── Szint vizualizáció: 3 növekvő bar, nehézség szerinti színnel ── */
.gg-level-bars { display: inline-flex; align-items: flex-end; gap: 3px; height: 18px; }
.gg-level-bar { width: 5px; border-radius: 2px; background: color-mix(in srgb, var(--gg-palette-text-secondary) 22%, transparent); }
.gg-level-bar-1 { height: 8px; }
.gg-level-bar-2 { height: 13px; }
.gg-level-bar-3 { height: 18px; }
/* Kezdő = zöld, középhaladó = sárga, haladó = piros — telített színnel, hogy ránézésre elkülönüljenek. */
.gg-level-1 .gg-level-bar.is-on { background: var(--gg-palette-success); }
.gg-level-2 .gg-level-bar.is-on { background: var(--gg-palette-warning); }
.gg-level-3 .gg-level-bar.is-on { background: var(--gg-palette-error); }
.gg-ex-badges { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 2px; }
.gg-ex-badge { font-size: 0.64rem; font-weight: 800; padding: 1px 7px; border-radius: 999px; white-space: nowrap; }
.gg-ex-badge-custom { color: var(--gg-palette-success); background: color-mix(in srgb, var(--gg-palette-success) 16%, transparent); }
.gg-ex-badge-frequent { color: var(--gg-palette-info); background: color-mix(in srgb, var(--gg-palette-info) 16%, transparent); }
.gg-ex-badge-fav { color: var(--gg-palette-warning); background: color-mix(in srgb, var(--gg-palette-warning) 18%, transparent); }
.gg-ex-badge-mechanic.is-compound { color: var(--gg-palette-primary); background: color-mix(in srgb, var(--gg-palette-primary) 16%, transparent); }
.gg-ex-badge-mechanic.is-isolation { color: var(--gg-palette-secondary); background: color-mix(in srgb, var(--gg-palette-secondary) 16%, transparent); }

@media (max-width: 640px) {
    .gg-cockpit-hero-stats { grid-template-columns: repeat(2, 1fr); }
    .gg-cockpit-hero-client { font-size: 1.35rem; }
}

.gg-focus-card {
    background:
        linear-gradient(145deg,
        color-mix(in srgb, var(--gg-palette-primary) 12%, var(--gg-palette-surface)) 0%,
        color-mix(in srgb, var(--gg-palette-surface) 94%, var(--gg-palette-secondary) 6%) 100%);
}

.gg-focus-next-session {
    padding: 16px 18px;
    border-radius: 18px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 22%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-surface) 86%, var(--gg-palette-primary) 14%);
}

.gg-focus-metric {
    height: 100%;
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid var(--gg-palette-divider);
    background: color-mix(in srgb, var(--gg-palette-surface) 90%, var(--gg-palette-primary) 10%);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.gg-focus-metric strong {
    font-family: var(--gg-font-display);
    font-size: 1.35rem;
    line-height: 1;
}

.gg-focus-metric-alert {
    border-color: color-mix(in srgb, var(--gg-palette-warning) 34%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-warning) 12%, var(--gg-palette-surface));
}

.gg-focus-metric-label {
    font-size: 0.74rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--gg-palette-text-secondary);
    font-weight: 700;
}

.gg-calendar-card {
    overflow: hidden;
}

.gg-mini-calendar-weekdays,
.gg-mini-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.gg-mini-calendar-weekdays {
    gap: 8px;
    margin-bottom: 10px;
}

.gg-mini-calendar-weekdays span {
    text-align: center;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--gg-palette-text-secondary);
}

.gg-mini-calendar-grid {
    gap: 8px;
}

.gg-mini-calendar-day {
    min-height: 68px;
    padding: 10px 6px 8px;
    border-radius: 16px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 88%, transparent);
    background: color-mix(in srgb, var(--gg-palette-surface) 94%, var(--gg-palette-primary) 6%);
    color: var(--gg-palette-text-primary);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    transition: transform 140ms ease, border-color 140ms ease, background 140ms ease;
}

.gg-mini-calendar-day:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--gg-palette-primary) 30%, var(--gg-palette-divider));
}

.gg-mini-calendar-day.is-outside {
    opacity: 0.45;
}

.gg-mini-calendar-day.is-today {
    border-color: color-mix(in srgb, var(--gg-palette-secondary) 38%, var(--gg-palette-divider));
}

.gg-mini-calendar-day.is-selected {
    background: color-mix(in srgb, var(--gg-palette-primary) 18%, var(--gg-palette-surface));
    border-color: color-mix(in srgb, var(--gg-palette-primary) 42%, var(--gg-palette-divider));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gg-palette-primary) 18%, transparent);
}

.gg-mini-calendar-number {
    font-weight: 800;
    font-size: 0.95rem;
}

.gg-mini-calendar-dots {
    min-height: 8px;
    display: flex;
    gap: 4px;
}

.gg-mini-calendar-dot {
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: var(--gg-palette-primary);
    opacity: 0.92;
}

.gg-attention-item {
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid var(--gg-palette-divider);
    background: color-mix(in srgb, var(--gg-palette-surface) 93%, var(--gg-palette-primary) 7%);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.gg-revenue-stat {
    height: 100%;
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid var(--gg-palette-divider);
    background: color-mix(in srgb, var(--gg-palette-surface) 91%, var(--gg-palette-success) 9%);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.gg-revenue-stat span {
    font-size: 0.78rem;
    color: var(--gg-palette-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
}

.gg-revenue-stat strong {
    font-family: var(--gg-font-display);
    font-size: 1.25rem;
    line-height: 1.1;
}

.gg-revenue-stat-warning {
    background: color-mix(in srgb, var(--gg-palette-surface) 90%, var(--gg-palette-warning) 10%);
}

.gg-session-row-card {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr) auto auto;
    gap: 14px;
    align-items: center;
    padding: 14px 16px;
    border-radius: 18px;
    border: 1px solid var(--gg-palette-divider);
    background: color-mix(in srgb, var(--gg-palette-surface) 95%, var(--gg-palette-primary) 5%);
}

.gg-session-row-time {
    font-family: var(--gg-font-display);
    font-size: 1.05rem;
    font-weight: 800;
}

.gg-session-row-main {
    min-width: 0;
}

.gg-session-row-main .gg-legacy-typography-body2 {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gg-session-row-action {
    justify-self: end;
}

.apexcharts-canvas .apexcharts-text,
.apexcharts-canvas text {
    fill: var(--gg-palette-text-secondary) !important;
}

.apexcharts-tooltip {
    border: 1px solid var(--gg-palette-divider) !important;
    background: var(--gg-palette-surface) !important;
    color: var(--gg-palette-text-primary) !important;
}

.gg-positive {
    color: var(--gg-palette-success);
    font-weight: 700;
}

.gg-muted {
    color: var(--gg-palette-text-secondary);
}

.gg-surface .gg-legacy-table-root,
.gg-sub-surface .gg-legacy-table-root {
    border: 1px solid var(--gg-palette-divider);
    border-radius: 14px;
    overflow: hidden;
}

.gg-surface .gg-legacy-table-head,
.gg-sub-surface .gg-legacy-table-head {
    background: color-mix(in srgb, var(--gg-palette-primary) 10%, var(--gg-palette-surface));
}

.gg-surface .gg-legacy-table-cell,
.gg-sub-surface .gg-legacy-table-cell {
    border-bottom-color: color-mix(in srgb, var(--gg-palette-divider) 86%, transparent);
}

.gg-surface .gg-legacy-input-outlined-border,
.gg-sub-surface .gg-legacy-input-outlined-border {
    border-color: color-mix(in srgb, var(--gg-palette-divider) 84%, transparent);
}

.gg-surface .gg-legacy-input-slot,
.gg-sub-surface .gg-legacy-input-slot {
    border-radius: 12px;
}

.gg-surface .gg-legacy-chip,
.gg-sub-surface .gg-legacy-chip {
    border-radius: 999px;
}

.workout-composer {
    position: sticky;
    bottom: 8px;
    z-index: 10;
    background: var(--gg-palette-surface);
}

.composer-picker {
    padding: 12px;
    border: 1px dashed var(--gg-palette-divider);
    border-radius: 16px;
    background: color-mix(in srgb, var(--gg-palette-primary) 12%, var(--gg-palette-surface));
}

.composer-picker-strong {
    border-style: solid;
    border-color: color-mix(in srgb, var(--gg-palette-primary) 50%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-primary) 14%, var(--gg-palette-surface));
}

.composer-picker-clickable {
    cursor: pointer;
    min-height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.composer-picker-label {
    width: 100%;
    text-align: center;
    font-weight: 700;
}

.composer-picker-label-main {
    font-weight: 800;
}

.composer-submit-button {
    min-height: 46px;
    border-radius: 12px;
    font-weight: 800;
    letter-spacing: 0.01em;
    text-transform: none;
}

.composer-entry-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 36px minmax(0, 1fr) 30px;
    align-items: center;
    gap: 4px;
    width: 100%;
    min-width: 0;
}

.composer-entry-input {
    min-width: 0;
    width: 100%;
}

.gg-workout-player-page .composer-entry-input .gg-legacy-input-control {
    width: 100%;
    margin: 0;
}

.gg-workout-player-page .composer-entry-input .gg-legacy-input-control-input-container,
.gg-workout-player-page .composer-entry-input .gg-legacy-input,
.gg-workout-player-page .composer-entry-input .gg-legacy-input-root.gg-legacy-input-root-outlined,
.gg-workout-player-page .composer-entry-input input.gg-legacy-input-slot {
    min-height: 34px;
    height: 34px;
}

.gg-workout-player-page .composer-entry-input input.gg-legacy-input-slot {
    padding-top: 0;
    padding-bottom: 0;
    line-height: 1.05;
    font-size: 0.9rem;
    font-weight: 700;
}

.gg-workout-player-page .composer-entry-input .gg-legacy-input-numeric-spin {
    display: none;
}

.composer-entry-separator {
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    color: var(--gg-palette-text-primary);
    font-size: 0.9rem;
    white-space: nowrap;
    line-height: 1;
    padding-bottom: 0;
}

.composer-add-set-btn {
    display: inline-flex;
    min-width: 30px;
    width: 30px;
    height: 30px;
    border-radius: 999px;
    padding: 0;
    margin-bottom: 0;
    justify-self: end;
    align-items: center;
    justify-content: center;
    background: var(--gg-accent-yellow);
    color: #111111;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, #111111 12%, transparent);
}

.composer-add-set-btn .gg-legacy-icon-root {
    font-size: 0.82rem;
    font-weight: 800;
}

.gg-workout-player-page .composer-submit-desktop {
    display: none;
}

.gg-workout-player-page .composer-picker,
.gg-workout-player-page .composer-picker-strong {
    border-style: solid;
    border-width: 1px;
    border-color: color-mix(in srgb, var(--gg-palette-primary) 72%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-primary) 18%, var(--gg-palette-surface));
}

.gg-workout-player-page .composer-picker .gg-legacy-typography,
.gg-workout-player-page .composer-picker .gg-muted {
    color: var(--gg-palette-text-primary);
}

.gg-workout-player-page .composer-picker .gg-legacy-icon-root {
    color: var(--gg-palette-primary);
}

.exercise-order-badge {
    width: 56px;
    height: 42px;
    border-radius: 12px;
    background: var(--gg-palette-primary);
    color: var(--gg-palette-primary-text);
    font-weight: 700;
    font-size: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.exercise-range-badge {
    min-width: 56px;
    height: 32px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--gg-palette-primary) 18%, var(--gg-palette-surface));
    color: var(--gg-palette-text-primary);
    font-weight: 700;
    font-size: 14px;
    padding: 0 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.gg-workout-player-page .gg-exercise-log-card {
    border: 1px solid var(--gg-palette-divider);
    border-radius: 14px;
    padding: 10px;
    background: color-mix(in srgb, var(--gg-palette-surface) 92%, var(--gg-palette-primary) 8%);
}

.gg-workout-player-page .gg-exercise-log-head {
    gap: 10px;
    min-width: 0;
}

.gg-workout-player-page .gg-exercise-log-title {
    font-weight: 800;
    line-height: 1.25;
    min-width: 0;
    overflow-wrap: anywhere;
}

.gg-workout-player-page .gg-exercise-log-count {
    min-width: 76px;
    padding-left: 10px;
    padding-right: 10px;
    text-transform: none;
    letter-spacing: 0;
    font-size: 0.78rem;
    font-weight: 800;
    justify-content: center;
}

.gg-workout-player-page .gg-exercise-set-list {
    margin-top: 6px;
}

.gg-workout-player-page .gg-exercise-set-row {
    min-height: 32px;
    border-radius: 9px;
    padding: 5px 10px;
    background: color-mix(in srgb, var(--gg-palette-primary) 22%, var(--gg-palette-surface));
    color: var(--gg-palette-text-primary);
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 800;
    min-width: 0;
    flex-wrap: wrap;
}

.gg-workout-player-page .gg-exercise-set-row--planned {
    background: color-mix(in srgb, var(--gg-palette-surface) 92%, var(--gg-palette-warning) 8%);
    border: 1px dashed color-mix(in srgb, var(--gg-palette-warning) 42%, var(--gg-palette-divider));
    color: var(--gg-palette-text-primary);
}

.gg-workout-player-page .gg-exercise-set-row--skipped {
    background: color-mix(in srgb, var(--gg-palette-surface) 92%, var(--gg-palette-text-secondary) 8%);
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 86%, transparent);
    color: var(--gg-palette-text-secondary);
}

.gg-workout-player-page .gg-exercise-set-row--active-target {
    box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--gg-palette-primary) 58%, transparent);
}

.gg-workout-player-page .gg-exercise-set-index {
    min-width: 20px;
}

.gg-workout-player-page .gg-exercise-set-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.gg-workout-player-page .gg-exercise-set-text {
    letter-spacing: 0.01em;
    line-height: 1.15;
    min-width: 0;
    overflow-wrap: anywhere;
}

.gg-workout-player-page .gg-set-complete-btn {
    margin-left: auto;
    min-height: 28px;
    border-radius: 999px;
    text-transform: none;
    font-weight: 800;
}

.gg-planned-progress-strip,
.gg-target-set-banner {
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 18%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-primary) 6%, var(--gg-palette-surface));
}

.gg-workout-player-page .gg-workout-header {
    border-radius: 18px;
}

.gg-workout-player-page .workout-header-row,
.gg-workout-player-page .workout-header-meta {
    min-width: 0;
}

.gg-workout-player-page .workout-header-meta .gg-legacy-typography-h6 {
    font-weight: 800;
    letter-spacing: -0.01em;
    overflow-wrap: anywhere;
}

.gg-workout-player-page .workout-header-actions {
    align-items: flex-end;
}

.gg-workout-player-page .workout-primary-actions {
    align-items: center;
}

.gg-workout-player-page .workout-header-actions .gg-legacy-chip {
    font-weight: 800;
    border-radius: 999px;
    min-width: 92px;
    justify-content: center;
}

.gg-workout-player-page .workout-end-btn,
.gg-workout-player-page .workout-discard-btn {
    border-radius: 10px;
    min-height: 42px;
    font-weight: 800;
    text-transform: none;
}

.gg-workout-player-page .workout-end-btn {
    min-width: 132px;
    letter-spacing: 0.01em;
}

.gg-workout-player-page .workout-discard-btn {
    min-height: 38px;
    min-width: 92px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--gg-palette-error) 14%, var(--gg-palette-surface));
    color: var(--gg-palette-error);
    border: 1px solid color-mix(in srgb, var(--gg-palette-error) 22%, transparent);
}

.gg-workout-player-page .gg-workout-mode-switch {
    display: inline-grid;
    grid-template-columns: repeat(2, minmax(104px, 1fr));
    gap: 4px;
    width: min(100%, 280px);
    padding: 4px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 88%, transparent);
    border-radius: 14px;
    background: color-mix(in srgb, var(--gg-palette-surface) 88%, var(--gg-palette-background));
}

.gg-workout-player-page .gg-workout-mode-button {
    min-height: 38px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--gg-palette-text-secondary);
    font-weight: 800;
    cursor: pointer;
}

.gg-workout-player-page .gg-workout-mode-button--active {
    background: var(--gg-palette-primary);
    color: var(--gg-palette-primary-text);
    box-shadow: 0 10px 24px color-mix(in srgb, var(--gg-palette-primary) 18%, transparent);
}

.gg-workout-player-page .gg-workout-player {
    padding: 20px;
    border-radius: 18px;
    overflow: hidden;
}

.gg-player-empty,
.gg-player-complete {
    min-height: 420px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 12px;
    text-align: center;
    padding: 28px;
}

.gg-player-empty .gg-legacy-icon-root,
.gg-player-complete .gg-legacy-icon-root {
    font-size: 3rem;
    color: var(--gg-palette-primary);
}

.gg-player-progress {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 8px 16px;
}

.gg-player-progress-bar {
    grid-column: 1 / -1;
}

.gg-player-progress-count {
    color: var(--gg-palette-primary);
    font-weight: 900;
}

.gg-player-current-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(340px, 1.1fr);
    gap: 18px;
    align-items: stretch;
}

.gg-player-focus {
    border-radius: 18px;
    padding: 22px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 16%, var(--gg-palette-divider));
    border-left: 4px solid var(--gg-palette-primary);
    background:
        linear-gradient(140deg, color-mix(in srgb, var(--gg-palette-primary) 12%, transparent), transparent 42%),
        color-mix(in srgb, var(--gg-palette-surface) 95%, var(--gg-palette-primary));
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.gg-player-exercise-name {
    font-weight: 900;
    letter-spacing: 0;
    overflow-wrap: anywhere;
}

.gg-player-next-card {
    margin-top: auto;
    width: 100%;
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 86%, transparent);
    border-radius: 14px;
    background: color-mix(in srgb, var(--gg-palette-background) 82%, var(--gg-palette-surface));
    color: var(--gg-palette-text-primary);
    padding: 14px;
    display: grid;
    gap: 2px;
    text-align: left;
    cursor: pointer;
}

.gg-player-next-card span,
.gg-player-next-card small {
    color: var(--gg-palette-text-secondary);
    font-weight: 700;
}

.gg-player-next-card strong {
    font-size: 1rem;
}

.gg-player-set-card {
    border-radius: 18px;
    padding: 18px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 22%, var(--gg-palette-divider));
    background: var(--gg-palette-surface);
    box-shadow: 0 18px 42px color-mix(in srgb, var(--gg-palette-primary) 9%, transparent);
    display: grid;
    gap: 14px;
}

.gg-player-set-card--done {
    border-color: color-mix(in srgb, var(--gg-palette-success) 46%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-success) 8%, var(--gg-palette-surface));
}

.gg-player-set-card--skipped {
    border-color: color-mix(in srgb, var(--gg-palette-warning) 46%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-warning) 8%, var(--gg-palette-surface));
}

.gg-player-set-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.gg-player-target {
    font-weight: 900;
    letter-spacing: 0;
}

.gg-player-set-state {
    border-radius: 9px;
    padding: 7px 11px;
    background: color-mix(in srgb, var(--gg-palette-primary) 14%, var(--gg-palette-surface));
    color: var(--gg-palette-primary);
    font-weight: 900;
    white-space: nowrap;
}

.gg-player-input-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.gg-player-onerm-hint {
    display: block;
    margin-top: -4px;
    color: var(--gg-palette-text-secondary);
}

.gg-player-done-button {
    min-height: 54px;
    border-radius: 12px;
    font-weight: 900;
    text-transform: none;
}

.gg-player-nav-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.gg-player-nav-row .gg-legacy-button-root {
    min-height: 42px;
    border-radius: 12px;
    text-transform: none;
    font-weight: 800;
}

.gg-player-timeline {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
    gap: 12px;
}

.gg-player-timeline-group {
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 86%, transparent);
    border-radius: 14px;
    padding: 12px;
    background: color-mix(in srgb, var(--gg-palette-background) 78%, var(--gg-palette-surface));
    min-width: 0;
}

.gg-player-timeline-head {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
    margin-bottom: 10px;
}

.gg-player-timeline-head strong {
    overflow-wrap: anywhere;
}

.gg-player-timeline-head span {
    color: var(--gg-palette-text-secondary);
    font-size: 0.82rem;
    font-weight: 800;
    white-space: nowrap;
}

.gg-player-set-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.gg-player-set-pill {
    width: 34px;
    height: 34px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 90%, transparent);
    border-radius: 10px;
    background: var(--gg-palette-surface);
    color: var(--gg-palette-text-primary);
    font-weight: 900;
    cursor: pointer;
}

.gg-player-set-pill--active {
    border-color: var(--gg-palette-primary);
    box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--gg-palette-primary) 48%, transparent);
}

.gg-player-set-pill--done {
    background: color-mix(in srgb, var(--gg-palette-success) 16%, var(--gg-palette-surface));
    color: var(--gg-palette-success);
}

.gg-player-set-pill--skipped {
    background: color-mix(in srgb, var(--gg-palette-warning) 16%, var(--gg-palette-surface));
    color: var(--gg-palette-warning);
}

@media (max-width: 900px) {
    .gg-workout-player-page .gg-workout-mode-switch {
        width: 100%;
    }

    .gg-player-current-grid,
    .gg-player-input-grid,
    .gg-player-nav-row {
        grid-template-columns: 1fr;
    }

    .gg-player-focus,
    .gg-player-set-card {
        padding: 16px;
    }
}

.gg-workout-player-page .workout-composer {
    border-top: 1px solid var(--gg-palette-divider);
}

.gg-workout-player-page .gg-workout-start-hero,
.gg-workout-player-page .gg-upcoming-sessions-surface,
.gg-workout-player-page .gg-manual-start-surface {
    overflow: hidden;
}

.gg-workout-player-page .gg-upcoming-session-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 420px));
    gap: 16px;
    justify-content: start;
}

.gg-workout-player-page .gg-upcoming-session-card {
    padding: 18px;
    border-radius: 18px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 18%, var(--gg-palette-divider));
    background: linear-gradient(180deg, color-mix(in srgb, var(--gg-palette-surface) 94%, white) 0%, color-mix(in srgb, var(--gg-palette-background) 74%, var(--gg-palette-surface)) 100%);
}

.gg-workout-player-page .gg-upcoming-session-head {
    gap: 12px;
}

.gg-workout-player-page .gg-upcoming-session-client {
    font-weight: 700;
}

.gg-workout-player-page .gg-upcoming-session-time {
    color: var(--gg-palette-text-secondary);
}

.gg-workout-player-page .gg-upcoming-session-plan {
    display: grid;
    gap: 4px;
    padding: 10px 12px;
    border-radius: 14px;
    background: color-mix(in srgb, var(--gg-palette-primary) 7%, var(--gg-palette-surface));
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 14%, transparent);
}

.gg-workout-player-page .gg-upcoming-session-plan-label {
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--gg-palette-text-secondary);
}

.gg-workout-player-page .gg-upcoming-session-plan-value {
    font-size: 0.95rem;
    font-weight: 600;
}

.gg-workout-player-page .gg-client-picker-trigger {
    min-height: 56px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    margin-top: 8px;
}

.gg-workout-player-page .gg-inline-clear-button {
    min-width: 32px;
    width: 32px;
    height: 32px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    border-radius: 999px;
    flex: 0 0 auto;
}

.gg-workout-player-page .gg-inline-clear-button .gg-legacy-button-label {
    width: 100%;
    height: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.gg-client-picker-row {
    width: 100%;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 12px 14px;
    border: 1px solid var(--gg-palette-divider);
    border-radius: 14px;
    background: var(--gg-palette-surface);
    color: inherit;
    cursor: pointer;
}

.gg-client-picker-row + .gg-client-picker-row {
    margin-top: 8px;
}

.gg-client-picker-row:hover {
    border-color: color-mix(in srgb, var(--gg-palette-primary) 35%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-primary) 4%, var(--gg-palette-surface));
}

.gg-client-picker-avatar {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: color-mix(in srgb, var(--gg-palette-success) 14%, white);
    color: var(--gg-palette-success);
    font-weight: 700;
}

.gg-client-picker-content {
    min-width: 0;
    display: grid;
    gap: 2px;
    text-align: left;
}

.gg-client-picker-name {
    font-weight: 600;
}

.gg-client-picker-meta {
    color: var(--gg-palette-text-secondary);
    font-size: 0.84rem;
}

.gg-workout-player-composer-spacer {
    display: none;
}

.gg-workout-player-top-btn {
    display: none;
}

.gg-picker-modal {
    width: min(1100px, 96vw);
    max-height: min(90vh, calc(100vh - 24px));
    overflow: hidden;
    border-radius: 20px;
    border: 1px solid var(--gg-palette-divider);
    background: var(--gg-palette-surface);
}

/* A gyakorlat-választó modal kicsit nagyobb, hogy a 6 attribútum-oszlop kényelmesen elférjen. */
.gg-exercise-picker-modal {
    width: min(1320px, 97vw);
}
.gg-exercise-picker-modal .gg-picker-scroll {
    max-height: 58vh;
}

/* Modal-háttér ne legyen átlátszó (egyik overlay se), és a tartalom görgethető legyen a gombokig. */
.gg-legacy-overlay-scrim.gg-legacy-overlay-dark {
    background-color: rgba(7, 12, 17, 0.96) !important;
}
.gg-scrollmodal { display: flex; flex-direction: column; }
.gg-scrollmodal-stack { overflow-y: auto; overflow-x: hidden; min-height: 0; flex: 1 1 auto; overscroll-behavior: contain; }

.gg-modal-overlay-solid {
    background-color: rgba(8, 15, 22, .78) !important;
    backdrop-filter: none !important;
}

.gg-template-editor-modal {
    width: min(540px, calc(100vw - 32px));
}

.gg-client-create-modal {
    width: min(960px, 94vw);
    background: var(--gg-material) !important;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .38);
}

.gg-client-create-modal-body {
    max-height: min(88vh, calc(100vh - 32px));
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    padding: 0;
}

.gg-client-create-shell {
    display: grid;
    gap: 18px;
    padding: 18px;
}

.gg-client-create-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.gg-client-create-progress {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 4px 11px;
    border-radius: var(--gg-radius-xs);
    background: color-mix(in srgb, var(--gg-accent) 9%, transparent);
    color: var(--gg-accent-strong);
    font-size: .8rem;
    font-weight: 900;
}

.gg-client-create-stepper {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.gg-client-create-step-tab {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas:
        "number title"
        "number subtitle";
    align-items: center;
    gap: 1px 9px;
    min-height: 62px;
    padding: 10px 12px;
    border: 1px solid var(--gg-hairline);
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-surface-muted) 44%, transparent);
    color: var(--gg-text);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color .16s ease, background-color .16s ease, transform .16s ease;
}

.gg-client-create-step-tab:hover {
    border-color: color-mix(in srgb, var(--gg-accent) 26%, var(--gg-hairline));
    transform: translateY(-1px);
}

.gg-client-create-step-tab span {
    grid-area: number;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: var(--gg-radius-xs);
    background: color-mix(in srgb, var(--gg-accent) 9%, transparent);
    color: var(--gg-accent-strong);
    font-size: .8rem;
    font-weight: 900;
}

.gg-client-create-step-tab strong {
    grid-area: title;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 900;
}

.gg-client-create-step-tab small {
    grid-area: subtitle;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--gg-muted);
    font-size: .75rem;
    font-weight: 700;
}

.gg-client-create-step-tab.is-active,
.gg-client-create-step-tab.is-done {
    border-color: color-mix(in srgb, var(--gg-accent) 42%, var(--gg-hairline));
    background: color-mix(in srgb, var(--gg-accent) 8%, var(--gg-material));
}

.gg-client-create-content,
.gg-client-create-step-panel,
.gg-client-create-subsection {
    display: grid;
    gap: 16px;
}

.gg-client-create-step-panel {
    min-height: 360px;
}

.gg-client-create-subsection {
    padding-top: 14px;
    border-top: 1px solid var(--gg-hairline);
}

/* Coaching-modalitás választó (felvétel) */
.gg-modality-picker { display: grid; gap: 8px; }
.gg-modality-picker-label { color: var(--gg-palette-text-secondary); }
.gg-modality-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.gg-modality-card {
    display: flex; flex-direction: column; gap: 4px; align-items: flex-start; text-align: left;
    padding: 12px; border-radius: 12px; cursor: pointer;
    border: 1px solid var(--gg-palette-lines-default, rgba(0,0,0,.12)); background: var(--gg-palette-surface);
    transition: border-color .12s, background .12s, box-shadow .12s;
}
.gg-modality-card:hover { border-color: color-mix(in srgb, var(--gg-palette-primary) 45%, transparent); }
.gg-modality-card.is-sel { border-color: var(--gg-palette-primary); background: color-mix(in srgb, var(--gg-palette-primary) 8%, var(--gg-palette-surface)); box-shadow: 0 0 0 1px var(--gg-palette-primary) inset; }
.gg-modality-card .gg-legacy-icon-root { color: var(--gg-palette-primary); }
.gg-modality-card strong { font-size: .9rem; color: var(--gg-palette-text-primary); }
.gg-modality-card span { font-size: .76rem; color: var(--gg-palette-text-secondary); line-height: 1.3; }
.gg-modality-note { margin: 2px 0 0; font-size: .8rem; color: var(--gg-palette-text-secondary); }
@media (max-width: 560px) { .gg-modality-cards { grid-template-columns: 1fr; } }

.gg-client-hero-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }

/* Chip-választók a felvétel-varázslóban (legördülők helyett) */
.gg-pick-grid { display: grid; gap: 16px; }
.gg-pick-field { display: grid; gap: 7px; }
.gg-pick-label { font-size: .82rem; font-weight: 600; color: var(--gg-palette-text-primary); }
.gg-pick-opt { font-weight: 400; color: var(--gg-palette-text-secondary); font-size: .76rem; }
.gg-pick-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.gg-pick-chip {
    padding: 8px 14px; border-radius: 999px; cursor: pointer; font-size: .84rem; font-weight: 500;
    background: var(--gg-palette-surface); color: var(--gg-palette-text-secondary);
    border: 1px solid var(--gg-palette-lines-default, rgba(0,0,0,.14)); transition: all .12s;
}
.gg-pick-chip:hover { color: var(--gg-palette-text-primary); border-color: color-mix(in srgb, var(--gg-palette-primary) 50%, transparent); }
.gg-pick-chip.is-sel { background: var(--gg-palette-primary); border-color: var(--gg-palette-primary); color: var(--gg-palette-primary-text, #fff); font-weight: 600; }

.gg-hybrid-split { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.gg-hybrid-counter { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 14px; border-radius: 12px; border: 1px solid var(--gg-palette-lines-default, rgba(0,0,0,.12)); background: var(--gg-palette-surface); }
.gg-hybrid-counter > span { font-size: .82rem; font-weight: 600; color: var(--gg-palette-text-primary); }
.gg-pick-step { display: inline-flex; align-items: center; gap: 2px; border: 1px solid var(--gg-palette-lines-default, rgba(0,0,0,.14)); border-radius: 9px; overflow: hidden; }
.gg-pick-step button { width: 30px; height: 30px; border: none; background: transparent; color: var(--gg-palette-text-secondary); font-size: 1.1rem; font-weight: 700; cursor: pointer; transition: background .12s; }
.gg-pick-step button:hover { background: color-mix(in srgb, var(--gg-palette-primary) 16%, transparent); color: var(--gg-palette-text-primary); }
.gg-pick-step b { min-width: 30px; text-align: center; font-variant-numeric: tabular-nums; font-size: .92rem; color: var(--gg-palette-text-primary); }
@media (max-width: 560px) { .gg-hybrid-split { grid-template-columns: 1fr; } }

.gg-client-create-list {
    display: grid;
    gap: 8px;
}

.gg-client-create-list-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-width: 0;
    padding: 9px 11px;
    border: 1px solid var(--gg-hairline);
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-surface-muted) 38%, transparent);
}

.gg-client-create-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.gg-client-create-summary > div {
    display: grid;
    gap: 4px;
    min-width: 0;
    padding: 12px;
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-surface-muted) 44%, transparent);
}

.gg-client-create-summary span {
    color: var(--gg-muted);
    font-size: .75rem;
    font-weight: 800;
}

.gg-client-create-summary strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-client-create-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding-top: 14px;
    border-top: 1px solid var(--gg-hairline);
}

@media (max-width: 900px) {
    .gg-client-create-stepper,
    .gg-client-create-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gg-client-create-step-panel {
        min-height: 0;
    }
}

@media (max-width: 640px) {
    .gg-client-create-shell {
        padding: 14px;
    }

    .gg-client-create-header,
    .gg-client-create-actions,
    .gg-client-create-list-row {
        align-items: stretch;
        flex-direction: column;
    }

    .gg-client-create-stepper,
    .gg-client-create-summary {
        grid-template-columns: 1fr;
    }
}

.gg-session-modal {
    width: min(960px, 94vw);
    max-height: min(90vh, calc(100vh - 24px));
    height: min(820px, calc(100vh - 24px));
    display: flex;
    flex-direction: column;
    border-radius: 24px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.gg-session-modal > .gg-legacy-stack {
    display: flex;
    flex: 1 1 auto;
    min-height: 0;
}

.gg-session-modal-head {
    padding: 22px 24px 16px;
    border-bottom: 1px solid color-mix(in srgb, var(--gg-palette-primary) 12%, var(--gg-palette-divider));
    background:
        radial-gradient(circle at top right, color-mix(in srgb, var(--gg-palette-success) 9%, transparent) 0, transparent 28%),
        radial-gradient(circle at top left, color-mix(in srgb, var(--gg-palette-primary) 12%, transparent) 0, transparent 34%),
        linear-gradient(180deg, color-mix(in srgb, var(--gg-palette-background) 32%, var(--gg-palette-surface)) 0%, var(--gg-palette-surface) 100%);
}

.gg-session-modal-head-row {
    gap: 12px;
}

.gg-session-modal-identity {
    min-width: 0;
    gap: 14px;
}

.gg-session-avatar {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    flex: 0 0 52px;
    border-radius: 16px;
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--gg-palette-success-darken);
    background: linear-gradient(180deg, color-mix(in srgb, var(--gg-palette-success) 16%, white) 0%, color-mix(in srgb, var(--gg-palette-success) 8%, var(--gg-palette-surface)) 100%);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gg-palette-success) 18%, transparent);
}

.gg-session-modal-head-copy {
    min-width: 0;
}

.gg-session-modal-client {
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.02em;
}

.gg-session-modal-meta {
    color: var(--gg-palette-text-secondary);
    font-size: 0.9rem;
}

.gg-session-modal-meta span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.gg-session-modal-meta span:not(:last-child)::after {
    content: "•";
    margin-left: 8px;
    opacity: 0.45;
}

.gg-session-modal-close {
    margin-top: -4px;
}

.gg-session-status-badge {
    font-weight: 700;
    letter-spacing: 0.01em;
}

.gg-session-modal-body {
    flex: 1 0 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: visible;
    padding: 18px 24px 20px;
    gap: 14px;
}

.gg-session-modal-body > .gg-legacy-stack {
    min-height: 0;
}

.gg-session-modal-body .gg-legacy-divider {
    margin: 2px 0 !important;
}

.gg-session-start-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 16px;
    border: 1px solid color-mix(in srgb, var(--gg-accent) 34%, var(--gg-palette-divider));
    border-radius: 16px;
    background: color-mix(in srgb, var(--gg-accent) 9%, var(--gg-palette-surface));
}

.gg-session-start-copy {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.gg-session-start-copy span {
    color: color-mix(in srgb, var(--gg-accent) 72%, var(--gg-palette-text-primary));
    font-size: 0.74rem;
    font-weight: 850;
    text-transform: uppercase;
}

.gg-session-start-copy strong {
    overflow: hidden;
    color: var(--gg-palette-text-primary);
    font-size: 1.1rem;
    font-weight: 900;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-session-start-copy small {
    overflow: hidden;
    color: var(--gg-palette-text-secondary);
    font-size: 0.84rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-session-start-hero .gg-legacy-button-root {
    flex: none;
    min-height: 46px;
}

.gg-session-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.gg-session-summary-card,
.gg-session-detail-card {
    height: 100%;
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 10%, var(--gg-palette-divider));
    background: linear-gradient(180deg, color-mix(in srgb, var(--gg-palette-background) 40%, var(--gg-palette-surface)) 0%, var(--gg-palette-surface) 100%);
}

.gg-session-summary-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.gg-session-summary-icon {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    font-size: 1rem;
}

.gg-session-summary-card-primary {
    border-color: color-mix(in srgb, var(--gg-palette-primary) 24%, var(--gg-palette-divider));
}

.gg-session-summary-card-success {
    border-color: color-mix(in srgb, var(--gg-palette-success) 26%, var(--gg-palette-divider));
}

.gg-session-summary-card-warning {
    border-color: color-mix(in srgb, var(--gg-palette-warning) 28%, var(--gg-palette-divider));
}

.gg-session-summary-card-danger {
    border-color: color-mix(in srgb, var(--gg-palette-error) 24%, var(--gg-palette-divider));
}

.gg-session-summary-card-pass {
    border-color: color-mix(in srgb, #3c9f7b 24%, var(--gg-palette-divider));
}

.gg-session-summary-card-plan {
    border-color: color-mix(in srgb, #5b8def 24%, var(--gg-palette-divider));
}

.gg-session-summary-card-billing {
    border-color: color-mix(in srgb, #d08a2f 26%, var(--gg-palette-divider));
}

.gg-session-summary-icon-status {
    color: var(--gg-palette-primary-darken);
    background: color-mix(in srgb, var(--gg-palette-primary) 14%, white);
}

.gg-session-summary-card-success .gg-session-summary-icon-status {
    color: var(--gg-palette-success-darken);
    background: color-mix(in srgb, var(--gg-palette-success) 14%, white);
}

.gg-session-summary-card-warning .gg-session-summary-icon-status {
    color: var(--gg-palette-warning-darken);
    background: color-mix(in srgb, var(--gg-palette-warning) 16%, white);
}

.gg-session-summary-card-danger .gg-session-summary-icon-status {
    color: var(--gg-palette-error-darken);
    background: color-mix(in srgb, var(--gg-palette-error) 14%, white);
}

.gg-session-summary-icon-pass {
    color: #2f7d62;
    background: color-mix(in srgb, #3c9f7b 18%, white);
}

.gg-session-summary-icon-plan {
    color: #3f68c6;
    background: color-mix(in srgb, #5b8def 18%, white);
}

.gg-session-summary-icon-billing {
    color: #a76814;
    background: color-mix(in srgb, #d08a2f 18%, white);
}

.gg-session-summary-value {
    font-weight: 700;
}

.gg-session-primary-surface {
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 14%, var(--gg-palette-divider));
    background: linear-gradient(180deg, color-mix(in srgb, var(--gg-palette-primary) 6%, var(--gg-palette-surface)) 0%, var(--gg-palette-surface) 100%);
}

.gg-session-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.gg-session-detail-head {
    margin-bottom: 8px;
}

.gg-session-notes-input .gg-legacy-input-control {
    margin-top: 4px;
}

.gg-session-notes-actions {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.gg-session-primary-actions,
.gg-session-secondary-actions {
    display: grid;
    gap: 10px;
}

.gg-session-primary-actions {
    grid-template-columns: repeat(auto-fit, minmax(200px, max-content));
}

.gg-session-secondary-actions {
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.gg-session-primary-actions .gg-legacy-button-root {
    min-height: 42px;
    padding-inline: 16px;
}

.gg-session-primary-actions .gg-legacy-button-root,
.gg-session-secondary-actions .gg-legacy-button-root {
    min-height: 40px;
    width: 100%;
}

.gg-session-danger-zone {
    padding: 16px 18px;
    border-radius: 16px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-error) 24%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-error) 4%, var(--gg-palette-surface));
}

.gg-session-modal-footer {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    padding: 12px 24px 16px;
    border-top: 1px solid var(--gg-palette-divider);
    background: color-mix(in srgb, var(--gg-palette-background) 50%, var(--gg-palette-surface));
}

.gg-session-review-progress-chip {
    width: fit-content;
}

.gg-session-modal-footer-spacer {
    flex: 1 1 auto;
}

.gg-picker-scroll {
    max-height: 45vh;
    overflow-y: auto;
    border: 1px solid var(--gg-palette-divider);
    border-radius: 12px;
    padding: 8px;
    background: color-mix(in srgb, var(--gg-palette-background) 75%, var(--gg-palette-surface));
}

.gg-picker-row {
    border-radius: 12px;
}

/* Sablontervező gyakorlat-választó sor: bal oldalon a név + becsomagolódó attribútum-tagek, jobbra a Kiválaszt gomb. */
.gg-picker-row-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
/* A bal oldali név+attribútum cella töltse ki a sor teljes szabad szélességét (a Kiválaszt gombig),
   hogy az attribútum-grid szélessége MINDEN sorban azonos legyen → az oszlopok ténylegesen egy vonalban állnak. */
.gg-picker-row-main > .gg-ex-name-cell { flex: 1 1 auto; min-width: 0; }
.gg-picker-row-body { flex: 1 1 auto; min-width: 0; }
.gg-picker-row-select { flex: 0 0 auto; }
/* Nagyobb, hangsúlyosabb gyakorlatnév a választóban. */
.gg-picker-ex-name { font-size: 1.05rem; font-weight: 600; }
/* A 6 attribútum FIX oszlopokba rendezve (grid), hogy soronként pontosan egy vonalban álljanak —
   nem csak egyenlő közökkel, hanem ténylegesen igazítva. A hosszú címke az oszlopában ellipszist kap. */
.gg-picker-row-tags {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    align-items: center;
    gap: 8px 14px;
}
.gg-picker-row-tags > * { min-width: 0; }
/* Egységes ikonméret + ikon→címke köz minden attribútumnál; a címke az oszlopban ellipszisel. */
.gg-picker-row-tags .gg-level-tag,
.gg-picker-row-tags .gg-mg-tag,
.gg-picker-row-tags .gg-force-tag,
.gg-picker-row-tags .gg-mechanic-tag,
.gg-picker-row-tags .gg-category-tag,
.gg-picker-row-tags .gg-equip-tag { gap: 8px; min-width: 0; }
.gg-picker-row-tags .gg-level-tag-name,
.gg-picker-row-tags .gg-mg-tag-name,
.gg-picker-row-tags .gg-force-tag-name,
.gg-picker-row-tags .gg-mechanic-tag-name,
.gg-picker-row-tags .gg-category-tag-name,
.gg-picker-row-tags .gg-equip-tag-name { min-width: 0; }
.gg-picker-row-tags .gg-level-tag-img,
.gg-picker-row-tags .gg-mg-tag-img,
.gg-picker-row-tags .gg-force-tag-img,
.gg-picker-row-tags .gg-mechanic-tag-img,
.gg-picker-row-tags .gg-category-tag-img { width: 34px; height: 34px; }
.gg-picker-row-tags .gg-equip-tag-frame { width: 34px; height: 34px; }

.gg-template-exercise-filter-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.gg-template-exercise-filter-trigger {
    display: flex;
    flex-direction: column;
    gap: 10px;
    justify-content: flex-start;
    justify-items: start;
    align-content: flex-start;
    align-items: flex-start;
    place-items: start;
    width: 100%;
    min-height: 76px;
    padding: 12px 14px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 84%, transparent);
    border-radius: 10px;
    background:
        radial-gradient(circle at top right, color-mix(in srgb, var(--gg-palette-primary) 6%, transparent), transparent 55%),
        color-mix(in srgb, var(--gg-palette-surface) 94%, var(--gg-palette-background));
    color: var(--gg-palette-text-primary);
    text-align: left;
    transition: border-color 150ms ease, background-color 150ms ease, transform 150ms ease;
}

.gg-template-exercise-filter-trigger,
.gg-template-exercise-filter-trigger * {
    text-align: left !important;
}

.gg-template-exercise-filter-main {
    display: flex;
    flex-direction: column;
    gap: 4px;
    justify-content: start;
    justify-items: start;
    align-items: flex-start;
    align-content: flex-start;
    place-items: start;
    width: 100%;
    min-height: 36px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.gg-template-exercise-filter-main > * {
    align-self: flex-start;
    justify-self: start;
    text-align: left;
}

.gg-template-exercise-filter-trigger:hover,
.gg-template-exercise-filter-trigger.is-active {
    border-color: color-mix(in srgb, var(--gg-palette-primary) 52%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-surface) 88%, var(--gg-palette-primary) 12%);
}

.gg-template-exercise-filter-trigger:hover {
    transform: translateY(-1px);
}

.gg-template-exercise-filter-label {
    color: var(--gg-palette-text-secondary);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0;
}

.gg-template-exercise-filter-label {
    text-transform: uppercase;
}

.gg-template-exercise-filter-hint {
    min-width: 0;
    overflow-wrap: anywhere;
    font-size: 0.94rem;
    font-weight: 800;
    color: var(--gg-palette-text-primary);
}

.gg-template-exercise-filter-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: flex-start;
    justify-items: start;
    align-content: flex-start;
    gap: 6px;
    width: 100%;
    text-align: left;
}

.gg-template-filter-active-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    min-height: 26px;
    padding: 4px 6px 4px 9px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 38%, var(--gg-palette-divider));
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-primary) 13%, transparent);
    color: var(--gg-palette-primary);
    font-size: 0.74rem;
    font-weight: 750;
    overflow-wrap: anywhere;
}

.gg-template-filter-active-chip button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-primary) 20%, transparent);
    color: inherit;
    cursor: pointer;
    font-size: 0.86rem;
    line-height: 1;
}

.gg-template-filter-active-chip button:hover {
    background: color-mix(in srgb, var(--gg-palette-primary) 32%, transparent);
}

.gg-filter-modal {
    width: min(620px, calc(100vw - 32px));
    max-height: min(78vh, calc(100vh - 32px));
    overflow: hidden;
    border: 1px solid var(--gg-palette-divider);
    border-radius: 16px;
    background: var(--gg-palette-surface);
}

.gg-template-filter-option-grid {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    gap: 8px;
    max-height: min(46vh, 420px);
    overflow: auto;
    padding: 6px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 82%, transparent);
    border-radius: 12px;
    background: color-mix(in srgb, var(--gg-palette-background) 72%, var(--gg-palette-surface));
}

.gg-template-filter-option-grid .gg-legacy-chip.gg-filter-chip {
    min-height: 34px;
    height: auto;
    border-radius: 999px;
}

.gg-template-filter-option-grid .gg-legacy-chip.gg-filter-chip .gg-legacy-chip-content {
    white-space: normal;
    overflow-wrap: anywhere;
}

/* Izomcsoport-szűrő: kép + alatta a név. */
.gg-muscle-filter-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(108px, 1fr));
    gap: 10px;
    align-content: flex-start;
    padding: 2px 0;
    background: transparent;
    border: 0;
}

/* Szint-szűrő kártyák: a 3 növekvő bart nagyobban mutatjuk, mint a listában. */
.gg-level-filter .gg-level-bars { height: 42px; gap: 6px; }
.gg-level-filter .gg-level-bar { width: 11px; border-radius: 3px; }
.gg-level-filter .gg-level-bar-1 { height: 19px; }
.gg-level-filter .gg-level-bar-2 { height: 30px; }
.gg-level-filter .gg-level-bar-3 { height: 42px; }

.gg-muscle-filter-chip {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 10px 6px 8px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 90%, transparent);
    border-radius: 12px;
    background: var(--gg-palette-surface);
    color: var(--gg-palette-text-primary);
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, transform .1s ease;
}

.gg-muscle-filter-chip:hover {
    border-color: color-mix(in srgb, var(--gg-palette-primary) 50%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-primary) 7%, var(--gg-palette-surface));
}

.gg-muscle-filter-chip.is-selected {
    border-color: var(--gg-accent);
    background: color-mix(in srgb, var(--gg-accent) 15%, var(--gg-palette-surface));
    box-shadow: inset 0 0 0 1px var(--gg-accent);
}

/* Kiválasztás-jelölő: témaszínű (borostyán) kerek pipa-badge a chip jobb felső sarkában. */
.gg-muscle-filter-chip.is-selected::after {
    content: "";
    position: absolute;
    top: 6px;
    right: 6px;
    width: 23px;
    height: 23px;
    border-radius: 50%;
    background: var(--gg-accent) center / 14px 14px no-repeat;
    /* sötét pipa (SVG) a borostyán korongon — éles, betűtípustól független */
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='none' stroke='%231D2B36' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.5 4.5L19 7.5'/></svg>");
    border: 2px solid var(--gg-palette-surface);
    box-shadow: 0 2px 6px rgba(0, 0, 0, .28);
    pointer-events: none;
}

.gg-muscle-filter-chip-img {
    width: 76px;
    height: 76px;
    object-fit: contain;
    pointer-events: none;
}

.gg-muscle-filter-chip-img--blank {
    border-radius: 50%;
    background: color-mix(in srgb, var(--gg-palette-divider) 40%, transparent);
}

/* Eszköz-szűrő ikonok (átlátszó PNG): világos, lekerekített keret; a kép kinagyítva a kereten belül. */
.gg-equip-chip-frame {
    width: 84px;
    height: 84px;
    border-radius: 16px;
    background: #fff;
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 55%, transparent);
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}
.gg-equip-chip-img { width: 100%; height: 100%; object-fit: contain; transform: scale(1.1); pointer-events: none; }

.gg-muscle-filter-chip-label {
    font-size: 0.74rem;
    font-weight: 650;
    line-height: 1.15;
    text-align: center;
    overflow-wrap: anywhere;
}

.gg-template-filter-active-chip-img {
    width: 18px;
    height: 18px;
    object-fit: contain;
    pointer-events: none;
}

.gg-toolbar-wrap {
    gap: 14px;
}

.gg-toolbar-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
}

.gg-filter-chip-row {
    flex-wrap: wrap;
    gap: 8px;
}

.gg-filter-option-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 8px;
}

.gg-filter-option-grid .gg-legacy-chip.gg-filter-chip {
    width: 100%;
    min-height: 36px;
    height: auto;
    justify-content: flex-start;
    border-radius: 10px;
}

.gg-filter-option-grid .gg-legacy-chip.gg-filter-chip .gg-legacy-chip-content {
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.2;
    text-align: left;
}

.gg-selected-chip-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.gg-selected-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    min-height: 34px;
    padding: 5px 6px 5px 10px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 38%, var(--gg-palette-divider));
    border-radius: 999px;
    color: var(--gg-palette-primary);
    background: color-mix(in srgb, var(--gg-palette-primary) 9%, var(--gg-palette-surface));
    font-size: 0.84rem;
    line-height: 1.2;
}

.gg-selected-chip span:first-child {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-selected-chip button {
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border: 0;
    border-radius: 999px;
    padding: 0;
    color: inherit;
    background: transparent;
    cursor: pointer;
}

.gg-selected-chip button:hover {
    background: color-mix(in srgb, var(--gg-palette-primary) 14%, transparent);
}

.gg-empty-picker-action {
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px dashed color-mix(in srgb, var(--gg-palette-divider) 82%, transparent);
    border-radius: 12px;
    background: color-mix(in srgb, var(--gg-palette-background) 70%, var(--gg-palette-surface));
}

.gg-clickable-row {
    cursor: pointer;
}

.gg-detail-text {
    line-height: 1.7;
    white-space: pre-wrap;
}

.gg-client-card {
    height: 100%;
    min-height: 280px;
    display: flex;
    flex-direction: column;
    padding: 24px;
    border-radius: 16px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 88%, transparent);
    background:
        radial-gradient(circle at top right, color-mix(in srgb, var(--gg-palette-primary) 8%, transparent) 0, transparent 34%),
        linear-gradient(180deg, color-mix(in srgb, var(--gg-palette-surface) 98%, white 2%) 0%, color-mix(in srgb, var(--gg-palette-background) 16%, var(--gg-palette-surface)) 100%);
    transition: transform 140ms ease, border-color 140ms ease, box-shadow 140ms ease, background 140ms ease;
}

.gg-client-card:hover {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--gg-palette-primary) 62%, var(--gg-palette-divider));
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.14);
}

.gg-dark .gg-client-card {
    border-color: color-mix(in srgb, var(--gg-palette-divider) 76%, transparent);
    background:
        radial-gradient(circle at top right, color-mix(in srgb, var(--gg-palette-primary) 10%, transparent) 0, transparent 36%),
        linear-gradient(180deg, color-mix(in srgb, var(--gg-palette-surface) 94%, var(--gg-palette-background) 6%) 0%, color-mix(in srgb, var(--gg-palette-background) 30%, var(--gg-palette-surface)) 100%);
}

.gg-dark .gg-client-card:hover {
    border-color: color-mix(in srgb, var(--gg-palette-primary) 72%, var(--gg-palette-divider));
    box-shadow: 0 22px 46px rgba(0, 0, 0, 0.34);
}

.gg-client-card-shell {
    height: 100%;
    flex: 1;
    gap: 20px;
}

.gg-client-card-head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
}

.gg-client-card-avatar {
    width: 52px;
    height: 52px;
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--gg-palette-primary-text);
    background: color-mix(in srgb, var(--gg-palette-primary) 78%, var(--gg-palette-surface));
}

.gg-client-card-identity {
    min-width: 0;
    display: grid;
    gap: 2px;
}

.gg-card-title {
    font-weight: 800;
}

.gg-client-card-profile {
    color: var(--gg-palette-text-secondary);
    font-size: 0.88rem;
}

.gg-client-card-contact {
    display: block;
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gg-client-state-badge {
    justify-self: end;
    border-radius: 999px;
    border-color: color-mix(in srgb, var(--gg-palette-primary) 42%, transparent) !important;
    background: color-mix(in srgb, var(--gg-palette-primary) 12%, transparent);
    color: var(--gg-palette-text-primary) !important;
    font-weight: 700;
}

.gg-client-state-badge-muted {
    border-color: color-mix(in srgb, var(--gg-palette-divider) 92%, transparent) !important;
    background: color-mix(in srgb, var(--gg-palette-text-secondary) 8%, transparent);
}

.gg-client-card-session {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 12px;
    background: color-mix(in srgb, var(--gg-palette-primary) 7%, var(--gg-palette-surface));
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 18%, transparent);
}

.gg-client-card-session.is-clickable {
    cursor: pointer;
}

.gg-client-card-session.is-clickable:hover {
    border-color: color-mix(in srgb, var(--gg-palette-primary) 40%, transparent);
    background: color-mix(in srgb, var(--gg-palette-primary) 9%, var(--gg-palette-surface));
}

.gg-client-card-session.is-empty {
    background: color-mix(in srgb, var(--gg-palette-text-secondary) 6%, var(--gg-palette-surface));
    border-color: color-mix(in srgb, var(--gg-palette-divider) 92%, transparent);
}

.gg-client-card-session-icon {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: color-mix(in srgb, var(--gg-palette-primary) 12%, transparent);
    color: var(--gg-palette-primary);
}

.gg-client-card-session.is-empty .gg-client-card-session-icon {
    background: color-mix(in srgb, var(--gg-palette-text-secondary) 10%, transparent);
    color: var(--gg-palette-text-secondary);
}

.gg-client-card-session-copy {
    min-width: 0;
    display: grid;
    gap: 2px;
}

.gg-client-card-section-label {
    color: var(--gg-palette-text-secondary);
    letter-spacing: 0.03em;
    text-transform: uppercase;
    font-weight: 700;
    font-size: 0.72rem;
}

.gg-client-card-session-value {
    font-weight: 700;
    line-height: 1.25;
}

.gg-client-card-session-meta {
    color: var(--gg-palette-text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gg-client-pass-stack {
    display: grid;
    gap: 10px;
    margin-top: 4px;
}

.gg-client-pass-progress {
    display: grid;
    gap: 8px;
}

.gg-client-pass-progress-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.gg-client-pass-name {
    color: var(--gg-palette-text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gg-client-pass-progress-count {
    color: var(--gg-palette-text-primary);
    font-weight: 700;
}

.gg-client-pass-mode {
    padding: 2px 0;
    color: var(--gg-palette-text-secondary);
    font-size: 0.84rem;
    font-weight: 600;
}

.gg-client-pass-progress-track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    gap: 4px;
}

.gg-client-pass-progress-segment {
    height: 10px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-divider) 74%, transparent);
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 90%, transparent);
}

.gg-client-pass-progress-segment.is-filled {
    background: color-mix(in srgb, var(--gg-palette-primary) 72%, var(--gg-palette-surface));
    border-color: color-mix(in srgb, var(--gg-palette-primary) 54%, transparent);
}

.gg-dark .gg-client-pass-progress-segment {
    background: color-mix(in srgb, var(--gg-palette-divider) 52%, transparent);
    border-color: color-mix(in srgb, var(--gg-palette-divider) 76%, transparent);
}

.gg-dark .gg-client-pass-progress-segment.is-filled {
    background: color-mix(in srgb, var(--gg-palette-primary) 64%, var(--gg-palette-surface));
    border-color: color-mix(in srgb, var(--gg-palette-primary) 46%, transparent);
}

.gg-client-card-status-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.gg-client-status-chip {
    margin: 0;
    border-radius: 999px;
    border-color: color-mix(in srgb, var(--gg-palette-divider) 92%, transparent) !important;
    background: color-mix(in srgb, var(--gg-palette-primary) 4%, transparent);
    color: var(--gg-palette-text-primary) !important;
    font-weight: 600;
    font-size: 0.76rem;
}

.gg-client-status-chip-alert {
    border-color: color-mix(in srgb, var(--gg-palette-primary) 36%, transparent) !important;
    background: color-mix(in srgb, var(--gg-palette-primary) 10%, transparent);
}

.gg-client-card-actions-wrap {
    margin-top: auto;
    padding-top: 16px;
}

.gg-client-card-actions {
    width: 100%;
}

.gg-client-card-actions .gg-legacy-button-root {
    min-height: 42px;
}

.gg-client-card-actions .gg-legacy-button-root:first-child {
    flex: 1 1 auto;
}

.gg-client-card-actions .gg-legacy-button-root:last-child {
    flex: 0 0 auto;
    min-width: 104px;
}

.gg-client-card-actions .gg-legacy-button-filled {
    box-shadow: none;
}

.gg-client-card-actions .gg-legacy-button-outlined {
    border-color: color-mix(in srgb, var(--gg-palette-divider) 88%, transparent);
}

@media (max-width: 960px) {
    .gg-client-card-actions .gg-legacy-button-root:last-child {
        flex: 1 1 auto;
    }
}

.gg-client-hero {
    background:
        radial-gradient(circle at top left, color-mix(in srgb, var(--gg-palette-primary) 12%, transparent) 0, transparent 42%),
        var(--gg-palette-surface);
}

.gg-client-hero-avatar {
    width: 72px;
    height: 72px;
    font-size: 1.8rem;
}

.gg-client-dashboard .gg-command-card {
    padding: 20px;
    min-height: 240px;
    height: 100%;
    border-radius: 22px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 18%, var(--gg-palette-divider));
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--gg-palette-surface) 92%, var(--gg-palette-primary) 8%) 0%, var(--gg-palette-surface) 100%);
    box-shadow: var(--gg-shadow-soft);
}

.gg-client-dashboard > .gg-legacy-grid:first-of-type {
    margin-top: 8px;
}

.gg-client-dashboard > .gg-legacy-grid:first-of-type > .gg-legacy-grid-item {
    display: flex;
}

.gg-client-dashboard > .gg-legacy-grid:first-of-type > .gg-legacy-grid-item > .gg-command-card {
    width: 100%;
    flex: 1 1 auto;
}

.gg-client-dashboard .gg-command-card > .gg-legacy-stack {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.gg-cov-program {
    display: grid;
    gap: 14px;
}

.gg-cov-program-next {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    padding: 12px;
    border-radius: 14px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 20%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-primary) 6%, var(--gg-palette-surface));
}

.gg-cov-program-date {
    width: 54px;
    min-height: 58px;
    display: grid;
    place-items: center;
    align-content: center;
    border-radius: 14px;
    background: var(--gg-palette-surface);
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 88%, transparent);
    box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--gg-palette-primary) 10%, transparent);
}

.gg-cov-program-date span {
    font-size: .68rem;
    line-height: 1;
    color: var(--gg-palette-text-secondary);
    font-weight: 800;
    text-transform: uppercase;
}

.gg-cov-program-date strong {
    font-size: 1.3rem;
    line-height: 1.1;
}

.gg-cov-program-body {
    min-width: 0;
    display: grid;
    gap: 5px;
}

.gg-cov-program-title {
    font-weight: 800;
    line-height: 1.22;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-cov-program-meta {
    color: var(--gg-palette-text-secondary);
    font-size: .82rem;
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-cov-program-footer {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    color: var(--gg-palette-text-secondary);
    font-size: .78rem;
    font-weight: 700;
}

.gg-overview-command-card {
    display: flex;
}

.gg-overview-command-card > .gg-legacy-stack {
    flex: 1 1 auto;
}

.gg-overview-command-body {
    flex: 1 1 auto;
}

.gg-overview-command-action {
    margin-top: auto;
}

.gg-client-setup-guide {
    border-color: color-mix(in srgb, var(--gg-accent) 28%, var(--gg-hairline)) !important;
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--gg-accent) 5%, transparent), transparent 52%),
        var(--gg-material) !important;
}

.gg-client-setup-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.gg-client-setup-step {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    min-height: 184px;
    padding: 14px;
    border: 1px solid transparent;
    border-radius: var(--gg-radius-md);
    background: color-mix(in srgb, var(--gg-surface-muted) 42%, transparent);
}

.gg-client-setup-step.is-current {
    border-color: color-mix(in srgb, var(--gg-accent) 34%, var(--gg-hairline));
    background: var(--gg-row-selected);
}

.gg-client-setup-step.is-done {
    border-color: color-mix(in srgb, var(--gg-palette-success) 24%, var(--gg-hairline));
    background: color-mix(in srgb, var(--gg-palette-success) 5%, var(--gg-surface));
}

.gg-client-setup-step.is-done .gg-client-setup-step-icon {
    color: var(--gg-palette-success);
    background: color-mix(in srgb, var(--gg-palette-success) 11%, transparent);
}

.gg-client-setup-success-text {
    color: var(--gg-text);
    font-weight: 650;
    line-height: 1.4;
}

.gg-client-setup-step-icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 999px;
    color: var(--gg-accent);
    background: color-mix(in srgb, var(--gg-accent) 12%, transparent);
}

.gg-client-setup-step-body {
    min-width: 0;
}

.gg-client-setup-step-body .gg-legacy-button-root {
    max-width: 100%;
    min-width: 0;
    white-space: normal;
}

.gg-client-setup-step-body .gg-legacy-button-label {
    min-width: 0;
    white-space: normal;
    line-height: 1.15;
    text-align: center;
}

.gg-strength-assessment-dialog {
    max-width: 980px;
}

.gg-strength-assessment-dialog .gg-legacy-dialog-content {
    padding-top: 8px;
}

.gg-strength-assessment-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
}

.gg-strength-assessment-shell {
    display: grid;
    gap: 14px;
}

.gg-strength-assessment-panel {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--gg-hairline);
    border-radius: var(--gg-radius-md);
    background: color-mix(in srgb, var(--gg-surface-muted) 42%, transparent);
}

.gg-strength-assessment-hero {
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--gg-accent) 9%, transparent), transparent 58%),
        color-mix(in srgb, var(--gg-surface-muted) 52%, transparent);
}

.gg-strength-assessment-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-width: 0;
}

.gg-strength-assessment-panel-head strong {
    color: var(--gg-text);
    font-size: 1.25rem;
}

.gg-strength-slider {
    margin-inline: 2px;
}

.gg-strength-scale-caption {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: var(--gg-muted);
    font-size: .78rem;
    font-weight: 700;
}

.gg-strength-height-field {
    display: grid;
    justify-items: center;
    gap: 10px;
    width: 100%;
    text-align: center;
}

.gg-strength-height-copy {
    display: grid;
    justify-items: center;
    gap: 2px;
}

.gg-strength-height-copy .gg-dlg-hint {
    margin-inline: auto;
}

.gg-strength-height-control {
    width: min(260px, 100%);
    margin-inline: auto;
}

.gg-strength-height-control > .gg-fld {
    width: 100%;
}

.gg-strength-height-control .gg-num {
    display: grid !important;
    grid-template-columns: 48px minmax(96px, 1fr) 48px;
    min-height: 52px;
}

.gg-strength-height-control .gg-num-btn {
    width: 48px;
    height: 52px;
    font-size: 1.15rem;
}

.gg-strength-height-control .gg-num-input {
    min-width: 0;
    padding-inline: 10px;
    color: var(--gg-text);
    font-size: 1.35rem !important;
    font-weight: 850;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.gg-strength-bmi-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-top: 14px;
    padding: 12px 14px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 28%, var(--gg-hairline));
    border-radius: 12px;
    background: color-mix(in srgb, var(--gg-palette-primary) 8%, var(--gg-surface));
}

.gg-strength-bmi-card div {
    display: grid;
    gap: 2px;
}

.gg-strength-bmi-card span {
    color: var(--gg-palette-text-secondary);
    font-size: .74rem;
    font-weight: 850;
    text-transform: uppercase;
}

.gg-strength-bmi-card strong {
    color: var(--gg-palette-primary);
    font-size: 1.55rem;
    font-weight: 900;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.gg-strength-bmi-card p {
    margin: 0;
    color: var(--gg-palette-text-secondary);
    font-size: .82rem;
    font-weight: 750;
    text-align: right;
}

.gg-strength-bmi-card.is-empty {
    background: color-mix(in srgb, var(--gg-surface-muted) 38%, transparent);
    border-color: var(--gg-hairline);
}

.gg-strength-range-grid,
.gg-strength-composition-grid,
.gg-strength-input-grid,
.gg-strength-weight-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.gg-strength-weight-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gg-strength-input-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gg-strength-range-card,
.gg-strength-composition-card,
.gg-strength-weight-card {
    display: grid;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--gg-hairline);
    border-radius: var(--gg-radius-sm);
    background: var(--gg-material);
}

.gg-strength-range-marks {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    color: var(--gg-muted);
    font-size: .76rem;
    font-weight: 800;
    text-align: center;
}

.gg-strength-range-mark {
    min-width: 0;
    padding: 5px 6px;
    border-radius: var(--gg-radius-xs);
    background: color-mix(in srgb, var(--gg-surface-muted) 54%, transparent);
    transition: background-color .16s ease, color .16s ease;
}

.gg-strength-range-mark.is-selected {
    background: color-mix(in srgb, var(--gg-accent) 13%, transparent);
    color: var(--gg-accent-strong);
}

.gg-strength-muscle-card,
.gg-strength-bodyfat-card {
    gap: 12px;
}

.gg-strength-composition-matrix {
    display: grid;
    grid-template-columns: minmax(220px, .72fr) minmax(0, 1fr);
    align-items: stretch;
    gap: 14px;
}

.gg-strength-composition-preview,
.gg-strength-composition-control {
    display: grid;
    gap: 12px;
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--gg-hairline);
    border-radius: var(--gg-radius-sm);
    background: var(--gg-material);
}

.gg-strength-composition-preview {
    grid-template-rows: minmax(220px, 1fr) auto;
    background:
        linear-gradient(145deg, color-mix(in srgb, var(--gg-accent) 7%, transparent), transparent 62%),
        var(--gg-material);
}

.gg-strength-composition-image {
    width: 100%;
    min-height: 220px;
    max-height: 360px;
    object-fit: contain;
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-surface-muted) 58%, transparent);
}

.gg-strength-composition-copy {
    display: grid;
    gap: 4px;
}

.gg-strength-composition-copy strong {
    color: var(--gg-text);
    font-size: 1.25rem;
    font-weight: 850;
    line-height: 1.15;
}

.gg-strength-composition-copy span {
    color: var(--gg-muted);
    font-size: .86rem;
    font-weight: 750;
}

.gg-strength-composition-controls {
    display: grid;
    align-content: start;
    gap: 12px;
    min-width: 0;
}

.gg-strength-muscle-visual,
.gg-strength-bodyfat-visual {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    min-width: 0;
    padding: 10px;
    border: 1px solid color-mix(in srgb, var(--gg-hairline) 72%, transparent);
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-surface-muted) 54%, transparent);
}

.gg-strength-muscle-image,
.gg-strength-bodyfat-image {
    width: 112px;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    border-radius: var(--gg-radius-sm);
    background: var(--gg-surface);
}

.gg-strength-muscle-copy,
.gg-strength-bodyfat-copy {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.gg-strength-muscle-copy strong,
.gg-strength-bodyfat-copy strong {
    color: var(--gg-text);
    font-size: 1.2rem;
    font-weight: 850;
}

.gg-strength-muscle-copy span,
.gg-strength-bodyfat-copy span {
    color: var(--gg-muted);
    font-size: .82rem;
    font-weight: 750;
}

.gg-strength-muscle-marks,
.gg-strength-bodyfat-marks {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px;
}

.gg-strength-muscle-mark,
.gg-strength-bodyfat-mark {
    display: grid;
    place-items: center;
    gap: 1px;
    min-width: 0;
    padding: 6px 4px;
    border: 1px solid transparent;
    border-radius: var(--gg-radius-xs);
    color: var(--gg-muted);
    background: color-mix(in srgb, var(--gg-surface-muted) 48%, transparent);
    transition: border-color .16s ease, background-color .16s ease, color .16s ease;
}

.gg-strength-muscle-mark strong,
.gg-strength-bodyfat-mark strong {
    color: inherit;
    font-size: .82rem;
    font-weight: 900;
    line-height: 1;
}

.gg-strength-muscle-mark small,
.gg-strength-bodyfat-mark small {
    color: inherit;
    font-size: .68rem;
    font-weight: 800;
    line-height: 1.05;
}

.gg-strength-muscle-mark.is-selected,
.gg-strength-bodyfat-mark.is-selected {
    border-color: color-mix(in srgb, var(--gg-accent) 34%, transparent);
    color: var(--gg-accent-strong);
    background: color-mix(in srgb, var(--gg-accent) 12%, var(--gg-surface));
}

.gg-strength-range-card,
.gg-strength-weight-card {
    opacity: .74;
    transition: opacity .16s ease, border-color .16s ease, background-color .16s ease;
}

.gg-strength-range-card.is-enabled,
.gg-strength-weight-card.is-enabled {
    opacity: 1;
    border-color: color-mix(in srgb, var(--gg-accent) 38%, var(--gg-hairline));
    background: color-mix(in srgb, var(--gg-accent) 5%, var(--gg-material));
}

.gg-strength-weight-card-head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
}

.gg-strength-weight-card-head strong,
.gg-strength-weight-card-head span {
    font-weight: 800;
}

.gg-strength-weight-card-head small {
    display: block;
    color: var(--gg-muted);
    font-size: .75rem;
    font-weight: 700;
}

@media (max-width: 900px) {
    .gg-strength-assessment-title,
    .gg-strength-assessment-panel-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .gg-strength-range-grid,
    .gg-strength-composition-grid,
    .gg-strength-composition-matrix,
    .gg-strength-input-grid,
    .gg-strength-weight-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .gg-strength-range-marks {
        font-size: .72rem;
    }

    .gg-strength-muscle-visual,
    .gg-strength-bodyfat-visual {
        grid-template-columns: 86px minmax(0, 1fr);
    }

    .gg-strength-muscle-image,
    .gg-strength-bodyfat-image {
        width: 86px;
    }

    .gg-strength-composition-preview {
        grid-template-rows: auto auto;
    }

    .gg-strength-composition-image {
        min-height: 180px;
        max-height: 260px;
    }
}

.gg-add-session-title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 14px;
    width: 100%;
}

.gg-add-session-title-copy {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    min-width: 0;
}

.gg-add-session-title-actions {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.gg-submit-button .gg-legacy-button-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.gg-submit-spinner {
    width: 15px;
    height: 15px;
    border: 2px solid color-mix(in srgb, currentColor 34%, transparent);
    border-top-color: currentColor;
    border-radius: 50%;
    animation: gg-time-picker-spin 720ms linear infinite;
}

.gg-add-session-title-hint {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: min(900px, 72vw);
    color: var(--gg-palette-info);
    font-size: 0.82rem;
    font-weight: 650;
    line-height: 1.25;
    opacity: 0.86;
}

/* The composer owns its two scroll panes. The outer body stays fixed so a
   stacked quick-add dialog cannot scroll the complete composer out of view. */
.gg-add-session-composer-modal {
    height: min(94dvh, 940px);
    max-height: calc(100dvh - 20px);
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) auto;
}

.gg-add-session-composer-header {
    flex: 0 0 auto;
    min-height: 0;
    padding: 8px 16px !important;
    align-items: center !important;
}

.gg-add-session-composer-header .gg-modal-shell-title {
    font-size: 1rem;
    line-height: 1.2;
}

.gg-add-session-composer-header .gg-modal-shell-close {
    margin-top: 0;
    width: 32px;
    height: 32px;
}

.gg-add-session-composer-body {
    flex: 1 1 0;
    height: 100%;
    min-height: 0;
    padding: 10px 16px !important;
    overflow: hidden !important;
}

.gg-add-session-composer-footer {
    flex: 0 0 auto;
    min-height: 0;
    padding: 9px 16px !important;
}

/* ── API/szinkron állapot-pötty a topbarban ── */
.gg-sync-dot {
    display: inline-block;
    width: 9px;
    height: 9px;
    margin: 0 10px 0 2px;
    border-radius: 50%;
    background: var(--gg-palette-lines-default);
    transition: background .3s ease, box-shadow .3s ease;
}
.gg-sync-dot.is-online {
    background: var(--gg-palette-success);
    box-shadow: 0 0 6px color-mix(in srgb, var(--gg-palette-success) 55%, transparent);
}
.gg-sync-dot.is-offline {
    background: var(--gg-palette-warning);
}

/* ── Dashboard gyorsindító (kezdő lépések) ── */
.gg-quickstart {
    padding: 16px 18px;
    border: 1px solid color-mix(in srgb, var(--gg-accent) 38%, var(--gg-palette-divider)) !important;
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--gg-accent) 10%, transparent) 0%, transparent 55%),
        var(--gg-palette-surface) !important;
}

.gg-quickstart-head {
    display: grid;
    gap: 2px;
    margin-bottom: 12px;
}

.gg-quickstart-title {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--gg-palette-text-primary);
}

.gg-quickstart-tiles {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.gg-quickstart-tile {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px;
    border: 1px solid color-mix(in srgb, var(--gg-accent) 30%, var(--gg-palette-divider));
    border-radius: 14px;
    background: var(--gg-palette-surface);
    color: var(--gg-palette-text-primary);
    text-align: left;
    cursor: pointer;
    transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}

.gg-quickstart-tile:hover {
    border-color: var(--gg-accent);
    transform: translateY(-1px);
    box-shadow: 0 8px 22px rgba(0, 0, 0, .10);
}

/* Demó-mód sáv (fiók nélküli próba) */
.gg-demo-banner { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px; padding: 9px 16px; background: color-mix(in srgb, var(--gg-accent, #0B9116) 12%, var(--gg-palette-surface)); border-bottom: 1px solid color-mix(in srgb, var(--gg-accent, #0B9116) 30%, transparent); font-size: .88rem; }
.gg-demo-banner-txt { display: inline-flex; align-items: center; gap: 7px; color: var(--gg-palette-text-primary); }
.gg-demo-banner-btn { border: none; cursor: pointer; font: inherit; font-weight: 800; padding: 6px 14px; border-radius: 999px; background: var(--gg-accent, #0B9116); color: #fff; }
.gg-demo-banner-btn:hover { filter: brightness(1.06); }

/* Előre-kész, statikus goal-gradient csempe: nem kattintható, nincs hover-emelés */
.gg-quickstart-tile--static { cursor: default; }
.gg-quickstart-tile--static:hover { transform: none; box-shadow: none; border-color: var(--gg-line, rgba(0,0,0,.1)); }

.gg-quickstart-tile.is-done {
    border-style: dashed;
    opacity: .72;
}

.gg-quickstart-ic {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    flex: none;
    border-radius: 12px;
    background: color-mix(in srgb, var(--gg-accent) 16%, transparent);
    color: color-mix(in srgb, var(--gg-accent) 78%, var(--gg-palette-text-primary));
}

.gg-quickstart-tile.is-done .gg-quickstart-ic {
    background: color-mix(in srgb, var(--gg-palette-success) 14%, transparent);
    color: var(--gg-palette-success);
}

.gg-quickstart-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.gg-quickstart-copy strong {
    font-size: .96rem;
    font-weight: 800;
}

.gg-quickstart-copy span {
    font-size: .8rem;
    color: var(--gg-palette-text-secondary);
}

.gg-quickstart-arrow {
    margin-left: auto;
    flex: none;
    color: color-mix(in srgb, var(--gg-accent) 70%, var(--gg-palette-text-secondary));
}

@media (max-width: 700px) {
    .gg-quickstart-tiles {
        grid-template-columns: 1fr;
    }
}

.gg-add-session-planned-ahead {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: min(900px, 72vw);
    color: var(--gg-palette-success);
    font-size: 0.82rem;
    font-weight: 650;
    line-height: 1.25;
    opacity: 0.92;
}

.gg-add-session-dialog {
    width: min(98vw, 1880px) !important;
    max-width: 98vw !important;
}

.gg-add-session-dialog-weekly {
    display: flex;
    flex-direction: column;
    height: min(94vh, 940px) !important;
    max-height: 94vh !important;
    overflow-x: hidden !important;
    position: relative;
}

.gg-add-session-dialog-weekly .gg-legacy-dialog-title {
    flex: 0 0 auto;
}

.gg-add-session-dialog-weekly .gg-legacy-dialog-title > * {
    width: 100%;
}

.gg-add-session-dialog .gg-legacy-dialog-content {
    padding-top: 10px;
    padding-bottom: 4px;
    max-height: calc(96vh - 112px);
}

.gg-add-session-dialog-weekly .gg-legacy-dialog-content {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    height: 0;
    min-height: 0;
    overflow: hidden;
    overflow-x: hidden;
    padding-bottom: 0;
    max-height: none;
}

.gg-add-session-dialog .gg-legacy-dialog-actions {
    padding-top: 4px;
    padding-bottom: 8px;
}

.gg-add-session-dialog-weekly .gg-legacy-dialog-actions {
    display: none;
}

.gg-add-session-dialog .gg-legacy-paper-outlined {
    border-radius: 10px;
}

.gg-weekly-planner-panel,
.gg-weekly-session-panel {
    min-width: 0;
}

.gg-weekly-planner-layout {
    display: grid !important;
    grid-template-columns: minmax(340px, 40fr) minmax(0, 60fr);
    grid-template-rows: minmax(0, 1fr);
    align-items: stretch;
    gap: 24px;
    flex: 1 1 0;
    height: 100%;
    min-height: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin: 0 !important;
    overflow: hidden;
    overflow-x: hidden;
}

.gg-weekly-planner-layout > .gg-weekly-sidebar-cell,
.gg-weekly-planner-layout > .gg-weekly-calendar-cell {
    width: auto;
    max-width: none;
    flex-basis: auto;
    min-width: 0;
    min-height: 0;
    padding: 0;
}

/* A heti tervező host: a GgModal shellben definit magasság kell, hogy a layout (height:100%) kitöltse. */
.gg-weekly-host {
    display: flex;
    flex-direction: column;
    gap: 16px;
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    overflow: hidden;
}

.gg-schedule-tablet-tabs,
.gg-schedule-mobile-steps,
.gg-schedule-step-back,
.gg-schedule-step-next {
    display: none;
}

.gg-schedule-tablet-tabs,
.gg-schedule-mobile-steps {
    flex: 0 0 auto;
    padding: 4px;
    border: 1px solid var(--gg-hairline);
    border-radius: 14px;
    background: var(--gg-surface-muted);
}

.gg-schedule-tablet-tabs button,
.gg-schedule-mobile-steps button {
    min-height: 44px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--gg-text-muted);
    font: inherit;
    font-size: .8rem;
    font-weight: 800;
    cursor: pointer;
}

.gg-schedule-tablet-tabs button.is-active,
.gg-schedule-mobile-steps button.is-active {
    background: var(--gg-surface);
    color: var(--gg-text);
    box-shadow: 0 1px 5px color-mix(in srgb, var(--gg-text) 10%, transparent);
}

.gg-schedule-composer-head {
    flex: 0 0 auto;
    display: grid;
    grid-template-columns: minmax(240px, .72fr) minmax(560px, 2fr);
    gap: 18px;
    padding: 16px 18px;
    border: 1px solid var(--gg-hairline);
    border-radius: 18px;
    background: color-mix(in srgb, var(--gg-surface) 96%, var(--gg-accent) 4%);
}

.gg-schedule-horizon {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 0;
    text-align: center;
}

.gg-schedule-kicker {
    color: var(--gg-text-muted);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.gg-schedule-horizon-stepper {
    display: grid;
    grid-template-columns: 48px minmax(72px, auto) 48px;
    align-items: center;
    margin-top: 8px;
    border: 1px solid var(--gg-hairline-strong, var(--gg-hairline));
    border-radius: 16px;
    overflow: hidden;
    background: var(--gg-surface);
}

.gg-schedule-horizon-stepper button {
    min-width: 48px;
    min-height: 48px;
    border: 0;
    background: transparent;
    color: var(--gg-text);
    font-size: 1.35rem;
    cursor: pointer;
}

.gg-schedule-horizon-stepper button:hover,
.gg-schedule-horizon-stepper button:focus-visible {
    background: var(--gg-surface-subtle);
}

.gg-schedule-horizon-stepper strong {
    font-size: clamp(2.4rem, 4vw, 4.2rem);
    line-height: 1;
}

.gg-schedule-weeks-label {
    margin-top: 5px;
    font-weight: 800;
}

.gg-schedule-horizon-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 5px 12px;
    margin-top: 10px;
    color: var(--gg-text-muted);
    font-size: .8rem;
}

.gg-schedule-horizon p {
    max-width: 34ch;
    margin: 7px 0 0;
    color: var(--gg-text-muted);
    font-size: .78rem;
}

.gg-schedule-start-section {
    min-width: 0;
}

.gg-schedule-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 9px;
}

.gg-schedule-section-heading h3 {
    margin: 2px 0 0;
    font-size: 1rem;
}

.gg-schedule-default-chip {
    padding: 4px 8px;
    border-radius: 999px;
    background: var(--gg-accent);
    color: var(--gg-on-accent, #111);
    font-size: .67rem;
    font-weight: 850;
}

.gg-schedule-start-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.gg-schedule-start-card {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    gap: 2px 8px;
    min-height: 72px;
    padding: 11px;
    border: 1px solid var(--gg-hairline);
    border-radius: 12px;
    background: var(--gg-surface);
    color: var(--gg-text);
    text-align: left;
    cursor: pointer;
}

.gg-schedule-start-card .gg-legacy-icon { grid-row: 1 / 3; }
.gg-schedule-start-card strong { font-size: .82rem; }
.gg-schedule-start-card span:last-child { color: var(--gg-text-muted); font-size: .7rem; line-height: 1.25; }
.gg-schedule-start-card.is-selected { border-color: var(--gg-accent); box-shadow: inset 0 0 0 1px var(--gg-accent); }

.gg-schedule-custom-date { margin-top: 8px; }

.gg-schedule-result {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 14px;
    margin-top: 10px;
    padding-top: 9px;
    border-top: 1px solid var(--gg-hairline);
}

.gg-schedule-result > div { min-width: 0; }
.gg-schedule-result > div > span { display: block; color: var(--gg-text-muted); font-size: .68rem; }
.gg-schedule-result strong { display: block; overflow: hidden; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.gg-schedule-result p { grid-column: 1 / -1; margin: 2px 0 0; color: var(--gg-text-muted); font-size: .72rem; }
.gg-schedule-info-line { display: flex; align-items: flex-start; gap: 6px; line-height: 1.35; }
.gg-schedule-info-line .gg-legacy-icon { flex: 0 0 auto; margin-top: 1px; }
.gg-schedule-info-line span { min-width: 0; }

.gg-weekly-vstack-2 {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.gg-weekly-sidebar-cell,
.gg-weekly-calendar-cell {
    display: flex;
    min-height: 0;
    overflow: hidden;
}

.gg-weekly-sidebar-stack {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 0 6px 20px 0;
    scroll-padding-bottom: 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.gg-weekly-calendar-cell > * {
    width: 100%;
    min-height: 0;
}

.gg-weekly-session-panel {
    padding-top: 18px;
    border-top: 1px solid color-mix(in srgb, var(--gg-hairline) 68%, transparent);
}

.gg-weekly-calendar-surface {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
    max-width: 100%;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.gg-weekly-calendar-surface > .gg-toolbar-wrap {
    flex: 0 0 auto;
    min-width: 0;
    max-width: 100%;
}

/* CalendarBoard normally derives its height from the viewport. Inside the
   scheduling composer it must instead consume exactly the preview pane. */
.gg-weekly-calendar-surface > .gg-calendar-board {
    display: flex;
    flex: 1 1 0;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.gg-weekly-calendar-surface > .gg-calendar-board > .gg-calendar-board-toolbar {
    flex: 0 0 auto;
    min-width: 0;
}

.gg-weekly-calendar-surface > .gg-calendar-board > .gg-calendar-timeline {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    height: auto;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.gg-weekly-calendar-surface > .gg-calendar-board .gg-calendar-scroll-region {
    flex: 1 1 0;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    max-height: none;
    overflow-y: auto;
}

.gg-weekly-calendar-title-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    min-width: 0;
}

.gg-weekly-calendar-title-line .gg-legacy-typography {
    min-width: 0;
}

.gg-weekly-toolbar-divider {
    width: 1px;
    height: 26px;
    margin: 0 4px;
    background: color-mix(in srgb, var(--gg-hairline) 76%, transparent);
}

.gg-weekly-quick-settings {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    align-items: center;
}

.gg-weekly-quick-settings > span {
    color: var(--gg-palette-text-primary);
    font-size: 0.98rem;
    font-weight: 800;
}

.gg-weekly-count-stepper {
    display: grid;
    grid-template-columns: 76px 30px;
    width: 106px;
    min-height: 76px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 38%, var(--gg-hairline));
    border-radius: 8px;
    background: color-mix(in srgb, var(--gg-palette-primary) 7%, var(--gg-surface));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gg-palette-primary) 10%, transparent);
}

.gg-weekly-count-value {
    display: grid;
    place-items: center;
    font-size: 2.15rem;
    font-weight: 900;
    line-height: 1;
    color: var(--gg-palette-primary);
    font-variant-numeric: tabular-nums;
}

.gg-weekly-count-actions {
    display: grid;
    grid-template-rows: 1fr 1fr;
    border-left: 1px solid color-mix(in srgb, var(--gg-palette-primary) 28%, var(--gg-hairline));
}

.gg-weekly-count-actions button {
    display: grid;
    place-items: center;
    min-width: 0;
    border: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--gg-palette-primary) 24%, transparent);
    background: color-mix(in srgb, var(--gg-palette-primary) 11%, transparent);
    color: var(--gg-palette-primary);
    font: inherit;
    font-size: 1.2rem;
    font-weight: 900;
    cursor: pointer;
}

.gg-weekly-count-actions button:last-child {
    border-bottom: 0;
}

.gg-weekly-count-actions button:hover {
    background: var(--gg-palette-primary);
    color: var(--gg-palette-primary-text, #fff);
}

.gg-weekly-week-count-input {
    margin-top: 0;
}

.gg-weekly-rhythm-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
}

.gg-weekly-rhythm-summary > div {
    display: grid;
    gap: 10px;
    min-height: 58px;
    padding: 9px;
    border-radius: 8px;
    background: color-mix(in srgb, var(--gg-surface-muted) 34%, transparent);
}

.gg-weekly-rhythm-summary span {
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
    font-weight: 700;
}

.gg-weekly-rhythm-summary strong {
    color: var(--gg-palette-text-primary);
    font-size: 0.9rem;
    font-weight: 850;
}

.gg-weekly-day-list {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
}

.gg-weekly-day-row {
    display: grid;
    grid-template-columns: minmax(112px, .72fr) minmax(0, 1.28fr);
    grid-template-rows: auto auto;
    align-items: center;
    gap: 6px 10px;
    min-height: 0;
    padding: 7px 8px;
    border: 1px solid color-mix(in srgb, var(--gg-hairline) 84%, transparent);
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-surface-muted) 28%, transparent);
}

.gg-weekly-day-main {
    display: grid;
    grid-column: 1;
    grid-row: 1 / span 2;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    align-items: center;
}

.gg-weekly-slot-list {
    grid-column: 2;
    grid-row: 1;
}

.gg-weekly-day-name {
    overflow: hidden;
    color: var(--gg-palette-text-primary);
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-weekly-day-date {
    color: var(--gg-palette-text-secondary);
    font-size: 0.74rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.gg-weekly-day-row.is-selected {
    border-color: color-mix(in srgb, var(--gg-accent) 34%, var(--gg-hairline));
    background: var(--gg-row-selected);
}

.gg-weekly-day-row.has-conflict {
    border-color: color-mix(in srgb, var(--gg-palette-error) 64%, var(--gg-hairline));
    background: color-mix(in srgb, var(--gg-palette-error) 8%, var(--gg-surface));
}

.gg-weekly-day-conflict {
    grid-column: 1 / -1;
    padding-left: 2px;
    font-weight: 700 !important;
}

.gg-weekly-add-slot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 34px;
    grid-column: 2;
    grid-row: 2;
    width: 100%;
    border: 1px dashed color-mix(in srgb, var(--gg-accent) 42%, var(--gg-hairline));
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-accent) 5%, transparent);
    color: var(--gg-accent);
    font-size: 0.8rem;
    font-weight: 800;
    cursor: pointer;
}

.gg-weekly-add-slot:hover {
    background: color-mix(in srgb, var(--gg-accent) 10%, transparent);
}

.gg-weekly-slot-list {
    display: grid;
    gap: 6px;
}

.gg-weekly-slot-pill {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px;
    align-items: center;
    padding: 4px;
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-surface) 62%, transparent);
}

.gg-weekly-slot-pill .gg-legacy-input-control {
    margin-top: 0;
}

.gg-weekly-session-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
}

.gg-weekly-calendar-day-title {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px;
    align-items: start;
    width: 100%;
}

.gg-weekly-add-day-button {
    animation: gg-weekly-plus-attention 760ms cubic-bezier(0.34, 1.56, 0.64, 1) 420ms 2;
    transform-origin: center;
    will-change: transform;
}

.gg-calendar-day-head:nth-child(2) .gg-weekly-add-day-button { animation-delay: 360ms; }
.gg-calendar-day-head:nth-child(3) .gg-weekly-add-day-button { animation-delay: 430ms; }
.gg-calendar-day-head:nth-child(4) .gg-weekly-add-day-button { animation-delay: 500ms; }
.gg-calendar-day-head:nth-child(5) .gg-weekly-add-day-button { animation-delay: 570ms; }
.gg-calendar-day-head:nth-child(6) .gg-weekly-add-day-button { animation-delay: 640ms; }
.gg-calendar-day-head:nth-child(7) .gg-weekly-add-day-button { animation-delay: 710ms; }
.gg-calendar-day-head:nth-child(8) .gg-weekly-add-day-button { animation-delay: 780ms; }

.gg-weekly-header-slots {
    display: grid;
    gap: 5px;
    margin-top: 7px;
}

.gg-weekly-header-slot {
    display: grid;
    grid-template-columns: minmax(38px, 1fr) 24px 24px;
    align-items: center;
    gap: 3px;
    min-height: 30px;
    padding: 3px 4px 3px 7px;
    border: 1px solid color-mix(in srgb, var(--gg-accent) 34%, var(--gg-hairline));
    border-radius: 7px;
    background: color-mix(in srgb, var(--gg-accent) 9%, var(--gg-surface));
    color: var(--gg-palette-text-primary);
}

.gg-weekly-header-slot.has-conflict {
    border-color: color-mix(in srgb, var(--gg-palette-error) 70%, var(--gg-hairline));
    background: color-mix(in srgb, var(--gg-palette-error) 8%, var(--gg-surface));
}

.gg-weekly-header-slot.is-selected {
    border-color: color-mix(in srgb, var(--gg-accent) 78%, var(--gg-hairline));
    background: color-mix(in srgb, var(--gg-accent) 15%, var(--gg-surface));
    box-shadow: inset 3px 0 0 var(--gg-accent);
}

.gg-weekly-slot-time {
    color: var(--gg-palette-text-primary);
    font-size: 0.82rem;
    font-weight: 850;
    font-variant-numeric: tabular-nums;
}

.gg-weekly-slot-icon {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--gg-accent);
    cursor: pointer;
}

.gg-weekly-slot-icon:hover {
    background: color-mix(in srgb, var(--gg-accent) 12%, transparent);
}

.gg-weekly-slot-icon.is-danger {
    color: var(--gg-palette-error);
}

.gg-weekly-slot-icon.is-danger:hover {
    background: color-mix(in srgb, var(--gg-palette-error) 10%, transparent);
}

.gg-weekly-planner-calendar .gg-calendar-event-new {
    cursor: pointer;
}

.gg-weekly-planner-calendar .gg-calendar-event-new.is-selected {
    border-color: color-mix(in srgb, var(--gg-accent) 88%, var(--gg-hairline));
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--gg-accent) 20%, transparent);
}

@keyframes gg-weekly-plus-attention {
    0%, 100% {
        transform: rotate(0deg) scale(1);
    }
    18% {
        transform: rotate(-12deg) scale(1.04);
    }
    38% {
        transform: rotate(12deg) scale(1.04);
    }
    58% {
        transform: rotate(-7deg) scale(1.02);
    }
    78% {
        transform: rotate(6deg) scale(1.01);
    }
}

.gg-weekly-day-conflict-mini {
    display: inline-flex;
    align-items: center;
    margin-top: 5px;
    padding: 2px 6px;
    border-radius: 6px;
    color: var(--gg-palette-error);
    background: color-mix(in srgb, var(--gg-palette-error) 8%, transparent);
    font-size: 0.7rem;
    font-weight: 850;
}

.gg-weekly-conflict-list {
    display: grid;
    gap: 6px;
    padding: 8px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-error) 38%, var(--gg-hairline));
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-palette-error) 6%, var(--gg-surface));
}

.gg-weekly-conflict-item {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 8px;
    align-items: center;
    font-size: 0.78rem;
}

.gg-weekly-conflict-time {
    font-weight: 800;
    color: var(--gg-palette-error);
    font-variant-numeric: tabular-nums;
}

.gg-weekly-conflict-title {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--gg-palette-text-primary);
}

.gg-weekly-conflict-more {
    font-size: 0.74rem;
    font-weight: 700;
    color: var(--gg-palette-error);
}

.gg-calendar-scroll-region.gg-weekly-planner-scroll {
    flex: 1 1 0;
    height: 100%;
    min-height: 0;
    max-height: none;
    overflow-y: scroll;
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.gg-weekly-planner-calendar {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    height: 100%;
    max-width: 100%;
    min-height: 0;
    overflow: hidden;
}

.gg-weekly-conflict-inline {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    color: var(--gg-palette-error);
    font-size: 0.82rem;
    font-weight: 800;
    white-space: nowrap;
}

.gg-weekly-conflicts-under-calendar {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.gg-weekly-conflicts-under-calendar .gg-weekly-conflict-list {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.gg-weekly-planner-calendar .gg-calendar-header-grid,
.gg-weekly-planner-calendar .gg-calendar-body-grid {
    min-width: 0;
}

.gg-weekly-planner-calendar .gg-calendar-header-grid {
    flex: 0 0 auto;
}

.gg-weekly-planner-calendar .gg-calendar-body-grid {
    min-height: 0;
}

.gg-weekly-planner-calendar .gg-calendar-time-column {
    min-height: auto;
}

@media (max-width: 959.98px) {
    .gg-add-session-composer-body {
        overflow: hidden !important;
        overscroll-behavior: contain;
    }

    .gg-add-session-composer-body > .gg-weekly-host {
        height: 100%;
        min-height: 0;
        overflow: hidden;
    }

    .gg-add-session-dialog-weekly {
        height: 94vh !important;
    }

    .gg-add-session-dialog-weekly .gg-legacy-dialog-content {
        overflow-y: auto;
    }

    .gg-weekly-host {
        height: 100%;
        display: flex;
    }

    .gg-weekly-host:not(.is-step-3) {
        overflow-y: auto;
    }

    .gg-schedule-tablet-tabs {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gg-schedule-tablet-tabs button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
    }

    .gg-schedule-composer-head { grid-template-columns: 1fr; }

    .gg-weekly-planner-layout {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto minmax(520px, 1fr);
        overflow: visible;
    }

    .gg-weekly-sidebar-cell,
    .gg-weekly-calendar-cell {
        overflow: visible;
    }

    .gg-weekly-sidebar-stack {
        overflow: visible;
    }

    .gg-weekly-calendar-surface {
        height: min(72vh, 680px);
    }

    .gg-weekly-host:not(.is-step-3) .gg-schedule-step-preview,
    .gg-weekly-host.is-step-3 .gg-schedule-step-start,
    .gg-weekly-host.is-step-3 .gg-schedule-step-rhythm {
        display: none;
    }

    .gg-weekly-host.is-step-3 .gg-weekly-planner-layout {
        height: 100%;
        min-height: 0;
        grid-template-rows: minmax(0, 1fr);
        overflow: hidden;
    }

    .gg-weekly-host.is-step-3 .gg-weekly-calendar-cell,
    .gg-weekly-host.is-step-3 .gg-weekly-calendar-surface {
        height: 100%;
        min-height: 0;
        overflow: hidden;
    }

    .gg-schedule-footer-summary:not(.is-final),
    .gg-schedule-save-action:not(.is-final) {
        display: none;
    }
}

.gg-weekly-slot-select {
    display: flex;
    min-width: 0;
    min-height: 42px;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    border: 0;
    border-radius: 8px;
    padding: 7px 9px;
    background: transparent;
    color: var(--gg-text);
    cursor: pointer;
    text-align: left;
}
.gg-weekly-slot-select[aria-pressed="true"] { background: color-mix(in srgb,var(--gg-accent) 10%,transparent); }
.gg-weekly-slot-select strong { font-variant-numeric:tabular-nums; }
.gg-weekly-slot-select span { color:var(--gg-text-muted); font-size:.7rem; }
.gg-weekly-slot-actions { display:flex; flex:0 0 auto; gap:3px; }
.gg-weekly-slot-actions button { display:grid; width:32px; min-width:32px; height:32px; padding:0; place-items:center; border:1px solid var(--gg-hairline); border-radius:8px; background:var(--gg-surface); color:var(--gg-text-muted); cursor:pointer; box-shadow:0 1px 2px color-mix(in srgb,var(--gg-text) 8%,transparent); }
.gg-weekly-slot-actions button:hover,.gg-weekly-slot-actions button:focus-visible { border-color:var(--gg-border-strong); background:var(--gg-surface-muted); color:var(--gg-text); outline:none; }
.gg-weekly-slot-actions button.is-delete { border-color:color-mix(in srgb,var(--gg-danger) 38%,var(--gg-hairline)); color:var(--gg-danger); background:color-mix(in srgb,var(--gg-danger) 7%,var(--gg-surface)); }
.gg-weekly-slot-actions button.is-delete:hover,.gg-weekly-slot-actions button.is-delete:focus-visible { border-color:var(--gg-danger); background:color-mix(in srgb,var(--gg-danger) 14%,var(--gg-surface)); color:var(--gg-danger); }
.gg-schedule-conflict-override { display:grid; gap:8px; margin-bottom:10px; padding:12px; border:1px solid color-mix(in srgb,var(--gg-danger) 35%,var(--gg-hairline)); border-radius:12px; background:color-mix(in srgb,var(--gg-danger) 5%,var(--gg-surface)); }
.gg-schedule-conflict-override small { color:var(--gg-text-muted); font-size:.7rem; }
.gg-schedule-warning-list { display:grid; gap:6px; margin-bottom:10px; }
.gg-schedule-warning-list>span { display:flex; align-items:flex-start; gap:7px; padding:9px 10px; border:1px solid color-mix(in srgb,var(--gg-warning) 35%,var(--gg-hairline)); border-radius:10px; color:var(--gg-text-muted); font-size:.72rem; }

@media (max-width: 639.98px) {
    .gg-add-session-composer-modal {
        width: 100% !important;
        height: calc(100dvh - 16px);
        max-height: calc(100dvh - 16px);
    }

    .gg-add-session-composer-header {
        padding: 8px 14px !important;
    }

    .gg-add-session-composer-body {
        padding: 8px !important;
    }

    .gg-add-session-dialog-weekly {
        width: 100vw !important;
        max-width: 100vw !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        border-radius: 0 !important;
    }

    .gg-schedule-tablet-tabs { display: none; }

    .gg-schedule-mobile-steps {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .gg-schedule-mobile-steps button {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
        justify-content: center;
        gap: 5px;
        padding: 6px;
        text-align: left;
    }

    .gg-schedule-mobile-steps button span {
        display: grid;
        width: 24px;
        height: 24px;
        place-items: center;
        border: 1px solid currentColor;
        border-radius: 50%;
        font-size: .7rem;
    }

    .gg-schedule-composer-head { padding: 14px; }
    .gg-schedule-start-cards,
    .gg-schedule-result { grid-template-columns: 1fr; }
    .gg-schedule-start-card { min-height: 58px; }

    .gg-weekly-host.is-step-1 .gg-schedule-step-rhythm,
    .gg-weekly-host.is-step-1 .gg-schedule-step-preview,
    .gg-weekly-host.is-step-2 .gg-schedule-step-start,
    .gg-weekly-host.is-step-2 .gg-schedule-step-preview,
    .gg-weekly-host.is-step-3 .gg-schedule-step-start,
    .gg-weekly-host.is-step-3 .gg-schedule-step-rhythm {
        display: none;
    }

    .gg-weekly-host.is-step-2 .gg-weekly-planner-layout,
    .gg-weekly-host.is-step-3 .gg-weekly-planner-layout {
        display: block !important;
    }

    .gg-weekly-host.is-step-2 .gg-weekly-sidebar-cell,
    .gg-weekly-host.is-step-3 .gg-weekly-calendar-cell {
        display: flex;
    }

    .gg-weekly-host.is-step-3 .gg-weekly-calendar-surface {
        height: 100%;
        min-height: 0;
    }

    .gg-weekly-host.is-step-3 .gg-calendar-board-toolbar {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
        width: 100%;
        min-width: 0;
    }

    .gg-weekly-host.is-step-3 .gg-calendar-view-pills {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        width: 100%;
        min-width: 0;
    }

    .gg-weekly-host.is-step-3 .gg-calendar-view-pill {
        justify-content: center;
        min-width: 0;
        padding-inline: 6px;
    }

    .gg-weekly-host.is-step-3 .gg-calendar-board-nav {
        display: grid;
        grid-template-columns: 36px 48px 36px minmax(0, 1fr);
        width: 100%;
        min-width: 0;
    }

    .gg-weekly-host.is-step-3 .gg-calendar-board-range {
        min-width: 0;
        overflow: hidden;
        text-align: right;
        text-overflow: ellipsis;
    }

    .gg-weekly-host.is-step-3 .gg-calendar-board-tools {
        display: flex;
        flex-wrap: wrap;
        min-width: 0;
    }

    .gg-schedule-step-back,
    .gg-schedule-step-next {
        align-items: center;
        justify-content: center;
        gap: 6px;
        min-height: 44px;
        padding: 9px 13px;
        border-radius: 10px;
        font: inherit;
        font-weight: 800;
        cursor: pointer;
    }

    .gg-schedule-step-back {
        display: inline-flex;
        border: 1px solid var(--gg-hairline);
        background: transparent;
        color: var(--gg-text);
    }

    .gg-schedule-step-next {
        display: inline-flex;
        border: 1px solid var(--gg-accent);
        background: var(--gg-accent);
        color: var(--gg-on-accent, #111);
    }

    .gg-schedule-step-back:disabled,
    .gg-schedule-step-next:disabled {
        opacity: .45;
        cursor: not-allowed;
    }

    .gg-schedule-footer-actions {
        display: grid;
        grid-template-columns: auto auto minmax(0, 1fr);
        gap: 6px;
        width: 100%;
        min-width: 0;
    }

    .gg-schedule-footer-actions > :first-child { grid-column: 1; }
    .gg-schedule-step-back { grid-column: 2; }
    .gg-schedule-step-next,
    .gg-schedule-save-action {
        grid-column: 3;
        min-width: 0;
    }
    .gg-schedule-save-action > * {
        width: 100%;
        min-width: 0;
        padding-inline: 10px;
        white-space: normal;
        line-height: 1.15;
    }
}

.gg-calendar-hour-label-collapsed {
    padding: 0;
    color: transparent;
}

.gg-calendar-hour-line-collapsed {
    position: relative;
    border-bottom: 0;
    background: transparent;
}

.gg-calendar-hour-line-collapsed::after {
    content: none;
}

.gg-calendar-collapsed-gap-toggle {
    position: absolute;
    left: 54px;
    right: 0;
    z-index: 4;
    display: grid;
    place-items: center;
    border: 0;
    background: transparent;
    color: var(--gg-palette-text-secondary);
    cursor: pointer;
}

.gg-calendar-collapsed-gap-toggle::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 4px;
    transform: translateY(-50%);
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-divider) 88%, transparent);
}

.gg-calendar-collapsed-gap-toggle .gg-legacy-icon-root {
    position: relative;
    z-index: 1;
    width: 28px;
    height: 22px;
    padding: 2px;
    border: 1px solid color-mix(in srgb, var(--gg-hairline) 72%, transparent);
    border-radius: 8px;
    background: color-mix(in srgb, var(--gg-surface) 92%, transparent);
    color: var(--gg-palette-text-secondary);
    box-shadow: 0 4px 12px color-mix(in srgb, #000 8%, transparent);
}

.gg-calendar-collapsed-gap-toggle:hover::before {
    background: color-mix(in srgb, var(--gg-accent) 54%, var(--gg-palette-divider));
}

.gg-calendar-collapsed-gap-toggle:hover .gg-legacy-icon-root {
    color: var(--gg-accent);
    border-color: color-mix(in srgb, var(--gg-accent) 38%, var(--gg-hairline));
}

.gg-time-picker-backdrop {
    position: fixed;
    inset: 0;
    z-index: 2200;
    display: grid;
    place-items: center;
    padding: 20px;
    background: color-mix(in srgb, #000 38%, transparent);
    backdrop-filter: blur(10px);
}

.gg-time-picker-modal {
    --gg-time-picker-accent: var(--gg-palette-primary, var(--gg-accent));
    --gg-time-picker-accent-text: var(--gg-palette-primary-text, #fff);
    width: min(390px, calc(100vw - 36px));
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--gg-hairline) 78%, transparent);
    border-radius: 14px;
    background: color-mix(in srgb, var(--gg-surface) 94%, transparent);
    box-shadow: 0 28px 80px color-mix(in srgb, #000 28%, transparent);
}

.gg-time-picker-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 16px 8px;
}

.gg-time-picker-close {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 8px;
    background: color-mix(in srgb, var(--gg-surface-muted) 56%, transparent);
    color: var(--gg-palette-text-secondary);
    cursor: pointer;
}

.gg-time-picker-close:disabled {
    cursor: default;
    opacity: 0.48;
}

.gg-time-picker-current {
    padding: 2px 16px 10px;
    color: var(--gg-palette-text-primary);
    font-size: 2rem;
    font-weight: 850;
    letter-spacing: 0;
    font-variant-numeric: tabular-nums;
}

.gg-time-picker-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 0 16px 16px;
}

.gg-time-picker-label {
    padding: 0 2px 6px;
    color: var(--gg-palette-text-secondary);
    font-size: 0.74rem;
    font-weight: 800;
}

.gg-time-picker-wheel-shell {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
    background: color-mix(in srgb, var(--gg-surface-muted) 38%, transparent);
}

.gg-time-picker-wheel-shell::before {
    content: "";
    position: absolute;
    z-index: 1;
    left: 5px;
    right: 5px;
    top: 50%;
    height: 38px;
    transform: translateY(-50%);
    border-radius: 9px;
    background: color-mix(in srgb, var(--gg-time-picker-accent) 12%, transparent);
    pointer-events: none;
}

.gg-time-picker-wheel-shell::after {
    content: "";
    position: absolute;
    z-index: 4;
    inset: 0;
    background:
        linear-gradient(
            to bottom,
            color-mix(in srgb, var(--gg-surface) 90%, transparent) 0%,
            transparent 28%,
            transparent 72%,
            color-mix(in srgb, var(--gg-surface) 90%, transparent) 100%
        );
    pointer-events: none;
}

.gg-time-picker-wheel {
    position: relative;
    z-index: 3;
    display: grid;
    height: 238px;
    overflow-y: auto;
    padding: 100px 5px;
    scrollbar-width: none;
    cursor: ns-resize;
    user-select: none;
    touch-action: none;
    scroll-behavior: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.gg-time-picker-wheel::-webkit-scrollbar {
    display: none;
}

.gg-time-picker-option {
    min-height: 38px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--gg-palette-text-secondary);
    font-size: 1rem;
    font-weight: 780;
    font-variant-numeric: tabular-nums;
    cursor: pointer;
    opacity: 0.48;
    transform: scale(0.94);
    transition:
        color 140ms ease,
        opacity 140ms ease,
        transform 140ms ease,
        background 140ms ease;
}

.gg-time-picker-conflict {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    margin: 0 16px 12px;
    padding: 10px 11px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-error) 46%, var(--gg-hairline));
    border-radius: 10px;
    color: var(--gg-palette-error);
    background: color-mix(in srgb, var(--gg-palette-error) 7%, transparent);
}

.gg-time-picker-conflict.is-hidden {
    display: none;
}

.gg-time-picker-conflict strong,
.gg-time-picker-conflict span {
    display: block;
    min-width: 0;
}

.gg-time-picker-conflict strong {
    font-size: 0.82rem;
    font-weight: 900;
    line-height: 1.25;
}

.gg-time-picker-conflict span {
    margin-top: 2px;
    color: var(--gg-palette-text-secondary);
    font-size: 0.76rem;
    font-weight: 760;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-time-picker-option:hover {
    background: color-mix(in srgb, var(--gg-time-picker-accent) 7%, transparent);
    opacity: 0.82;
}

.gg-time-picker-option:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--gg-time-picker-accent) 58%, transparent);
    outline-offset: -2px;
}

.gg-time-picker-option.is-centered {
    color: var(--gg-time-picker-accent);
    font-weight: 900;
    opacity: 1;
    transform: scale(1);
}

.gg-time-picker-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 16px 16px;
    border-top: 1px solid color-mix(in srgb, var(--gg-hairline) 70%, transparent);
}

.gg-time-picker-cancel,
.gg-time-picker-save {
    min-height: 38px;
    border: 0;
    border-radius: 8px;
    padding: 0 16px;
    font: inherit;
    font-size: 0.88rem;
    font-weight: 850;
    cursor: pointer;
}

.gg-time-picker-cancel {
    background: transparent;
    color: var(--gg-palette-text-secondary);
}

.gg-time-picker-cancel:hover {
    background: color-mix(in srgb, var(--gg-surface-muted) 70%, transparent);
    color: var(--gg-palette-text-primary);
}

.gg-time-picker-save {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: var(--gg-time-picker-accent);
    color: var(--gg-time-picker-accent-text);
}

.gg-time-picker-save:hover {
    background: color-mix(in srgb, var(--gg-time-picker-accent) 88%, #000);
}

.gg-time-picker-save:disabled {
    cursor: default;
    opacity: 0.48;
}

.gg-time-picker-cancel:disabled {
    cursor: default;
    opacity: 0.48;
}

.gg-time-picker-save-spinner {
    width: 15px;
    height: 15px;
    border: 2px solid color-mix(in srgb, var(--gg-accent-contrast) 34%, transparent);
    border-top-color: var(--gg-accent-contrast);
    border-radius: 50%;
    animation: gg-time-picker-spin 720ms linear infinite;
}

@keyframes gg-time-picker-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (min-width: 1500px) {
    .gg-weekly-day-list {
        grid-template-columns: minmax(0, 1fr);
    }

    .gg-weekly-session-grid {
        grid-template-columns: minmax(0, 1fr) minmax(110px, 0.45fr);
    }

    .gg-weekly-session-grid .gg-legacy-input-control:first-child,
    .gg-weekly-session-grid .gg-legacy-input-control:last-child {
        grid-column: 1 / -1;
    }
}

.gg-monthly-planner {
    display: grid;
    gap: 10px;
}

.gg-monthly-planner-toolbar,
.gg-monthly-editor {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.gg-monthly-editor {
    padding: 10px;
    border: 1px solid var(--gg-hairline);
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-surface-muted) 42%, transparent);
}

.gg-monthly-editor .gg-legacy-input-control {
    max-width: 150px;
}

.gg-monthly-weekdays,
.gg-monthly-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.gg-monthly-weekdays {
    gap: 6px;
    color: var(--gg-palette-text-secondary);
    font-size: 0.72rem;
    font-weight: 800;
    text-align: center;
    text-transform: uppercase;
}

.gg-monthly-grid {
    overflow: hidden;
    border: 1px solid var(--gg-hairline);
    border-radius: var(--gg-radius-sm);
}

.gg-monthly-day {
    position: relative;
    min-height: 92px;
    padding: 7px;
    border: 0;
    border-right: 1px solid var(--gg-hairline);
    border-bottom: 1px solid var(--gg-hairline);
    background: color-mix(in srgb, var(--gg-surface) 82%, transparent);
    color: var(--gg-palette-text-primary);
    text-align: left;
    cursor: pointer;
}

.gg-monthly-day:nth-child(7n) {
    border-right: 0;
}

.gg-monthly-day.is-muted {
    opacity: 0.45;
}

.gg-monthly-day.is-today {
    background: color-mix(in srgb, var(--gg-palette-primary) 8%, var(--gg-surface));
}

.gg-monthly-day.has-occurrence {
    background: color-mix(in srgb, var(--gg-palette-primary) 5%, var(--gg-surface));
}

.gg-monthly-day.is-selected {
    outline: 2px solid var(--gg-palette-primary);
    outline-offset: -2px;
}

.gg-monthly-day.has-conflict {
    background: color-mix(in srgb, var(--gg-palette-error) 8%, var(--gg-surface));
}

.gg-monthly-day-number {
    display: block;
    margin-bottom: 5px;
    font-size: 0.76rem;
    font-weight: 900;
}

.gg-monthly-occurrence,
.gg-monthly-more {
    display: block;
    width: fit-content;
    max-width: 100%;
    margin-top: 3px;
    padding: 2px 6px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-primary) 18%, transparent);
    color: var(--gg-palette-primary);
    font-size: 0.72rem;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
}

.gg-monthly-occurrence.is-selected {
    background: var(--gg-palette-primary);
    color: var(--gg-palette-primary-text);
}

.gg-monthly-occurrence.has-conflict {
    background: color-mix(in srgb, var(--gg-palette-error) 18%, transparent);
    color: var(--gg-palette-error);
}

.gg-monthly-occurrence.has-override::after {
    content: " *";
}

@media (max-width: 960px) {
    .gg-client-setup-steps {
        grid-template-columns: 1fr;
    }

    .gg-client-setup-step {
        min-height: 0;
    }

    .gg-weekly-day-row {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto;
        align-items: stretch;
    }

    .gg-weekly-day-main {
        grid-column: 1;
        grid-row: 1;
    }

    .gg-weekly-slot-list {
        grid-column: 1;
        grid-row: 2;
    }

    .gg-weekly-add-slot {
        grid-column: 1;
        grid-row: 3;
    }
}

.gg-command-title {
    margin-top: 4px;
    font-family: var(--gg-font-display);
    font-weight: 800;
    letter-spacing: -0.02em;
}

.gg-command-icon {
    width: 48px;
    height: 48px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.gg-command-icon .gg-legacy-icon-root {
    font-size: 1.4rem;
}

.gg-command-icon-success {
    background: color-mix(in srgb, var(--gg-palette-success) 14%, var(--gg-palette-surface));
    color: var(--gg-palette-success);
}

.gg-command-icon-info {
    background: color-mix(in srgb, var(--gg-palette-info) 14%, var(--gg-palette-surface));
    color: var(--gg-palette-info);
}

.gg-command-icon-warning {
    background: color-mix(in srgb, var(--gg-palette-warning) 14%, var(--gg-palette-surface));
    color: var(--gg-palette-warning);
}

.gg-command-icon-danger {
    background: color-mix(in srgb, var(--gg-palette-error) 14%, var(--gg-palette-surface));
    color: var(--gg-palette-error);
}

.gg-finance-card {
    padding: 20px;
    min-height: 168px;
}

.gg-open-payment-list {
    display: grid;
    gap: 10px;
}

.gg-open-payment-item {
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-warning) 18%, var(--gg-palette-divider));
    background: linear-gradient(180deg, color-mix(in srgb, var(--gg-palette-surface) 94%, var(--gg-palette-warning) 6%) 0%, var(--gg-palette-surface) 100%);
}

.gg-open-payment-item .gg-muted {
    color: var(--gg-palette-text-secondary) !important;
    opacity: 0.98;
}

.gg-finance-card .gg-command-title {
    font-size: 1.65rem;
    line-height: 1.1;
}

.gg-pass-dialog .gg-legacy-dialog-content {
    padding-top: 8px;
}

.gg-pass-dialog .gg-legacy-paper {
    border-radius: 22px;
}

.gg-pass-adjust-dialog .gg-legacy-dialog-content,
.gg-pass-dialog .gg-legacy-dialog-content {
    background: linear-gradient(180deg, color-mix(in srgb, var(--gg-palette-surface) 94%, var(--gg-palette-primary) 6%) 0%, var(--gg-palette-surface) 100%);
}

.gg-calendar-week-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(138px, 1fr));
    min-height: 620px;
    overflow-x: auto;
    border: 1px solid var(--gg-palette-divider);
    border-radius: 16px;
    background: color-mix(in srgb, var(--gg-palette-background) 75%, var(--gg-palette-surface));
}

.gg-calendar-day {
    min-width: 138px;
    border-right: 1px solid var(--gg-palette-divider);
    display: flex;
    flex-direction: column;
}

.gg-calendar-day:last-child {
    border-right: 0;
}

.gg-calendar-day-today {
    background: color-mix(in srgb, var(--gg-palette-primary) 9%, transparent);
}
/* A mai oszlop fejléce erősen kontrasztos. */
.gg-calendar-day-head.gg-calendar-day-today {
    background: color-mix(in srgb, var(--gg-palette-primary) 26%, transparent);
    box-shadow: inset 0 -3px 0 var(--gg-palette-primary);
}
.gg-calendar-day-head.gg-calendar-day-today .gg-cal-dayhead-dow,
.gg-calendar-day-head.gg-calendar-day-today .gg-cal-dayhead-date {
    color: var(--gg-palette-primary) !important;
    font-weight: 800;
}

.gg-calendar-day-head {
    min-height: 58px;
    padding: 10px 12px;
    border-bottom: 1px solid var(--gg-palette-divider);
    background: color-mix(in srgb, var(--gg-palette-primary) 10%, var(--gg-palette-surface));
}
/* Nap-fejléc feliratok (LegacyText helyett natív span). */
.gg-cal-dayhead-dow { display: block; font-size: .72rem; line-height: 1.25; color: var(--gg-palette-text-secondary); }
.gg-cal-dayhead-date { display: block; font-size: .9rem; font-weight: 600; color: var(--gg-palette-text-primary); }

/* Naptár-navigáció natív gombjai (LegacyIconButton/LegacyButton helyett). */
.gg-cal-navbtn {
    display: inline-grid; place-items: center;
    width: 32px; height: 32px; border-radius: 9px;
    background: transparent; border: 1px solid transparent; color: var(--gg-palette-text-primary);
    cursor: pointer; transition: background .12s ease, border-color .12s ease;
}
.gg-cal-navbtn:hover { background: color-mix(in srgb, var(--gg-palette-text-primary) 8%, transparent); }
.gg-cal-todaybtn {
    height: 32px; padding: 0 12px; border-radius: 9px;
    background: transparent; border: 1px solid var(--gg-palette-divider); color: var(--gg-palette-text-primary);
    font: inherit; font-size: .82rem; font-weight: 700; cursor: pointer;
    transition: background .12s ease, border-color .12s ease;
}
.gg-cal-todaybtn:hover { background: color-mix(in srgb, var(--gg-palette-text-primary) 8%, transparent); border-color: color-mix(in srgb, var(--gg-palette-primary) 40%, var(--gg-palette-divider)); }

/* Naptár OLDAL (Calendar.razor) — LegacyContainer/Stack/Paper/Button helyett natív. */
.gg-cal-page { display: flex; flex-direction: column; gap: 16px; }
.gg-cal-action {
    display: inline-flex; align-items: center; gap: 7px;
    height: 40px; padding: 0 16px; border-radius: 10px;
    background: transparent; border: 1px solid transparent; color: var(--gg-palette-primary);
    font: inherit; font-size: .9rem; font-weight: 700; cursor: pointer; white-space: nowrap;
    transition: background .12s ease, filter .12s ease;
}
.gg-cal-action:hover { background: color-mix(in srgb, var(--gg-palette-primary) 10%, transparent); }
.gg-cal-action--primary { background: var(--gg-palette-primary); color: var(--gg-palette-primary-text, #fff); box-shadow: 0 8px 20px -10px color-mix(in srgb, var(--gg-palette-primary) 80%, transparent); }
.gg-cal-action--primary:hover { filter: brightness(1.07); background: var(--gg-palette-primary); }

/* ClientDetail Naptár-tab toolbar (LegacyPaper/Stack/Text/Button helyett natív). */
.gg-cd-cal-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.gg-cd-cal-title { font-size: 1rem; font-weight: 600; color: var(--gg-palette-text-primary); }
.gg-cd-cal-sub { font-size: .78rem; }

.gg-calendar-day-body {
    flex: 1;
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.gg-calendar-empty {
    min-height: 86px;
    border: 1px dashed color-mix(in srgb, var(--gg-palette-divider) 80%, transparent);
    border-radius: 12px;
    color: var(--gg-palette-text-secondary);
    font-size: 0.82rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 8px;
}

.gg-calendar-event {
    border: 1px solid var(--gg-palette-divider);
    border-left: 4px solid var(--gg-palette-primary);
    border-radius: 8px;
    padding: 5px 7px 5px 8px;
    background: var(--gg-palette-surface);
    cursor: pointer;
    box-shadow: 0 4px 12px color-mix(in srgb, var(--gg-palette-text-primary) 8%, transparent);
    font-size: 0.76rem;
    line-height: 1.16;
}

.gg-calendar-event:hover {
    border-color: color-mix(in srgb, var(--gg-palette-primary) 50%, var(--gg-palette-divider));
}

.gg-calendar-event {
    transition: transform 140ms ease, box-shadow 140ms ease, opacity 140ms ease, filter 140ms ease, border-color 140ms ease;
}

.gg-calendar-event-related {
    transform: translateY(-2px);
    z-index: 4 !important;
    border-color: color-mix(in srgb, var(--gg-palette-primary) 58%, var(--gg-palette-divider));
    box-shadow: 0 10px 24px color-mix(in srgb, var(--gg-palette-primary) 18%, transparent);
}

.gg-calendar-event-muted {
    opacity: 0.42;
    filter: saturate(0.72);
}

.gg-calendar-event-completed {
    border-left-color: var(--gg-palette-success);
}

.gg-calendar-event-cancelled {
    opacity: 0.68;
    border-left-color: var(--gg-palette-error);
}

.gg-calendar-event-noshow {
    border-left-color: var(--gg-palette-warning);
}

.gg-calendar-event-new {
    border: 2px dashed var(--gg-palette-primary);
    border-left-width: 4px;
    border-left-style: solid;
    background: color-mix(in srgb, var(--gg-palette-primary) 12%, var(--gg-palette-surface));
}

.gg-calendar-event-conflict {
    border-left-color: var(--gg-palette-error) !important;
    background: color-mix(in srgb, var(--gg-palette-error) 8%, var(--gg-palette-surface)) !important;
}

.gg-calendar-event-external {
    cursor: default;
    pointer-events: none;
    z-index: 1 !important;
    border: 1px dashed color-mix(in srgb, var(--gg-palette-text-secondary) 55%, var(--gg-palette-divider));
    border-left: 3px dashed color-mix(in srgb, var(--gg-palette-text-secondary) 62%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-surface) 72%, transparent);
    box-shadow: none;
    opacity: 0.62;
}

.gg-calendar-event-external:hover {
    border-color: color-mix(in srgb, var(--gg-palette-text-secondary) 55%, var(--gg-palette-divider));
}

.gg-calendar-event-external .gg-calendar-event-status {
    border-style: dashed;
    background: transparent;
}

.gg-calendar-event-external .gg-calendar-event-title,
.gg-calendar-event-external .gg-calendar-event-subtitle {
    color: var(--gg-palette-text-secondary);
}

.gg-calendar-timeline {
    overflow: hidden;
    border: 1px solid var(--gg-palette-divider);
    border-radius: 16px;
    background: color-mix(in srgb, var(--gg-palette-background) 75%, var(--gg-palette-surface));
}

.gg-calendar-scroll-region {
    height: clamp(420px, calc(100vh - 360px), 680px);
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
}

.gg-calendar-scroll-region-3days {
    height: clamp(420px, calc(100vh - 430px), 560px);
}

.gg-calendar-header-grid,
.gg-calendar-body-grid {
    display: grid;
    grid-template-columns: 54px repeat(7, minmax(0, 1fr));
    min-width: 0;
    width: 100%;
}

.gg-calendar-body-grid {
    position: relative;
}

.gg-calendar-grid-3days {
    grid-template-columns: 54px repeat(3, minmax(0, 1fr));
}

.gg-calendar-header-grid {
    position: sticky;
    top: 0;
    /* Tömör háttér + magas z-index: a görgetett események/ghostok ne látsszanak át a fejlécen. */
    z-index: 8;
    background: var(--gg-palette-surface);
}

.gg-calendar-time-head {
    min-height: 58px;
    border-right: 1px solid var(--gg-palette-divider);
    border-bottom: 1px solid var(--gg-palette-divider);
    background: color-mix(in srgb, var(--gg-palette-primary) 10%, var(--gg-palette-surface));
}

.gg-calendar-timeline .gg-calendar-day-head {
    min-height: 58px;
    padding: 10px 8px;
    border-right: 1px solid var(--gg-palette-divider);
    border-bottom: 1px solid var(--gg-palette-divider);
    min-width: 0;
}

.gg-calendar-day-head.gg-calendar-day-selected {
    background: color-mix(in srgb, var(--gg-palette-primary) 16%, var(--gg-palette-surface));
}

.gg-calendar-time-axis {
    position: relative;
    border-right: 1px solid var(--gg-palette-divider);
    background: color-mix(in srgb, var(--gg-palette-surface) 88%, var(--gg-palette-primary) 4%);
}

.gg-calendar-hour-label {
    height: 64px;
    padding: 0 6px;
    border-bottom: 1px solid color-mix(in srgb, var(--gg-palette-divider) 75%, transparent);
    color: var(--gg-palette-text-secondary);
    font-size: 0.74rem;
    font-weight: 800;
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    line-height: 1;
    padding-top: 6px;
}

.gg-calendar-time-column {
    position: relative;
    min-height: 1152px;
    border-right: 1px solid var(--gg-palette-divider);
    min-width: 0;
}

.gg-calendar-time-column.gg-calendar-day-selected {
    background: color-mix(in srgb, var(--gg-palette-primary) 5%, transparent);
}

.gg-calendar-time-column:last-child {
    border-right: 0;
}

.gg-calendar-hour-line {
    height: 64px;
    border-bottom: 1px solid color-mix(in srgb, var(--gg-palette-divider) 72%, transparent);
}

.gg-calendar-time-column .gg-calendar-event {
    position: absolute;
    left: 5px;
    right: 5px;
    z-index: 2;
    overflow: hidden;
}

.gg-calendar-event-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4px;
    min-width: 0;
    margin-bottom: 2px;
}

.gg-calendar-event-time,
.gg-calendar-event-title {
    font-weight: 800;
}

.gg-calendar-event-time {
    color: var(--gg-palette-text-primary);
}

.gg-calendar-event-status {
    flex: 0 1 auto;
    max-width: 52px;
    padding: 1px 5px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 35%, var(--gg-palette-divider));
    border-radius: 999px;
    color: var(--gg-palette-text-secondary);
    background: color-mix(in srgb, var(--gg-palette-surface) 88%, var(--gg-palette-primary) 7%);
    font-size: 0.64rem;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gg-calendar-event-title,
.gg-calendar-event-subtitle,
.gg-calendar-event-plan {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.gg-calendar-event-subtitle,
.gg-calendar-event-plan {
    color: var(--gg-palette-text-secondary);
    font-size: 0.68rem;
    line-height: 1.18;
}

.gg-calendar-now-line {
    position: absolute;
    left: 0;
    right: 0;
    z-index: 3;
    height: 0;
    border-top: 2px solid color-mix(in srgb, var(--gg-palette-primary) 82%, #000 18%);
    pointer-events: none;
}

.gg-calendar-now-dot {
    position: absolute;
    left: -4px;
    top: -5px;
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-primary) 82%, #000 18%);
    box-shadow: 0 0 0 2px var(--gg-palette-surface);
}

.gg-dark .gg-calendar-now-line {
    border-top-color: color-mix(in srgb, var(--gg-palette-primary) 72%, #fff 28%);
}

.gg-dark .gg-calendar-now-dot {
    background: color-mix(in srgb, var(--gg-palette-primary) 72%, #fff 28%);
}

/* Three-day preview grid (AddSessionDialog) */
.three-day-preview-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-top: 12px;
}

.preview-day {
    border: 1px solid var(--gg-palette-divider);
    border-radius: 8px;
    overflow: hidden;
    background: var(--gg-palette-surface);
}

.preview-day.selected-day {
    border: 2px solid var(--gg-palette-primary);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--gg-palette-primary) 12%, transparent);
}

.preview-day.today .preview-day-header {
    background: color-mix(in srgb, var(--gg-palette-info) 15%, transparent);
}

.preview-day-header {
    padding: 8px 12px;
    background: var(--gg-palette-background-grey);
    border-bottom: 1px solid var(--gg-palette-divider);
    text-align: center;
}

.preview-day-body {
    padding: 8px;
    min-height: 120px;
}

.preview-events {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.preview-event {
    padding: 8px;
    border-radius: 6px;
    border-left: 3px solid var(--gg-palette-divider);
    background: var(--gg-palette-background-grey);
}

.preview-event.dot-scheduled {
    border-left-color: var(--gg-palette-info);
    background: color-mix(in srgb, var(--gg-palette-info) 8%, var(--gg-palette-background));
}

.preview-event.dot-completed {
    border-left-color: var(--gg-palette-success);
    background: color-mix(in srgb, var(--gg-palette-success) 8%, var(--gg-palette-background));
}

.preview-event.dot-noshow {
    border-left-color: var(--gg-palette-warning);
    background: color-mix(in srgb, var(--gg-palette-warning) 8%, var(--gg-palette-background));
}

.preview-event.dot-cancelled {
    border-left-color: var(--gg-palette-error);
    background: color-mix(in srgb, var(--gg-palette-error) 8%, var(--gg-palette-background));
    opacity: 0.68;
}

.preview-event.dot-conflict {
    border-left-color: var(--gg-palette-error);
    background: color-mix(in srgb, var(--gg-palette-error) 18%, var(--gg-palette-background));
    border: 2px solid var(--gg-palette-error);
}

.preview-event.dot-new {
    border: 2px dashed var(--gg-palette-primary);
    border-left: 3px solid var(--gg-palette-primary);
    background: color-mix(in srgb, var(--gg-palette-primary) 10%, var(--gg-palette-background));
}

.preview-event .gg-legacy-typography {
    margin: 0;
    line-height: 1.4;
}

.gg-scheme-card {
    padding: 14px;
    border-radius: 14px;
    border: 1px solid var(--gg-palette-divider);
    cursor: pointer;
    transition: transform 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
}

.gg-scheme-card:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--gg-palette-primary) 45%, var(--gg-palette-divider));
    box-shadow: var(--gg-shadow-soft);
}

.gg-scheme-card-active {
    border-color: var(--gg-palette-primary);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gg-palette-primary) 35%, transparent);
}

.gg-swatch {
    width: 22px;
    height: 22px;
    border-radius: 999px;
    box-shadow: inset 0 0 0 2px color-mix(in srgb, #ffffff 60%, transparent);
}

@media (max-width: 960px) {
    .gg-main {
        background: var(--gg-palette-background);
    }

    .gg-page {
        padding: 8px 10px 14px;
    }

    .gg-page-header {
        padding: 18px;
        border-radius: 18px;
    }

    .gg-surface,
    .gg-kpi-card {
        padding: 14px;
        border-radius: 16px;
        box-shadow: none;
    }

    .gg-topbar {
        padding: 0 4px;
        background: var(--gg-palette-appbar-background);
    }

    .gg-topbar .gg-legacy-toolbar {
        min-height: 38px !important;
    }

    .gg-topbar-title {
        font-size: 1.04rem;
        font-weight: 800;
        color: var(--gg-palette-text-primary);
    }

    .gg-topbar-preview,
    .gg-topbar-callout,
    .gg-topbar-callout-badge,
    .gg-topbar-theme-switch,
    .gg-topbar .gg-avatar {
        display: none !important;
    }

    .gg-workout-player-page .gg-workout-header {
        border-radius: 14px;
        position: sticky;
        top: 38px; /* stick just below the dense topbar */
        z-index: 50;
    }

    .gg-workout-player-page {
        padding-bottom: 0;
    }

    .gg-workout-player-page .gg-workout-grid,
    .gg-workout-player-page .gg-workout-main-col,
    .gg-workout-player-page .gg-workout-side-col {
        gap: 14px;
    }

    .gg-workout-player-page .gg-workout-log-scroll-area {
        height: auto;
        min-height: 0;
        overflow: visible;
        padding-right: 0;
        margin-right: 0;
    }

    .gg-workout-player-page .gg-workout-player-composer-spacer {
        display: block;
        height: calc(210px + env(safe-area-inset-bottom, 0px));
        flex: 0 0 auto;
        padding-top: 10px;
    }

    .gg-workout-player-page .gg-workout-player-top-btn {
        display: inline-flex;
        min-height: 38px;
        border-radius: 999px;
        text-transform: none;
        font-weight: 800;
        letter-spacing: 0.01em;
        margin-left: auto;
        margin-right: auto;
    }

    .gg-workout-player-page .workout-header-row {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 10px;
    }

    .gg-workout-player-page .workout-header-meta .gg-legacy-typography-h6 {
        font-size: 1.38rem;
        line-height: 1.2;
        color: var(--gg-palette-text-primary);
    }

    .gg-workout-player-page .workout-header-meta .gg-legacy-typography-caption {
        font-size: 0.81rem;
        color: var(--gg-palette-text-secondary);
    }

    .gg-workout-player-page .workout-header-actions {
        align-items: stretch;
        gap: 6px;
        width: 100%;
    }

    .gg-workout-player-page .workout-header-actions > .gg-legacy-stack {
        width: 100%;
    }

    .gg-workout-player-page .workout-primary-actions {
        justify-content: flex-end;
        flex-wrap: wrap;
        width: 100%;
        gap: 6px;
    }

    .gg-workout-player-page .workout-header-actions .gg-legacy-chip {
        min-width: 84px;
        height: 34px;
        flex-shrink: 0;
    }

    .gg-workout-player-page .workout-end-btn,
    .gg-workout-player-page .workout-discard-btn {
        min-height: 40px;
    }

    .gg-workout-player-page .workout-end-btn {
        flex: 1 1 100%;  /* take full row on wrap */
        order: 10;
        min-width: 0;
        min-height: 44px;
        border-radius: 12px;
    }

    .gg-workout-player-page .workout-primary-actions > .gg-legacy-menu {
        margin-left: auto;
        order: 5;
    }

    .gg-workout-player-page .workout-discard-btn {
        min-height: 38px;
        min-width: 0;
        flex: 1 1 100%;
        order: 11;
        border-radius: 10px;
        padding: 6px 12px;
    }

    .gg-workout-player-page .workout-composer {
        position: fixed;
        left: 0;
        right: 0;
        bottom: env(safe-area-inset-bottom, 0px);
        margin: 0;
        width: 100%;
        max-width: 100vw;
        max-height: min(48vh, 340px);
        overflow-y: auto;
        overscroll-behavior: contain;
        box-sizing: border-box;
        z-index: 1200;
        padding: 14px 12px calc(10px + env(safe-area-inset-bottom, 0px));
        border-radius: 16px 16px 0 0;
        box-shadow: 0 -6px 24px color-mix(in srgb, var(--gg-palette-text-primary) 14%, transparent);
        border-top: 1px solid var(--gg-palette-divider);
    }

    .gg-workout-player-page .gg-upcoming-session-grid {
        grid-template-columns: 1fr;
    }

    .gg-session-modal-head,
    .gg-session-modal-body,
    .gg-session-modal-footer {
        padding-left: 16px;
        padding-right: 16px;
    }

    .gg-session-modal-head {
        padding-top: 18px;
        padding-bottom: 14px;
    }

    .gg-session-modal-body {
        padding-top: 14px;
        padding-bottom: 16px;
        gap: 12px;
    }

    .gg-session-modal-footer {
        padding-top: 10px;
        padding-bottom: 14px;
    }

    .gg-picker-modal,
    .gg-session-modal {
        width: calc(100vw - 32px);
        max-width: calc(100vw - 32px);
    }

    .gg-session-modal-identity {
        gap: 12px;
    }

    .gg-session-modal-client {
        font-size: 1.5rem;
        word-break: break-word;
        overflow-wrap: anywhere;
    }

    .gg-session-avatar {
        width: 48px;
        height: 48px;
        flex-basis: 48px;
        border-radius: 16px;
        font-size: 1.15rem;
    }

    .gg-session-start-hero {
        align-items: stretch;
        flex-direction: column;
    }

    .gg-session-start-copy strong,
    .gg-session-start-copy small {
        white-space: normal;
    }

    .gg-session-summary-grid,
    .gg-session-detail-grid {
        grid-template-columns: 1fr;
    }

    .gg-session-summary-card,
    .gg-session-detail-card,
    .gg-session-primary-surface,
    .gg-session-danger-zone {
        padding: 12px 14px;
    }

    .gg-session-primary-actions .gg-legacy-button-root,
    .gg-session-secondary-actions .gg-legacy-button-root {
        width: 100%;
    }

    .gg-workout-player-page .gg-upcoming-session-card {
        padding: 14px;
    }

    .gg-workout-player-page .composer-picker {
        border-radius: 999px;
        min-height: 48px;
        padding: 0 14px;
    }

    .gg-workout-player-page .composer-picker-label-main {
        font-size: 0.92rem;
        line-height: 1.2;
    }

    .gg-workout-player-page .composer-entry-row {
        grid-template-columns: minmax(0, 1fr) 34px minmax(0, 1fr) 30px;
        gap: 5px;
        align-items: center;
    }

    .gg-workout-player-page .composer-entry-separator {
        font-size: 0.84rem;
        font-weight: 800;
        letter-spacing: 0.01em;
        line-height: 1;
        padding-bottom: 0;
    }

    .gg-workout-player-page .composer-entry-input .gg-legacy-input-control-input-container,
    .gg-workout-player-page .composer-entry-input .gg-legacy-input,
    .gg-workout-player-page .composer-entry-input .gg-legacy-input-root.gg-legacy-input-root-outlined,
    .gg-workout-player-page .composer-entry-input input.gg-legacy-input-slot {
        min-height: 30px;
        height: 30px;
    }

    .gg-workout-player-page .composer-entry-input input {
        text-align: center;
        font-weight: 700;
        font-size: 0.8rem;
    }

    .gg-workout-player-page .composer-entry-input .gg-legacy-input-label {
        font-size: 0.62rem;
    }

    .gg-workout-player-page .composer-add-set-btn {
        display: inline-flex;
        min-width: 30px;
        width: 30px;
        height: 30px;
        border-radius: 999px;
        padding: 0;
        margin-bottom: 0;
        align-items: center;
        justify-content: center;
        background: var(--gg-accent-yellow);
        color: #111111;
        box-shadow: inset 0 0 0 1px color-mix(in srgb, #111111 12%, transparent);
    }

    .gg-workout-player-page .composer-add-set-btn .gg-legacy-icon-root {
        font-size: 0.82rem;
        font-weight: 800;
    }

    .gg-workout-player-page .gg-exercise-log-card {
        border-radius: 16px;
        padding: 12px;
        background: color-mix(in srgb, var(--gg-palette-surface) 94%, var(--gg-palette-primary) 6%);
    }

    .gg-workout-player-page .gg-exercise-log-title {
        font-size: 1.06rem;
    }

    .gg-workout-player-page .gg-exercise-set-row {
        min-height: 30px;
        border-radius: 8px;
        padding: 4px 10px;
        font-size: 1rem;
    }

    .gg-workout-player-page .workout-composer .gg-legacy-input-outlined .gg-legacy-input-outlined-border {
        border-color: color-mix(in srgb, var(--gg-palette-divider) 86%, transparent);
    }
    .gg-workout-player-page .workout-composer .gg-legacy-input-slot {
        border-radius: 12px;
    }

    .gg-workout-player-page .composer-submit-button {
        min-height: 48px;
        border-radius: 12px;
        font-size: 0.95rem;
    }

    /* ¦¦ Naptár toolbar ¦¦ */
    .gg-calendar-toolbar-row {
        flex-wrap: wrap;
        gap: 10px;
    }

    .gg-calendar-toolbar-left {
        flex: 1 1 auto;
        flex-wrap: wrap;
        gap: 8px;
    }

    /* Heti nézet dátumfelirat elrejtve mobilon */
    .gg-calendar-toolbar-left > .gg-legacy-stack:not([class*="gg-legacy-stack-row"]) {
        display: none;
    }

    /* "Új időpont" gomb — icon + szöveg marad, de full-width a sort tölti */
    .gg-calendar-add-btn {
        width: 100%;
        justify-content: center;
    }

    /* ¦¦ Kliens hero ¦¦ */
    /* LegacyStack renders as div[role=group] with d-flex, not .gg-legacy-stack */
    .gg-client-hero > div {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 14px;
    }

    /* Avatar + név sor marad, de kisebb */
    .gg-client-hero-avatar {
        width: 52px !important;
        height: 52px !important;
        font-size: 1.25rem !important;
    }

    .gg-client-hero .gg-title {
        font-size: 1.3rem;
    }

    /* Action gombok: 2×2 grid, ikon felül + szöveg alul (app-style action grid) */
    .gg-client-hero-actions {
        width: 100%;
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .gg-client-hero-actions .gg-legacy-button-root {
        width: 100%;
        min-width: 0;
        height: auto;
        min-height: 60px;
        padding: 10px 6px !important;
        flex-direction: column !important;
        gap: 4px;
    }

    .gg-client-hero-actions .gg-legacy-button-label {
        flex-direction: column !important;
        gap: 4px;
        white-space: normal !important;
        text-align: center;
        font-size: 0.68rem;
        line-height: 1.2;
        letter-spacing: 0.03em;
    }

    .gg-client-hero-actions .gg-legacy-button-icon-start {
        margin-right: 0 !important;
        margin-bottom: 0;
    }

    .gg-client-hero-actions .gg-legacy-button-icon-start svg {
        font-size: 1.1rem !important;
        width: 18px !important;
        height: 18px !important;
    }
}

@media (min-width: 961px) {
    .gg-workout-player-page .composer-entry-row {
        display: flex !important;
        align-items: center;
        gap: 6px;
        width: 100%;
        min-width: 0;
    }

    .gg-workout-player-page .composer-entry-input {
        flex: 1 1 0;
        min-width: 0;
        width: 0;
    }

    .gg-workout-player-page .composer-entry-input .gg-legacy-input-control,
    .gg-workout-player-page .composer-entry-input .gg-legacy-input-control-input-container,
    .gg-workout-player-page .composer-entry-input .gg-legacy-input {
        min-width: 0;
        width: 100%;
    }

    .gg-workout-player-page .composer-entry-separator {
        flex: 0 0 32px;
        text-align: center;
        font-size: 0.88rem;
        padding-bottom: 0;
    }

    .gg-workout-player-page .composer-entry-row > .composer-add-set-btn.gg-legacy-button-root.gg-legacy-button {
        flex: 0 0 34px;
        min-width: 34px !important;
        width: 34px !important;
        max-width: 34px;
        height: 34px !important;
        padding: 0 !important;
        border-radius: 999px !important;
    }

    .gg-workout-player-page .composer-entry-row > .composer-add-set-btn .gg-legacy-button-label {
        width: 100%;
        height: 100%;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: center;
    }
}

/* Workout Log Redesign Layout */
.gg-workout-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    align-items: start;
}

@media (min-width: 1024px) {
    .gg-workout-player-page {
        max-width: 1360px;
        margin-inline: auto;
    }
    .gg-workout-grid {
        grid-template-columns: 1fr 340px;
        gap: 24px;
    }
}

.gg-workout-main-col {
    display: flex;
    flex-direction: column;
    gap: 16px;
    position: relative;
    min-height: 0;
}

.gg-workout-side-col {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* Scrollable exercise area */
.gg-workout-log-scroll-area {
    height: calc(100vh - 360px);
    min-height: 420px;
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 6px;
    margin-right: -6px;
}

.gg-workout-log-scroll-area::-webkit-scrollbar {
    width: 6px;
}
.gg-workout-log-scroll-area::-webkit-scrollbar-track {
    background: transparent;
}
.gg-workout-log-scroll-area::-webkit-scrollbar-thumb {
    background-color: color-mix(in srgb, var(--gg-palette-divider) 80%, transparent);
    border-radius: 6px;
}

/* Sticky composer */
.gg-sticky-composer {
    position: sticky;
    bottom: 0;
    z-index: 10;
    margin-top: 8px;
}

/* Desktop-specific adjustments for the composer */
@media (min-width: 1024px) {
    .gg-sticky-composer {
        border-color: color-mix(in srgb, var(--gg-palette-success) 30%, var(--gg-palette-divider)) !important;
        background: color-mix(in srgb, var(--gg-palette-surface) 95%, var(--gg-palette-success) 5%) !important;
        box-shadow: 0 -4px 20px rgba(0,0,0,0.05) !important;
        border-radius: 16px;
    }
}

/* Right column summary cards */
.gg-summary-card {
    padding: 16px;
    border-radius: 16px;
    border: 1px solid var(--gg-palette-divider);
    background: var(--gg-palette-surface);
    box-shadow: var(--gg-shadow-soft);
}
.gg-summary-card-header {
    margin-bottom: 12px;
}
.gg-summary-card-title {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--gg-palette-text-primary);
}
.gg-summary-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--gg-palette-surface) 92%, var(--gg-palette-primary) 8%);
    color: var(--gg-palette-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1.1rem;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 20%, var(--gg-palette-divider));
}
.gg-summary-card-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.gg-plan-set-row {
    display: grid;
    gap: 2px;
    padding: 8px 0;
    border-bottom: 1px solid var(--gg-palette-divider);
}

.gg-plan-toolbar-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
}

.gg-plan-set-row-polished {
    gap: 6px;
    padding: 10px 0;
}

.gg-plan-set-copy {
    min-width: 0;
}

.gg-plan-set-title {
    overflow-wrap: anywhere;
    line-height: 1.25;
}

.gg-plan-set-row:last-child {
    border-bottom: 0;
}

.gg-program-workspace,
.gg-assignment-workspace {
    display: grid;
    grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.gg-program-browser,
.gg-assignment-programs {
    position: sticky;
    top: 84px;
}

.gg-assignment-client-list {
    display: grid;
    gap: 8px;
}

.gg-assignment-client-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    width: 100%;
    padding: 12px;
    border: 1px solid var(--gg-hairline);
    border-radius: var(--gg-radius-sm);
    background: var(--gg-palette-surface);
    color: var(--gg-palette-text-primary);
    cursor: pointer;
    text-align: left;
}

.gg-assignment-client-card:hover:not(:disabled) {
    border-color: color-mix(in srgb, var(--gg-accent) 34%, var(--gg-hairline));
    background: var(--gg-row-hover);
}

.gg-assignment-client-card.is-active {
    border-color: color-mix(in srgb, var(--gg-accent) 44%, var(--gg-hairline));
    background: var(--gg-row-selected);
    box-shadow: inset 3px 0 0 var(--gg-accent);
}

.gg-assignment-client-card.is-muted {
    opacity: 0.62;
}

.gg-assignment-client-main,
.gg-assignment-client-side {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.gg-assignment-client-main strong {
    overflow: hidden;
    font-size: 0.94rem;
    font-weight: 850;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-assignment-client-main span,
.gg-assignment-client-side small {
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
    font-weight: 700;
}

.gg-assignment-client-side {
    justify-items: end;
    align-content: center;
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
    font-weight: 800;
    text-align: right;
    white-space: nowrap;
}

.gg-intake-builder,
.gg-intake-answer-list {
    display: grid;
    gap: 10px;
    margin-top: 10px;
}

.gg-intake-question-card {
    padding: 12px;
    border: 1px solid var(--gg-hairline);
    border-radius: var(--gg-radius-sm);
    background: var(--gg-palette-surface);
}

.gg-intake-answer-row {
    display: grid;
    gap: 5px;
}

.gg-intake-answer-row label {
    color: var(--gg-palette-text-primary);
    font-size: 0.84rem;
    font-weight: 800;
}

.gg-intake-answer-row small {
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
    line-height: 1.35;
}

.gg-program-card-list {
    display: grid;
    gap: 0;
    border-top: 1px solid var(--gg-hairline);
}

.gg-program-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    width: 100%;
    padding: 14px 8px;
    border: 0;
    border-bottom: 1px solid var(--gg-hairline);
    background: transparent;
    color: var(--gg-palette-text-primary);
    cursor: pointer;
    text-align: left;
}

.gg-program-card:hover {
    background: var(--gg-row-hover);
}

.gg-program-card.is-active {
    background: var(--gg-row-selected);
    box-shadow: inset 3px 0 0 var(--gg-accent);
}

.gg-program-card.is-muted {
    opacity: 0.66;
}

.gg-program-card-main,
.gg-program-card-stats {
    display: grid;
    min-width: 0;
    gap: 4px;
}

.gg-program-card-stats {
    justify-items: end;
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
    font-weight: 750;
    white-space: nowrap;
}

.gg-program-card-title {
    color: var(--gg-palette-text-primary);
    font-size: 0.96rem;
    font-weight: 850;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.gg-program-card-copy {
    color: var(--gg-palette-text-secondary);
    font-size: 0.82rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.gg-program-detail {
    display: grid;
    gap: 14px;
    min-width: 0;
}

.gg-program-hero,
.gg-program-days,
.gg-assignment-main {
    min-width: 0;
}

.gg-program-editor {
    padding-bottom: 12px;
    border-bottom: 1px solid var(--gg-hairline);
}

.gg-program-step-rail {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 16px;
}

.gg-program-step {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    padding: 9px 10px;
    border: 1px solid var(--gg-hairline);
    border-radius: var(--gg-radius-sm);
    color: var(--gg-palette-text-secondary);
    background: color-mix(in srgb, var(--gg-surface-muted) 34%, transparent);
}

.gg-program-step span {
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-surface-muted) 70%, transparent);
    font-size: 0.78rem;
    font-weight: 850;
}

.gg-program-step strong {
    min-width: 0;
    overflow: hidden;
    font-size: 0.82rem;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-program-step.is-complete {
    border-color: color-mix(in srgb, var(--gg-accent) 24%, var(--gg-hairline));
    color: var(--gg-accent);
    background: color-mix(in srgb, var(--gg-accent) 7%, transparent);
}

.gg-program-step.is-complete span {
    background: color-mix(in srgb, var(--gg-accent) 13%, transparent);
}

.gg-program-day-card {
    padding: 12px 0 10px;
    border-top: 1px solid var(--gg-hairline);
}

.gg-program-day-card:first-of-type {
    border-top: 0;
    padding-top: 0;
}

.gg-program-day-title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    min-width: 0;
}

.gg-program-day-index {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border: 1px solid color-mix(in srgb, var(--gg-accent) 24%, var(--gg-hairline));
    border-radius: var(--gg-radius-sm);
    color: var(--gg-accent);
    background: color-mix(in srgb, var(--gg-accent) 8%, transparent);
    font-weight: 900;
}

.gg-program-week-list {
    display: grid;
    gap: 18px;
}

.gg-program-week-section {
    display: grid;
    gap: 8px;
}

.gg-program-week-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-width: 0;
    padding: 4px 0 8px;
    border-bottom: 1px solid var(--gg-hairline);
}

.gg-program-day-shell {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-width: 0;
}

.gg-program-workout-row {
    margin-left: 42px;
    padding: 10px 0;
    border-top: 1px solid color-mix(in srgb, var(--gg-hairline) 82%, transparent);
}

.gg-program-workout-row:first-of-type {
    margin-top: 8px;
}

.gg-program-workout-title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    min-width: 0;
}

.gg-program-workout-title > span:first-child {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-surface-muted) 70%, transparent);
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
    font-weight: 850;
}

.gg-program-workout-title > span:nth-child(2) {
    display: grid;
    min-width: min(240px, 100%);
    gap: 2px;
}

.gg-program-workout-title strong {
    color: var(--gg-palette-text-primary);
    font-size: 0.95rem;
    line-height: 1.2;
}

.gg-program-workout-title small {
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
    line-height: 1.3;
}

.gg-program-day-title > span:not(.gg-program-day-index):not(.gg-template-count-label) {
    display: grid;
    min-width: min(220px, 100%);
    gap: 2px;
}

.gg-program-day-title strong {
    color: var(--gg-palette-text-primary);
    font-size: 0.98rem;
    line-height: 1.2;
}

.gg-program-day-title small {
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
    line-height: 1.3;
}

.gg-program-slot-editor {
    border-style: dashed !important;
}

.gg-program-week-section {
    gap: 12px;
}

.gg-program-day-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 12px;
    align-items: stretch;
}

.gg-program-day-card {
    display: grid;
    gap: 12px;
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--gg-hairline);
    border-radius: var(--gg-radius-md);
    background: color-mix(in srgb, var(--gg-surface-muted) 22%, transparent);
}

.gg-program-day-card:first-of-type {
    padding-top: 12px;
    border-top: 1px solid var(--gg-hairline);
}

.gg-program-day-shell {
    align-items: flex-start;
}

.gg-program-workout-slot-list {
    display: grid;
    gap: 10px;
}

.gg-program-template-slot {
    display: grid;
    gap: 10px;
    min-width: 0;
    padding: 10px;
    border: 1px solid color-mix(in srgb, var(--gg-hairline) 82%, transparent);
    border-radius: var(--gg-radius-sm);
    background: var(--gg-palette-surface);
}

.gg-program-template-slot-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
    color: var(--gg-palette-text-secondary);
    font-size: 0.8rem;
    font-weight: 800;
}

.gg-program-template-slot-main {
    display: flex;
    align-items: flex-start;
    min-width: 0;
    gap: 8px;
}

.gg-program-template-slot-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.gg-program-template-slot-copy strong,
.gg-program-template-slot-copy small {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-program-template-slot-copy strong {
    color: var(--gg-palette-text-primary);
    font-size: 0.88rem;
    line-height: 1.25;
}

.gg-program-template-slot-copy small {
    color: var(--gg-palette-text-secondary);
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1.25;
}

.gg-program-slot-number {
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border: 1px solid color-mix(in srgb, var(--gg-accent) 24%, var(--gg-hairline));
    border-radius: var(--gg-radius-sm);
    color: var(--gg-accent);
    background: color-mix(in srgb, var(--gg-accent) 7%, transparent);
    font-size: 0.78rem;
    font-weight: 900;
}

.gg-program-template-select {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-width: 0;
    width: 100%;
    min-height: 48px;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid color-mix(in srgb, var(--gg-hairline) 86%, transparent);
    border-radius: var(--gg-radius-sm);
    color: var(--gg-palette-text-primary);
    background: color-mix(in srgb, var(--gg-surface-muted) 28%, transparent);
    font: inherit;
    font-weight: 800;
    text-align: left;
    cursor: pointer;
}

.gg-program-template-select-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    gap: 8px;
    min-width: 0;
}

.gg-program-template-select-shell.has-preview {
    grid-template-columns: minmax(0, 1fr) 40px;
}

.gg-program-template-preview-button.gg-legacy-icon-button {
    align-self: stretch;
    width: 40px;
    height: auto;
    min-width: 40px;
    min-height: 48px;
    border: 1px solid color-mix(in srgb, var(--gg-hairline) 86%, transparent);
    border-radius: var(--gg-radius-sm);
    color: var(--gg-palette-text-secondary);
    background: color-mix(in srgb, var(--gg-surface-muted) 22%, transparent);
}

.gg-program-template-preview-button.gg-legacy-icon-button:hover {
    border-color: color-mix(in srgb, var(--gg-accent) 34%, var(--gg-hairline));
    color: var(--gg-accent);
    background: color-mix(in srgb, var(--gg-accent) 6%, var(--gg-surface-muted));
}

.gg-program-template-select:hover {
    border-color: color-mix(in srgb, var(--gg-accent) 38%, var(--gg-hairline));
    background: color-mix(in srgb, var(--gg-accent) 6%, var(--gg-surface-muted));
}

.gg-program-template-select:disabled {
    cursor: default;
    opacity: 0.65;
}

.gg-program-template-select span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-program-template-select.is-empty {
    color: var(--gg-palette-text-secondary);
    font-weight: 750;
}

.gg-program-template-select.is-readonly {
    cursor: default;
    pointer-events: none;
}

.gg-program-empty-workout-slot {
    display: grid;
    place-items: center;
    gap: 10px;
    min-height: 112px;
    padding: 14px;
    border: 1px dashed color-mix(in srgb, var(--gg-accent) 32%, var(--gg-hairline));
    border-radius: var(--gg-radius-sm);
    color: var(--gg-palette-text-secondary);
    background: color-mix(in srgb, var(--gg-accent) 4%, transparent);
    text-align: center;
}

.gg-program-empty-workout-slot strong {
    color: var(--gg-palette-text-primary);
    font-size: 0.9rem;
}

.gg-program-template-slot-footer {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    justify-content: space-between;
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
    line-height: 1.25;
}

.gg-program-template-slot-name {
    min-width: 0;
    overflow: hidden;
    color: var(--gg-palette-text-primary);
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-program-template-slot-actions {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    gap: 2px;
}

.gg-program-template-picker-modal {
    width: min(620px, calc(100vw - 32px));
}

.gg-program-template-picker-list {
    display: grid;
    gap: 8px;
    max-height: min(58vh, 520px);
    overflow: auto;
    padding-right: 2px;
}

.gg-program-template-picker-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-width: 0;
    gap: 14px;
    width: 100%;
    padding: 12px;
    border: 1px solid var(--gg-hairline);
    border-radius: var(--gg-radius-sm);
    color: var(--gg-palette-text-primary);
    background: var(--gg-palette-surface);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.gg-program-template-picker-item:hover,
.gg-program-template-picker-item.is-active {
    border-color: color-mix(in srgb, var(--gg-accent) 34%, var(--gg-hairline));
    background: color-mix(in srgb, var(--gg-accent) 6%, var(--gg-palette-surface));
}

.gg-program-template-picker-item:disabled {
    cursor: default;
    opacity: 0.65;
}

.gg-program-template-picker-main {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.gg-program-template-picker-main strong,
.gg-program-template-picker-main small {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-program-template-picker-main small {
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
    line-height: 1.3;
}

.gg-program-template-picker-stats {
    display: flex;
    flex-shrink: 0;
    gap: 8px;
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
    font-weight: 800;
    white-space: nowrap;
}

.gg-program-template-picker-empty {
    min-height: 180px;
}

.gg-program-template-preview-modal {
    width: min(720px, calc(100vw - 32px));
    max-height: min(82vh, 760px);
    overflow: auto;
}

.gg-program-template-preview-empty {
    min-height: 132px;
}

.gg-program-template-preview-list {
    display: grid;
    gap: 10px;
}

.gg-program-template-preview-group {
    display: grid;
    gap: 8px;
    padding: 12px;
    border: 1px solid color-mix(in srgb, var(--gg-hairline) 82%, transparent);
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-surface-muted) 18%, transparent);
}

.gg-program-template-preview-group-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    min-width: 0;
}

.gg-program-template-preview-group-head strong {
    min-width: 0;
    overflow: hidden;
    color: var(--gg-palette-text-primary);
    font-size: 0.94rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-program-template-preview-group-head span {
    flex-shrink: 0;
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
    font-weight: 760;
}

.gg-program-template-preview-sets {
    display: grid;
}

.gg-program-template-preview-set {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 9px 0;
    border-top: 1px solid color-mix(in srgb, var(--gg-hairline) 72%, transparent);
}

.gg-program-template-preview-set:first-child {
    border-top: 0;
}

.gg-program-template-preview-set-main {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.gg-program-template-preview-set-main strong,
.gg-program-template-preview-set-main small {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-program-template-preview-set-main strong {
    color: var(--gg-palette-text-primary);
    font-size: 0.86rem;
}

.gg-program-template-preview-set-main small {
    color: var(--gg-palette-text-secondary);
    font-size: 0.76rem;
}

.gg-program-add-day-card {
    display: grid;
    place-items: center;
    min-height: 160px;
    gap: 6px;
    padding: 18px;
    border: 1px dashed color-mix(in srgb, var(--gg-accent) 38%, var(--gg-hairline));
    border-radius: var(--gg-radius-md);
    color: var(--gg-accent);
    background: color-mix(in srgb, var(--gg-accent) 4%, transparent);
    cursor: pointer;
}

.gg-program-add-day-card span {
    font-size: 1.35rem;
    font-weight: 900;
    line-height: 1;
}

.gg-program-add-day-card strong {
    font-size: 0.86rem;
    font-weight: 850;
}

.gg-program-add-day-card:disabled {
    cursor: default;
    opacity: 0.55;
}

.gg-program-empty,
.gg-assignment-empty {
    display: grid;
    gap: 10px;
    justify-items: start;
    padding: 22px;
}

.gg-assignment-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid var(--gg-hairline);
    border-bottom: 1px solid var(--gg-hairline);
}

.gg-assignment-summary-grid > div {
    display: grid;
    gap: 4px;
    padding: 12px;
    border-left: 1px solid var(--gg-hairline);
}

.gg-assignment-summary-grid > div:first-child {
    border-left: 0;
}

.gg-assignment-summary-grid span {
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
    font-weight: 750;
}

.gg-assignment-summary-grid strong {
    color: var(--gg-palette-text-primary);
    font-size: 1.25rem;
    font-weight: 850;
}

.gg-assignment-list {
    display: grid;
    border-top: 1px solid var(--gg-hairline);
}

.gg-assignment-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(180px, auto) auto;
    gap: 14px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--gg-hairline);
}

.gg-assignment-row > div {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.gg-assignment-row strong {
    color: var(--gg-palette-text-primary);
    font-size: 0.94rem;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-assignment-row span {
    color: var(--gg-palette-text-secondary);
    font-size: 0.8rem;
}

.gg-assignment-builder {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid color-mix(in srgb, var(--gg-hairline) 72%, transparent);
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-surface-muted) 34%, transparent);
}

.gg-assignment-control-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    align-items: start;
}

.gg-assignment-warning {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--gg-palette-warning-darken);
    font-size: 0.86rem;
    font-weight: 760;
}

.gg-assignment-preview-shell {
    display: grid;
    gap: 12px;
}

.gg-assignment-preview-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-width: 0;
}

.gg-assign-plan-brief {
    display: grid;
    grid-template-columns: minmax(190px, 1.4fr) repeat(3, minmax(110px, .8fr));
    gap: 10px;
}

.gg-assign-brief-card {
    display: grid;
    gap: 4px;
    padding: 12px 14px;
    border: 1px solid var(--gg-hairline);
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-surface-muted) 34%, transparent);
}

.gg-assign-brief-card span {
    color: var(--gg-palette-text-secondary);
    font-size: .75rem;
    font-weight: 800;
    text-transform: uppercase;
}

.gg-assign-brief-card strong {
    color: var(--gg-palette-text-primary);
    font-size: 1.08rem;
    line-height: 1.2;
}

.gg-assign-brief-card.is-primary {
    background: color-mix(in srgb, var(--gg-accent) 9%, var(--gg-palette-surface));
    border-color: color-mix(in srgb, var(--gg-accent) 28%, var(--gg-hairline));
}

.gg-assign-brief-card.is-ok strong {
    color: var(--gg-palette-success);
}

.gg-assign-brief-card.is-warning strong {
    color: var(--gg-palette-warning);
}

.gg-assignment-preview-table {
    display: grid;
    border: 1px solid var(--gg-hairline);
    border-radius: var(--gg-radius-sm);
    overflow: hidden;
    background: var(--gg-palette-surface);
}

.gg-assignment-preview-row {
    display: grid;
    grid-template-columns: minmax(112px, 0.8fr) minmax(118px, 0.8fr) minmax(180px, 1.4fr) minmax(130px, 0.9fr) minmax(130px, 0.9fr);
    gap: 12px;
    align-items: center;
    min-width: 0;
    padding: 11px 12px;
    border-top: 1px solid var(--gg-hairline);
    color: var(--gg-palette-text-secondary);
    font-size: 0.84rem;
    font-weight: 720;
}

.gg-assignment-preview-row:first-child {
    border-top: 0;
}

.gg-assignment-preview-row > span {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.gg-assignment-preview-row strong,
.gg-assignment-preview-row small {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-assignment-preview-row strong {
    color: var(--gg-palette-text-primary);
    font-size: 0.9rem;
}

.gg-assignment-preview-row small {
    color: var(--gg-palette-text-secondary);
    font-size: 0.76rem;
}

.gg-assignment-preview-header {
    background: color-mix(in srgb, var(--gg-accent) 6%, var(--gg-palette-surface));
    color: var(--gg-palette-text-secondary);
    font-size: 0.75rem;
    font-weight: 860;
    text-transform: uppercase;
}

.gg-assignment-preview-row.has-conflict {
    background: color-mix(in srgb, var(--gg-palette-error) 8%, transparent);
    color: var(--gg-palette-error);
}

.gg-assign-weeks {
    display: grid;
    gap: 14px;
}

.gg-assign-week {
    display: grid;
    gap: 10px;
}

.gg-assign-week-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    padding: 0 2px;
}

.gg-assign-week-head > div {
    display: grid;
    gap: 2px;
}

.gg-assign-week-head span {
    color: var(--gg-palette-text-primary);
    font-weight: 860;
}

.gg-assign-week-head small {
    color: var(--gg-palette-text-secondary);
    font-size: .78rem;
    font-weight: 700;
}

.gg-assign-week-prog {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    padding: 4px 10px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-surface-muted) 52%, transparent);
    border: 1px solid var(--gg-hairline);
    color: var(--gg-palette-text-secondary) !important;
    font-size: .76rem;
    font-weight: 850;
}

.gg-assign-week-prog.is-step {
    color: var(--gg-palette-primary) !important;
    background: color-mix(in srgb, var(--gg-palette-primary) 10%, transparent);
    border-color: color-mix(in srgb, var(--gg-palette-primary) 26%, transparent);
}

.gg-assign-week-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 10px;
}

.gg-assign-timeline-card {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 12px;
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--gg-hairline);
    border-radius: 14px;
    background: var(--gg-palette-surface);
    box-shadow: 0 10px 26px rgba(15, 23, 42, .05);
}

.gg-assign-timeline-card.is-online {
    background: color-mix(in srgb, var(--gg-palette-info) 6%, var(--gg-palette-surface));
    border-color: color-mix(in srgb, var(--gg-palette-info) 22%, var(--gg-hairline));
}

.gg-assign-timeline-card.has-conflict {
    background: color-mix(in srgb, var(--gg-palette-warning) 8%, var(--gg-palette-surface));
    border-color: color-mix(in srgb, var(--gg-palette-warning) 38%, var(--gg-hairline));
}

.gg-assign-datebox {
    display: grid;
    align-content: center;
    justify-items: center;
    min-height: 78px;
    border-radius: 12px;
    background: color-mix(in srgb, var(--gg-accent) 8%, var(--gg-surface-muted));
    border: 1px solid color-mix(in srgb, var(--gg-accent) 24%, var(--gg-hairline));
}

.gg-assign-datebox span,
.gg-assign-datebox small {
    color: var(--gg-palette-text-secondary);
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.gg-assign-datebox strong {
    color: var(--gg-palette-text-primary);
    font-size: 1.45rem;
    line-height: 1;
}

.gg-assign-timeline-main {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.gg-assign-timeline-top {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}

.gg-assign-mode-pill {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 850;
}

.gg-assign-mode-pill.is-inperson {
    color: var(--gg-palette-success);
    background: color-mix(in srgb, var(--gg-palette-success) 10%, transparent);
}

.gg-assign-mode-pill.is-online {
    color: var(--gg-palette-info);
    background: color-mix(in srgb, var(--gg-palette-info) 10%, transparent);
}

.gg-assign-timeline-main strong {
    min-width: 0;
    overflow: hidden;
    color: var(--gg-palette-text-primary);
    font-size: .96rem;
    font-weight: 850;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-assign-step-label,
.gg-assign-timeline-meta {
    color: var(--gg-palette-text-secondary);
    font-size: .78rem;
    font-weight: 700;
}

.gg-assign-timeline-side {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    padding-top: 2px;
}

.gg-assign-status-dot {
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: var(--gg-palette-success);
}

.gg-assign-status-dot.is-online {
    background: var(--gg-palette-info);
}

.gg-assign-status-dot.is-warning {
    background: var(--gg-palette-warning);
}

.gg-assign-status-label {
    min-width: 0;
    overflow: hidden;
    color: var(--gg-palette-text-secondary);
    font-size: .78rem;
    font-weight: 760;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 1200px) {
    .gg-assignment-control-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gg-assignment-preview-row {
        grid-template-columns: minmax(96px, 0.7fr) minmax(104px, 0.7fr) minmax(180px, 1.2fr) minmax(112px, 0.8fr) minmax(112px, 0.8fr);
    }
}

@media (max-width: 860px) {
    .gg-assignment-control-grid,
    .gg-assignment-preview-row {
        grid-template-columns: 1fr;
    }

    .gg-assignment-preview-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .gg-assignment-preview-header {
        display: none;
    }
}

/* ── Kiosztás v3: a program a meglévő betervezett időpontokra ül rá ── */
.gg-assignment-control-grid--single {
    grid-template-columns: minmax(0, 320px);
}

.gg-assignment-locked-client {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid var(--gg-hairline);
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-surface-muted) 48%, var(--gg-palette-surface));
}

.gg-assignment-locked-client > div {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.gg-assignment-locked-client span {
    color: var(--gg-palette-text-secondary);
    font-size: 0.74rem;
    font-weight: 850;
    text-transform: uppercase;
}

.gg-assignment-locked-client strong {
    overflow: hidden;
    color: var(--gg-palette-text-primary);
    font-size: 0.98rem;
    font-weight: 850;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-assign-layers {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.gg-assign-layer {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 12px;
    border-radius: var(--gg-radius-sm);
    background: var(--gg-palette-surface);
    border: 1px solid var(--gg-hairline);
    font-size: 0.84rem;
    color: var(--gg-palette-text-secondary);
}

.gg-assign-layer strong {
    color: var(--gg-palette-text-primary);
    font-weight: 800;
}

.gg-assign-layer .gg-legacy-icon-root {
    color: var(--gg-palette-text-secondary);
}

.gg-assign-schedule-hint {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-radius: var(--gg-radius-sm);
    border: 1px dashed var(--gg-palette-warning);
    background: color-mix(in srgb, var(--gg-palette-warning) 7%, var(--gg-palette-surface));
}

.gg-assign-schedule-hint-text {
    display: grid;
    gap: 2px;
    min-width: 0;
    flex: 1;
}

.gg-assign-schedule-hint-text strong {
    font-size: 0.92rem;
    color: var(--gg-palette-text-primary);
}

.gg-assign-schedule-hint-text span {
    font-size: 0.82rem;
    color: var(--gg-palette-text-secondary);
}

.gg-assign-schedule-hint .gg-legacy-button-root {
    margin-left: auto;
    flex: none;
}

/* ── Kiosztás YC-redesign (A1+A2): hero + ritmus + heti előnézet + siker ── */
.gg-assign-hero {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 11px 14px;
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-accent) 10%, var(--gg-palette-surface));
    border: 1px solid color-mix(in srgb, var(--gg-accent) 24%, transparent);
}

.gg-assign-hero-plan,
.gg-assign-hero-client {
    font-size: 0.98rem;
    font-weight: 800;
    color: var(--gg-palette-text-primary);
}

.gg-assign-hero-meta {
    margin-left: auto;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--gg-palette-text-secondary);
}

.gg-assign-cadence {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 18px;
}

.gg-assign-cadence-block,
.gg-assign-rotation {
    display: flex;
    align-items: center;
    gap: 10px;
}

.gg-assign-rotation {
    margin-left: auto;
}

.gg-assign-cadence-label {
    font-size: 0.74rem;
    font-weight: 860;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--gg-palette-text-secondary);
}

.gg-assign-days {
    display: flex;
    gap: 5px;
}

.gg-assign-day {
    min-width: 38px;
    height: 34px;
    padding: 0 10px;
    border-radius: var(--gg-radius-sm);
    border: 1px solid var(--gg-hairline);
    background: var(--gg-palette-surface);
    color: var(--gg-palette-text-secondary);
    font-size: 0.84rem;
    font-weight: 800;
    cursor: pointer;
    transition: background 0.12s ease, border-color 0.12s ease, color 0.12s ease;
}

.gg-assign-day:hover:not(:disabled) {
    border-color: color-mix(in srgb, var(--gg-accent) 40%, transparent);
}

.gg-assign-day.is-active {
    background: var(--gg-accent);
    border-color: var(--gg-accent);
    color: #fff;
}

.gg-assign-rotation-chips {
    display: flex;
    align-items: center;
    gap: 5px;
}

.gg-assign-rotation-letter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--gg-accent) 14%, var(--gg-palette-surface));
    color: var(--gg-palette-text-primary);
    font-size: 0.8rem;
    font-weight: 800;
}

.gg-assign-rotation-arrow {
    color: var(--gg-palette-text-secondary);
}

.gg-assign-success {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-palette-success) 10%, var(--gg-palette-surface));
    border: 1px solid color-mix(in srgb, var(--gg-palette-success) 28%, transparent);
}

.gg-assign-success-text {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.gg-assign-success-text strong {
    font-size: 0.92rem;
    color: var(--gg-palette-text-primary);
}

.gg-assign-success-text span {
    font-size: 0.82rem;
    color: var(--gg-palette-text-secondary);
}

.gg-assign-success .gg-legacy-button-root {
    margin-left: auto;
    flex: none;
}

.gg-assign-weeks {
    display: grid;
    gap: 12px;
}

.gg-assign-week {
    border: 1px solid var(--gg-hairline);
    border-radius: var(--gg-radius-sm);
    overflow: hidden;
    background: var(--gg-palette-surface);
}

.gg-assign-week-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 7px 12px;
    background: color-mix(in srgb, var(--gg-accent) 6%, var(--gg-palette-surface));
    border-bottom: 1px solid var(--gg-hairline);
    font-size: 0.8rem;
    font-weight: 820;
    color: var(--gg-palette-text-primary);
}

.gg-assign-week-prog {
    font-size: 0.72rem;
    font-weight: 800;
    color: var(--gg-palette-text-secondary);
}

.gg-assign-week-prog.is-step {
    padding: 2px 9px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-success) 16%, transparent);
    color: var(--gg-palette-success-darken);
}

.gg-assign-prow {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    border-top: 1px solid var(--gg-hairline);
    min-width: 0;
}

.gg-assign-week-head + .gg-assign-prow {
    border-top: 0;
}

.gg-assign-rot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    flex: none;
    border-radius: 50%;
    background: color-mix(in srgb, var(--gg-accent) 14%, var(--gg-palette-surface));
    color: var(--gg-palette-text-primary);
    font-size: 0.76rem;
    font-weight: 800;
}

.gg-assign-prow-name {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.9rem;
    font-weight: 720;
    color: var(--gg-palette-text-primary);
}

.gg-assign-prow-when {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--gg-palette-text-secondary);
    white-space: nowrap;
}

.gg-assign-prow.has-conflict .gg-assign-prow-conflict {
    color: var(--gg-palette-warning-darken);
    font-weight: 800;
}

.gg-assign-prow-online { color: var(--gg-palette-info, #2196f3); font-weight: 700; }
.gg-assign-mode-toggle {
    flex: none; padding: 3px 9px; border-radius: 999px; font-size: .72rem; font-weight: 700; cursor: pointer;
    border: 1px solid var(--gg-palette-lines-default, rgba(0,0,0,.16)); background: transparent;
    color: var(--gg-palette-text-secondary); transition: all .12s;
}
.gg-assign-mode-toggle:hover { color: var(--gg-palette-primary); border-color: color-mix(in srgb, var(--gg-palette-primary) 50%, transparent); background: color-mix(in srgb, var(--gg-palette-primary) 8%, transparent); }

@media (max-width: 860px) {
    .gg-assign-cadence,
    .gg-assign-rotation {
        margin-left: 0;
    }

    .gg-assign-hero-meta {
        margin-left: 0;
        width: 100%;
    }
}

.gg-assignment-modal-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 12px;
}

.gg-assignment-modal-headline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.gg-assignment-modal-headline span {
    color: var(--gg-palette-text-secondary);
    font-size: 0.82rem;
    font-weight: 800;
}

.gg-assignment-day-row {
    display: grid;
    grid-template-columns: minmax(180px, 0.8fr) minmax(0, 1.2fr);
    gap: 12px;
    align-items: center;
    padding: 12px 0;
    border-top: 1px solid var(--gg-hairline);
    opacity: 0.62;
}

.gg-assignment-day-row.is-selected {
    opacity: 1;
}

.gg-assignment-day-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.gg-assignment-day-copy span {
    padding-left: 38px;
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
    font-weight: 700;
}

.gg-assignment-day-fields {
    display: grid;
    grid-template-columns: minmax(150px, 1fr) minmax(90px, 0.55fr) minmax(84px, 0.45fr);
    gap: 8px;
    align-items: center;
}

.gg-planner-tabs {
    padding: 10px;
}

.gg-template-builder-grid {
    display: grid;
    grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.gg-template-library-panel,
.gg-template-builder-main,
.gg-composer-inspector {
    min-width: 0;
}

.gg-composer-inspector {
    position: sticky;
    top: 84px;
    max-height: calc(100vh - 104px);
    overflow: auto;
}

.gg-composer-inspector-stack {
    min-width: 0;
}

.gg-composer-card {
    padding: 14px;
    border-radius: 8px;
}

.gg-composer-sticky-card {
    box-shadow: 0 18px 44px color-mix(in srgb, var(--gg-palette-primary) 10%, transparent);
}

.gg-composer-empty {
    padding: 28px;
    border-radius: 8px;
    background:
        radial-gradient(circle at top left, color-mix(in srgb, var(--gg-palette-primary) 12%, transparent), transparent 34%),
        color-mix(in srgb, var(--gg-palette-surface) 95%, var(--gg-palette-primary) 5%);
    text-align: center;
}

.gg-composer-exercise-list {
    display: grid;
    gap: 8px;
    max-height: 310px;
    overflow: auto;
    padding-right: 2px;
}

.gg-composer-exercise-option {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    padding: 10px 12px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 82%, transparent);
    border-radius: 8px;
    background: color-mix(in srgb, var(--gg-palette-surface) 96%, var(--gg-palette-primary) 4%);
    color: var(--gg-palette-text-primary);
    cursor: pointer;
    text-align: left;
    transition: border-color 0.15s ease, background-color 0.15s ease, transform 0.15s ease;
}

.gg-composer-exercise-option:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--gg-palette-primary) 48%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-surface) 90%, var(--gg-palette-primary) 10%);
}

.gg-composer-exercise-option span {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.gg-composer-exercise-option strong,
.gg-composer-exercise-option small {
    overflow-wrap: anywhere;
}

.gg-composer-exercise-option small {
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
}

.gg-composer-preset-row,
.gg-composer-load-tabs {
    flex-wrap: wrap;
}

.gg-load-type-description {
    display: block;
    margin-top: 6px;
}

.gg-set-editor-main-row {
    display: grid;
    grid-template-columns: minmax(280px, 374px) minmax(260px, 1fr);
    align-items: center;
    column-gap: 14px;
}

.gg-optional-field-toggles {
    align-items: center !important;
    min-height: 56px;
}

.gg-optional-field-toggles .gg-legacy-checkbox {
    margin-bottom: 0;
    margin-top: 0;
}

.gg-template-library-list {
    display: grid;
    gap: 8px;
}

.gg-template-library-item {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 12px;
    text-align: left;
    color: var(--gg-palette-text-primary);
    background: color-mix(in srgb, var(--gg-palette-surface) 94%, var(--gg-palette-primary) 6%);
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 78%, transparent);
    border-radius: 8px;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease, transform 0.15s ease;
}

.gg-template-library-item:hover,
.gg-template-library-item.is-active {
    border-color: color-mix(in srgb, var(--gg-palette-primary) 55%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-surface) 88%, var(--gg-palette-primary) 12%);
}

.gg-template-library-item:hover {
    transform: translateY(-1px);
}

.gg-template-library-item-main,
.gg-template-library-item-side {
    min-width: 0;
    display: grid;
    gap: 4px;
}

.gg-template-library-item-side {
    justify-items: end;
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0;
}

.gg-template-library-item-title {
    font-weight: 800;
    overflow-wrap: anywhere;
}

.gg-template-library-item-meta,
.gg-template-library-item-notes {
    color: var(--gg-palette-text-secondary);
    font-size: 0.82rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.gg-template-empty-state {
    padding: 18px;
    border-radius: 8px;
    background: color-mix(in srgb, var(--gg-palette-surface) 92%, var(--gg-palette-primary) 8%);
}

.gg-first-run-panel {
    min-height: min(560px, calc(100vh - 220px));
    display: grid;
    place-items: center;
    padding: 48px 24px;
}

.gg-first-run-content {
    max-width: 520px;
    text-align: center;
}

.gg-first-run-copy {
    max-width: 46ch;
}

.gg-first-run-actions {
    flex-wrap: wrap;
    justify-content: center;
}

.gg-template-meta-row {
    flex-wrap: wrap;
}

.gg-template-library-title-row {
    min-width: 0;
}

.gg-template-title-block {
    min-width: 0;
}

.gg-template-title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
    min-width: 0;
}

.gg-template-title-row .gg-legacy-typography-h5 {
    min-width: 0;
    margin-right: 2px;
    overflow-wrap: anywhere;
}

.gg-template-title-row .gg-legacy-icon-button {
    width: 32px;
    height: 32px;
    min-width: 32px;
}

.gg-template-count-label {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 3px 10px;
    border: 1px solid color-mix(in srgb, var(--gg-accent) 24%, var(--gg-hairline));
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-accent) 9%, transparent);
    color: var(--gg-accent);
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.1;
    white-space: nowrap;
}

.gg-template-exercise-group {
    padding: 14px;
    border-radius: 8px;
    background: color-mix(in srgb, var(--gg-palette-surface) 95%, var(--gg-palette-primary) 5%);
}

.gg-template-add-set-footer {
    width: 100%;
    justify-content: center;
    margin-top: 4px;
    border-style: dashed !important;
}

.gg-template-add-exercise-footer {
    align-self: stretch;
    justify-content: center;
    margin-top: 8px;
}

.gg-template-set-row-advanced {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) auto auto;
    gap: 10px;
    align-items: center;
    padding: 10px 0;
    border-top: 1px solid color-mix(in srgb, var(--gg-palette-divider) 80%, transparent);
}

.gg-composer-set-row {
    cursor: pointer;
    border-radius: 8px;
    padding-inline: 8px;
    transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.gg-composer-set-row:hover,
.gg-composer-set-row.is-selected {
    background: color-mix(in srgb, var(--gg-palette-primary) 9%, transparent);
}

.gg-composer-set-row.is-selected {
    outline: 1px solid color-mix(in srgb, var(--gg-palette-primary) 42%, var(--gg-palette-divider));
}

.gg-template-set-row-advanced:first-of-type {
    border-top: 0;
}

.gg-template-set-drag {
    color: var(--gg-palette-text-secondary);
    font-weight: 900;
    letter-spacing: 0;
    opacity: 0.65;
    user-select: none;
}

.gg-template-set-main {
    min-width: 0;
}

.gg-template-load-chip {
    min-width: 86px;
    justify-self: end;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 800;
    text-align: center;
    white-space: nowrap;
    color: var(--gg-palette-primary);
    background: color-mix(in srgb, var(--gg-palette-primary) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 34%, var(--gg-palette-divider));
}

.gg-load-fixed {
    color: var(--gg-palette-info);
    background: color-mix(in srgb, var(--gg-palette-info) 13%, transparent);
    border-color: color-mix(in srgb, var(--gg-palette-info) 34%, var(--gg-palette-divider));
}

.gg-load-percent {
    color: var(--gg-palette-warning);
    background: color-mix(in srgb, var(--gg-palette-warning) 13%, transparent);
    border-color: color-mix(in srgb, var(--gg-palette-warning) 34%, var(--gg-palette-divider));
}

.gg-load-rpe {
    color: var(--gg-palette-secondary);
    background: color-mix(in srgb, var(--gg-palette-secondary) 13%, transparent);
    border-color: color-mix(in srgb, var(--gg-palette-secondary) 34%, var(--gg-palette-divider));
}

.gg-load-reps {
    color: var(--gg-palette-primary);
}

.gg-template-set-actions {
    flex-wrap: nowrap;
}

.gg-template-set-actions-shell {
    justify-self: end;
}

.gg-inline-set-editor {
    margin: 2px 0 8px 34px;
    padding: 16px;
    border-radius: 10px;
    border-color: color-mix(in srgb, var(--gg-palette-primary) 38%, var(--gg-palette-divider)) !important;
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--gg-palette-primary) 8%, transparent), transparent 44%),
        color-mix(in srgb, var(--gg-palette-surface) 92%, var(--gg-palette-primary) 8%) !important;
}

.gg-inline-set-editor .gg-legacy-input-control {
    margin-top: 0;
}

.gg-set-load-pair {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 10px;
}

.gg-set-load-pair.is-reps-only {
    grid-template-columns: minmax(0, 1fr);
}

.gg-set-load-pair-field {
    min-width: 0;
}

.gg-set-load-pair-x {
    color: var(--gg-palette-text-secondary);
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1;
    padding-top: 6px;
    text-align: center;
}

@media (max-width: 900px) {
    .gg-set-editor-main-row {
        grid-template-columns: 1fr;
        row-gap: 8px;
    }

    .gg-optional-field-toggles {
        min-height: auto;
    }
}

@media (max-width: 1100px) {
    .gg-program-workspace,
    .gg-assignment-workspace {
        grid-template-columns: 1fr;
    }

    .gg-program-browser,
    .gg-assignment-programs {
        position: static;
    }

    .gg-program-step-rail,
    .gg-assignment-summary-grid {
        grid-template-columns: 1fr;
    }

    .gg-assignment-summary-grid > div {
        border-left: 0;
        border-top: 1px solid var(--gg-hairline);
    }

    .gg-assignment-summary-grid > div:first-child {
        border-top: 0;
    }

    .gg-assignment-modal-grid,
    .gg-assignment-day-row,
    .gg-assignment-day-fields {
        grid-template-columns: 1fr;
    }

    .gg-program-week-header,
    .gg-program-day-shell {
        align-items: flex-start;
        flex-direction: column;
    }

    .gg-program-workout-row {
        margin-left: 0;
    }

    .gg-template-builder-grid {
        grid-template-columns: 1fr;
    }

    .gg-composer-inspector {
        position: static;
        max-height: none;
        order: -1;
    }
}

@media (max-width: 720px) {
    .gg-planner-tabs .gg-legacy-stack-row {
        flex-wrap: nowrap;
        overflow-x: auto;
        scrollbar-width: none;
        padding-bottom: 2px;
    }

    .gg-planner-tabs .gg-legacy-stack-row::-webkit-scrollbar {
        display: none;
    }

    .gg-planner-tabs .gg-legacy-button-root {
        flex: 0 0 auto;
    }

    .gg-template-library-item {
        grid-template-columns: 1fr;
    }

    .gg-template-library-item-side {
        justify-items: start;
        grid-auto-flow: column;
        justify-content: start;
    }

    .gg-template-set-row-advanced {
        grid-template-columns: 22px minmax(0, 1fr);
    }

    .gg-template-load-chip,
    .gg-template-set-actions-shell,
    .gg-template-set-actions {
        grid-column: 2;
        justify-self: start;
    }

    .gg-inline-set-editor {
        margin-left: 0;
    }

    .gg-template-exercise-filter-grid {
        grid-template-columns: 1fr;
    }
}

.gg-online-review-cards {
    display: none;
}

.gg-online-review-card {
    border: 1px solid var(--gg-palette-divider);
    border-radius: 8px;
    padding: 12px;
    background: color-mix(in srgb, var(--gg-palette-surface) 94%, var(--gg-palette-primary) 6%);
}

.gg-online-review-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
}

.gg-online-review-card-title {
    min-width: 0;
    overflow-wrap: anywhere;
    font-weight: 800;
}

.gg-online-review-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.gg-online-review-card-metric {
    border-radius: 8px;
    padding: 8px 10px;
    background: var(--gg-palette-surface);
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 82%, transparent);
}

.gg-online-review-modal {
    max-height: calc(100vh - 72px);
    overflow-y: auto;
}

@media (max-width: 720px) {
    .gg-online-review-table {
        display: none;
    }

    .gg-online-review-cards {
        display: grid;
        gap: 10px;
    }

    .gg-online-review-card-grid {
        grid-template-columns: 1fr;
    }

    .gg-plan-toolbar-actions {
        justify-content: stretch;
        width: 100%;
    }

    .gg-plan-toolbar-actions .gg-legacy-button-root {
        flex: 1 1 180px;
    }
}

@media (max-width: 1023.98px) {
    .gg-workout-side-col {
        display: none; /* Hide right column completely on mobile */
    }
}

/* Summary card icon styling - theme aware */
.gg-summary-icon {
    color: var(--gg-palette-text-secondary);
    opacity: 0.7;
    flex-shrink: 0;
    margin-top: 2px;
}

/* Set editing actions */
.gg-exercise-set-row {
    transition: background-color 0.15s ease, padding 0.15s ease;
}
.gg-exercise-set-row--editing {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    border-radius: 8px;
    background: color-mix(in srgb, var(--gg-palette-surface) 96%, var(--gg-palette-primary) 4%);
}
.gg-set-actions {
    display: inline-flex;
    align-items: center;
    gap: 0;
    margin-left: auto;
    flex-shrink: 0;
}
.gg-set-actions .gg-legacy-icon-button {
    padding: 4px;
}

/* ================================================
   ONBOARDING WIZARD
   ================================================ */
.gg-onboarding-overlay {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    overflow: auto;
    background: rgba(8, 13, 17, .78);
    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
}

.gg-onboarding-backdrop {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 100%;
    padding: 24px;
    box-sizing: border-box;
}

.gg-onboarding-card {
    width: 100%;
    max-width: 500px;
    border-radius: 22px !important;
    padding: 28px 30px 26px;
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid color-mix(in srgb, var(--gg-accent) 22%, var(--gg-palette-divider)) !important;
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--gg-accent) 8%, var(--gg-palette-surface)) 0%, var(--gg-palette-surface) 140px) !important;
    box-shadow: 0 32px 90px rgba(0, 0, 0, .42) !important;
}

.gg-onboarding-topbar {
    display: grid;
    grid-template-columns: 40px 1fr 40px;
    align-items: center;
    min-height: 40px;
    margin: -10px 0 8px;
}

.gg-onboarding-topbar-spacer {
    width: 40px;
    height: 40px;
}

.gg-onboarding-back-btn {
    width: 36px;
    height: 36px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-lines-default) 80%, transparent);
    border-radius: 10px;
    background: color-mix(in srgb, var(--gg-surface-muted) 58%, transparent);
    color: var(--gg-palette-text-primary);
    cursor: pointer;
    font-size: 1.1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.gg-onboarding-back-btn:hover {
    border-color: var(--gg-accent);
    color: color-mix(in srgb, var(--gg-accent) 80%, var(--gg-palette-text-primary));
}

.gg-onboarding-step-label {
    color: var(--gg-palette-text-secondary);
    font-size: .78rem;
    font-weight: 700;
    text-align: center;
    text-transform: uppercase;
}

/* Szegmentált haladásjelző — a pöttyök helyett teljes szélességű, kitöltődő sáv. */
.gg-onboarding-steps {
    display: flex;
    gap: 6px;
    width: 100%;
    margin-bottom: 26px;
}

.gg-onboarding-dot {
    flex: 1 1 0;
    height: 5px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-lines-default) 70%, transparent);
    transition: background .3s ease;
}

.gg-onboarding-dot.active {
    background: var(--gg-accent);
    box-shadow: 0 0 10px color-mix(in srgb, var(--gg-accent) 45%, transparent);
}

.gg-onboarding-dot.done {
    background: color-mix(in srgb, var(--gg-accent) 55%, transparent);
}

.gg-onboarding-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0;
    flex: 1;
}

.gg-onboarding-logo {
    margin-bottom: 16px;
}

.gg-onboarding-title {
    font-size: 1.42rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    line-height: 1.25;
    margin-bottom: 8px;
}

.gg-onboarding-subtitle {
    color: var(--gg-palette-text-secondary);
    margin-bottom: 22px;
    font-size: .94rem;
    line-height: 1.6;
}

/* A lépésváltás finoman emelkedjen be (a welcome saját staggerét nem bántja). */
.gg-onboarding-content:not(.gg-onboarding-welcome) {
    animation: gg-ob-rise .32s cubic-bezier(.21, 1, .32, 1);
}

.gg-onboarding-symbol {
    width: 46px;
    height: 46px;
    border-radius: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    color: color-mix(in srgb, var(--gg-accent) 80%, var(--gg-palette-text-primary));
    background:
        linear-gradient(160deg, color-mix(in srgb, var(--gg-accent) 22%, transparent), color-mix(in srgb, var(--gg-accent) 9%, transparent));
    border: 1px solid color-mix(in srgb, var(--gg-accent) 34%, transparent);
    box-shadow: 0 6px 18px color-mix(in srgb, var(--gg-accent) 16%, transparent);
}

.gg-onboarding-actions {
    display: flex;
    flex-direction: column;
    margin-top: 20px;
    gap: 0;
}

.gg-onboarding-btn {
    border-radius: 10px !important;
}

.gg-onboarding-context {
    width: 100%;
    margin: -10px 0 14px;
    text-align: left;
}

.gg-onboarding-alert {
    width: 100%;
    margin: -10px 0 14px;
    padding: 10px 12px;
    border-radius: 10px;
    text-align: left;
    font-size: .86rem;
    line-height: 1.45;
}

.gg-onboarding-alert-info {
    color: var(--gg-palette-info-darken);
    background: color-mix(in srgb, var(--gg-palette-info) 9%, var(--gg-surface));
    border: 1px solid color-mix(in srgb, var(--gg-palette-info) 26%, transparent);
}

.gg-onboarding-alert-warning {
    color: var(--gg-palette-warning-darken);
    background: color-mix(in srgb, var(--gg-palette-warning) 12%, var(--gg-surface));
    border: 1px solid color-mix(in srgb, var(--gg-palette-warning) 30%, transparent);
}

.gg-onboarding-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    width: 100%;
    margin-top: 8px;
}

.gg-span-12 { grid-column: 1 / -1; }
.gg-span-6 { grid-column: span 1; }

/* Hős-mező: a lépés FŐ döntése (pl. az alkalomár). Középen, nagy számmal — ez a lépés lényege,
   a többi (darabszám, órahossz) csak kiegészítés alatta. */
.gg-onboarding-hero-field {
    margin: 4px auto 6px;
    max-width: 280px;
    width: 100%;
}

.gg-onboarding-hero-field .gg-fld-label {
    text-align: center;
    font-size: .74rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.gg-onboarding-hero-field .gg-fld-input {
    text-align: center;
    font-size: 1.9rem;
    font-weight: 800;
    letter-spacing: -.02em;
    padding-top: 10px;
    padding-bottom: 10px;
    border-color: color-mix(in srgb, var(--gg-accent) 45%, transparent);
}

.gg-onboarding-hero-field .gg-fld-input:focus {
    border-color: var(--gg-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--gg-accent) 18%, transparent);
}

/* A számléptető nyilak elvonják a figyelmet a nagy számról */
.gg-onboarding-hero-field .gg-fld-input::-webkit-outer-spin-button,
.gg-onboarding-hero-field .gg-fld-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.gg-onboarding-hero-field .gg-fld-input { -moz-appearance: textfield; appearance: textfield; }

.gg-onboarding-hero-field .gg-onboarding-subhint { text-align: center; }

.gg-onboarding-section-caption {
    align-self: flex-start;
    display: block;
    width: 100%;
    margin: 12px 0 6px;
    color: var(--gg-palette-text-secondary);
    font-size: .74rem;
    font-weight: 700;
    text-align: left;
    text-transform: uppercase;
}

.gg-onboarding-hint {
    width: 100%;
    margin: 6px 0 0;
    font-size: .82rem;
    line-height: 1.45;
}
.gg-onboarding-subhint {
    margin: 4px 0 0;
    font-size: .74rem;
    line-height: 1.3;
}

.gg-onboarding-centered { text-align: center; }

.gg-onboarding-error {
    width: 100%;
    margin: 4px 0 0;
    color: var(--gg-palette-error);
    font-size: .8rem;
    text-align: left;
}

/* ── Welcome step: warm, celebratory entrance ── */
.gg-onboarding-welcome {
    padding-top: 4px;
}

.gg-ob-celebrate {
    position: relative;
    width: 96px;
    height: 96px;
    margin-bottom: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.gg-ob-celebrate-badge {
    width: 84px;
    height: 84px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: radial-gradient(circle at 50% 35%,
        color-mix(in srgb, var(--gg-accent) 24%, transparent),
        color-mix(in srgb, var(--gg-accent) 8%, transparent));
    animation: gg-ob-badge-pulse 2.6s ease-in-out infinite;
}

/* A VALÓDI GymGo márkajel: a gyűrű körberajzolódik, majd a hat csík egyesével úszik be
   a saját tengelye mentén, végül a jel finoman „lélegzik". currentColor → témát követ. */
.gg-ob-mark {
    width: 56px;
    height: 56px;
    color: var(--gg-palette-text-primary);
    overflow: visible;
}

.gg-ob-mark-ring {
    opacity: .3;
    stroke-dasharray: 867;                     /* 2πr, r=138 */
    stroke-dashoffset: 867;
    transform-origin: 50% 50%;
    transform: rotate(-90deg);
    animation: gg-ob-mark-ring 1.1s cubic-bezier(.16, 1, .3, 1) .1s forwards;
}

.gg-ob-mark-bars {
    transform-origin: 50% 50%;
    animation: gg-ob-mark-breathe 3.6s ease-in-out 1.5s infinite;
}

.gg-ob-mark-bars path {
    opacity: 0;
    transform-origin: 50% 50%;
    /* a csíkok a saját (30°-os) tengelyükre merőlegesen csúsznak be */
    animation: gg-ob-mark-bar .6s cubic-bezier(.16, 1, .3, 1) forwards;
}

.gg-ob-mark-bars path:nth-child(1) { animation-delay: .30s; }
.gg-ob-mark-bars path:nth-child(2) { animation-delay: .37s; }
.gg-ob-mark-bars path:nth-child(3) { animation-delay: .44s; }
.gg-ob-mark-bars path:nth-child(4) { animation-delay: .51s; }
.gg-ob-mark-bars path:nth-child(5) { animation-delay: .58s; }
.gg-ob-mark-bars path:nth-child(6) { animation-delay: .65s; }

@keyframes gg-ob-mark-ring { to { stroke-dashoffset: 0; } }
@keyframes gg-ob-mark-bar {
    from { opacity: 0; transform: translate(-14px, 8px) scale(.94); }
    to   { opacity: 1; transform: none; }
}
@keyframes gg-ob-mark-breathe { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.03); } }

@media (prefers-reduced-motion: reduce) {
    .gg-ob-celebrate-badge { animation: none; }
    .gg-ob-mark-ring, .gg-ob-mark-bars, .gg-ob-mark-bars path { animation: none; }
    .gg-ob-mark-ring { stroke-dashoffset: 0; }
    .gg-ob-mark-bars path { opacity: 1; }
}
}

@keyframes gg-ob-badge-pulse {
    0%, 100% { box-shadow: 0 0 0 1px color-mix(in srgb, var(--gg-palette-primary) 25%, transparent), 0 10px 28px color-mix(in srgb, var(--gg-palette-primary) 16%, transparent); }
    50%      { box-shadow: 0 0 0 1px color-mix(in srgb, var(--gg-palette-primary) 42%, transparent), 0 16px 40px color-mix(in srgb, var(--gg-palette-primary) 30%, transparent); }
}

/* Confetti burst from behind the badge on entry */
.gg-ob-confetti {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.gg-ob-confetti i {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 7px;
    height: 7px;
    border-radius: 2px;
    opacity: 0;
    animation: gg-ob-confetti-pop 1.1s ease-out forwards;
}

.gg-ob-confetti i:nth-child(1) { background: #D9A15F; --x: -46px; --y: -30px; --r: -40deg; animation-delay: 0.30s; }
.gg-ob-confetti i:nth-child(2) { background: #708693; --x: 44px;  --y: -34px; --r: 35deg;  animation-delay: 0.34s; }
.gg-ob-confetti i:nth-child(3) { background: #C95F4B; --x: -52px; --y: 22px;  --r: 60deg;  animation-delay: 0.38s; }
.gg-ob-confetti i:nth-child(4) { background: #B56A87; --x: 50px;  --y: 26px;  --r: -55deg; animation-delay: 0.42s; }
.gg-ob-confetti i:nth-child(5) { background: var(--gg-palette-primary); --x: -8px; --y: -54px; --r: 20deg; animation-delay: 0.46s; }
.gg-ob-confetti i:nth-child(6) { background: #B7C4CC; --x: 14px;  --y: 50px;  --r: -25deg; animation-delay: 0.50s; }

@keyframes gg-ob-confetti-pop {
    0%   { opacity: 0; transform: translate(-50%, -50%) scale(0.3) rotate(0deg); }
    35%  { opacity: 1; }
    100% { opacity: 0; transform: translate(calc(-50% + var(--x)), calc(-50% + var(--y))) scale(1) rotate(var(--r)); }
}

.gg-ob-kicker {
    color: color-mix(in srgb, var(--gg-accent) 80%, var(--gg-palette-text-primary));
    font-weight: 700;
    letter-spacing: .08em;
    margin-bottom: 2px;
}

/* Staggered entrance for the welcome elements */
.gg-ob-in-1,
.gg-ob-in-2,
.gg-ob-in-3 {
    opacity: 0;
    animation: gg-ob-rise 0.5s cubic-bezier(.21, 1, .32, 1) forwards;
}

.gg-ob-in-1 { animation-delay: 0.05s; }
.gg-ob-in-2 { animation-delay: 0.18s; }
.gg-ob-in-3 { animation-delay: 0.30s; }

@keyframes gg-ob-rise {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .gg-ob-wave,
    .gg-ob-celebrate-badge,
    .gg-onboarding-content:not(.gg-onboarding-welcome),
    .gg-ob-confetti i { animation: none !important; }

    .gg-ob-confetti i { display: none; }

    .gg-ob-in-1,
    .gg-ob-in-2,
    .gg-ob-in-3 { animation: none !important; opacity: 1; }
}

/* Dark/Light mode cards */
.gg-onboarding-mode-row {
    display: flex;
    gap: 12px;
    margin-bottom: 8px;
    width: 100%;
    justify-content: center;
}

.gg-onboarding-mode-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex: 1 1 0;
    min-width: 104px;
    max-width: 150px;
    height: 100px;
    border-radius: 14px !important;
    cursor: pointer;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
    border: 1.5px solid var(--gg-palette-lines-default) !important;
    background: var(--gg-palette-surface);
    color: var(--gg-palette-text-primary);
    font: inherit;
    font-size: .86rem;
    font-weight: 650;
}

.gg-onboarding-mode-card:hover {
    border-color: var(--gg-accent) !important;
    transform: translateY(-1px);
}

.gg-onboarding-mode-card.selected {
    border-color: var(--gg-accent) !important;
    background: color-mix(in srgb, var(--gg-accent) 8%, var(--gg-palette-surface));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--gg-accent) 26%, transparent);
}

.gg-onboarding-card-symbol {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    color: color-mix(in srgb, var(--gg-accent) 80%, var(--gg-palette-text-primary));
    background: color-mix(in srgb, var(--gg-accent) 13%, transparent);
    line-height: 1;
}

/* Cél-választó kártyák (több is választható) */
.gg-onboarding-goals {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    width: 100%;
    margin-top: 14px;
}
.gg-onboarding-goal-card {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    column-gap: 14px;
    align-items: center;
    text-align: left;
    padding: 14px 16px;
    border-radius: 14px;
    cursor: pointer;
    background: var(--gg-palette-surface);
    border: 2px solid var(--gg-palette-lines-default);
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.gg-onboarding-goal-card:hover { border-color: var(--gg-palette-primary); }
.gg-onboarding-goal-card.selected {
    border-color: var(--gg-palette-primary);
    background: color-mix(in srgb, var(--gg-palette-primary) 7%, var(--gg-palette-surface));
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--gg-palette-primary) 22%, transparent);
}
.gg-onboarding-goal-check { position: absolute; top: 10px; right: 12px; color: var(--gg-palette-text-secondary); }
.gg-onboarding-goal-card.selected .gg-onboarding-goal-check { color: var(--gg-palette-primary); }
.gg-onboarding-goal-icon { grid-row: 1 / span 2; color: var(--gg-palette-primary); }
.gg-onboarding-goal-label { font-weight: 700; font-size: .98rem; padding-right: 26px; }
.gg-onboarding-goal-desc { font-size: .82rem; color: var(--gg-palette-text-secondary); }

/* Egységes választó-kártya: illusztráció + címke, kiválasztva keret + jobb-felső pipa badge. */
.gg-pickcard-row { display: flex; gap: 12px; flex-wrap: wrap; }
.gg-pickcard-row .gg-pickcard { flex: 1 1 0; min-width: 116px; }
.gg-pickcard {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    width: 100%;
    padding: 12px 12px 10px;
    border-radius: 16px;
    border: 2px solid var(--gg-palette-lines-default);
    background: var(--gg-palette-surface);
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.gg-pickcard:hover { border-color: var(--gg-palette-primary); }
.gg-pickcard.is-selected {
    border-color: var(--gg-palette-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--gg-palette-primary) 24%, transparent);
    background: color-mix(in srgb, var(--gg-palette-primary) 6%, var(--gg-palette-surface));
}
.gg-pickcard-img { width: 100%; max-width: 140px; height: 80px; object-fit: contain; pointer-events: none; }
.gg-pickcard-label { font-weight: 600; font-size: .92rem; color: var(--gg-palette-text-primary); }
.gg-pickcard-sub { font-size: .76rem; color: var(--gg-palette-text-secondary); text-align: center; line-height: 1.3; }
.gg-pickcard-check {
    position: absolute; top: 8px; right: 8px;
    width: 24px; height: 24px; border-radius: 50%;
    background: var(--gg-palette-primary); color: var(--gg-palette-primary-text, #fff);
    display: none; align-items: center; justify-content: center;
    box-shadow: 0 1px 4px rgba(0,0,0,.25);
    font-size: 15px;
    font-weight: 800;
}
.gg-pickcard.is-selected .gg-pickcard-check { display: inline-flex; }
.gg-pickcard-check .gg-legacy-icon-root { font-size: 16px; color: var(--gg-palette-primary-text, #fff); }
.gg-pick-chips > .gg-pickcard, .gg-modality-cards.gg-pickcard-row > .gg-pickcard { flex: 1 1 0; width: auto; min-width: 110px; }

/* Az onboardingon belül a kiválasztás a témaszínt (accent) követi, hogy a sémaválasztás azonnal látszódjon. */
.gg-onboarding-card .gg-pickcard:hover { border-color: var(--gg-accent); }
.gg-onboarding-card .gg-pickcard.is-selected {
    border-color: var(--gg-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--gg-accent) 26%, transparent);
    background: color-mix(in srgb, var(--gg-accent) 7%, var(--gg-palette-surface));
}
.gg-onboarding-card .gg-pickcard-check { background: var(--gg-accent); color: var(--gg-palette-surface); }

/* Indulás (kickoff) — célokra szabott teendők */
.gg-onboarding-kickoff { display: flex; flex-direction: column; gap: 10px; width: 100%; margin: 6px 0 4px; }
.gg-onboarding-kickoff-item {
    display: flex; align-items: flex-start; gap: 12px; text-align: left;
    padding: 12px 14px; border-radius: 12px;
    background: color-mix(in srgb, var(--gg-accent) 7%, var(--gg-palette-surface));
    border: 1px solid color-mix(in srgb, var(--gg-accent) 24%, transparent);
}
.gg-onboarding-kickoff-icon {
    width: 30px;
    height: 30px;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: color-mix(in srgb, var(--gg-accent) 80%, var(--gg-palette-text-primary));
    background: color-mix(in srgb, var(--gg-accent) 13%, transparent);
}
.gg-onboarding-kickoff-title { font-weight: 700; font-size: .92rem; }
.gg-onboarding-kickoff-text { font-size: .82rem; color: var(--gg-palette-text-secondary); margin-top: 2px; }
.gg-onboarding-link-box { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.gg-onboarding-link-url {
    flex: 1; min-width: 0; overflow-wrap: anywhere; font-size: .78rem;
    color: color-mix(in srgb, var(--gg-accent) 80%, var(--gg-palette-text-primary)); background: color-mix(in srgb, var(--gg-accent) 10%, transparent);
    padding: 6px 9px; border-radius: 7px;
}

/* Color scheme cards */
.gg-onboarding-colors {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-bottom: 8px;
    width: 100%;
}

.gg-onboarding-color-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 7px;
    width: 74px;
    height: 96px;
    box-sizing: border-box;
    padding: 11px 6px;
    border-radius: 14px !important;
    cursor: pointer;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
    border: 1.5px solid color-mix(in srgb, var(--gg-palette-lines-default) 55%, transparent);
    background: var(--gg-palette-surface);
    color: var(--gg-palette-text-primary);
    font: inherit;
}

.gg-onboarding-color-card span {
    line-height: 1.2;
    text-align: center;
    font-size: .74rem;
    font-weight: 600;
}

.gg-onboarding-color-card:hover {
    transform: translateY(-1px);
}

.gg-onboarding-color-card.selected {
    border-color: var(--gg-accent) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--gg-accent) 40%, transparent);
}

.gg-onboarding-color-swatch {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .12), 0 3px 8px rgba(0, 0, 0, .18);
}

.gg-onboarding-loading {
    width: 100%;
    margin-top: 18px;
}

.gg-onboarding-progress {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 8px;
    margin-bottom: 10px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-accent) 14%, transparent);
}

.gg-onboarding-progress::after {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 42%;
    border-radius: inherit;
    background: var(--gg-accent);
    animation: gg-onboarding-progress 1.2s ease-in-out infinite;
}

@keyframes gg-onboarding-progress {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(240%); }
}

/* Tour page cards */
.gg-onboarding-tour {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    margin-top: 8px;
}

.gg-onboarding-tour-card {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 12px 14px;
    border-radius: 10px !important;
    cursor: pointer;
    text-align: left;
    transition: background 0.15s;
    border: 1px solid var(--gg-palette-lines-default) !important;
}

.gg-onboarding-tour-card:hover {
    background: color-mix(in srgb, var(--gg-palette-primary) 8%, transparent) !important;
    border-color: var(--gg-palette-primary) !important;
}

/* ================================================
   SCRIPTED TOUR OVERLAY
   ================================================ */
.gg-tour-backdrop {
    position: fixed;
    inset: 0;
    z-index: 3990;
    background: transparent;
}

.gg-tour-spotlight {
    position: fixed;
    z-index: 3991;
    border-radius: 8px;
    pointer-events: none;
    box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.62);
    outline: 2px solid var(--gg-palette-primary);
    outline-offset: 3px;
    transition: top 0.3s ease, left 0.3s ease, width 0.3s ease, height 0.3s ease;
}

.gg-tour-tooltip {
    position: fixed;
    z-index: 3995;
    background: var(--gg-palette-surface);
    border-radius: 12px;
    padding: 18px 20px 14px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35);
    border: 1px solid var(--gg-palette-lines-default);
    transition: top 0.3s ease, left 0.3s ease;
}

.gg-tour-tooltip-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
    gap: 8px;
}

.gg-tour-badge {
    font-size: 11px;
    color: var(--gg-palette-text-secondary);
    background: var(--gg-palette-background-grey);
    border-radius: 20px;
    padding: 2px 8px;
    white-space: nowrap;
    flex-shrink: 0;
}

.gg-tour-tooltip-desc {
    color: var(--gg-palette-text-secondary);
    line-height: 1.55;
    margin-bottom: 14px;
}

.gg-tour-tooltip-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}

/* ============================================================
   ASZTALI / MOBIL DASHBOARD V?LT?S
   ============================================================ */
.gg-dash-desktop { display: block; }
.gg-dash-mobile  { display: none; }

@media (max-width: 1023.98px) {
    .gg-dash-desktop { display: none !important; }
    .gg-dash-mobile  { display: flex; flex-direction: column; gap: 14px; }
}

/* ?? Napi f?kusz k?rtya ?? */
.gg-dash-m-focus {
    padding: 18px;
    border-radius: 20px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 24%, var(--gg-palette-divider));
    background: linear-gradient(145deg,
        color-mix(in srgb, var(--gg-palette-primary) 10%, var(--gg-palette-surface)) 0%,
        var(--gg-palette-surface) 100%);
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.gg-dash-m-focus-eyebrow {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--gg-palette-primary);
}

.gg-dash-m-focus-empty {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--gg-palette-text-secondary);
}

.gg-dash-m-focus-client {
    font-size: 1.45rem;
    font-weight: 800;
    line-height: 1.15;
    color: var(--gg-palette-text-primary);
}

.gg-dash-m-focus-time {
    font-size: 1rem;
    font-weight: 600;
    color: var(--gg-palette-text-primary);
    margin-top: 2px;
}

.gg-dash-m-focus-meta {
    font-size: 0.82rem;
    color: var(--gg-palette-text-secondary);
    margin-top: 2px;
}

.gg-dash-m-focus-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* ?? KPI cs?k ?? */
.gg-kpi-strip {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 4px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.gg-kpi-strip::-webkit-scrollbar { display: none; }

.gg-kpi-strip-item {
    flex: 0 0 auto;
    min-width: 120px;
    padding: 12px 14px;
    border-radius: 16px;
    background: var(--gg-palette-surface);
    border: 1px solid var(--gg-palette-divider);
    display: flex;
    flex-direction: column;
    gap: 3px;
    box-shadow: var(--gg-shadow-soft);
}

.gg-kpi-strip-item--alert {
    border-color: color-mix(in srgb, var(--gg-palette-warning) 50%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-warning) 6%, var(--gg-palette-surface));
}

.gg-kpi-strip-label {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--gg-palette-text-secondary);
    white-space: nowrap;
}

.gg-kpi-strip-value {
    font-family: var(--gg-font-display);
    font-size: 1.65rem;
    font-weight: 800;
    line-height: 1.1;
    color: var(--gg-palette-text-primary);
}

.gg-kpi-strip-value--sm {
    font-size: 1.1rem;
}

.gg-kpi-strip-sub {
    font-size: 0.68rem;
    color: var(--gg-palette-text-secondary);
    white-space: nowrap;
}

/* ?? Teend?k kompakt ?? */
.gg-attention-item--compact {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 4px;
    border-bottom: 1px solid var(--gg-palette-divider);
    cursor: pointer;
    transition: background 0.15s;
    border-radius: 8px;
}

.gg-attention-item--compact:last-child { border-bottom: none; }

.gg-attention-item--compact:hover {
    background: color-mix(in srgb, var(--gg-palette-primary) 5%, transparent);
}

/* ?? Session sor ? kompakt mobil v?ltozat ?? */
.gg-session-row-card--compact {
    display: grid;
    grid-template-columns: 52px 1fr auto auto;
    align-items: center;
    gap: 8px;
    padding: 8px 0;
    border-bottom: 1px solid var(--gg-palette-divider);
}

.gg-session-row-card--compact:last-child { border-bottom: none; }

/* ?? Havi napt?r ?sszecsukhat? fejl?c ?? */
.gg-dash-m-calendar-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    padding: 2px 0;
    user-select: none;
}

.gg-start-flow {
    display: flex;
    flex-direction: column;
    gap: 18px;
    max-width: 1180px;
    margin: 0 auto;
    padding: clamp(14px, 3vw, 28px);
}

.gg-start-flow-hero {
    padding: clamp(22px, 4vw, 42px) !important;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 26%, var(--gg-border-soft)) !important;
    background:
        radial-gradient(circle at top right, color-mix(in srgb, var(--gg-palette-primary) 18%, transparent), transparent 34%),
        linear-gradient(135deg, color-mix(in srgb, var(--gg-palette-surface) 88%, var(--gg-palette-primary) 8%), var(--gg-palette-surface)) !important;
}

.gg-start-flow-hero .gg-title {
    max-width: 820px;
    line-height: 1.05;
}

.gg-start-flow-hero .gg-muted {
    max-width: 760px;
    font-size: 1rem;
}

.gg-start-flow-card {
    height: 100%;
    padding: 22px !important;
}

.gg-start-checklist {
    display: grid;
    gap: 10px;
}

.gg-start-step {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
    align-items: flex-start;
    padding: 14px;
    border: 1px solid var(--gg-border-soft);
    border-radius: 10px;
    background: color-mix(in srgb, var(--gg-palette-surface) 90%, var(--gg-palette-primary) 3%);
}

.gg-start-step.is-done {
    border-color: color-mix(in srgb, var(--gg-palette-success) 45%, var(--gg-border-soft));
    background: color-mix(in srgb, var(--gg-palette-success) 7%, var(--gg-palette-surface));
}

.gg-start-step .gg-legacy-icon-root {
    color: var(--gg-palette-primary);
    margin-top: 1px;
}

.gg-start-step.is-done .gg-legacy-icon-root {
    color: var(--gg-palette-success);
}

.gg-start-step strong,
.gg-start-step span {
    display: block;
}

.gg-start-step strong {
    color: var(--gg-palette-text-primary);
    font-weight: 800;
    margin-bottom: 3px;
}

.gg-start-step span {
    color: var(--gg-palette-text-secondary);
    line-height: 1.45;
}
/* ============================================================
   KLIENS ADATLAP - TABS MOBILON
   ============================================================ */
@media (max-width: 767px) {
    /* Scroll gombok el */
    .gg-client-tabs .gg-legacy-tabs-scroll-button {
        display: none !important;
    }

    /* Belso containerek ne vagják le a tartalmat */
    .gg-client-tabs .gg-legacy-tabs-tabbar-inner {
        overflow: visible !important;
        height: auto !important;
    }

    .gg-client-tabs .gg-legacy-tabs-tabbar-content {
        overflow: visible !important;
        width: 100% !important;
    }

    /* Wrapper ne scrollozzon hanem wrapeljon 2x2-be */
    .gg-client-tabs .gg-legacy-tabs-tabbar-wrapper {
        flex-wrap: wrap !important;
        transform: none !important;
        width: 100% !important;
    }

    /* LegacyTooltip koznetlen szulo: 50% szelesseg -> 2x2 grid */
    .gg-client-tabs .gg-legacy-tabs-tabbar-wrapper > .gg-legacy-tooltip-root {
        flex: 1 1 50% !important;
        min-width: 0 !important;
    }

    /* Tab: ikon + szoveg vertikalisan, egyenlo meret */
    .gg-client-tabs .gg-legacy-tab {
        width: 100% !important;
        min-width: 0 !important;
        height: 54px !important;
        padding: 0 4px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 0.65rem !important;
        letter-spacing: 0.02em !important;
        text-transform: uppercase;
    }

    .gg-client-tabs .gg-legacy-tab-icon-text {
        flex-direction: column;
        align-items: center;
        gap: 2px;
        line-height: 1.1;
    }

    .gg-client-tabs .gg-legacy-tab-icon-text .gg-legacy-icon-root {
        font-size: 1.1rem !important;
        width: 18px !important;
        height: 18px !important;
    }

    /* Slider pozicioszamitasa 2x2-nel hibas - elrejtjuk, border-bottom veszi at */
    .gg-client-tabs .gg-legacy-tab-slider {
        display: none !important;
    }

    .gg-client-tabs .gg-legacy-tab.gg-legacy-tab-active {
        border-bottom: 2px solid var(--gg-palette-primary) !important;
    }
}
/* ============================================================
   MOBIL BOTTOM NAVIGATION
   ============================================================ */

/* ¦¦ Sidebar + topbar elrejtése mobilon ¦¦ */
@media (max-width: 767px) {
    .gg-sidebar {
        display: none !important;
    }

    /* LegacyDrawer overlay-je se látszódjon */
    .gg-legacy-drawer-overlay {
        display: none !important;
    }

    /* Felső sáv és hamburger ikon rejtve mobilon (bottom nav veszi át) */
    .gg-topbar {
        display: none !important;
    }

    /* A főtartalom ne kapjon bal margót/paddingot a drawer miatt */
    .gg-legacy-main-content.gg-main {
        padding-left: 0 !important;
        margin-left: 0 !important;
    }

    /* Tartalom alján padding a bottom nav miatt */
    .gg-page {
        padding-bottom: calc(72px + env(safe-area-inset-bottom)) !important;
    }
}

/* ¦¦ Bottom nav alap ¦¦ */
.gg-bottom-nav {
    display: none; /* alapból rejtett – mobilon CSS media query mutatja */
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: calc(64px + env(safe-area-inset-bottom));
    padding-bottom: env(safe-area-inset-bottom);
    background: var(--gg-palette-surface);
    border-top: 1px solid var(--gg-palette-divider);
    box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.08);
    z-index: 1050;
    flex-direction: row;
    align-items: stretch;
    justify-content: space-around;
}

@media (max-width: 767px) {
    .gg-bottom-nav {
        display: flex;
    }

    .gg-bottom-nav--hidden {
        display: none !important;
    }
}

/* ¦¦ Egyes tab gombok ¦¦ */
.gg-bn-tab {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1;
    gap: 3px;
    padding: 6px 4px;
    border: none;
    background: transparent;
    cursor: pointer;
    text-decoration: none;
    color: var(--gg-palette-text-secondary);
    transition: color 0.15s ease;
    -webkit-tap-highlight-color: transparent;
    min-width: 0;
}

.gg-bn-tab:hover,
.gg-bn-tab:focus-visible {
    color: var(--gg-palette-text-primary);
    outline: none;
}

.gg-bn-tab--active {
    color: var(--gg-palette-primary) !important;
}

.gg-bn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

.gg-bn-icon svg {
    width: 22px;
    height: 22px;
}

.gg-bn-tab--active .gg-bn-icon svg {
    filter: drop-shadow(0 0 3px color-mix(in srgb, var(--gg-palette-primary) 40%, transparent));
}

.gg-bn-label {
    font-size: 0.62rem;
    font-weight: 500;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

/* ¦¦ "Több" bottom sheet overlay ¦¦ */
.gg-bn-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1060;
    animation: gg-bn-fade-in 0.18s ease;
}

@keyframes gg-bn-fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.gg-bn-sheet {
    position: fixed;
    bottom: calc(64px + env(safe-area-inset-bottom));
    left: 0;
    right: 0;
    background: var(--gg-palette-surface);
    border-radius: 16px 16px 0 0;
    box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.14);
    z-index: 1070;
    padding: 8px 0 12px;
    animation: gg-bn-slide-up 0.22s cubic-bezier(0.32, 0.72, 0, 1);
}

@keyframes gg-bn-slide-up {
    from { transform: translateY(100%); }
    to   { transform: translateY(0); }
}

.gg-bn-sheet-handle {
    width: 36px;
    height: 4px;
    background: var(--gg-palette-lines-default);
    border-radius: 2px;
    margin: 0 auto 12px;
}

.gg-bn-sheet-nav {
    display: flex;
    flex-direction: column;
}

.gg-bn-sheet-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 20px;
    text-decoration: none;
    color: var(--gg-palette-text-primary);
    font-size: 0.95rem;
    font-weight: 500;
    transition: background 0.12s ease;
    -webkit-tap-highlight-color: transparent;
}

.gg-bn-sheet-item:hover,
.gg-bn-sheet-item:active {
    background: var(--gg-palette-action-default-hover);
}

.gg-bn-sheet-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: color-mix(in srgb, var(--gg-palette-primary) 10%, transparent);
    border-radius: 10px;
    flex-shrink: 0;
    color: var(--gg-palette-primary);
}

.gg-bn-sheet-icon svg {
    width: 20px;
    height: 20px;
}

/* ¦¦ Sötét mód kiegészítés ¦¦ */
.gg-dark .gg-bottom-nav {
    box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.32);
}

.gg-dark .gg-bn-sheet {
    box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.4);
}

/* Public shared workout player */
.gg-public-player-shell {
    min-height: 100vh;
    background: #f5f7fb;
    color: #172033;
    padding: 18px 12px 96px;
}

/* A publikus csoportos-óra oldal (/classes) teljes szélben — ne legyen shell-keret a felület körül.
   A háttér a választott témát követi (világos a default; sötét csak .is-dark esetén). */
.gg-public-player-shell:has(.pgc) { padding: 0; }
.gg-public-player-shell:has(.pgc.is-dark) { background: #0a0c10; }

/* A /me kliens-beléptető sötét, teljes képernyős — a shell világos kerete nélkül. */
.gg-public-player-shell:has(.ml-page) { padding: 0; background: #0B1117; }

/* Okos e-mail-felismerés banner (kliens-felvétel): létező GymGo-user adatainak átvétele */
.gg-email-lookup {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border-radius: 12px;
    background: var(--gg-accent-soft, rgba(217, 161, 95, .1));
    border: 1px solid var(--gg-accent, #D9A15F);
    font-size: .9rem;
}

.gg-email-lookup-main { flex: 1; }
.gg-email-lookup-main b { display: block; }
.gg-email-lookup-main span { display: block; font-size: .82rem; opacity: .75; }
.gg-email-lookup.is-ok { border-color: #2e7d32; background: rgba(46, 125, 50, .1); }
.gg-email-lookup.is-warn { border-color: rgba(183, 120, 52, .6); background: rgba(183, 120, 52, .08); }

/* Bejövő kliens-jelentkezések doboz (Kliensek lap teteje) */
.gg-incoming-box { padding: 16px 20px; border: 1px solid var(--gg-accent, #D9A15F); }
.gg-incoming-title { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.gg-incoming-row { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid rgba(128,128,128,.15); }
.gg-incoming-main { flex: 1; }
.gg-incoming-main b { display: block; }
.gg-incoming-main span { font-size: .82rem; opacity: .7; }

/* Kliens-dashboard: beleegyezés-kártya + jelentkezés-kártya */
.gg-cdash-consent { border: 1px solid var(--gc-primary); }
.gg-cdash-consent-head { display: flex; gap: 10px; align-items: flex-start; }
.gg-cdash-consent-msg { margin-top: 6px; font-style: italic; }
.gg-cdash-consent-actions { display: flex; gap: 10px; margin-top: 12px; }
.gg-cdash-consent-scope { display:grid; gap:2px; margin-top:9px; border-radius:9px; padding:9px 10px; background:rgba(128,128,128,.08); font-size:.72rem; }
.gg-cdash-consent-scope span { color:var(--gc-muted,#6b7280); line-height:1.4; }
.gg-cdash-link-error { margin-bottom:10px; border:1px solid #d89b20; border-radius:10px; padding:10px 12px; background:#fff7db; color:#6e4a00; font-size:.75rem; font-weight:650; }
.gg-cdash-apply-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.gg-cdash-apply-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 0; border-top: 1px solid rgba(128,128,128,.15); margin-top: 8px; }
.gg-cdash-apply-empty { margin-top: 10px; }


.gg-public-player {
    width: 100%;
}

.gg-public-player-card,
.gg-public-submit-bar {
    border-radius: 8px;
    border: 1px solid rgba(23, 32, 51, 0.1);
    box-shadow: 0 12px 36px rgba(23, 32, 51, 0.08);
    padding: 18px;
}

.gg-public-player-center {
    min-height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.gg-public-player-hero {
    border-radius: 8px;
    padding: 22px;
    color: #ffffff;
    background: linear-gradient(135deg, #1b5e57 0%, #2d6b9f 100%);
    box-shadow: 0 16px 40px rgba(27, 94, 87, 0.24);
}

.gg-public-exercise-title,
.gg-public-player-card .gg-legacy-typography-h5,
.gg-public-player-card .gg-legacy-typography-h6 {
    overflow-wrap: anywhere;
}

.gg-public-set-row {
    display: grid;
    gap: 12px;
    padding: 14px 0;
    border-top: 1px solid rgba(23, 32, 51, 0.1);
}

.gg-public-set-row-completed {
    background: rgba(46, 125, 50, 0.06);
    border-radius: 8px;
    padding-left: 10px;
    padding-right: 10px;
}

.gg-public-set-row-skipped {
    background: rgba(117, 117, 117, 0.08);
    border-radius: 8px;
    padding-left: 10px;
    padding-right: 10px;
}

.gg-public-set-row:first-of-type {
    border-top: 0;
    padding-top: 0;
}

.gg-public-set-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: baseline;
}

.gg-public-set-inputs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.gg-public-set-actions {
    flex-wrap: wrap;
}

.gg-public-submit-bar {
    position: sticky;
    bottom: 12px;
    z-index: 5;
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(12px);
}

.gg-public-submit-bar .gg-legacy-button-root {
    min-height: 46px;
}

@media (max-width: 560px) {
    .gg-public-player-shell {
        padding: 10px 8px 86px;
    }

    .gg-public-player-card,
    .gg-public-submit-bar {
        padding: 14px;
    }

    .gg-public-set-head {
        display: grid;
        gap: 8px;
        align-items: start;
    }

    .gg-public-set-inputs {
        grid-template-columns: 1fr;
    }

    .gg-public-set-actions .gg-legacy-button-root {
        flex: 1 1 130px;
    }
}

/* ============================================================
   MVP PREMIUM POLISH
   ============================================================ */



.gg-layout {
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--gg-palette-background) 84%, var(--gg-palette-primary) 16%) 0,
            var(--gg-palette-background) 340px);
}

.gg-main {
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--gg-palette-background) 86%, var(--gg-palette-primary) 14%) 0,
            var(--gg-palette-background) 420px) !important;
}

.gg-page {
    width: 100%;
    max-width: 1680px;
    margin: 0 auto;
    padding: 20px 24px 36px;
}

.gg-sidebar {
    border-right: 1px solid color-mix(in srgb, var(--gg-palette-divider) 68%, transparent);
    box-shadow: 14px 0 48px color-mix(in srgb, var(--gg-palette-text-primary) 8%, transparent);
}

.gg-sidebar .gg-legacy-drawer-content {
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--gg-palette-drawer-background) 92%, var(--gg-palette-primary) 8%),
            var(--gg-palette-drawer-background)) !important;
}

.gg-logo-wrap {
    padding-top: 30px;
}

.gg-logo-mark,
.gg-auth-brand-mark {
    border-radius: 18px;
    background:
        linear-gradient(145deg,
            color-mix(in srgb, var(--gg-palette-primary) 72%, #ffffff 28%),
            color-mix(in srgb, var(--gg-palette-primary) 78%, #000000 22%));
    box-shadow:
        inset 0 1px 0 color-mix(in srgb, #ffffff 34%, transparent),
        0 18px 36px color-mix(in srgb, var(--gg-palette-primary) 26%, transparent);
}

.gg-sidebar .gg-legacy-nav-link.gg-nav-link {
    min-height: 42px;
    border-radius: 14px;
    font-weight: 750;
    letter-spacing: 0;
}

.gg-sidebar .gg-legacy-nav-link.gg-nav-link.active {
    background:
        linear-gradient(135deg,
            color-mix(in srgb, var(--gg-palette-primary) 22%, var(--gg-palette-surface)),
            color-mix(in srgb, var(--gg-palette-primary) 10%, transparent));
    box-shadow:
        inset 0 0 0 1px color-mix(in srgb, var(--gg-palette-primary) 34%, transparent),
        0 12px 28px color-mix(in srgb, var(--gg-palette-primary) 12%, transparent);
}

.gg-topbar {
    position: sticky;
    top: 0;
    z-index: 1100;
    border-bottom: 1px solid color-mix(in srgb, var(--gg-palette-divider) 70%, transparent);
    background: color-mix(in srgb, var(--gg-palette-appbar-background) 82%, transparent) !important;
    backdrop-filter: blur(18px) saturate(1.35);
}

.gg-topbar-title,
.gg-title,
.gg-page-header .gg-legacy-typography-h5,
.gg-surface .gg-legacy-typography-h5,
.gg-surface .gg-legacy-typography-h6 {
    letter-spacing: 0;
}

.gg-legacy-button-root {
    border-radius: 12px !important;
    text-transform: none !important;
    font-weight: 750 !important;
    letter-spacing: 0 !important;
}

.gg-legacy-button-filled-primary {
    box-shadow:
        inset 0 1px 0 color-mix(in srgb, #ffffff 34%, transparent),
        0 16px 34px color-mix(in srgb, var(--gg-palette-primary) 24%, transparent) !important;
}

.gg-legacy-button-outlined {
    border-color: color-mix(in srgb, var(--gg-palette-text-primary) 16%, var(--gg-palette-divider)) !important;
    background: color-mix(in srgb, var(--gg-palette-surface) 72%, transparent) !important;
    backdrop-filter: blur(12px);
}

.gg-page-header,
.gg-surface,
.gg-kpi-card,
.gg-sub-surface {
    border-color: var(--gg-border-soft) !important;
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--gg-palette-surface) 96%, #ffffff 4%),
            color-mix(in srgb, var(--gg-palette-surface) 92%, var(--gg-palette-primary) 8%)) !important;
    box-shadow:
        inset 0 1px 0 color-mix(in srgb, #ffffff 12%, transparent),
        var(--gg-shadow-soft) !important;
}

.gg-surface:hover,
.gg-kpi-card:hover {
    border-color: color-mix(in srgb, var(--gg-palette-primary) 24%, var(--gg-palette-divider)) !important;
}

.gg-page-header {
    border-radius: 22px;
}

.gg-kpi-card {
    min-height: 132px;
}

.gg-kpi-value,
.gg-cockpit-kpi-card .gg-kpi-value {
    font-size: clamp(1.8rem, 2.4vw, 2.35rem);
}

.gg-legacy-input-control .gg-legacy-input-outlined-border {
    border-color: color-mix(in srgb, var(--gg-palette-text-primary) 18%, var(--gg-palette-divider)) !important;
}

.gg-legacy-input-control:hover .gg-legacy-input-outlined-border {
    border-color: color-mix(in srgb, var(--gg-palette-primary) 42%, var(--gg-palette-divider)) !important;
}

.gg-legacy-table-root,
.gg-legacy-table-container {
    border-radius: 16px;
    overflow: hidden;
}

.gg-legacy-table-head {
    background: color-mix(in srgb, var(--gg-palette-surface) 82%, var(--gg-palette-primary) 18%);
}

.gg-legacy-table-row:hover {
    background: color-mix(in srgb, var(--gg-palette-primary) 7%, transparent) !important;
}

.gg-focus-card {
    background:
        linear-gradient(145deg,
            color-mix(in srgb, var(--gg-palette-primary) 18%, var(--gg-palette-surface)) 0%,
            color-mix(in srgb, var(--gg-palette-surface) 86%, var(--gg-palette-secondary) 14%) 100%) !important;
}

.gg-focus-next-session,
.gg-focus-metric,
.gg-attention-item,
.gg-mini-calendar-day,
.gg-session-row-card,
.gg-template-card,
.gg-template-set-row,
.gg-exercise-card,
.gg-client-card {
    border-color: color-mix(in srgb, var(--gg-palette-divider) 72%, transparent) !important;
    box-shadow: inset 0 1px 0 color-mix(in srgb, #ffffff 8%, transparent);
}

.gg-mini-calendar-day {
    border-radius: 18px;
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--gg-palette-surface) 96%, var(--gg-palette-primary) 4%),
            color-mix(in srgb, var(--gg-palette-surface) 90%, var(--gg-palette-primary) 10%));
}

.gg-mini-calendar-day.is-selected {
    box-shadow:
        inset 0 0 0 1px color-mix(in srgb, var(--gg-palette-primary) 28%, transparent),
        0 12px 26px color-mix(in srgb, var(--gg-palette-primary) 18%, transparent);
}

.gg-workout-start-hero,
.gg-client-hero {
    overflow: hidden;
    position: relative;
}

.gg-workout-start-hero::after,
.gg-client-hero::after {
    content: "";
    position: absolute;
    inset: auto 24px 0 24px;
    height: 1px;
    background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--gg-palette-primary) 50%, transparent), transparent);
}

/* Login landing */
.gg-layout-auth .gg-sidebar,
.gg-layout-auth .gg-topbar,
.gg-layout-auth .gg-bottom-nav {
    display: none !important;
}

.gg-layout-auth .gg-legacy-main-content,
.gg-layout-auth .gg-main {
    margin-left: 0 !important;
    padding-left: 0 !important;
}

.gg-layout-auth .gg-page {
    max-width: none;
    padding: 0 !important;
}

.gg-auth-landing {
    min-height: 100vh;
    color: var(--gg-palette-text-primary);
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--gg-palette-background) 76%, var(--gg-palette-primary) 24%) 0,
            var(--gg-palette-background) 62%);
    overflow: hidden;
}

.gg-auth-nav {
    position: relative;
    z-index: 3;
    min-height: 78px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px clamp(18px, 4vw, 58px);
}

.gg-auth-brand {
    border: 0;
    padding: 0;
    background: transparent;
    color: inherit;
    display: inline-flex;
    align-items: center;
    gap: 14px;
    cursor: pointer;
    text-align: left;
}

.gg-auth-brand-mark {
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--gg-palette-primary-text);
    font-weight: 900;
}

.gg-auth-brand-name {
    display: block;
    font-size: 1.02rem;
    font-weight: 900;
}

.gg-auth-brand-sub {
    display: block;
    margin-top: 2px;
    font-size: 0.72rem;
    color: var(--gg-palette-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.gg-auth-nav-actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

.gg-auth-nav-link {
    color: var(--gg-palette-text-primary) !important;
}

.gg-auth-theme-switch .gg-legacy-switch-label {
    font-weight: 800;
}

.gg-auth-hero {
    position: relative;
    z-index: 2;
    min-height: calc(100vh - 78px);
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 460px);
    align-items: center;
    gap: clamp(24px, 5vw, 72px);
    padding: 36px clamp(18px, 5vw, 72px) 64px;
}

.gg-auth-product-stage {
    position: absolute;
    inset: 38px clamp(14px, 5vw, 78px) 42px clamp(14px, 5vw, 78px);
    z-index: -1;
    opacity: 0.58;
    pointer-events: none;
}

.gg-auth-product-window {
    width: min(860px, 68vw);
    margin-left: auto;
    border-radius: 26px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-text-primary) 14%, transparent);
    background: color-mix(in srgb, var(--gg-palette-surface) 82%, transparent);
    box-shadow: var(--gg-shadow-lift);
    backdrop-filter: blur(18px) saturate(1.25);
    overflow: hidden;
    transform: rotate(-1.5deg) translateY(18px);
}

.gg-auth-window-bar {
    height: 42px;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 18px;
    border-bottom: 1px solid color-mix(in srgb, var(--gg-palette-divider) 70%, transparent);
}

/* ── Landing: review-deck hero visual ── */
.gg-auth-deck { width: min(540px, 62vw); margin-left: auto; position: relative; transform: rotate(-2deg) translateY(8px); }
.gg-auth-deck-ghost { position: absolute; left: 0; right: 0; top: 0; height: 64px; border-radius: 20px; background: color-mix(in srgb, var(--gg-palette-surface) 90%, transparent); border: 1px solid color-mix(in srgb, var(--gg-palette-text-primary) 12%, transparent); }
.gg-auth-deck-ghost-1 { transform: translateY(-10px) scale(.97); opacity: .7; }
.gg-auth-deck-ghost-2 { transform: translateY(-20px) scale(.94); opacity: .45; }
.gg-auth-deck-card { position: relative; border-radius: 20px; padding: 18px 20px; background: color-mix(in srgb, var(--gg-palette-surface) 94%, transparent); border: 1px solid color-mix(in srgb, var(--gg-palette-text-primary) 14%, transparent); box-shadow: var(--gg-shadow-lift); backdrop-filter: blur(14px); }
.gg-auth-deck-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.gg-auth-deck-client { font-weight: 800; font-size: 1.05rem; }
.gg-auth-deck-sub { font-size: .78rem; opacity: .6; }
.gg-auth-deck-ring { width: 54px; height: 54px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 850; font-size: .9rem; color: var(--gg-accent-yellow); border: 4px solid var(--gg-accent-yellow); border-right-color: color-mix(in srgb, var(--gg-accent-yellow) 22%, transparent); border-top-color: color-mix(in srgb, var(--gg-accent-yellow) 50%, transparent); background: color-mix(in srgb, var(--gg-accent-yellow) 8%, transparent); }
.gg-auth-deck-rows { display: flex; flex-direction: column; gap: 7px; }
.gg-auth-deck-row { display: grid; grid-template-columns: 1fr auto 22px; align-items: center; gap: 10px; padding: 8px 11px; border-radius: 10px; background: color-mix(in srgb, var(--gg-palette-text-primary) 5%, transparent); font-size: .84rem; }
.gg-auth-deck-row b { font-weight: 700; opacity: .8; white-space: nowrap; }
.gg-auth-deck-row i { font-style: normal; width: 22px; height: 22px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: .72rem; font-weight: 800; }
.gg-auth-deck-row.is-done i { color: var(--gg-palette-success); background: color-mix(in srgb, var(--gg-palette-success) 18%, transparent); }
.gg-auth-deck-row.is-warn { background: color-mix(in srgb, var(--gg-accent-yellow) 13%, transparent); }
.gg-auth-deck-row.is-warn i { color: var(--gg-accent-yellow); background: color-mix(in srgb, var(--gg-accent-yellow) 24%, transparent); }
.gg-auth-deck-foot { display: flex; align-items: center; justify-content: space-between; margin-top: 14px; padding-top: 12px; border-top: 1px solid color-mix(in srgb, var(--gg-palette-divider) 60%, transparent); }
.gg-auth-deck-count { font-size: .78rem; opacity: .6; font-weight: 700; }
.gg-auth-deck-ok { font-size: .82rem; font-weight: 800; padding: 6px 16px; border-radius: 999px; background: var(--gg-accent-yellow); color: #15151a; }

/* ── Landing: 3-step loop ── */
.gg-auth-loop { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2.5vw, 26px); max-width: 1100px; margin: 8px auto 0; }
.gg-auth-loop-step { padding: 22px; border-radius: 18px; border: 1px solid color-mix(in srgb, var(--gg-palette-text-primary) 10%, transparent); background: color-mix(in srgb, var(--gg-palette-surface) 60%, transparent); }
.gg-auth-loop-num { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; font-weight: 850; font-size: 1rem; color: var(--gg-accent-yellow); border: 1px solid color-mix(in srgb, var(--gg-accent-yellow) 40%, transparent); background: color-mix(in srgb, var(--gg-accent-yellow) 10%, transparent); margin-bottom: 14px; }
.gg-auth-loop-step strong { display: block; font-size: 1.15rem; margin-bottom: 8px; }
.gg-auth-loop-step p { font-size: .92rem; opacity: .75; line-height: 1.55; margin: 0; }
@media (max-width: 820px) { .gg-auth-loop { grid-template-columns: 1fr; } }

/* ── Landing: proof / early-access ── */
.gg-auth-proof-section { max-width: 1000px; margin: clamp(48px, 8vw, 96px) auto 0; padding: clamp(28px, 4vw, 48px); border-radius: 24px; border: 1px solid color-mix(in srgb, var(--gg-accent-yellow) 22%, transparent); background: radial-gradient(circle at top right, color-mix(in srgb, var(--gg-accent-yellow) 7%, transparent), transparent 50%), color-mix(in srgb, var(--gg-palette-surface) 70%, transparent); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px; }
.gg-auth-quote { margin: 0; max-width: 560px; }
.gg-auth-quote blockquote { margin: 0; font-size: clamp(1.3rem, 2.4vw, 1.7rem); font-weight: 700; line-height: 1.3; letter-spacing: -.01em; }
.gg-auth-quote figcaption { margin-top: 12px; font-size: .86rem; opacity: .65; }
.gg-auth-proof-cta { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }

.gg-auth-window-bar span {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: var(--gg-palette-primary);
}

.gg-auth-window-bar span:nth-child(2) {
    background: var(--gg-palette-warning);
}

.gg-auth-window-bar span:nth-child(3) {
    background: var(--gg-palette-success);
}

.gg-auth-window-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 14px;
    padding: 18px;
}

.gg-auth-dashboard-panel {
    min-height: 142px;
    padding: 18px;
    border-radius: 18px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 72%, transparent);
    background: color-mix(in srgb, var(--gg-palette-surface) 88%, var(--gg-palette-primary) 12%);
}

.gg-auth-dashboard-panel-primary {
    min-height: 226px;
    grid-row: span 2;
}

.gg-auth-kicker {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.13em;
    color: var(--gg-palette-text-secondary);
    font-weight: 900;
}

.gg-auth-dashboard-title {
    margin-top: 12px;
    max-width: 410px;
    font-size: clamp(1.6rem, 2.6vw, 2.7rem);
    font-weight: 950;
    line-height: 1.02;
}

.gg-auth-dashboard-copy {
    margin-top: 10px;
    color: var(--gg-palette-text-secondary);
    font-size: 0.92rem;
}

.gg-auth-progress-row {
    height: 12px;
    margin-top: 24px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-text-primary) 8%, transparent);
    overflow: hidden;
}

.gg-auth-progress-row span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--gg-palette-primary);
}

.gg-auth-progress-row.is-short {
    margin-top: 10px;
}

.gg-auth-metric {
    margin-top: 10px;
    font-size: 3rem;
    line-height: 1;
    font-weight: 950;
}

.gg-auth-template-stack {
    margin-top: 20px;
    display: grid;
    gap: 9px;
}

.gg-auth-template-stack span,
.gg-auth-phone-set {
    height: 12px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-primary) 18%, var(--gg-palette-surface));
}

.gg-auth-template-stack span:nth-child(2) {
    width: 76%;
}

.gg-auth-template-stack span:nth-child(3) {
    width: 52%;
    background: color-mix(in srgb, var(--gg-palette-warning) 26%, var(--gg-palette-surface));
}

.gg-auth-phone-panel {
    display: flex;
    justify-content: center;
    align-items: center;
}

.gg-auth-phone {
    width: 116px;
    min-height: 184px;
    padding: 18px 12px 12px;
    border-radius: 24px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-text-primary) 18%, transparent);
    background: color-mix(in srgb, var(--gg-palette-background) 66%, #000000 34%);
    color: #fff;
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.24);
}

.gg-auth-phone-notch {
    width: 38px;
    height: 5px;
    border-radius: 999px;
    margin: 0 auto 18px;
    background: rgba(255, 255, 255, 0.28);
}

.gg-auth-phone-title {
    font-size: 0.82rem;
    font-weight: 900;
    margin-bottom: 18px;
}

.gg-auth-phone-set {
    height: 22px;
    margin-top: 10px;
    background: rgba(255, 255, 255, 0.12);
}

.gg-auth-phone-set.done {
    background: color-mix(in srgb, var(--gg-palette-success) 62%, #ffffff 8%);
}

.gg-auth-phone-set.active {
    background: color-mix(in srgb, var(--gg-palette-primary) 72%, #ffffff 8%);
}

.gg-auth-copy {
    max-width: 740px;
}

.gg-auth-pill,
.gg-auth-proof-strip span,
.gg-auth-panel-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 28%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-surface) 70%, transparent);
    backdrop-filter: blur(12px);
    color: var(--gg-palette-text-primary);
    font-weight: 850;
}

.gg-auth-pill {
    padding: 8px 13px;
    font-size: 0.82rem;
}

.gg-auth-copy h1 {
    margin: 24px 0 0;
    max-width: 920px;
    font-size: clamp(3.05rem, 6.1vw, 6.35rem);
    line-height: 0.94;
    font-weight: 950;
    letter-spacing: 0;
}

.gg-auth-lead {
    max-width: 620px;
    margin: 28px 0 0;
    font-size: clamp(1.15rem, 2vw, 1.55rem);
    line-height: 1.45;
    color: color-mix(in srgb, var(--gg-palette-text-primary) 78%, var(--gg-palette-text-secondary));
}

.gg-auth-cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 34px;
}

.gg-auth-primary-cta,
.gg-auth-secondary-cta {
    min-height: 52px;
    padding-inline: 22px !important;
}

.gg-auth-proof-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 28px;
}

.gg-auth-proof-strip span {
    padding: 8px 12px;
    font-size: 0.78rem;
}

.gg-auth-panel {
    width: 100%;
    padding: 24px;
    border-radius: 28px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-text-primary) 14%, transparent);
    background: color-mix(in srgb, var(--gg-palette-surface) 86%, transparent);
    box-shadow:
        inset 0 1px 0 color-mix(in srgb, #ffffff 16%, transparent),
        var(--gg-shadow-lift);
    backdrop-filter: blur(22px) saturate(1.32);
}

.gg-auth-panel-header {
    margin-bottom: 18px;
}

.gg-auth-panel-badge {
    padding: 6px 10px;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.gg-auth-panel h2 {
    margin: 14px 0 6px;
    font-size: 1.65rem;
    line-height: 1.1;
    font-weight: 950;
}

.gg-auth-panel p {
    margin: 0;
    color: var(--gg-palette-text-secondary);
    line-height: 1.5;
}

.gg-auth-tabs .gg-legacy-tabs-tabbar {
    border-radius: 16px;
    padding: 4px;
    background: color-mix(in srgb, var(--gg-palette-text-primary) 7%, transparent);
}

.gg-auth-tabs .gg-legacy-tab {
    min-height: 40px;
    border-radius: 12px;
    text-transform: none;
    font-weight: 850;
}

.gg-auth-tabs .gg-legacy-tab.gg-legacy-tab-active {
    background: var(--gg-palette-surface);
    box-shadow: 0 8px 18px color-mix(in srgb, var(--gg-palette-text-primary) 10%, transparent);
}

.gg-auth-password-note {
    padding: 10px 12px;
    border-radius: 14px;
    background: color-mix(in srgb, var(--gg-palette-primary) 9%, transparent);
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
    line-height: 1.45;
}

.gg-auth-divider {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 12px;
    margin: 20px 0;
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
}

.gg-auth-divider span {
    height: 1px;
    background: var(--gg-palette-divider);
}

.gg-auth-google-btn {
    min-height: 50px;
}

.gg-auth-progress {
    display: grid;
    gap: 8px;
    margin-top: 18px;
}

.gg-auth-alert {
    margin-top: 16px;
}

.gg-auth-feature-row {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    padding: 0 clamp(18px, 5vw, 72px) 54px;
}

.gg-auth-feature-row article {
    padding: 18px;
    border-radius: 18px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 72%, transparent);
    background: color-mix(in srgb, var(--gg-palette-surface) 70%, transparent);
    backdrop-filter: blur(14px);
    box-shadow: var(--gg-shadow-soft);
}

.gg-auth-feature-row article .gg-legacy-icon-root {
    color: var(--gg-palette-primary);
}

.gg-auth-feature-row strong {
    display: block;
    margin-top: 10px;
    font-size: 1rem;
}

.gg-auth-feature-row span {
    display: block;
    margin-top: 7px;
    color: var(--gg-palette-text-secondary);
    line-height: 1.45;
}

@media (max-width: 1180px) {
    .gg-auth-hero {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .gg-auth-panel {
        max-width: 560px;
    }

    .gg-auth-product-window {
        width: min(760px, 92vw);
    }
}

@media (max-width: 1050px) {
    .gg-auth-product-stage {
        display: none;
    }
}

@media (max-width: 760px) {
    .gg-page {
        padding: 14px 12px 86px;
    }

    .gg-auth-nav {
        align-items: flex-start;
        padding: 14px;
    }

    .gg-auth-nav-actions {
        flex-direction: column;
        align-items: flex-end;
        gap: 6px;
    }

    .gg-auth-nav-link {
        display: none !important;
    }

    .gg-auth-hero {
        padding: 20px 14px 34px;
    }

    .gg-auth-copy h1 {
        font-size: clamp(2.55rem, 11.5vw, 4.15rem);
        line-height: 0.98;
    }

    .gg-auth-cta-row {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
        max-width: 340px;
    }

    .gg-auth-primary-cta,
    .gg-auth-secondary-cta {
        width: 100%;
        justify-content: center;
        white-space: normal;
    }

    .gg-auth-proof-strip {
        display: grid;
        grid-template-columns: 1fr;
        max-width: 340px;
    }

    .gg-auth-proof-strip span {
        justify-content: center;
        text-align: center;
    }

    .gg-auth-panel {
        padding: 18px;
        border-radius: 22px;
    }

    .gg-auth-feature-row {
        grid-template-columns: 1fr;
        padding: 0 14px 34px;
    }
}

/* ============================================================
   GYMGO PRODUCT SHELL
   Final visual layer for the Trainer MVP.
   ============================================================ */



html,
body,
button,
input,
textarea,
select,
.gg-legacy-typography,
.gg-legacy-button-label,
.gg-legacy-input,
.gg-legacy-input-label,
.gg-legacy-chip-content,
.gg-legacy-table-cell {
    font-family: var(--gg-font-body) !important;
    letter-spacing: 0 !important;
}

.gg-title,
.gg-logo,
.gg-topbar-title,
.gg-auth-copy h1,
.gg-auth-dashboard-title,
.gg-kpi-value,
.gg-cockpit-kpi-card .gg-kpi-value {
    font-family: var(--gg-font-display) !important;
    letter-spacing: 0 !important;
}

.gg-layout.gg-dark {
    background: #050505 !important;
}

.gg-layout.gg-light {
    background: #f7f8f8 !important;
}

.gg-main {
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--gg-palette-background) 92%, var(--gg-palette-primary) 8%) 0,
            var(--gg-palette-background) 360px) !important;
}

.gg-dark .gg-main {
    background:
        linear-gradient(180deg, #07110d 0, #050505 280px) !important;
}

.gg-page {
    max-width: 1740px;
    padding: 18px 24px 40px;
}

.gg-page-shell {
    gap: var(--gg-shell-gap);
}

.gg-sidebar {
    border-right: 1px solid var(--gg-border-soft) !important;
    box-shadow: none !important;
}

.gg-dark .gg-sidebar .gg-legacy-drawer-content {
    background: #070708 !important;
}

.gg-light .gg-sidebar .gg-legacy-drawer-content {
    background: #fff !important;
}

.gg-logo-wrap {
    padding: 22px 18px 14px;
}

.gg-logo-mark,
.gg-auth-brand-mark {
    border-radius: 10px !important;
    background: #111 !important;
    color: #fff !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.12), 0 12px 28px rgba(0,0,0,0.22) !important;
}

.gg-dark .gg-logo-mark,
.gg-dark .gg-auth-brand-mark {
    background: linear-gradient(145deg, #18181b, #0a0a0b) !important;
    border: 1px solid #27272a;
}

.gg-logo {
    font-size: 1.48rem;
    font-weight: 850;
}

.gg-logo-sub,
.gg-auth-brand-sub,
.gg-nav-section,
.gg-eyebrow {
    letter-spacing: 0.1em !important;
}

.gg-sidebar .gg-legacy-navmenu {
    padding: 0 8px 16px;
}

.gg-sidebar .gg-legacy-nav-link.gg-nav-link {
    min-height: 38px;
    margin: 2px 6px;
    padding: 8px 10px;
    border-radius: 8px !important;
    color: color-mix(in srgb, var(--gg-palette-drawer-text) 72%, transparent);
    font-size: 0.9rem;
    font-weight: 650;
    box-shadow: none !important;
}

.gg-sidebar .gg-legacy-nav-link.gg-nav-link:hover {
    background: color-mix(in srgb, var(--gg-palette-primary) 12%, transparent) !important;
    color: var(--gg-palette-drawer-text);
}

.gg-sidebar .gg-legacy-nav-link.gg-nav-link.active {
    background: color-mix(in srgb, var(--gg-palette-primary) 18%, transparent) !important;
    color: var(--gg-palette-drawer-text);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gg-palette-primary) 26%, transparent) !important;
}

.gg-sidebar-note {
    margin: 16px 14px;
    border-radius: 8px !important;
    background: color-mix(in srgb, var(--gg-palette-surface) 78%, transparent) !important;
    border-color: var(--gg-border-soft) !important;
    box-shadow: none !important;
}

.gg-topbar {
    min-height: 52px;
    border-bottom: 1px solid var(--gg-border-soft) !important;
    background: color-mix(in srgb, var(--gg-palette-appbar-background) 88%, transparent) !important;
    backdrop-filter: blur(16px) saturate(1.2);
}

.gg-dark .gg-topbar {
    background: rgba(8, 8, 9, 0.82) !important;
}

.gg-topbar .gg-legacy-toolbar {
    min-height: 52px !important;
}

.gg-topbar-menu,
.gg-topbar-auth-btn,
.gg-topbar-preview,
.gg-auth-pill,
.gg-auth-proof-strip span,
.gg-auth-panel-badge {
    border-radius: 999px !important;
}

.gg-topbar-menu {
    border-color: var(--gg-border-soft) !important;
    background: color-mix(in srgb, var(--gg-palette-surface) 86%, transparent) !important;
}

.gg-topbar-title {
    font-size: 0.94rem;
    font-weight: 750;
}

.gg-avatar,
.gg-profile-avatar {
    background: color-mix(in srgb, var(--gg-palette-primary) 84%, #111 16%) !important;
    color: var(--gg-palette-primary-text) !important;
    font-weight: 850 !important;
}

.gg-legacy-paper,
.gg-page-header,
.gg-surface,
.gg-kpi-card,
.gg-sub-surface,
.gg-focus-next-session,
.gg-focus-metric,
.gg-attention-item,
.gg-mini-calendar-day,
.gg-session-row-card,
.gg-template-card,
.gg-template-set-row,
.gg-exercise-card,
.gg-client-card,
.gg-online-review-card,
.gg-public-player-card {
    border-radius: 8px !important;
}

.gg-page-header,
.gg-surface,
.gg-kpi-card,
.gg-sub-surface {
    border: 1px solid var(--gg-border-soft) !important;
    background: color-mix(in srgb, var(--gg-palette-surface) 96%, var(--gg-palette-background) 4%) !important;
    box-shadow: none !important;
}

.gg-dark .gg-page-header,
.gg-dark .gg-surface,
.gg-dark .gg-kpi-card,
.gg-dark .gg-sub-surface {
    background: #0f0f10 !important;
}

.gg-page-header:hover,
.gg-surface:hover,
.gg-kpi-card:hover {
    border-color: color-mix(in srgb, var(--gg-palette-primary) 30%, var(--gg-palette-divider)) !important;
}

.gg-page-header {
    padding: 20px;
}

.gg-surface {
    padding: 18px;
}

.gg-sub-surface {
    background: color-mix(in srgb, var(--gg-palette-surface) 88%, var(--gg-palette-primary) 5%) !important;
}

.gg-title {
    font-weight: 850;
}

.gg-legacy-button-root {
    border-radius: 8px !important;
    min-height: 38px;
    text-transform: none !important;
    font-weight: 720 !important;
}

.gg-legacy-button-filled-primary {
    background: var(--gg-palette-primary) !important;
    box-shadow: 0 10px 24px color-mix(in srgb, var(--gg-palette-primary) 20%, transparent) !important;
}

.gg-legacy-button-outlined {
    background: color-mix(in srgb, var(--gg-palette-surface) 74%, transparent) !important;
    border-color: var(--gg-border-soft) !important;
}

.gg-legacy-button-text {
    border-radius: 8px !important;
}

.gg-legacy-input-control .gg-legacy-input-outlined,
.gg-legacy-input-control .gg-legacy-input-outlined-border,
.gg-legacy-select,
.gg-legacy-input-slot,
.gg-legacy-input {
    border-radius: 8px !important;
}

.gg-legacy-input-control .gg-legacy-input-outlined-border {
    border-color: var(--gg-border-soft) !important;
}

.gg-legacy-input-control:hover .gg-legacy-input-outlined-border {
    border-color: color-mix(in srgb, var(--gg-palette-primary) 44%, var(--gg-palette-divider)) !important;
}

.gg-legacy-table-root,
.gg-legacy-table-container {
    border-radius: 8px !important;
    border: 1px solid var(--gg-border-soft);
}

.gg-legacy-table-head {
    background: color-mix(in srgb, var(--gg-palette-surface) 88%, var(--gg-palette-primary) 6%) !important;
}

.gg-legacy-table-cell {
    border-bottom-color: var(--gg-border-soft) !important;
}

.gg-legacy-table-row:hover {
    background: color-mix(in srgb, var(--gg-palette-primary) 7%, transparent) !important;
}

.gg-kpi-card {
    min-height: 116px;
    padding: 18px 20px;
}

.gg-kpi-value {
    font-size: 2rem;
    font-weight: 780;
}

.gg-focus-card {
    background:
        linear-gradient(135deg,
            color-mix(in srgb, var(--gg-palette-surface) 92%, var(--gg-palette-primary) 8%),
            color-mix(in srgb, var(--gg-palette-surface) 88%, var(--gg-palette-info) 6%)) !important;
}

.gg-dark .gg-focus-card {
    background:
        linear-gradient(135deg,
            color-mix(in srgb, #101112 84%, var(--gg-palette-primary) 16%),
            #111827) !important;
}

.gg-mini-calendar-day {
    background: color-mix(in srgb, var(--gg-palette-surface) 92%, var(--gg-palette-background) 8%) !important;
    box-shadow: none !important;
}

.gg-mini-calendar-day.is-selected {
    background: color-mix(in srgb, var(--gg-palette-primary) 18%, var(--gg-palette-surface)) !important;
    border-color: color-mix(in srgb, var(--gg-palette-primary) 52%, var(--gg-palette-divider)) !important;
    box-shadow: none !important;
}

.gg-layout-auth .gg-main {
    background: var(--gg-palette-background) !important;
}

.gg-auth-landing {
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--gg-palette-background) 86%, var(--gg-palette-primary) 14%),
            var(--gg-palette-background) 62%) !important;
}

.gg-dark .gg-auth-landing {
    background:
        linear-gradient(180deg, #06110d 0, #050505 58%) !important;
}

.gg-auth-hero {
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, 470px);
}

.gg-auth-copy {
    max-width: 820px;
}

.gg-auth-copy h1 {
    max-width: 680px;
    font-size: 4.15rem;
    line-height: 1;
    font-weight: 860;
    outline: none;
}

.gg-auth-copy h1:focus,
.gg-auth-copy h1:focus-visible {
    outline: none;
}

.gg-auth-lead {
    max-width: 680px;
    font-size: 1.28rem;
}

.gg-auth-panel {
    border-radius: 12px !important;
    background: color-mix(in srgb, var(--gg-palette-surface) 92%, transparent) !important;
    box-shadow: var(--gg-shadow-lift) !important;
}

.gg-auth-product-window,
.gg-auth-dashboard-panel,
.gg-auth-feature-row article {
    border-radius: 10px !important;
}

.gg-auth-product-stage {
    opacity: 0.34;
}

.gg-auth-feature-row article {
    background: color-mix(in srgb, var(--gg-palette-surface) 84%, transparent);
    box-shadow: none;
}

.gg-profile-page {
    max-width: 1180px;
}

.gg-profile-hero {
    background:
        linear-gradient(135deg,
            color-mix(in srgb, var(--gg-palette-surface) 86%, var(--gg-palette-primary) 10%),
            var(--gg-palette-surface)) !important;
}

.gg-profile-identity {
    min-width: 0;
}

.gg-profile-avatar {
    width: 64px !important;
    height: 64px !important;
    font-size: 1.25rem !important;
    border-radius: 12px !important;
}

.gg-profile-status-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.gg-profile-status-card,
.gg-profile-empty {
    border: 1px solid var(--gg-border-soft);
    border-radius: 8px;
    background: color-mix(in srgb, var(--gg-palette-surface) 88%, var(--gg-palette-primary) 4%);
}

.gg-profile-status-card {
    display: grid;
    gap: 8px;
    padding: 14px;
}

.gg-profile-status-card span {
    color: var(--gg-palette-text-secondary);
    font-size: 0.82rem;
}

.gg-profile-status-card strong {
    font-size: 1.05rem;
}

.gg-profile-empty {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px;
}

.gg-bottom-nav,
.gg-bn-sheet {
    border-color: var(--gg-border-soft) !important;
    background: color-mix(in srgb, var(--gg-palette-surface) 94%, transparent) !important;
    backdrop-filter: blur(16px);
}

.gg-bn-tab,
.gg-bn-sheet-item {
    border-radius: 8px !important;
}

.gg-auth-flow-section {
    position: relative;
    z-index: 2;
    padding: 8px clamp(18px, 5vw, 72px) 46px;
}

.gg-auth-section-head {
    max-width: 760px;
    margin-bottom: 18px;
}

.gg-auth-section-head h2 {
    margin: 14px 0 8px;
    max-width: 680px;
    font-size: clamp(2rem, 4vw, 3.6rem);
    line-height: 1.02;
    font-weight: 860;
}

.gg-auth-section-head p {
    margin: 0;
    color: var(--gg-palette-text-secondary);
    font-size: 1.05rem;
    line-height: 1.55;
}

.gg-auth-flow-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.gg-auth-flow-card {
    min-height: 320px;
    display: grid;
    grid-template-rows: 150px auto auto;
    gap: 12px;
    padding: 18px;
    border: 1px solid var(--gg-border-soft);
    border-radius: 10px;
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--gg-palette-surface) 92%, var(--gg-palette-primary) 4%),
            color-mix(in srgb, var(--gg-palette-surface) 96%, transparent));
}

.gg-dark .gg-auth-flow-card {
    background:
        linear-gradient(180deg,
            color-mix(in srgb, #111112 88%, var(--gg-palette-primary) 8%),
            #0b0b0c);
}

.gg-auth-flow-card strong {
    font-size: 1.02rem;
    font-weight: 820;
}

.gg-auth-flow-card p {
    margin: 0;
    color: var(--gg-palette-text-secondary);
    line-height: 1.5;
}

.gg-auth-mini {
    position: relative;
    min-height: 150px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 22%, var(--gg-palette-divider));
    border-radius: 8px;
    background:
        radial-gradient(circle at top right, color-mix(in srgb, var(--gg-palette-primary) 18%, transparent), transparent 36%),
        color-mix(in srgb, var(--gg-palette-background) 72%, var(--gg-palette-surface) 28%);
}

.gg-mini-phone,
.gg-mini-coach-card,
.gg-mini-pass-card,
.gg-mini-pass-count {
    position: absolute;
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 80%, transparent);
    background: color-mix(in srgb, var(--gg-palette-surface) 92%, transparent);
    box-shadow: 0 14px 30px color-mix(in srgb, #000 20%, transparent);
}

.gg-mini-phone {
    left: 18px;
    top: 22px;
    width: 58px;
    height: 104px;
    border-radius: 16px;
    padding: 20px 9px 9px;
}

.gg-mini-phone span,
.gg-mini-coach-card span,
.gg-mini-pass-card span,
.gg-mini-set-row {
    display: block;
    height: 9px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-text-secondary) 30%, transparent);
}

.gg-mini-phone span {
    margin-bottom: 9px;
}

.gg-mini-phone span:nth-child(2) {
    width: 72%;
    background: var(--gg-palette-primary);
    animation: gg-mini-pulse 2.4s ease-in-out infinite;
}

.gg-mini-link-line {
    position: absolute;
    left: 72px;
    top: 72px;
    width: calc(100% - 128px);
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--gg-palette-primary), transparent);
}

.gg-mini-link-line::after {
    content: "";
    position: absolute;
    top: -4px;
    left: 0;
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: var(--gg-palette-primary);
    animation: gg-mini-transfer 2.8s ease-in-out infinite;
}

.gg-mini-coach-card {
    right: 18px;
    top: 36px;
    width: 76px;
    height: 74px;
    border-radius: 8px;
    padding: 16px 12px;
}

.gg-mini-coach-card span + span {
    width: 64%;
    margin-top: 12px;
}

.gg-mini-track-bar {
    position: absolute;
    left: 18px;
    right: 18px;
    top: 24px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
}

.gg-mini-track-bar span {
    height: 38px;
    border-radius: 8px;
    border: 1px solid var(--gg-border-soft);
    background: color-mix(in srgb, var(--gg-palette-surface) 84%, transparent);
    animation: gg-mini-step 2.8s ease-in-out infinite;
    animation-delay: calc(var(--i) * 160ms);
}

.gg-mini-set-row {
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: 42px;
    height: 12px;
}

.gg-mini-set-row.is-active {
    bottom: 66px;
    width: 74%;
    background: var(--gg-palette-primary);
    animation: gg-mini-pulse 2.1s ease-in-out infinite;
}

.gg-mini-pass-card {
    left: 20px;
    top: 26px;
    width: 118px;
    height: 88px;
    border-radius: 10px;
    padding: 18px 14px;
}

.gg-mini-pass-card span {
    width: 82%;
}

.gg-mini-pass-card span + span {
    width: 52%;
    margin-top: 12px;
}

.gg-mini-pass-fill {
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 14px;
    height: 10px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-primary) 18%, transparent);
    overflow: hidden;
}

.gg-mini-pass-fill::after {
    content: "";
    display: block;
    width: 62%;
    height: 100%;
    border-radius: inherit;
    background: var(--gg-palette-primary);
    animation: gg-mini-fill 3.2s ease-in-out infinite;
}

.gg-mini-pass-count {
    right: 22px;
    top: 46px;
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    color: var(--gg-palette-primary);
    font-size: 1.55rem;
    font-weight: 900;
    animation: gg-mini-count 2.7s ease-in-out infinite;
}

.gg-auth-mini-calendar {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    padding: 18px;
}

.gg-auth-mini-calendar span {
    min-height: 30px;
    border-radius: 8px;
    border: 1px solid var(--gg-border-soft);
    background: color-mix(in srgb, var(--gg-palette-surface) 86%, transparent);
}

.gg-auth-mini-calendar span.is-booked {
    background: color-mix(in srgb, var(--gg-palette-primary) 24%, var(--gg-palette-surface));
    border-color: color-mix(in srgb, var(--gg-palette-primary) 58%, var(--gg-palette-divider));
    animation: gg-mini-calendar 2.6s ease-in-out infinite;
}

.gg-auth-mini-calendar span.is-booked:nth-child(7) {
    animation-delay: 180ms;
}

.gg-auth-mini-calendar span.is-booked:nth-child(10) {
    animation-delay: 360ms;
}

@keyframes gg-mini-transfer {
    0%,
    18% {
        transform: translateX(0) scale(0.86);
        opacity: 0;
    }
    35%,
    74% {
        opacity: 1;
    }
    100% {
        transform: translateX(100px) scale(1);
        opacity: 0;
    }
}

@keyframes gg-mini-pulse {
    0%,
    100% {
        opacity: 0.72;
        transform: scaleX(0.82);
    }
    50% {
        opacity: 1;
        transform: scaleX(1);
    }
}

@keyframes gg-mini-step {
    0%,
    100% {
        border-color: var(--gg-border-soft);
        transform: translateY(0);
    }
    45% {
        border-color: color-mix(in srgb, var(--gg-palette-primary) 62%, var(--gg-palette-divider));
        transform: translateY(-4px);
    }
}

@keyframes gg-mini-fill {
    0%,
    100% {
        width: 72%;
    }
    50% {
        width: 38%;
    }
}

@keyframes gg-mini-count {
    0%,
    100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.08);
    }
}

@keyframes gg-mini-calendar {
    0%,
    100% {
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--gg-palette-primary) 0%, transparent);
    }
    50% {
        box-shadow: 0 0 0 5px color-mix(in srgb, var(--gg-palette-primary) 14%, transparent);
    }
}

/* Landing explainer people animations */
.gg-auth-flow-card {
    grid-template-rows: 160px auto auto;
}

.gg-auth-mini {
    min-height: 160px;
    isolation: isolate;
}

.gg-auth-mini-calendar {
    display: block;
    padding: 0;
}

.gg-auth-mini-calendar span {
    min-height: auto;
    border: 0;
    border-radius: 0;
    background: transparent;
    animation: none;
}

.gg-auth-mini-calendar span.is-booked {
    background: transparent;
    border-color: transparent;
    animation: none;
}

.gg-mini-person {
    position: absolute;
    width: 58px;
    height: 112px;
    color: var(--gg-palette-text-primary);
    transform-origin: 50% 100%;
    z-index: 2;
}

.gg-mini-head,
.gg-mini-body,
.gg-mini-arm {
    position: absolute;
    display: block;
}

.gg-mini-head {
    top: 4px;
    left: 50%;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-primary) 76%, #ffffff 24%);
    box-shadow:
        inset 0 1px 0 color-mix(in srgb, #ffffff 28%, transparent),
        0 10px 20px color-mix(in srgb, #000000 24%, transparent);
    transform: translateX(-50%);
}

.gg-mini-body {
    top: 34px;
    left: 50%;
    width: 28px;
    height: 44px;
    border-radius: 12px 12px 10px 10px;
    background: color-mix(in srgb, var(--gg-palette-surface) 80%, var(--gg-palette-primary) 20%);
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 28%, var(--gg-palette-divider));
    transform: translateX(-50%);
}

.gg-mini-arm {
    top: 42px;
    width: 8px;
    height: 34px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-primary) 52%, var(--gg-palette-text-primary) 12%);
    transform-origin: 50% 6px;
}

.gg-mini-arm-left {
    left: 10px;
    transform: rotate(18deg);
}

.gg-mini-arm-right {
    right: 10px;
    transform: rotate(-18deg);
}

.gg-mini-person::before,
.gg-mini-person::after {
    content: "";
    position: absolute;
    top: 76px;
    width: 9px;
    height: 32px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-text-primary) 42%, var(--gg-palette-primary) 18%);
    transform-origin: 50% 3px;
}

.gg-mini-person::before {
    left: 19px;
    transform: rotate(9deg);
}

.gg-mini-person::after {
    right: 19px;
    transform: rotate(-9deg);
}

.gg-mini-person-coach {
    left: 24px;
    bottom: 20px;
    animation: gg-person-idle 3s ease-in-out infinite;
}

.gg-mini-person-coach .gg-mini-arm-right {
    animation: gg-person-wave 2.2s ease-in-out infinite;
}

.gg-mini-person-client {
    right: 22px;
    bottom: 20px;
    animation: gg-person-receive 3s ease-in-out infinite;
}

.gg-mini-share-link {
    position: absolute;
    left: 82px;
    right: 82px;
    top: 68px;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, var(--gg-palette-primary), transparent);
}

.gg-mini-share-link span {
    position: absolute;
    top: -9px;
    left: 0;
    width: 22px;
    height: 22px;
    border-radius: 999px;
    border: 2px solid color-mix(in srgb, var(--gg-palette-primary) 88%, #ffffff 12%);
    background: color-mix(in srgb, var(--gg-palette-surface) 90%, var(--gg-palette-primary) 10%);
    box-shadow: 0 12px 24px color-mix(in srgb, var(--gg-palette-primary) 22%, transparent);
    animation: gg-link-fly 2.8s ease-in-out infinite;
}

.gg-mini-share-link span::before,
.gg-mini-share-link span::after {
    content: "";
    position: absolute;
    top: 9px;
    width: 9px;
    height: 3px;
    border-radius: 999px;
    background: var(--gg-palette-primary);
}

.gg-mini-share-link span::before {
    left: 4px;
    transform: rotate(38deg);
}

.gg-mini-share-link span::after {
    right: 4px;
    transform: rotate(-38deg);
}

.gg-mini-person-trainer {
    left: 28px;
    bottom: 20px;
}

.gg-mini-person-trainer .gg-mini-arm-right {
    animation: gg-person-count 1.8s ease-in-out infinite;
}

.gg-mini-person-athlete {
    right: 30px;
    bottom: 16px;
    animation: gg-person-squat 2s ease-in-out infinite;
}

.gg-mini-person-athlete .gg-mini-head {
    background: color-mix(in srgb, var(--gg-palette-info) 64%, #ffffff 20%);
}

.gg-mini-rep-bar {
    position: absolute;
    left: 24px;
    right: 24px;
    bottom: 18px;
    height: 8px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-text-primary) 12%, transparent);
}

.gg-mini-rep-bar span {
    position: absolute;
    top: -36px;
    width: 34px;
    height: 8px;
    border-radius: 999px;
    background: var(--gg-palette-primary);
    opacity: 0.24;
    animation: gg-rep-dot 2s ease-in-out infinite;
}

.gg-mini-rep-bar span:nth-child(1) {
    left: 42%;
}

.gg-mini-rep-bar span:nth-child(2) {
    left: 52%;
    animation-delay: 120ms;
}

.gg-mini-rep-bar span:nth-child(3) {
    left: 62%;
    animation-delay: 240ms;
}

.gg-mini-person-member {
    left: 26px;
    bottom: 20px;
    animation: gg-person-idle 2.7s ease-in-out infinite;
}

.gg-mini-pass-ticket {
    position: absolute;
    right: 28px;
    top: 28px;
    width: 84px;
    height: 58px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 38%, var(--gg-palette-divider));
    background:
        linear-gradient(135deg,
            color-mix(in srgb, var(--gg-palette-primary) 24%, var(--gg-palette-surface)),
            color-mix(in srgb, var(--gg-palette-surface) 86%, transparent));
    box-shadow: 0 16px 34px color-mix(in srgb, #000000 18%, transparent);
    animation: gg-pass-pop 2.6s ease-in-out infinite;
}

.gg-mini-pass-ticket span {
    width: auto;
    height: auto;
    border-radius: 0;
    color: var(--gg-palette-primary);
    background: transparent;
    font-size: 1.65rem;
    font-weight: 900;
}

.gg-mini-pass-stack {
    position: absolute;
    right: 38px;
    bottom: 30px;
    display: flex;
    gap: 5px;
}

.gg-mini-pass-stack span {
    width: 12px;
    height: 26px;
    border-radius: 999px;
    background: var(--gg-palette-primary);
    transform-origin: 50% 100%;
    animation: gg-pass-bars 2.4s ease-in-out infinite;
}

.gg-mini-pass-stack span:nth-child(2) {
    animation-delay: 120ms;
}

.gg-mini-pass-stack span:nth-child(3) {
    animation-delay: 240ms;
}

.gg-mini-person-calendar {
    left: 22px;
    bottom: 20px;
    animation: gg-person-idle 3.2s ease-in-out infinite;
}

.gg-mini-calendar-board {
    position: absolute;
    right: 18px;
    top: 22px;
    width: 110px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 7px;
    padding: 12px;
    border-radius: 12px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 24%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-surface) 88%, transparent);
    box-shadow: 0 16px 34px color-mix(in srgb, #000000 16%, transparent);
}

.gg-mini-calendar-board span {
    min-height: 25px;
    border-radius: 7px;
    border: 1px solid var(--gg-border-soft);
    background: color-mix(in srgb, var(--gg-palette-background) 60%, var(--gg-palette-surface) 40%);
}

.gg-mini-calendar-board span.is-booked {
    background: color-mix(in srgb, var(--gg-palette-primary) 32%, var(--gg-palette-surface));
    border-color: color-mix(in srgb, var(--gg-palette-primary) 62%, var(--gg-palette-divider));
    animation: gg-calendar-booked 2.6s ease-in-out infinite;
}

.gg-mini-calendar-board span.is-booked:nth-child(5) {
    animation-delay: 160ms;
}

.gg-mini-calendar-board span.is-booked:nth-child(8) {
    animation-delay: 320ms;
}

@keyframes gg-person-idle {
    0%,
    100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-4px);
    }
}

@keyframes gg-person-wave {
    0%,
    100% {
        transform: rotate(-18deg);
    }
    45%,
    65% {
        transform: rotate(-78deg);
    }
}

@keyframes gg-person-receive {
    0%,
    100% {
        transform: translateY(0) scale(1);
    }
    62% {
        transform: translateY(-4px) scale(1.04);
    }
}

@keyframes gg-link-fly {
    0%,
    14% {
        opacity: 0;
        transform: translateX(0) scale(0.84);
    }
    30%,
    72% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translateX(94px) scale(1);
    }
}

@keyframes gg-person-count {
    0%,
    100% {
        transform: rotate(-18deg);
    }
    45% {
        transform: rotate(-54deg);
    }
}

@keyframes gg-person-squat {
    0%,
    100% {
        transform: translateY(0) scaleY(1);
    }
    48% {
        transform: translateY(14px) scaleY(0.86);
    }
}

@keyframes gg-rep-dot {
    0%,
    100% {
        opacity: 0.2;
        transform: translateY(0);
    }
    48% {
        opacity: 0.85;
        transform: translateY(-8px);
    }
}

@keyframes gg-pass-pop {
    0%,
    100% {
        transform: translateY(0) rotate(0);
    }
    50% {
        transform: translateY(-7px) rotate(2deg);
    }
}

@keyframes gg-pass-bars {
    0%,
    100% {
        transform: scaleY(0.58);
        opacity: 0.48;
    }
    50% {
        transform: scaleY(1);
        opacity: 1;
    }
}

@keyframes gg-calendar-booked {
    0%,
    100% {
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--gg-palette-primary) 0%, transparent);
    }
    50% {
        box-shadow: 0 0 0 5px color-mix(in srgb, var(--gg-palette-primary) 18%, transparent);
    }
}

/* More detailed landing story illustrations */
.gg-auth-flow-card {
    grid-template-rows: 178px auto auto;
}

.gg-auth-mini {
    min-height: 178px;
    background:
        radial-gradient(circle at 82% 14%, color-mix(in srgb, var(--gg-palette-primary) 20%, transparent), transparent 38%),
        radial-gradient(circle at 18% 88%, color-mix(in srgb, var(--gg-palette-info) 10%, transparent), transparent 34%),
        color-mix(in srgb, var(--gg-palette-background) 78%, var(--gg-palette-surface) 22%);
}

.gg-mini-person {
    width: 62px;
    height: 118px;
}

.gg-mini-head {
    width: 25px;
    height: 25px;
}

.gg-mini-body {
    top: 35px;
    width: 30px;
    height: 48px;
    border-radius: 14px 14px 10px 10px;
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--gg-palette-primary) 52%, #ffffff 10%),
            color-mix(in srgb, var(--gg-palette-primary) 28%, var(--gg-palette-surface)));
}

.gg-mini-arm {
    top: 44px;
    height: 38px;
}

.gg-mini-person::before,
.gg-mini-person::after {
    top: 82px;
    height: 33px;
}

.gg-mini-phone-device {
    position: absolute;
    right: -2px;
    top: 53px;
    width: 16px;
    height: 27px;
    border-radius: 5px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 62%, #ffffff 10%);
    background: #050707;
    box-shadow: 0 8px 16px color-mix(in srgb, #000000 34%, transparent);
    transform: rotate(-18deg);
    z-index: 4;
}

.gg-mini-phone-device span {
    position: absolute;
    left: 4px;
    right: 4px;
    bottom: 4px;
    height: 2px;
    border-radius: 999px;
    background: var(--gg-palette-primary);
}

.gg-mini-person-coach {
    left: 28px;
    bottom: 22px;
}

.gg-mini-person-coach .gg-mini-arm-right {
    animation: gg-phone-tap 2.3s ease-in-out infinite;
}

.gg-mini-workout-card {
    position: absolute;
    left: 50%;
    top: 28px;
    width: 74px;
    height: 54px;
    padding: 10px;
    border-radius: 10px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 34%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-surface) 90%, transparent);
    box-shadow: 0 14px 30px color-mix(in srgb, #000000 18%, transparent);
    transform: translateX(-50%) rotate(-2deg);
    animation: gg-workout-card-float 2.8s ease-in-out infinite;
}

.gg-mini-workout-card span {
    display: block;
    height: 6px;
    margin-bottom: 7px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-primary) 54%, transparent);
}

.gg-mini-workout-card span:nth-child(2) {
    width: 72%;
}

.gg-mini-workout-card span:nth-child(3) {
    width: 44%;
    background: color-mix(in srgb, var(--gg-palette-text-secondary) 32%, transparent);
}

.gg-mini-share-link {
    left: 98px;
    right: 92px;
    top: 88px;
}

.gg-mini-person-client {
    right: 26px;
    bottom: 22px;
}

.gg-mini-person-client .gg-mini-head {
    background: color-mix(in srgb, var(--gg-palette-success) 58%, #ffffff 18%);
}

.gg-mini-bench {
    position: absolute;
    left: 108px;
    right: 26px;
    bottom: 38px;
    height: 46px;
    z-index: 1;
}

.gg-mini-bench-pad {
    position: absolute;
    left: 0;
    right: 16px;
    bottom: 22px;
    height: 14px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-text-primary) 20%, var(--gg-palette-primary) 12%);
    box-shadow: inset 0 1px 0 color-mix(in srgb, #ffffff 12%, transparent);
}

.gg-mini-bench-leg {
    position: absolute;
    bottom: 0;
    width: 7px;
    height: 26px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-text-secondary) 56%, transparent);
}

.gg-mini-bench-leg-left {
    left: 26px;
    transform: rotate(16deg);
}

.gg-mini-bench-leg-right {
    right: 34px;
    transform: rotate(-16deg);
}

.gg-mini-person-trainer {
    left: 24px;
    bottom: 24px;
}

.gg-mini-person-trainer .gg-mini-arm-right {
    animation: gg-person-count 1.8s ease-in-out infinite;
}

.gg-mini-person-athlete {
    right: 46px;
    bottom: 54px;
    width: 102px;
    height: 58px;
    transform: rotate(0deg);
    animation: gg-bench-press-body 2.2s ease-in-out infinite;
}

.gg-mini-person-athlete .gg-mini-head {
    top: 16px;
    left: auto;
    right: 4px;
    width: 22px;
    height: 22px;
    transform: none;
}

.gg-mini-person-athlete .gg-mini-body {
    top: 22px;
    left: 32px;
    width: 52px;
    height: 20px;
    border-radius: 999px;
    transform: rotate(0deg);
}

.gg-mini-person-athlete .gg-mini-arm {
    top: 8px;
    width: 8px;
    height: 38px;
    background: color-mix(in srgb, var(--gg-palette-primary) 62%, #ffffff 10%);
}

.gg-mini-person-athlete .gg-mini-arm-left {
    left: 34px;
    transform: rotate(78deg);
    animation: gg-bench-arm-left 2.2s ease-in-out infinite;
}

.gg-mini-person-athlete .gg-mini-arm-right {
    right: 36px;
    transform: rotate(-78deg);
    animation: gg-bench-arm-right 2.2s ease-in-out infinite;
}

.gg-mini-person-athlete::before,
.gg-mini-person-athlete::after {
    top: 38px;
    height: 30px;
}

.gg-mini-person-athlete::before {
    left: 34px;
    transform: rotate(78deg);
}

.gg-mini-person-athlete::after {
    right: 6px;
    transform: rotate(-68deg);
}

.gg-mini-barbell {
    position: absolute;
    left: 132px;
    right: 38px;
    top: 50px;
    height: 28px;
    animation: gg-barbell-press 2.2s ease-in-out infinite;
    z-index: 4;
}

.gg-mini-barbell::before {
    content: "";
    position: absolute;
    left: 15px;
    right: 15px;
    top: 12px;
    height: 5px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-primary) 74%, #ffffff 6%);
}

.gg-mini-barbell span::before,
.gg-mini-barbell span::after {
    content: "";
    position: absolute;
    top: 4px;
    width: 14px;
    height: 22px;
    border-radius: 6px;
    border: 2px solid color-mix(in srgb, var(--gg-palette-primary) 70%, var(--gg-palette-divider));
    background: color-mix(in srgb, var(--gg-palette-surface) 72%, transparent);
}

.gg-mini-barbell span::before {
    left: 0;
}

.gg-mini-barbell span::after {
    right: 0;
}

.gg-mini-rep-bar {
    left: 108px;
    right: 42px;
    bottom: 20px;
}

.gg-mini-person-member {
    left: 26px;
    bottom: 22px;
}

.gg-mini-person-cashier {
    right: 22px;
    bottom: 22px;
    animation: gg-person-idle 2.7s ease-in-out infinite reverse;
}

.gg-mini-person-cashier .gg-mini-head {
    background: color-mix(in srgb, var(--gg-palette-info) 58%, #ffffff 18%);
}

.gg-mini-person-member .gg-mini-arm-right,
.gg-mini-person-cashier .gg-mini-arm-left {
    animation: gg-money-hand 2.4s ease-in-out infinite;
}

.gg-mini-money {
    position: absolute;
    left: 96px;
    top: 72px;
    width: 52px;
    height: 28px;
    border-radius: 7px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-success) 58%, #ffffff 10%);
    background:
        radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--gg-palette-success) 42%, transparent) 0 22%, transparent 24%),
        color-mix(in srgb, var(--gg-palette-success) 28%, var(--gg-palette-surface));
    box-shadow: 0 12px 24px color-mix(in srgb, #000000 18%, transparent);
    animation: gg-money-transfer 2.4s ease-in-out infinite;
    z-index: 4;
}

.gg-mini-money span::before,
.gg-mini-money span::after {
    content: "";
    position: absolute;
    top: 6px;
    bottom: 6px;
    width: 3px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-success) 62%, #ffffff 14%);
}

.gg-mini-money span::before {
    left: 8px;
}

.gg-mini-money span::after {
    right: 8px;
}

.gg-mini-pass-ticket {
    right: 92px;
    top: 26px;
    width: 70px;
    height: 48px;
    transform: rotate(-4deg);
}

.gg-mini-pass-stack {
    right: 104px;
    bottom: 22px;
}

.gg-mini-person-calendar {
    left: 22px;
    bottom: 22px;
}

.gg-auth-mini-calendar .gg-mini-person-calendar .gg-mini-head {
    min-height: 0;
    width: 25px;
    height: 25px;
    border: 0;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-primary) 76%, #ffffff 24%);
    animation: none;
}

.gg-auth-mini-calendar .gg-mini-person-calendar .gg-mini-body {
    min-height: 0;
    width: 30px;
    height: 48px;
    border-radius: 14px 14px 10px 10px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 28%, var(--gg-palette-divider));
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--gg-palette-primary) 52%, #ffffff 10%),
            color-mix(in srgb, var(--gg-palette-primary) 28%, var(--gg-palette-surface)));
    animation: none;
}

.gg-auth-mini-calendar .gg-mini-person-calendar .gg-mini-arm {
    min-height: 0;
    width: 8px;
    height: 38px;
    border: 0;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-primary) 52%, var(--gg-palette-text-primary) 12%);
    animation: none;
}

.gg-mini-sync-line {
    position: absolute;
    left: 84px;
    right: 128px;
    top: 90px;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, var(--gg-palette-primary), transparent);
}

.gg-mini-sync-line span {
    position: absolute;
    top: -9px;
    left: 8px;
    width: 22px;
    height: 22px;
    border-radius: 999px;
    border: 2px solid var(--gg-palette-primary);
    background: color-mix(in srgb, var(--gg-palette-surface) 90%, var(--gg-palette-primary) 10%);
    animation: gg-sync-dot 2.6s ease-in-out infinite;
}

.gg-mini-sync-line span::before,
.gg-mini-sync-line span::after {
    content: "";
    position: absolute;
    left: 5px;
    width: 8px;
    height: 2px;
    border-radius: 999px;
    background: var(--gg-palette-primary);
}

.gg-mini-sync-line span::before {
    top: 7px;
    transform: rotate(-35deg);
}

.gg-mini-sync-line span::after {
    top: 12px;
    transform: rotate(35deg);
}

.gg-mini-calendar-board {
    right: 18px;
    top: 20px;
    width: 136px;
    grid-template-columns: repeat(7, 1fr);
    gap: 5px;
    padding: 10px;
    border-radius: 14px;
}

.gg-mini-calendar-head {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 5px;
    align-items: center;
    margin-bottom: 4px;
}

.gg-mini-calendar-head span {
    height: 7px;
    min-height: 0;
    border: 0;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-text-secondary) 34%, transparent);
}

.gg-mini-calendar-head span:nth-child(1) {
    width: 48px;
}

.gg-mini-calendar-head span:nth-child(2),
.gg-mini-calendar-head span:nth-child(3) {
    width: 12px;
    height: 12px;
    background: color-mix(in srgb, var(--gg-palette-primary) 42%, var(--gg-palette-surface));
}

.gg-mini-calendar-board .gg-mini-calendar-cell {
    min-height: 15px;
    border-radius: 5px;
}

.gg-mini-calendar-board .gg-mini-calendar-cell.is-booked {
    animation: gg-calendar-booked 2.6s ease-in-out infinite;
}

@keyframes gg-phone-tap {
    0%,
    100% {
        transform: rotate(-18deg);
    }
    42%,
    58% {
        transform: rotate(-54deg);
    }
}

@keyframes gg-workout-card-float {
    0%,
    100% {
        transform: translateX(-50%) translateY(0) rotate(-2deg);
    }
    50% {
        transform: translateX(-50%) translateY(-6px) rotate(1deg);
    }
}

@keyframes gg-bench-press-body {
    0%,
    100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(2px);
    }
}

@keyframes gg-bench-arm-left {
    0%,
    100% {
        transform: rotate(78deg) translateY(0);
    }
    50% {
        transform: rotate(60deg) translateY(-8px);
    }
}

@keyframes gg-bench-arm-right {
    0%,
    100% {
        transform: rotate(-78deg) translateY(0);
    }
    50% {
        transform: rotate(-60deg) translateY(-8px);
    }
}

@keyframes gg-barbell-press {
    0%,
    100% {
        transform: translateY(24px);
    }
    50% {
        transform: translateY(0);
    }
}

@keyframes gg-money-hand {
    0%,
    100% {
        transform: rotate(-18deg);
    }
    50% {
        transform: rotate(-58deg);
    }
}

@keyframes gg-money-transfer {
    0%,
    100% {
        transform: translateX(0) rotate(-5deg);
    }
    50% {
        transform: translateX(82px) rotate(5deg);
    }
}

@keyframes gg-sync-dot {
    0%,
    14% {
        opacity: 0;
        transform: translateX(0) rotate(0);
    }
    32%,
    76% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translateX(84px) rotate(180deg);
    }
}

/* Refined story motion and stylized figures */
.gg-mini-person {
    filter: drop-shadow(0 14px 18px color-mix(in srgb, #000000 18%, transparent));
}

.gg-mini-head {
    box-shadow:
        inset 0 1px 0 color-mix(in srgb, #ffffff 34%, transparent),
        0 10px 18px color-mix(in srgb, var(--gg-palette-primary) 18%, transparent);
}

.gg-mini-body {
    width: 32px;
    height: 50px;
    border-radius: 18px 18px 14px 14px;
    border: 0;
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--gg-palette-primary) 64%, #ffffff 8%),
            color-mix(in srgb, var(--gg-palette-primary) 28%, var(--gg-palette-surface)));
}

.gg-mini-arm,
.gg-mini-person::before,
.gg-mini-person::after {
    width: 9px;
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--gg-palette-primary) 54%, #ffffff 10%),
            color-mix(in srgb, var(--gg-palette-text-secondary) 48%, var(--gg-palette-primary) 20%));
}

.gg-mini-arm {
    height: 42px;
}

.gg-mini-person::before,
.gg-mini-person::after {
    height: 34px;
}

.gg-mini-share-link span {
    width: 12px;
    height: 12px;
    top: -5px;
    border-width: 1px;
    opacity: 0.42;
    animation: gg-link-pulse 3.2s ease-in-out infinite;
}

.gg-mini-share-link span::before,
.gg-mini-share-link span::after {
    display: none;
}

.gg-mini-workout-card {
    left: 94px;
    top: 32px;
    width: 68px;
    height: 48px;
    z-index: 5;
    transform: none;
    animation: gg-workout-card-send 3.2s cubic-bezier(.4, 0, .2, 1) infinite;
}

.gg-mini-workout-card::after {
    content: "";
    position: absolute;
    right: 8px;
    bottom: 8px;
    width: 14px;
    height: 14px;
    border-radius: 999px;
    background: var(--gg-palette-primary);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--gg-palette-primary) 18%, transparent);
}

.gg-mini-workout-card span {
    height: 5px;
    margin-bottom: 6px;
}

.gg-auth-mini-session {
    perspective: 600px;
}

.gg-mini-bench {
    left: 116px;
    right: 36px;
    bottom: 36px;
}

.gg-mini-bench-pad {
    height: 16px;
    background:
        linear-gradient(90deg,
            color-mix(in srgb, var(--gg-palette-text-secondary) 58%, transparent),
            color-mix(in srgb, var(--gg-palette-primary) 28%, var(--gg-palette-text-secondary) 34%));
}

.gg-mini-person-athlete {
    right: 50px;
    bottom: 56px;
    width: 112px;
    height: 58px;
    animation: gg-bench-body-side 2.15s ease-in-out infinite;
}

.gg-mini-person-athlete .gg-mini-head {
    top: 18px;
    right: 0;
    width: 23px;
    height: 23px;
    background: color-mix(in srgb, var(--gg-palette-info) 62%, #ffffff 16%);
}

.gg-mini-person-athlete .gg-mini-body {
    top: 24px;
    left: 28px;
    width: 66px;
    height: 18px;
    border-radius: 999px 18px 18px 999px;
    transform: rotate(-4deg);
}

.gg-mini-person-athlete .gg-mini-arm {
    top: 2px;
    width: 9px;
    height: 40px;
    background: color-mix(in srgb, var(--gg-palette-primary) 64%, #ffffff 8%);
}

.gg-mini-person-athlete .gg-mini-arm-left {
    left: 52px;
    transform: rotate(2deg);
    animation: gg-bench-side-arm-left 2.15s ease-in-out infinite;
}

.gg-mini-person-athlete .gg-mini-arm-right {
    right: 42px;
    transform: rotate(-2deg);
    animation: gg-bench-side-arm-right 2.15s ease-in-out infinite;
}

.gg-mini-person-athlete::before {
    left: 30px;
    top: 40px;
    width: 36px;
    height: 9px;
    border-radius: 999px;
    transform: rotate(12deg);
}

.gg-mini-person-athlete::after {
    right: 2px;
    top: 42px;
    width: 38px;
    height: 9px;
    border-radius: 999px;
    transform: rotate(-18deg);
}

.gg-mini-barbell {
    left: auto;
    right: 72px;
    top: 35px;
    width: 44px;
    height: 44px;
    animation: gg-barbell-side-press 2.15s ease-in-out infinite;
    z-index: 6;
}

.gg-mini-barbell::before {
    left: 6px;
    right: auto;
    top: 6px;
    width: 30px;
    height: 30px;
    border-radius: 999px;
    border: 3px solid color-mix(in srgb, var(--gg-palette-primary) 72%, #ffffff 8%);
    background:
        radial-gradient(circle, color-mix(in srgb, var(--gg-palette-surface) 88%, transparent) 0 28%, transparent 30%),
        color-mix(in srgb, var(--gg-palette-primary) 20%, var(--gg-palette-surface));
    box-shadow:
        0 0 0 6px color-mix(in srgb, var(--gg-palette-primary) 9%, transparent),
        0 14px 24px color-mix(in srgb, #000000 22%, transparent);
}

.gg-mini-barbell::after {
    content: "";
    position: absolute;
    left: -16px;
    top: 20px;
    width: 26px;
    height: 5px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-primary) 74%, #ffffff 8%);
}

.gg-mini-barbell span::before,
.gg-mini-barbell span::after {
    display: none;
}

.gg-mini-rep-bar {
    left: 120px;
    right: 58px;
    bottom: 19px;
}

@keyframes gg-link-pulse {
    0%,
    100% {
        transform: translateX(0) scale(0.88);
        opacity: 0.28;
    }
    50% {
        transform: translateX(calc(100% + 70px)) scale(1);
        opacity: 0.58;
    }
}

@keyframes gg-workout-card-send {
    0%,
    12% {
        left: 92px;
        opacity: 0;
        transform: translateY(8px) scale(0.86) rotate(-4deg);
    }
    24% {
        left: 98px;
        opacity: 1;
        transform: translateY(0) scale(1) rotate(-2deg);
    }
    70% {
        left: calc(100% - 118px);
        opacity: 1;
        transform: translateY(0) scale(1) rotate(2deg);
    }
    84%,
    100% {
        left: calc(100% - 112px);
        opacity: 0;
        transform: translateY(8px) scale(0.82) rotate(4deg);
    }
}

@keyframes gg-bench-body-side {
    0%,
    100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(1px);
    }
}

@keyframes gg-bench-side-arm-left {
    0%,
    100% {
        transform: rotate(4deg) translateY(12px);
    }
    50% {
        transform: rotate(2deg) translateY(-2px);
    }
}

@keyframes gg-bench-side-arm-right {
    0%,
    100% {
        transform: rotate(-4deg) translateY(12px);
    }
    50% {
        transform: rotate(-2deg) translateY(-2px);
    }
}

@keyframes gg-barbell-side-press {
    0%,
    100% {
        transform: translateY(24px);
    }
    50% {
        transform: translateY(0);
    }
}

/* Final scene corrections from design QA */
.gg-auth-mini-online .gg-mini-share-link {
    display: none;
}

.gg-mini-person-coach .gg-mini-phone-device {
    left: -3px;
    right: auto;
    top: 54px;
    transform: rotate(16deg);
}

.gg-mini-person-coach .gg-mini-arm-left {
    transform: rotate(34deg);
}

.gg-mini-person-coach .gg-mini-arm-right {
    animation: none;
    transform: rotate(-12deg);
}

.gg-mini-person-trainer .gg-mini-phone-device {
    right: -4px;
    top: 54px;
    transform: rotate(-16deg);
}

.gg-mini-person-trainer .gg-mini-arm-left {
    transform: rotate(18deg);
}

.gg-mini-person-trainer .gg-mini-arm-right {
    animation: none;
    transform: rotate(-34deg);
}

.gg-mini-workout-card {
    top: 46px;
    animation: gg-workout-card-send-clean 3.15s cubic-bezier(.4, 0, .2, 1) infinite;
}

.gg-mini-person-athlete {
    right: 48px;
    bottom: 49px;
    width: 128px;
    height: 76px;
    animation: none;
}

.gg-mini-person-athlete .gg-mini-head {
    top: 18px;
    right: 4px;
    width: 22px;
    height: 22px;
}

.gg-mini-person-athlete .gg-mini-body {
    top: 28px;
    left: 34px;
    width: 72px;
    height: 17px;
    border-radius: 999px;
    transform: rotate(-2deg);
}

.gg-mini-person-athlete .gg-mini-arm {
    top: 7px;
    width: 8px;
    height: 26px;
    border-radius: 999px;
    transform-origin: 50% 100%;
    background: color-mix(in srgb, var(--gg-palette-primary) 64%, #ffffff 8%);
}

.gg-mini-person-athlete .gg-mini-arm-left {
    left: 58px;
    transform: rotate(-8deg);
    animation: gg-bench-upper-arm-left 2.2s ease-in-out infinite;
}

.gg-mini-person-athlete .gg-mini-arm-right {
    left: 75px;
    right: auto;
    transform: rotate(8deg);
    animation: gg-bench-upper-arm-right 2.2s ease-in-out infinite;
}

.gg-mini-forearm,
.gg-mini-thigh,
.gg-mini-shin,
.gg-mini-foot {
    position: absolute;
    display: block;
    border-radius: 999px;
    background:
        linear-gradient(180deg,
            color-mix(in srgb, var(--gg-palette-primary) 56%, #ffffff 10%),
            color-mix(in srgb, var(--gg-palette-text-secondary) 50%, var(--gg-palette-primary) 18%));
}

.gg-mini-forearm {
    top: -16px;
    width: 8px;
    height: 28px;
    transform-origin: 50% 100%;
}

.gg-mini-forearm-left {
    left: 58px;
    animation: gg-bench-forearm-left 2.2s ease-in-out infinite;
}

.gg-mini-forearm-right {
    left: 75px;
    animation: gg-bench-forearm-right 2.2s ease-in-out infinite;
}

.gg-mini-thigh {
    top: 44px;
    width: 34px;
    height: 9px;
    transform-origin: 100% 50%;
}

.gg-mini-thigh-left {
    left: 32px;
    transform: rotate(10deg);
}

.gg-mini-thigh-right {
    left: 54px;
    transform: rotate(-6deg);
}

.gg-mini-shin {
    top: 51px;
    width: 32px;
    height: 8px;
    transform-origin: 0 50%;
}

.gg-mini-shin-left {
    left: 10px;
    transform: rotate(78deg);
}

.gg-mini-shin-right {
    left: 84px;
    transform: rotate(102deg);
}

.gg-mini-foot {
    top: 69px;
    width: 28px;
    height: 7px;
    background: color-mix(in srgb, var(--gg-palette-text-secondary) 64%, var(--gg-palette-primary) 12%);
}

.gg-mini-foot-left {
    left: -2px;
    transform: rotate(4deg);
}

.gg-mini-foot-right {
    right: 8px;
    transform: rotate(-4deg);
}

.gg-mini-person-athlete::before,
.gg-mini-person-athlete::after {
    display: none;
}

.gg-mini-barbell {
    right: 84px;
    top: 28px;
    animation: gg-barbell-side-press-clean 2.2s ease-in-out infinite;
}

.gg-mini-bench {
    bottom: 33px;
}

.gg-mini-bench-pad {
    bottom: 28px;
}

.gg-mini-bench-leg {
    height: 30px;
}

@keyframes gg-workout-card-send-clean {
    0%,
    10% {
        left: 82px;
        opacity: 0;
        transform: translateY(8px) scale(0.84) rotate(-4deg);
    }
    24% {
        left: 94px;
        opacity: 1;
        transform: translateY(0) scale(1) rotate(-2deg);
    }
    70% {
        left: calc(100% - 120px);
        opacity: 1;
        transform: translateY(0) scale(1) rotate(2deg);
    }
    84%,
    100% {
        left: calc(100% - 108px);
        opacity: 0;
        transform: translateY(8px) scale(0.82) rotate(4deg);
    }
}

@keyframes gg-bench-upper-arm-left {
    0%,
    100% {
        transform: translateY(13px) rotate(-8deg);
    }
    50% {
        transform: translateY(0) rotate(-6deg);
    }
}

@keyframes gg-bench-upper-arm-right {
    0%,
    100% {
        transform: translateY(13px) rotate(8deg);
    }
    50% {
        transform: translateY(0) rotate(6deg);
    }
}

@keyframes gg-bench-forearm-left {
    0%,
    100% {
        transform: translateY(13px) rotate(3deg);
    }
    50% {
        transform: translateY(0) rotate(2deg);
    }
}

@keyframes gg-bench-forearm-right {
    0%,
    100% {
        transform: translateY(13px) rotate(-3deg);
    }
    50% {
        transform: translateY(0) rotate(-2deg);
    }
}

@keyframes gg-barbell-side-press-clean {
    0%,
    100% {
        transform: translateY(22px);
    }
    50% {
        transform: translateY(0);
    }
}

/* Bench press anatomy pass: one visible hinged arm, static legs */
.gg-auth-mini-session .gg-mini-rep-bar {
    display: none;
}

.gg-mini-person-athlete .gg-mini-arm-right,
.gg-mini-forearm-right {
    display: none;
}

.gg-mini-person-athlete {
    right: 48px;
    bottom: 50px;
    width: 126px;
    height: 78px;
}

.gg-mini-person-athlete .gg-mini-head {
    top: 22px;
    right: 2px;
}

.gg-mini-person-athlete .gg-mini-body {
    top: 32px;
    left: 34px;
    width: 72px;
    height: 18px;
}

.gg-mini-person-athlete .gg-mini-arm-left {
    left: 65px;
    top: 8px;
    height: 34px;
    transform-origin: 50% 100%;
    animation: gg-bench-one-upper-arm 2.25s ease-in-out infinite;
}

.gg-mini-forearm-left {
    left: 78px;
    top: -16px;
    height: 31px;
    transform-origin: 50% 100%;
    animation: gg-bench-one-forearm 2.25s ease-in-out infinite;
}

.gg-mini-thigh,
.gg-mini-shin,
.gg-mini-foot {
    animation: none !important;
    opacity: 0.82;
}

.gg-mini-thigh-left {
    left: 36px;
    top: 49px;
    width: 34px;
    transform: rotate(8deg);
}

.gg-mini-shin-left {
    left: 16px;
    top: 56px;
    width: 30px;
    transform: rotate(72deg);
}

.gg-mini-foot-left {
    left: 7px;
    top: 72px;
    width: 25px;
}

.gg-mini-thigh-right {
    left: 62px;
    top: 49px;
    width: 34px;
    transform: rotate(-6deg);
}

.gg-mini-shin-right {
    left: 91px;
    top: 56px;
    width: 30px;
    transform: rotate(104deg);
}

.gg-mini-foot-right {
    right: 4px;
    top: 72px;
    width: 25px;
}

.gg-mini-barbell {
    right: 82px;
    top: 25px;
    animation: gg-barbell-one-arm-press 2.25s ease-in-out infinite;
}

@keyframes gg-bench-one-upper-arm {
    0%,
    100% {
        transform: translateY(18px) rotate(-34deg);
    }
    50% {
        transform: translateY(0) rotate(-14deg);
    }
}

@keyframes gg-bench-one-forearm {
    0%,
    100% {
        transform: translateY(18px) rotate(28deg);
    }
    50% {
        transform: translateY(0) rotate(8deg);
    }
}

@keyframes gg-barbell-one-arm-press {
    0%,
    100% {
        transform: translateY(22px);
    }
    50% {
        transform: translateY(0);
    }
}

/* Bench press SVG reset: clearer side-view anatomy, no inherited limb clutter */
.gg-auth-mini-session .gg-mini-benchpress-svg {
    position: absolute;
    left: 82px;
    right: 8px;
    top: 18px;
    bottom: 12px;
    width: calc(100% - 90px);
    height: calc(100% - 30px);
    color: var(--gg-palette-primary);
    overflow: visible;
    filter: drop-shadow(0 18px 28px color-mix(in srgb, var(--gg-palette-primary) 14%, transparent));
}

.gg-auth-mini-session .gg-mini-bench,
.gg-auth-mini-session .gg-mini-person-athlete,
.gg-auth-mini-session .gg-mini-barbell,
.gg-auth-mini-session .gg-mini-rep-bar {
    display: none;
}

.gg-mini-benchpress-svg line,
.gg-mini-benchpress-svg rect,
.gg-mini-benchpress-svg circle {
    vector-effect: non-scaling-stroke;
}

.gg-svg-floor {
    stroke: color-mix(in srgb, var(--gg-palette-text-primary) 18%, transparent);
    stroke-width: 7;
    stroke-linecap: round;
}

.gg-svg-bench-pad {
    fill: color-mix(in srgb, var(--gg-palette-text-primary) 32%, var(--gg-palette-primary) 8%);
}

.gg-svg-bench-leg {
    stroke: color-mix(in srgb, var(--gg-palette-text-primary) 46%, transparent);
    stroke-width: 6;
    stroke-linecap: round;
}

.gg-svg-torso {
    fill: url("#benchBodyGradient");
}

.gg-svg-head {
    fill: color-mix(in srgb, var(--gg-palette-info) 68%, #ffffff 16%);
}

.gg-svg-leg,
.gg-svg-leg-back,
.gg-svg-foot,
.gg-svg-arm {
    stroke: color-mix(in srgb, var(--gg-palette-primary) 58%, #ffffff 10%);
    stroke-width: 8;
    stroke-linecap: round;
}

.gg-svg-leg-back {
    opacity: 0.52;
}

.gg-svg-foot {
    stroke: color-mix(in srgb, var(--gg-palette-text-secondary) 58%, var(--gg-palette-primary) 12%);
    stroke-width: 7;
}

.gg-svg-arm {
    stroke: color-mix(in srgb, var(--gg-palette-primary) 72%, #ffffff 12%);
    stroke-width: 8;
}

.gg-svg-hand {
    fill: color-mix(in srgb, var(--gg-palette-primary) 78%, #ffffff 12%);
}

.gg-svg-barbell line {
    stroke: color-mix(in srgb, var(--gg-palette-primary) 76%, #ffffff 10%);
    stroke-width: 5;
    stroke-linecap: round;
}

.gg-svg-barbell rect {
    fill: color-mix(in srgb, var(--gg-palette-primary) 44%, var(--gg-palette-text-primary) 34%);
    stroke: color-mix(in srgb, var(--gg-palette-primary) 72%, transparent);
    stroke-width: 1;
}

.gg-svg-barbell circle {
    fill: color-mix(in srgb, var(--gg-palette-surface) 72%, #000000 12%);
    stroke: color-mix(in srgb, var(--gg-palette-primary) 76%, transparent);
    stroke-width: 4;
}

.gg-svg-barbell .gg-svg-barbell-hole {
    fill: color-mix(in srgb, var(--gg-palette-background) 78%, #000000 22%);
    stroke: color-mix(in srgb, var(--gg-palette-primary) 46%, transparent);
    stroke-width: 2;
}

/* Session scene composition: client/bench left, trainer watching on the right */
.gg-auth-mini-session .gg-mini-benchpress-svg {
    left: 6px;
    right: 78px;
    width: calc(100% - 84px);
}

.gg-auth-mini-session .gg-mini-person-trainer {
    left: auto;
    right: 20px;
    bottom: 22px;
}

.gg-auth-mini-session .gg-mini-person-trainer .gg-mini-phone-device {
    right: 41px;
    top: 58px;
    transform: rotate(14deg);
}

/* Flow animation polish: checklist send, payment loop, calendar sync */
.gg-auth-mini-online .gg-mini-workout-card {
    left: 82px;
    top: 40px;
    width: 76px;
    height: 58px;
    padding: 9px 10px;
    animation: gg-checklist-send-loop 4.8s cubic-bezier(.4, 0, .2, 1) infinite;
}

.gg-auth-mini-online .gg-mini-workout-card::after {
    display: none;
}

.gg-auth-mini-online .gg-mini-workout-card span {
    position: relative;
    height: 5px;
    margin: 0 0 8px 17px;
    background: color-mix(in srgb, var(--gg-palette-text-secondary) 40%, transparent);
}

.gg-auth-mini-online .gg-mini-workout-card span::before,
.gg-auth-mini-online .gg-mini-workout-card span::after {
    content: "";
    position: absolute;
    left: -15px;
}

.gg-auth-mini-online .gg-mini-workout-card span::before {
    top: -2px;
    width: 8px;
    height: 8px;
    border-radius: 3px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 58%, #ffffff 10%);
    background: color-mix(in srgb, var(--gg-palette-surface) 90%, transparent);
}

.gg-auth-mini-online .gg-mini-workout-card span::after {
    top: 0;
    width: 7px;
    height: 4px;
    border-left: 1.5px solid var(--gg-palette-primary);
    border-bottom: 1.5px solid var(--gg-palette-primary);
    opacity: 0;
    transform: rotate(-45deg) scale(0.7);
    animation: gg-checklist-mark-loop 4.8s ease-in-out infinite;
}

.gg-auth-mini-online .gg-mini-workout-card span:nth-child(2)::after {
    animation-delay: 220ms;
}

.gg-auth-mini-online .gg-mini-workout-card span:nth-child(3)::after {
    animation-delay: 440ms;
}

.gg-auth-mini-pass .gg-mini-money {
    left: calc(100% - 122px);
    top: 26px;
    animation: gg-money-to-member-loop 4.2s cubic-bezier(.4, 0, .2, 1) infinite;
}

.gg-auth-mini-pass .gg-mini-pass-ticket {
    left: 76px;
    right: auto;
    top: 68px;
    animation: gg-pass-to-cashier-loop 4.2s cubic-bezier(.4, 0, .2, 1) infinite;
}

.gg-auth-mini-pass .gg-mini-pass-stack {
    display: none;
}

.gg-auth-mini-pass .gg-mini-person-member .gg-mini-phone-device {
    left: -4px;
    right: auto;
    top: 55px;
    transform: rotate(14deg);
}

.gg-auth-mini-pass .gg-mini-person-member .gg-mini-arm-left {
    transform: rotate(34deg);
}

.gg-auth-mini-calendar .gg-mini-sync-line {
    left: 121px;
    right: auto;
    top: 64px;
    width: 40px;
    height: 40px;
    background: transparent;
}

.gg-auth-mini-calendar {
    container-type: inline-size;
}

.gg-mini-calendar-phone {
    position: absolute;
    left: 72px;
    bottom: 60px;
    width: 38px;
    height: 68px;
    border: 2px solid color-mix(in srgb, var(--gg-palette-primary) 55%, var(--gg-palette-surface));
    border-radius: 14px;
    background:
        radial-gradient(circle at 50% 88%, color-mix(in srgb, var(--gg-palette-primary) 70%, #ffffff 10%) 0 3px, transparent 4px),
        linear-gradient(180deg, color-mix(in srgb, var(--gg-palette-primary) 18%, transparent), transparent 60%),
        color-mix(in srgb, var(--gg-palette-surface) 78%, #000000 22%);
    box-shadow:
        0 18px 34px rgba(0, 0, 0, .24),
        inset 0 0 0 1px color-mix(in srgb, var(--gg-palette-primary) 18%, transparent);
}

.gg-mini-calendar-phone::before {
    content: "";
    position: absolute;
    left: 11px;
    top: 5px;
    width: 20px;
    height: 4px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-text-secondary) 55%, transparent);
}

.gg-mini-calendar-phone span {
    position: absolute;
    left: 9px;
    right: 9px;
    height: 7px;
    min-height: 0;
    border: 0;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-primary) 65%, #ffffff 10%);
    box-shadow: 0 0 18px color-mix(in srgb, var(--gg-palette-primary) 38%, transparent);
}

.gg-mini-calendar-phone span:nth-child(1) {
    top: 19px;
}

.gg-mini-calendar-phone span:nth-child(2) {
    top: 33px;
    width: 15px;
}

.gg-mini-calendar-phone span:nth-child(3) {
    top: 47px;
    width: 22px;
}

.gg-mini-sync-svg {
    width: 100%;
    height: 100%;
    overflow: visible;
    animation: gg-sync-rotate-loop 4.8s linear infinite;
    filter: drop-shadow(0 0 12px color-mix(in srgb, var(--gg-palette-primary) 42%, transparent));
}

.gg-mini-sync-svg .gg-sync-arc {
    fill: none;
    stroke: var(--gg-palette-primary);
    stroke-width: 3.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    marker-end: url(#gg-sync-arrow-head);
}

.gg-mini-sync-svg marker path {
    fill: var(--gg-palette-primary);
}

.gg-auth-mini-calendar .gg-mini-sync-line::before,
.gg-auth-mini-calendar .gg-mini-sync-line::after {
    content: none;
}

.gg-auth-mini-calendar .gg-mini-calendar-board {
    right: 8px;
    top: 48px;
    width: 84px;
    gap: 4px;
    padding: 8px;
}

.gg-auth-mini-calendar .gg-mini-calendar-board .gg-mini-calendar-cell {
    min-height: 13px;
    border-radius: 4px;
}

@container (min-width: 320px) {
    .gg-auth-mini-calendar .gg-mini-person-calendar {
        left: 22px;
    }

    .gg-auth-mini-calendar .gg-mini-sync-line {
        left: 194px;
        top: 64px;
        width: 44px;
        height: 44px;
    }

    .gg-mini-calendar-phone {
        left: 112px;
        bottom: 62px;
        width: 48px;
        height: 82px;
        border-radius: 16px;
    }

    .gg-mini-calendar-phone::before {
        top: 6px;
    }

    .gg-mini-calendar-phone span:nth-child(1) {
        top: 23px;
    }

    .gg-mini-calendar-phone span:nth-child(2) {
        top: 39px;
    }

    .gg-mini-calendar-phone span:nth-child(3) {
        top: 55px;
    }

    .gg-auth-mini-calendar .gg-mini-calendar-board {
        right: 14px;
        top: 34px;
        width: 126px;
    }
}

@keyframes gg-checklist-send-loop {
    0%,
    10% {
        left: 82px;
        opacity: 0;
        transform: translateY(8px) scale(0.86) rotate(-4deg);
    }
    20% {
        left: 94px;
        opacity: 1;
        transform: translateY(0) scale(1) rotate(-2deg);
    }
    44%,
    76% {
        left: calc(100% - 126px);
        opacity: 1;
        transform: translateY(0) scale(1) rotate(2deg);
    }
    88%,
    100% {
        left: calc(100% - 112px);
        opacity: 0;
        transform: translateY(6px) scale(0.84) rotate(4deg);
    }
}

@keyframes gg-checklist-mark-loop {
    0%,
    46%,
    88%,
    100% {
        opacity: 0;
        transform: rotate(-45deg) scale(0.7);
    }
    54%,
    78% {
        opacity: 1;
        transform: rotate(-45deg) scale(1);
    }
}

@keyframes gg-money-to-member-loop {
    0%,
    12% {
        left: calc(100% - 122px);
        opacity: 0;
        transform: translateX(0) translateY(8px) scale(0.86) rotate(-4deg);
    }
    24% {
        left: calc(100% - 122px);
        opacity: 1;
        transform: translateX(0) translateY(0) scale(1) rotate(-2deg);
    }
    62%,
    76% {
        left: 78px;
        opacity: 1;
        transform: translateX(0) translateY(0) scale(1) rotate(2deg);
    }
    90%,
    100% {
        left: 70px;
        opacity: 0;
        transform: translateX(0) translateY(8px) scale(0.84) rotate(4deg);
    }
}

@keyframes gg-pass-to-cashier-loop {
    0%,
    12% {
        left: 76px;
        opacity: 0;
        transform: translateY(8px) scale(0.86) rotate(-5deg);
    }
    24% {
        left: 76px;
        opacity: 1;
        transform: translateY(0) scale(1) rotate(-3deg);
    }
    62%,
    76% {
        left: calc(100% - 130px);
        opacity: 1;
        transform: translateY(0) scale(1) rotate(3deg);
    }
    90%,
    100% {
        left: calc(100% - 116px);
        opacity: 0;
        transform: translateY(8px) scale(0.84) rotate(5deg);
    }
}

@keyframes gg-sync-rotate-loop {
    to {
        transform: rotate(-360deg);
    }
}

@media (max-width: 960px) {
    .gg-page {
        padding: 14px 12px 92px;
    }

    .gg-auth-hero {
        grid-template-columns: 1fr;
        align-items: start;
        min-height: auto;
        gap: 28px;
    }

    .gg-auth-copy,
    .gg-auth-panel {
        width: 100%;
        max-width: none;
    }

    .gg-profile-status-grid {
        grid-template-columns: 1fr;
    }

    .gg-auth-flow-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1400px) {
    .gg-auth-product-stage {
        display: none;
    }
}

@media (max-width: 760px) {
    .gg-auth-landing {
        overflow-x: hidden;
    }

    .gg-auth-hero {
        padding: 22px 14px 34px;
    }

    .gg-auth-copy {
        order: 1;
    }

    .gg-auth-panel {
        order: 2;
        padding: 18px !important;
    }

    .gg-auth-copy h1 {
        max-width: 100%;
        font-size: 2.35rem;
        line-height: 1.05;
    }

    .gg-auth-lead {
        font-size: 1.04rem;
    }

    .gg-auth-flow-section {
        padding: 0 14px 34px;
    }

    .gg-auth-section-head h2 {
        font-size: 2rem;
    }

    .gg-auth-flow-grid {
        grid-template-columns: 1fr;
    }

    .gg-auth-cta-row {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
        max-width: 340px;
    }

    .gg-auth-primary-cta,
    .gg-auth-secondary-cta {
        width: 100%;
        justify-content: center;
        white-space: normal;
    }
}

/* ============================================================
   GYMGO SAAS VISUAL SYSTEM V2
   Final dark-first dashboard layer for GymGo Trainer.
   ============================================================ */



.gg-dark {
    --gg-bg: #0B1117;
    --gg-bg-elevated: #101820;
    --gg-surface: #111A21;
    --gg-surface-muted: #16222B;
    --gg-surface-subtle: #0F171E;
    --gg-border: rgba(255, 255, 255, 0.08);
    --gg-border-strong: rgba(255, 255, 255, 0.14);
    --gg-text: #F4F7F8;
    --gg-text-muted: #B7C4CC;
    --gg-text-faint: #708693;
    --gg-accent: var(--gg-palette-secondary, #D9A15F);
    --gg-accent-soft: color-mix(in srgb, var(--gg-accent) 10%, transparent);
    --gg-accent-border: color-mix(in srgb, var(--gg-accent) 26%, transparent);
    --gg-glow: color-mix(in srgb, var(--gg-accent) 8%, transparent);
    --gg-shadow-soft: none;
}

html,
body,
.gg-legacy-typography,
.gg-legacy-button-root,
.gg-legacy-input,
.gg-legacy-input-label,
.gg-legacy-table,
.gg-legacy-chip {
    font-family: var(--gg-font-body) !important;
}

body {
    background: var(--gg-bg);
    color: var(--gg-text);
    font-size: 14px;
    letter-spacing: 0;
}

.gg-layout {
    min-height: 100vh;
    background:
        radial-gradient(circle at 2% 0%, var(--gg-glow), transparent 34rem),
        linear-gradient(180deg, color-mix(in srgb, var(--gg-surface-muted) 34%, transparent), transparent 19rem),
        var(--gg-bg);
    color: var(--gg-text);
}

.gg-layout-auth {
    background: var(--gg-bg);
}

.gg-main {
    min-height: 100vh;
    background: transparent !important;
}

.gg-page {
    max-width: 1680px;
    margin: 0 auto;
    padding: 22px 24px 48px;
    color: var(--gg-text);
}

.gg-sidebar,
.gg-sidebar .gg-legacy-drawer-content,
.gg-legacy-drawer.gg-sidebar {
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--gg-surface-muted) 62%, transparent), transparent 20rem),
        var(--gg-bg-elevated) !important;
    border-right: 1px solid var(--gg-border) !important;
    color: var(--gg-text) !important;
    box-shadow: none !important;
}

.gg-sidebar {
    width: 260px !important;
    top: 0 !important;
    height: 100vh !important;
    max-height: 100vh !important;
}

.gg-sidebar .gg-legacy-drawer-content {
    padding: 16px 10px;
    height: 100vh;
    overflow-y: auto;
}

.gg-logo-wrap {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 10px 10px 22px;
    padding: 12px;
    border: 1px solid var(--gg-border);
    border-radius: var(--gg-radius-lg);
    background: color-mix(in srgb, var(--gg-surface) 82%, transparent);
}

.gg-logo-mark {
    width: 42px;
    height: 42px;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, #121614, #020403);
    color: #ffffff;
    font-weight: 800;
    letter-spacing: 0;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.24);
}

.gg-logo-title {
    color: var(--gg-text);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: 0;
}

.gg-logo-subtitle {
    margin-top: 3px;
    color: var(--gg-text-muted);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.gg-nav-section {
    margin: 16px 12px 7px;
    color: var(--gg-text-faint);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.gg-sidebar .gg-legacy-navmenu {
    padding: 0 6px;
}

.gg-sidebar .gg-legacy-nav-link.gg-nav-link {
    min-height: 36px;
    margin: 2px 0;
    padding: 0 11px !important;
    border-radius: var(--gg-radius-sm);
    border: 1px solid transparent;
    color: var(--gg-text-muted) !important;
    font-size: 13px;
    font-weight: 500;
    transition: background var(--gg-ease), border-color var(--gg-ease), color var(--gg-ease), box-shadow var(--gg-ease);
}

.gg-sidebar .gg-legacy-nav-link.gg-nav-link .gg-legacy-nav-link-text,
.gg-sidebar .gg-legacy-nav-link.gg-nav-link .gg-legacy-icon-root {
    color: inherit !important;
}

.gg-sidebar .gg-legacy-nav-link.gg-nav-link:hover {
    background: var(--gg-surface-muted) !important;
    border-color: var(--gg-border);
    color: var(--gg-text) !important;
}

.gg-sidebar .gg-legacy-nav-link.gg-nav-link.active,
.gg-sidebar .gg-legacy-nav-link.gg-nav-link.gg-legacy-nav-link-active {
    background: var(--gg-surface-muted) !important;
    border-color: var(--gg-border);
    color: var(--gg-text) !important;
    box-shadow: inset 2px 0 0 var(--gg-accent);
}

.gg-sidebar .gg-legacy-nav-link.gg-nav-link.active .gg-legacy-icon-root,
.gg-sidebar .gg-legacy-nav-link.gg-nav-link.gg-legacy-nav-link-active .gg-legacy-icon-root {
    color: var(--gg-accent) !important;
}

.gg-sidebar-note {
    margin: 22px 12px 8px;
    padding: 12px;
    border-radius: var(--gg-radius-md);
    border: 1px solid var(--gg-border);
    background: color-mix(in srgb, var(--gg-surface) 78%, transparent);
    color: var(--gg-text-muted);
    font-size: 12px;
    line-height: 1.45;
}

.gg-topbar,
.gg-legacy-appbar.gg-topbar {
    height: var(--gg-topbar-height);
    min-height: var(--gg-topbar-height);
    background: color-mix(in srgb, var(--gg-bg-elevated) 84%, transparent) !important;
    color: var(--gg-text) !important;
    border-bottom: 1px solid var(--gg-border);
    box-shadow: none !important;
    backdrop-filter: blur(14px);
}

.gg-topbar .gg-legacy-toolbar {
    min-height: var(--gg-topbar-height);
    padding-inline: 18px;
    gap: 10px;
}

.gg-page-title,
.gg-topbar-title {
    color: var(--gg-text);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0;
}

.gg-topbar .gg-legacy-icon-button {
    color: var(--gg-text-muted) !important;
    border-radius: var(--gg-radius-sm);
}

.gg-topbar .gg-legacy-icon-button:hover {
    background: var(--gg-surface-muted) !important;
    color: var(--gg-text) !important;
}

.gg-topbar-preview,
.gg-topbar-callout {
    height: 32px;
    border: 1px solid var(--gg-accent-border);
    border-radius: 999px;
    background: var(--gg-accent-soft);
    color: var(--gg-accent);
    font-size: 12px;
    font-weight: 600;
}

.gg-avatar,
.gg-topbar-avatar {
    border: 1px solid var(--gg-border);
    background: var(--gg-surface-muted) !important;
    color: var(--gg-text) !important;
    box-shadow: none !important;
}

.gg-card,
.gg-surface,
.gg-sub-surface,
.gg-kpi-card,
.gg-cockpit-card,
.gg-page-header,
.gg-client-card,
.gg-exercise-card,
.gg-template-card,
.gg-composer-panel,
.gg-composer-library,
.gg-composer-inspector,
.gg-auth-card,
.gg-profile-card,
.gg-settings-card,
.gg-public-player-card,
.gg-legacy-paper:not(.gg-auth-panel):not(.gg-auth-product-stage) {
    background: color-mix(in srgb, var(--gg-surface) 94%, transparent) !important;
    color: var(--gg-text) !important;
    border: 1px solid var(--gg-border) !important;
    border-radius: var(--gg-radius-md) !important;
    box-shadow: var(--gg-shadow-soft) !important;
}

.gg-sub-surface,
.gg-focus-next-session,
.gg-empty-state,
.gg-inspector-card,
.gg-composer-empty,
.gg-template-set-row,
.gg-assignment-card {
    background: var(--gg-surface-muted) !important;
    border: 1px solid var(--gg-border) !important;
    border-radius: var(--gg-radius-md) !important;
    color: var(--gg-text);
}

.gg-card:hover,
.gg-surface:hover,
.gg-kpi-card:hover,
.gg-cockpit-card:hover,
.gg-client-card:hover,
.gg-exercise-card:hover,
.gg-template-card:hover,
.gg-composer-panel:hover {
    border-color: var(--gg-border-strong) !important;
}

.gg-page-header {
    padding: 18px 20px;
}

.gg-page-header h1,
.gg-page-header h2,
.gg-surface h1,
.gg-surface h2,
.gg-surface h3,
.gg-cockpit-card h1,
.gg-cockpit-card h2,
.gg-cockpit-card h3 {
    color: var(--gg-text);
    font-weight: 650;
    letter-spacing: 0;
}

.gg-muted,
.gg-label,
.gg-page-header p,
.gg-surface p,
.gg-cockpit-card p,
.gg-kpi-card p,
.gg-client-card p,
.gg-template-card p {
    color: var(--gg-text-muted) !important;
}

.gg-kpi-card,
.gg-cockpit-kpi-card {
    min-height: 118px;
    padding: 18px 20px !important;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 12px;
}

.gg-kpi-card small,
.gg-cockpit-kpi-card small,
.gg-kpi-label {
    color: var(--gg-text-muted);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.gg-kpi-card strong,
.gg-kpi-value,
.gg-metric-value {
    color: var(--gg-text);
    font-size: clamp(1.75rem, 2.3vw, 2.25rem);
    font-weight: 600;
    line-height: 1;
    letter-spacing: -0.01em;
}

.gg-focus-card {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 90% 0%, var(--gg-accent-soft), transparent 24rem),
        var(--gg-surface) !important;
}

.gg-focus-card::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    border-radius: inherit;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.gg-focus-card .gg-badge,
.gg-focus-card .gg-focus-badge,
.gg-session-count {
    background: var(--gg-accent-soft) !important;
    border: 1px solid var(--gg-accent-border) !important;
    color: var(--gg-accent) !important;
}

.gg-focus-next-session {
    padding: 16px 18px !important;
}

.gg-focus-metric,
.gg-focus-metric-alert {
    background: var(--gg-surface-muted) !important;
    border: 1px solid var(--gg-border) !important;
    border-radius: var(--gg-radius-md) !important;
}

.gg-focus-metric-alert {
    background: color-mix(in srgb, #f59e0b 10%, var(--gg-surface-muted)) !important;
    border-color: color-mix(in srgb, #f59e0b 32%, var(--gg-border)) !important;
}

.gg-calendar-card {
    background: var(--gg-surface) !important;
}

.gg-mini-calendar-weekdays {
    color: var(--gg-text-faint);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.gg-mini-calendar-day {
    min-height: 66px;
    border: 1px solid var(--gg-border) !important;
    border-radius: var(--gg-radius-md) !important;
    background: var(--gg-surface-muted) !important;
    color: var(--gg-text) !important;
    box-shadow: none !important;
    transition: background var(--gg-ease), border-color var(--gg-ease), transform var(--gg-ease);
}

.gg-mini-calendar-day:hover {
    border-color: var(--gg-border-strong) !important;
    transform: translateY(-1px);
}

.gg-mini-calendar-day.is-selected,
.gg-mini-calendar-day.is-today,
.gg-mini-calendar-day.active {
    background: var(--gg-accent-soft) !important;
    border-color: var(--gg-accent-border) !important;
    color: var(--gg-text) !important;
}

.gg-mini-calendar-day.is-muted {
    color: var(--gg-text-faint) !important;
    background: color-mix(in srgb, var(--gg-surface-muted) 60%, transparent) !important;
}

.gg-mini-calendar-dot {
    background: var(--gg-accent) !important;
    box-shadow: 0 0 0 3px var(--gg-accent-soft);
}

.gg-badge,
.gg-chip,
.gg-legacy-chip {
    min-height: 24px;
    border-radius: var(--gg-radius-sm) !important;
    border: 1px solid var(--gg-border) !important;
    background: var(--gg-surface-muted) !important;
    color: var(--gg-text-muted) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}

.gg-badge-accent,
.gg-chip-accent,
.gg-legacy-chip-color-primary {
    border-color: var(--gg-accent-border) !important;
    background: var(--gg-accent-soft) !important;
    color: var(--gg-accent) !important;
}

.gg-legacy-button-root {
    border-radius: var(--gg-radius-sm) !important;
    font-weight: 650 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    box-shadow: none !important;
    transition: background var(--gg-ease), border-color var(--gg-ease), color var(--gg-ease), transform var(--gg-ease);
}

.gg-legacy-button-root:hover {
    transform: translateY(-1px);
}

.gg-legacy-button-filled-primary,
.gg-btn-primary,
.gg-auth-primary-cta {
    background: var(--gg-accent) !important;
    border: 1px solid transparent !important;
    color: #020403 !important;
}

.gg-legacy-button-outlined,
.gg-legacy-button-outlined-secondary,
.gg-btn-secondary,
.gg-auth-secondary-cta {
    background: var(--gg-surface-muted) !important;
    border: 1px solid var(--gg-border) !important;
    color: var(--gg-text) !important;
}

.gg-legacy-button-text,
.gg-btn-ghost {
    color: var(--gg-text-muted) !important;
}

.gg-legacy-button-text:hover,
.gg-btn-ghost:hover {
    background: var(--gg-surface-muted) !important;
    color: var(--gg-text) !important;
}

.gg-legacy-input-control,
.gg-legacy-input,
.gg-legacy-input-slot,
.gg-legacy-select,
.gg-legacy-picker,
input,
textarea,
select {
    color: var(--gg-text) !important;
}

.gg-legacy-input-outlined .gg-legacy-input-outlined-border,
.gg-legacy-input-underline:before,
.gg-legacy-input-underline:after {
    border-color: var(--gg-border) !important;
}

.gg-legacy-input-root,
.gg-legacy-input-control-input-container,
.gg-field,
.gg-search-input,
.gg-command-input,
.gg-composer-input {
    background: var(--gg-surface-muted) !important;
    border-radius: var(--gg-radius-sm) !important;
}

.gg-legacy-input-label,
.gg-legacy-input-helper-text,
.gg-legacy-table-cell,
.gg-legacy-table-head .gg-legacy-table-cell {
    color: var(--gg-text-muted) !important;
}

.gg-legacy-input-root:focus-within,
.gg-field:focus-within,
.gg-search-input:focus-within,
.gg-command-input:focus-within {
    box-shadow: 0 0 0 3px var(--gg-accent-soft);
}

.gg-legacy-table,
.gg-table,
.gg-table-wrap {
    background: var(--gg-surface) !important;
    border: 1px solid var(--gg-border) !important;
    border-radius: var(--gg-radius-md) !important;
    overflow: hidden;
}

.gg-legacy-table-row,
.gg-table-row {
    border-bottom: 1px solid var(--gg-border) !important;
}

.gg-legacy-table-row:hover,
.gg-table-row:hover {
    background: var(--gg-surface-muted) !important;
}

.gg-composer-shell,
.gg-training-plans-shell,
.gg-dashboard-grid {
    gap: 14px;
}

.gg-composer-library,
.gg-composer-panel,
.gg-composer-inspector {
    background: var(--gg-surface) !important;
}

.gg-composer-set-row,
.gg-template-set-row {
    background: var(--gg-surface-muted) !important;
    border-color: var(--gg-border) !important;
}

.gg-load-chip,
.gg-intensity-chip,
.gg-rpe-chip {
    border: 1px solid var(--gg-accent-border) !important;
    background: var(--gg-accent-soft) !important;
    color: var(--gg-accent) !important;
}

.gg-light .gg-auth-landing {
    background:
        radial-gradient(circle at 80% 8%, var(--gg-accent-soft), transparent 28rem),
        #F5F8FA;
}

.gg-dark .gg-auth-landing {
    background:
        radial-gradient(circle at 20% 0%, var(--gg-accent-soft), transparent 30rem),
        #0B1117;
}

@media (max-width: 960px) {
    .gg-page {
        padding: 14px 12px 92px;
    }

    .gg-topbar .gg-legacy-toolbar {
        padding-inline: 10px;
    }

    .gg-kpi-card,
    .gg-cockpit-kpi-card {
        min-height: 104px;
        padding: 15px !important;
    }

    .gg-mini-calendar-day {
        min-height: 50px;
        border-radius: 9px !important;
    }
}

/* Training template outline editor */
.gg-template-exercise-group {
    position: relative;
    padding: 12px 0 14px 18px !important;
    border: 0 !important;
    border-left: 2px solid color-mix(in srgb, var(--gg-palette-primary) 62%, var(--gg-palette-divider)) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.gg-template-exercise-group + .gg-template-exercise-group {
    margin-top: 4px;
    padding-top: 16px !important;
    border-top: 1px solid color-mix(in srgb, var(--gg-palette-divider) 72%, transparent) !important;
}

.gg-template-group-header {
    min-height: 40px;
    padding-right: 2px;
    gap: 10px;
}

.gg-template-group-title {
    color: var(--gg-palette-text-primary);
    font-weight: 750 !important;
    letter-spacing: 0;
}

.gg-template-group-actions {
    margin-left: auto;
    padding: 2px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-surface) 80%, transparent);
}

.gg-template-exercise-group > .gg-legacy-stack {
    gap: 8px !important;
}

.gg-template-set-row-advanced,
.gg-composer-set-row,
.gg-template-set-row {
    min-height: 52px;
    border: 0 !important;
    border-bottom: 1px solid color-mix(in srgb, var(--gg-palette-divider) 68%, transparent) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.gg-template-set-row-advanced {
    grid-template-columns: 26px minmax(0, 1fr) auto auto;
    gap: 12px;
    padding: 8px 0;
}

.gg-template-set-row-advanced:first-of-type {
    border-top: 1px solid color-mix(in srgb, var(--gg-palette-divider) 68%, transparent) !important;
}

.gg-composer-set-row {
    padding-inline: 4px;
    transition: background-color 0.15s ease, box-shadow 0.15s ease;
}

.gg-composer-set-row:hover {
    background: color-mix(in srgb, var(--gg-palette-primary) 5%, transparent) !important;
}

.gg-composer-set-row.is-selected {
    background: color-mix(in srgb, var(--gg-palette-primary) 7%, transparent) !important;
    box-shadow: inset 3px 0 0 var(--gg-palette-primary) !important;
    outline: 0 !important;
}

.gg-template-set-drag {
    opacity: 0.42;
    text-align: center;
}

.gg-template-load-chip {
    min-width: 78px;
    padding: 5px 10px;
}

.gg-template-add-set-footer {
    justify-content: flex-start;
    width: 100%;
    margin-top: 2px;
    padding-left: 28px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--gg-palette-primary) !important;
}

.gg-template-add-set-footer:hover {
    background: color-mix(in srgb, var(--gg-palette-primary) 5%, transparent) !important;
}

.gg-template-add-exercise-footer {
    min-height: 44px;
    border-radius: 6px !important;
    box-shadow: none !important;
}

@media (max-width: 960px) {
    .gg-template-exercise-group {
        padding-left: 12px !important;
    }

    .gg-template-set-row-advanced {
        grid-template-columns: 22px minmax(0, 1fr);
    }

    .gg-template-load-chip,
    .gg-template-set-actions-shell,
    .gg-template-set-actions {
        grid-column: 2;
        justify-self: start;
    }

    .gg-template-group-header {
        align-items: flex-start !important;
    }
}

/* ============================================================
   TRAINER LIQUID LIST POLISH
   Apple-inspired de-boxing layer: fewer nested cards, quieter
   surfaces, list hierarchy, separators, and restrained accent use.
   ============================================================ */



.gg-dark {
    --gg-material: color-mix(in srgb, var(--gg-surface) 82%, transparent);
    --gg-material-muted: color-mix(in srgb, var(--gg-surface-muted) 62%, transparent);
    --gg-hairline: color-mix(in srgb, var(--gg-border) 64%, transparent);
    --gg-row-hover: color-mix(in srgb, var(--gg-accent) 7%, transparent);
    --gg-row-selected: color-mix(in srgb, var(--gg-accent) 10%, transparent);
}

body,
.gg-legacy-typography,
.gg-legacy-button-root,
.gg-legacy-input,
.gg-legacy-input-label,
.gg-legacy-chip {
    letter-spacing: 0 !important;
}

.gg-layout {
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--gg-surface-muted) 18%, transparent), transparent 260px),
        var(--gg-bg) !important;
}

.gg-page {
    padding-top: 18px;
}

.gg-logo-wrap,
.gg-sidebar-note {
    border-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
}

.gg-logo-wrap {
    padding-inline: 8px;
}

.gg-sidebar .gg-legacy-nav-link.gg-nav-link {
    min-height: 38px;
    border: 0 !important;
    background: transparent !important;
}

.gg-sidebar .gg-legacy-nav-link.gg-nav-link:hover {
    background: var(--gg-material-muted) !important;
}

.gg-sidebar .gg-legacy-nav-link.gg-nav-link.active,
.gg-sidebar .gg-legacy-nav-link.gg-nav-link.gg-legacy-nav-link-active {
    background: var(--gg-material-muted) !important;
    box-shadow: inset 3px 0 0 var(--gg-accent) !important;
}

.gg-topbar,
.gg-legacy-appbar.gg-topbar {
    background: color-mix(in srgb, var(--gg-bg-elevated) 72%, transparent) !important;
    border-bottom-color: var(--gg-hairline) !important;
}

.gg-card,
.gg-surface,
.gg-sub-surface,
.gg-page-header,
.gg-kpi-card,
.gg-cockpit-card,
.gg-cockpit-kpi-card,
.gg-client-card,
.gg-exercise-card,
.gg-template-card,
.gg-settings-card,
.gg-profile-card,
.gg-focus-card,
.gg-calendar-card,
.gg-summary-card,
.gg-upcoming-session-card,
.gg-online-review-card,
.gg-profile-status-card,
.gg-command-card,
.gg-overview-command-card,
.gg-finance-card,
.gg-active-pass-card,
.gg-pass-side-panel,
.gg-pass-panel,
.gg-pass-credit-surface,
.gg-pass-linked-session-card,
.gg-session-primary-surface,
.gg-session-summary-card,
.gg-session-detail-card,
.gg-onboarding-card,
.gg-onboarding-mode-card,
.gg-onboarding-color-card,
.gg-auth-flow-card,
.gg-auth-dashboard-panel,
.gg-auth-phone-panel,
.gg-mini-workout-card,
.gg-public-player-card,
.gg-template-builder-main,
.gg-template-library-panel,
.gg-composer-card,
.gg-composer-panel,
.gg-composer-library,
.gg-composer-inspector,
.gg-legacy-paper:not(.gg-auth-panel):not(.gg-auth-product-stage) {
    border: 1px solid var(--gg-hairline) !important;
    border-radius: var(--gg-radius-md) !important;
    background: var(--gg-material) !important;
    box-shadow: none !important;
}

.gg-surface:hover,
.gg-card:hover,
.gg-client-card:hover,
.gg-exercise-card:hover,
.gg-template-card:hover,
.gg-kpi-card:hover,
.gg-cockpit-card:hover,
.gg-composer-panel:hover {
    border-color: var(--gg-hairline-strong) !important;
}

.gg-surface .gg-surface,
.gg-surface .gg-sub-surface,
.gg-sub-surface .gg-sub-surface,
.gg-template-builder-main .gg-sub-surface,
.gg-template-builder-main .gg-legacy-paper:not(.gg-legacy-popover):not(.gg-legacy-dialog),
.gg-composer-card,
.gg-inline-set-editor,
.gg-template-exercise-group {
    border-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
}

.gg-page-header,
.gg-surface,
.gg-template-builder-main,
.gg-template-library-panel {
    padding: 18px !important;
}

.gg-planner-tabs,
.gg-finance-strip-surface,
.gg-upcoming-sessions-surface,
.gg-manual-start-surface,
.gg-package-surface {
    border-color: var(--gg-hairline) !important;
    background: color-mix(in srgb, var(--gg-material) 70%, transparent) !important;
}

.gg-assignment-client-safety {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin: 10px 0;
    color: var(--gg-palette-text-secondary);
    font-size: 0.82rem;
}

.gg-assignment-client-safety strong {
    color: var(--gg-palette-text-primary);
}

.gg-legacy-button-root {
    min-height: 34px;
    border-radius: var(--gg-radius-sm) !important;
}

.gg-legacy-button-root:hover {
    transform: none !important;
}

.gg-legacy-button-outlined,
.gg-legacy-button-outlined-default,
.gg-legacy-button-outlined-secondary {
    background: transparent !important;
    border-color: var(--gg-hairline) !important;
}

.gg-legacy-button-text {
    background: transparent !important;
}

.gg-legacy-icon-button {
    border-radius: var(--gg-radius-sm) !important;
}

.gg-legacy-chip {
    min-height: 22px;
    padding-inline: 8px !important;
    border-radius: var(--gg-radius-sm) !important;
    background: color-mix(in srgb, var(--gg-surface-muted) 58%, transparent) !important;
    border-color: var(--gg-hairline) !important;
}

.gg-legacy-chip-color-primary,
.gg-legacy-chip-color-success {
    background: color-mix(in srgb, var(--gg-accent) 10%, transparent) !important;
    border-color: color-mix(in srgb, var(--gg-accent) 24%, transparent) !important;
    color: var(--gg-accent) !important;
}

.gg-legacy-input-root,
.gg-legacy-input-control-input-container,
.gg-field,
.gg-search-input,
.gg-command-input,
.gg-composer-input {
    background: color-mix(in srgb, var(--gg-surface-muted) 58%, transparent) !important;
    border-radius: var(--gg-radius-sm) !important;
}

.gg-legacy-input-outlined .gg-legacy-input-outlined-border {
    border-color: var(--gg-hairline) !important;
}

.gg-legacy-input-root:focus-within,
.gg-field:focus-within,
.gg-search-input:focus-within,
.gg-command-input:focus-within {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--gg-accent) 13%, transparent) !important;
}

.gg-legacy-table,
.gg-table,
.gg-table-wrap {
    border-color: var(--gg-hairline) !important;
    border-radius: var(--gg-radius-md) !important;
    background: transparent !important;
    box-shadow: none !important;
}

.gg-legacy-table-head,
.gg-legacy-table-row,
.gg-table-row {
    border-color: var(--gg-hairline) !important;
}

.gg-legacy-table-row:hover,
.gg-table-row:hover,
.gg-clickable-row:hover,
.gg-picker-row:hover,
.gg-client-picker-row:hover {
    background: var(--gg-row-hover) !important;
}

.gg-session-row-card,
.gg-clickable-row,
.gg-picker-row,
.gg-client-picker-row,
.gg-attention-item,
.gg-open-payment-item,
.gg-public-set-row,
.gg-plan-set-row,
.gg-exercise-set-row,
.gg-workout-player-page .gg-exercise-set-row,
.gg-composer-preset-row,
.gg-auth-feature-row,
.gg-auth-progress-row {
    border: 0 !important;
    border-bottom: 1px solid var(--gg-hairline) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.gg-session-row-card:last-child,
.gg-clickable-row:last-child,
.gg-picker-row:last-child,
.gg-client-picker-row:last-child,
.gg-public-set-row:last-child,
.gg-plan-set-row:last-child,
.gg-exercise-set-row:last-child,
.gg-workout-player-page .gg-exercise-set-row:last-child {
    border-bottom-color: transparent !important;
}

.gg-kpi-strip-item,
.gg-focus-metric,
.gg-focus-metric-alert,
.gg-active-pass-metric,
.gg-pass-panel-metric,
.gg-summary-card-item,
.gg-online-review-card-metric,
.gg-finance-strip-item,
.gg-auth-metric {
    border: 0 !important;
    border-left: 1px solid var(--gg-hairline) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.gg-kpi-strip-item:first-child,
.gg-active-pass-metric:first-child,
.gg-pass-panel-metric:first-child,
.gg-summary-card-item:first-child,
.gg-finance-strip-item:first-child,
.gg-auth-metric:first-child {
    border-left-color: transparent !important;
}

.gg-empty,
.gg-empty-state,
.gg-composer-empty,
.gg-template-empty-state,
.gg-package-empty,
.gg-profile-empty,
.gg-dash-m-focus-empty {
    border: 1px dashed var(--gg-hairline-strong) !important;
    border-radius: var(--gg-radius-md) !important;
    background: color-mix(in srgb, var(--gg-surface-muted) 42%, transparent) !important;
    box-shadow: none !important;
}

.gg-template-builder-grid {
    gap: 18px;
}

.gg-template-library-list {
    gap: 0 !important;
    border-top: 1px solid var(--gg-hairline);
}

.gg-template-library-item {
    min-height: 58px;
    padding: 12px 8px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--gg-hairline) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
}

.gg-template-library-item:hover {
    background: var(--gg-row-hover) !important;
}

.gg-template-library-item.is-active {
    background: var(--gg-row-selected) !important;
    box-shadow: inset 3px 0 0 var(--gg-accent) !important;
}

.gg-template-exercise-group {
    margin: 0 !important;
    padding: 16px 0 18px 20px !important;
    border-left: 2px solid color-mix(in srgb, var(--gg-accent) 44%, transparent) !important;
}

.gg-template-exercise-group + .gg-template-exercise-group {
    margin-top: 0 !important;
    border-top: 1px solid var(--gg-hairline) !important;
}

.gg-template-group-header {
    min-height: 44px;
    padding: 0 0 8px !important;
}

.gg-template-group-title {
    color: var(--gg-text) !important;
    font-size: 0.96rem;
    font-weight: 700 !important;
}

.gg-template-group-actions {
    background: transparent !important;
}

.gg-template-group-actions .gg-legacy-icon-button,
.gg-template-set-actions .gg-legacy-icon-button,
.gg-template-set-actions-shell .gg-legacy-icon-button {
    color: var(--gg-text-muted) !important;
    opacity: 0.72;
}

.gg-template-group-actions .gg-legacy-icon-button:hover,
.gg-template-set-actions .gg-legacy-icon-button:hover,
.gg-template-set-actions-shell .gg-legacy-icon-button:hover {
    background: var(--gg-row-hover) !important;
    color: var(--gg-text) !important;
    opacity: 1;
}

.gg-template-set-row-advanced,
.gg-composer-set-row,
.gg-template-set-row {
    min-height: 54px;
    padding: 8px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid var(--gg-hairline) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.gg-template-set-row-advanced:first-of-type {
    border-top: 1px solid var(--gg-hairline) !important;
}

.gg-composer-set-row:hover {
    background: var(--gg-row-hover) !important;
}

.gg-composer-set-row.is-selected {
    background: var(--gg-row-selected) !important;
    box-shadow: inset 3px 0 0 var(--gg-accent) !important;
}

.gg-template-set-drag {
    opacity: 0.34;
}

.gg-template-load-chip {
    min-width: 74px;
    border-color: transparent !important;
    background: color-mix(in srgb, var(--gg-accent) 10%, transparent) !important;
}

.gg-inline-set-editor {
    margin: 0 0 12px 34px !important;
    padding: 18px 0 18px 16px !important;
    border: 0 !important;
    border-left: 1px solid var(--gg-hairline-strong) !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.gg-inline-set-editor .gg-legacy-paper {
    background: transparent !important;
    border-color: transparent !important;
}

.gg-template-add-set-footer {
    min-height: 38px;
    padding-left: 30px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
}

.gg-template-add-set-footer:hover {
    background: var(--gg-row-hover) !important;
}

.gg-template-add-exercise-footer {
    margin-top: 12px;
    border-radius: var(--gg-radius-sm) !important;
    background: var(--gg-accent) !important;
}

@media (max-width: 960px) {
    .gg-page {
        padding: 14px 12px 92px;
    }

    .gg-page-header,
    .gg-surface,
    .gg-template-builder-main,
    .gg-template-library-panel {
        padding: 14px !important;
    }

    .gg-template-exercise-group {
        padding-left: 12px !important;
    }

    .gg-inline-set-editor {
        margin-left: 20px !important;
        padding-left: 12px !important;
    }
}

/* Mai eligazítás — egymondatos napi összefoglaló sáv (Dashboard cockpit) */
.gg-daily-briefing {
    display: flex;
    align-items: center;
    gap: 10px;
}

.gg-daily-briefing .gg-legacy-icon-root {
    flex: 0 0 auto;
}
/* Workout player — adaptív élő igazítás jelzések */
.gg-adaptive-note {
    display: flex;
    align-items: center;
    gap: 8px;
    border-left: 3px solid var(--gg-palette-info);
}

.gg-adaptive-note .gg-legacy-icon-root {
    flex: 0 0 auto;
}

.gg-adaptive-forward {
    border-left: 3px solid var(--gg-palette-success);
}

.gg-adaptive-forward-applied {
    border-left: 3px solid var(--gg-palette-success);
}
/* ── Ismétlődő időpont szerkesztő (RecurringScheduleEditor) + jelenlét-mód kapcsoló ── */
.gg-recurring-editor { display: flex; flex-direction: column; gap: 12px; }
.gg-recurring-days { display: flex; flex-wrap: wrap; gap: 6px; }
.gg-recurring-day-pip {
    min-width: 42px; height: 40px; padding: 0 10px;
    border-radius: 10px;
    border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,0.12));
    background: transparent;
    color: var(--gg-palette-text-primary);
    font-weight: 600; cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.gg-recurring-day-pip:hover { border-color: var(--gg-palette-primary); }
.gg-recurring-day-pip--active {
    background: var(--gg-palette-primary);
    border-color: var(--gg-palette-primary);
    color: var(--gg-palette-primary-text, #fff);
}
.gg-recurring-count { display: flex; align-items: center; gap: 12px; }
.gg-recurring-count-value { display: flex; flex-direction: column; line-height: 1.15; }
.gg-recurring-count-value strong { font-size: 1.1rem; }
.gg-recurring-count-value span { font-size: .72rem; }
.gg-recurring-preview {
    display: flex; flex-direction: column; gap: 8px;
    padding: 12px; border-radius: 12px;
    background: color-mix(in srgb, var(--gg-palette-primary) 7%, transparent);
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 22%, transparent);
}
.gg-recurring-preview-head { display: flex; align-items: center; gap: 8px; }
.gg-recurring-preview-day { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
.gg-recurring-preview-day-name { font-weight: 600; min-width: 64px; }
.gg-recurring-preview-dates { display: flex; flex-wrap: wrap; gap: 4px; }
.gg-recurring-preview-chip {
    font-size: .8rem; padding: 1px 8px; border-radius: 999px;
    background: var(--gg-palette-surface);
    border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,0.1));
}
.gg-recurring-preview-note {
    display: flex; align-items: center; gap: 6px;
    font-size: .78rem; color: var(--gg-palette-warning);
}
.gg-mode-toggle { display: flex; flex-wrap: wrap; gap: 8px; }
.gg-mode-toggle .gg-legacy-button { flex: 1 1 auto; }
/* ── Kliens-választó mező (időpont dialógus) + státusz-szűrő (kliensválasztó modal) ── */
.gg-client-pick-field {
    display: flex; align-items: center; gap: 10px;
    width: 100%; padding: 9px 14px;
    border-radius: 10px;
    border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,0.18));
    background: color-mix(in srgb, var(--gg-palette-primary) 6%, transparent);
    cursor: pointer; text-align: left;
    transition: border-color .15s ease, background .15s ease;
}
.gg-client-pick-field:hover,
.gg-client-pick-field:focus-visible { border-color: var(--gg-palette-primary); outline: none; }
.gg-client-pick-main { display: flex; flex-direction: column; flex: 1 1 auto; line-height: 1.2; min-width: 0; }
.gg-client-pick-label { font-size: .72rem; color: var(--gg-palette-text-secondary); }
.gg-client-pick-name { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.gg-status-filter { display: flex; flex-wrap: wrap; gap: 6px; }
.gg-status-filter-pill {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 4px 10px; border-radius: 999px;
    border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,0.14));
    background: transparent; color: var(--gg-palette-text-primary);
    font-size: .8rem; cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.gg-status-filter-pill:hover { border-color: var(--gg-palette-primary); }
.gg-status-filter-pill--active {
    background: var(--gg-palette-primary); border-color: var(--gg-palette-primary);
    color: var(--gg-palette-primary-text, #fff);
}
.gg-status-filter-count {
    font-size: .7rem; opacity: .85;
    background: color-mix(in srgb, currentColor 18%, transparent);
    border-radius: 999px; padding: 0 6px; min-width: 18px; text-align: center;
}
.gg-client-picker-dialog .gg-picker-scroll { max-height: 52vh; overflow-y: auto; }
/* Újrahasználható óra/perc választó trigger mező */
.gg-time-field-trigger { cursor: pointer; display: block; }
.gg-time-field-trigger .gg-legacy-field { cursor: pointer; }
.gg-time-field-trigger:focus-visible { outline: none; }
.gg-time-field-trigger:focus-visible .gg-legacy-field { box-shadow: 0 0 0 2px var(--gg-palette-primary); border-radius: 6px; }
/* ── Naptár-absztrakció (CalendarBoard): nézetváltó, hónaprács, mód-jelzés ── */
.gg-calendar-board { display: flex; flex-direction: column; gap: 12px; }
.gg-calendar-board-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; justify-content: space-between; }
.gg-calendar-view-pills {
    display: inline-flex; gap: 4px; padding: 3px; border-radius: 12px;
    background: color-mix(in srgb, var(--gg-palette-surface) 60%, transparent);
    border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,0.1));
}
.gg-calendar-view-pill {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 5px 12px; border-radius: 9px; border: 0; background: transparent;
    color: var(--gg-palette-text-secondary); font-weight: 600; font-size: .85rem; cursor: pointer;
    transition: background .15s ease, color .15s ease;
}
.gg-calendar-view-pill:hover { color: var(--gg-palette-text-primary); }
.gg-calendar-view-pill--active { background: var(--gg-palette-primary); color: var(--gg-palette-primary-text, #fff); }
.gg-calendar-board-nav { display: inline-flex; align-items: center; gap: 4px; }
.gg-calendar-board-range { font-weight: 600; margin-left: 6px; white-space: nowrap; }
.gg-calendar-board-tools { display: inline-flex; align-items: center; gap: 8px; }
.gg-calendar-quickadd-pill {
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 55%, transparent) !important;
    color: var(--gg-palette-primary) !important;
}
.gg-calendar-quickadd-pill:hover {
    background: color-mix(in srgb, var(--gg-palette-primary) 12%, transparent) !important;
}

/* Gyors hozzáadás modal: az első edzés idejének kiírása / figyelmeztetés. */
.gg-quickadd-firstline {
    display: flex; align-items: flex-start; gap: 8px;
    padding: 10px 12px; border-radius: 10px;
    background: color-mix(in srgb, var(--gg-palette-success) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--gg-palette-success) 35%, transparent);
    color: var(--gg-palette-text-primary);
}
.gg-quickadd-firstline .gg-legacy-icon-root { color: var(--gg-palette-success); flex: 0 0 auto; margin-top: 1px; }
.gg-quickadd-firstline-main { font-weight: 650; font-size: .9rem; }
.gg-quickadd-firstline-sub { font-size: .8rem; color: var(--gg-palette-text-secondary); margin-top: 2px; }
.gg-quickadd-firstline.is-warning {
    background: color-mix(in srgb, var(--gg-palette-warning) 14%, transparent);
    border-color: color-mix(in srgb, var(--gg-palette-warning) 40%, transparent);
}
.gg-quickadd-firstline.is-warning .gg-legacy-icon-root { color: var(--gg-palette-warning); }

.gg-calendar-hour-cell {
    display: grid;
    grid-template-rows: 1fr 1fr;
}

.gg-calendar-half-slot {
    position: relative;
    min-width: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    cursor: pointer;
}

.gg-calendar-half-slot + .gg-calendar-half-slot {
    border-top: 1px dashed color-mix(in srgb, var(--gg-palette-divider) 50%, transparent);
}

.gg-calendar-half-slot:hover {
    background: color-mix(in srgb, var(--gg-palette-primary) 8%, transparent);
}

.gg-calendar-half-slot span {
    position: absolute;
    right: 6px;
    top: 4px;
    color: var(--gg-palette-primary);
    font-size: 0.64rem;
    font-weight: 800;
    opacity: 0;
    pointer-events: none;
}

.gg-calendar-half-slot:hover span,
.gg-calendar-half-slot:focus-visible span {
    opacity: 0.82;
}

.gg-calendar-half-slot:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--gg-palette-primary) 55%, transparent);
    outline-offset: -2px;
}

.gg-calendar-event-mode { opacity: .85; }
.gg-calendar-event-online { border-left: 3px solid var(--gg-palette-info) !important; }

/* Bemutatkozó hívás a naptáron — külön (lila) stílus, hogy elváljon az edzésektől. */
.gg-calendar-event.gg-calendar-event-meeting {
    background: color-mix(in srgb, var(--gg-palette-tertiary, #7e57c2) 16%, transparent) !important;
    border: 1px solid color-mix(in srgb, var(--gg-palette-tertiary, #7e57c2) 45%, transparent) !important;
    border-left: 3px solid var(--gg-palette-tertiary, #7e57c2) !important;
    color: var(--gg-palette-text-primary);
}
.gg-cal-month-chip.is-meeting {
    border-left-color: var(--gg-palette-tertiary, #7e57c2);
    background: color-mix(in srgb, var(--gg-palette-tertiary, #7e57c2) 16%, transparent);
}
.gg-cal-month-chip.is-group-class,
.gg-calendar-event-group-class {
    border-left-color: var(--gg-palette-primary, #2563eb) !important;
    background: color-mix(in srgb, var(--gg-palette-primary, #2563eb) 18%, transparent) !important;
}

/* Tervezett (ghost) alkalmak a CalendarBoardon — pl. az ismétlődő időpont-tervező javaslatai. */
.gg-calendar-event.gg-calendar-event-ghost {
    background: color-mix(in srgb, var(--gg-palette-primary) 18%, transparent) !important;
    border: 1.5px dashed var(--gg-palette-primary) !important;
    border-left: 3px dashed var(--gg-palette-primary) !important;
    color: var(--gg-palette-text-primary);
}
.gg-calendar-event.gg-calendar-event-ghost:hover {
    background: color-mix(in srgb, var(--gg-palette-primary) 28%, transparent) !important;
}
.gg-calendar-event.gg-calendar-event-ghost.is-selected {
    background: color-mix(in srgb, var(--gg-palette-primary) 52%, var(--gg-palette-surface)) !important;
    border-style: solid !important;
    border-color: var(--gg-palette-primary) !important;
    color: var(--gg-palette-primary-text, #fff) !important;
    box-shadow:
        0 0 0 2px var(--gg-palette-primary),
        0 6px 18px -6px color-mix(in srgb, var(--gg-palette-primary) 70%, transparent);
    transform-origin: center;
    /* Modal megjelenéskor 0.5 mp szünet után finom, kétszeri figyelem-pulzálás. */
    animation: gg-ghost-attention 1.15s cubic-bezier(.34, 1.56, .64, 1) .5s 2;
}
.gg-calendar-event.gg-calendar-event-ghost.is-selected .gg-calendar-event-time,
.gg-calendar-event.gg-calendar-event-ghost.is-selected .gg-calendar-event-title {
    color: var(--gg-palette-primary-text, #fff) !important;
}
@keyframes gg-ghost-attention {
    0%   { box-shadow: 0 0 0 2px var(--gg-palette-primary), 0 6px 18px -6px color-mix(in srgb, var(--gg-palette-primary) 70%, transparent); transform: scale(1); }
    35%  { box-shadow: 0 0 0 4px var(--gg-palette-primary), 0 0 22px 3px color-mix(in srgb, var(--gg-palette-primary) 65%, transparent); transform: scale(1.035); }
    100% { box-shadow: 0 0 0 2px var(--gg-palette-primary), 0 6px 18px -6px color-mix(in srgb, var(--gg-palette-primary) 70%, transparent); transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
    .gg-calendar-event.gg-calendar-event-ghost.is-selected { animation: none; }
}
.gg-calendar-event.gg-calendar-event-ghost.is-conflict {
    background: color-mix(in srgb, var(--gg-palette-error) 18%, transparent) !important;
    border-color: var(--gg-palette-error) !important;
}
.gg-calendar-event.gg-calendar-event-ghost[draggable="true"] {
    cursor: grab;
}
/* Más klienshez tartozó edzés: halványabb (a dialógus a fókusz-kliensre koncentrál) */
.gg-calendar-event.gg-calendar-event-foreign {
    opacity: 0.2;
    filter: saturate(0.55) grayscale(0.25);
}
.gg-calendar-event.gg-calendar-event-foreign:hover {
    opacity: 0.6;
    filter: saturate(0.85);
}

/* Halvány előnézet az üres slot fölött (kattintás előtt) — nem kattintható, alatta a slot reagál. */
.gg-calendar-event.gg-calendar-slot-preview {
    pointer-events: none;
    z-index: 3 !important;
    background: color-mix(in srgb, var(--gg-palette-primary) 12%, transparent) !important;
    border: 1.5px dashed color-mix(in srgb, var(--gg-palette-primary) 55%, transparent) !important;
    border-left: 3px dashed color-mix(in srgb, var(--gg-palette-primary) 70%, transparent) !important;
    color: color-mix(in srgb, var(--gg-palette-primary) 78%, var(--gg-palette-text-primary)) !important;
    opacity: 0.85;
    box-shadow: none !important;
}
/* Átütemezés alatt álló alkalom: úgyis törlődik, ezért áthúzva + szaggatva jelöljük */
.gg-calendar-event.gg-calendar-event-reschedule {
    opacity: 0.55 !important;
    border-style: dashed !important;
    text-decoration: line-through;
    filter: none;
}
.gg-calendar-event-reschedule-tag {
    display: inline-block;
    margin-top: 2px;
    padding: 1px 6px;
    border-radius: 999px;
    background: var(--gg-palette-warning);
    color: #4a3a00;
    font-size: 0.62rem;
    font-weight: 800;
    text-decoration: none;
}
.gg-ghost-prompt {
    max-width: 420px;
    width: calc(100% - 32px);
    border-radius: var(--gg-radius-md, 12px);
}
.gg-goal-modal {
    max-width: 440px;
    width: calc(100% - 32px);
    border-radius: var(--gg-radius-md, 12px);
}
.gg-ghost-prompt-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 16px;
}
.gg-strength-assessment-panel.is-locked .gg-strength-input-grid {
    opacity: 0.7;
}

/* ── Kliens-áttekintő (Áttekintés tab) redesign — fejlődés + kontextus ── */
.gg-cov-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 10px;
}
.gg-cov-kpi {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 12px;
    border-radius: var(--gg-radius-sm);
    background: var(--gg-palette-surface);
    border: 1px solid var(--gg-hairline);
    min-width: 0;
}
.gg-cov-kpi-btn {
    cursor: pointer;
    text-align: left;
    font: inherit;
}
.gg-cov-kpi-btn:hover {
    border-color: color-mix(in srgb, var(--gg-accent) 40%, transparent);
}
.gg-cov-kpi.is-danger {
    border-color: color-mix(in srgb, var(--gg-palette-error) 40%, transparent);
    background: color-mix(in srgb, var(--gg-palette-error) 8%, var(--gg-palette-surface));
}
.gg-cov-kpi-label {
    font-size: 0.72rem;
    font-weight: 760;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--gg-palette-text-secondary);
}
.gg-cov-kpi-value {
    font-size: 1.15rem;
    font-weight: 820;
    color: var(--gg-palette-text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.gg-cov-kpi-value.is-good { color: var(--gg-palette-success); }
.gg-cov-kpi.is-danger .gg-cov-kpi-value { color: var(--gg-palette-error); }
.gg-cov-kpi-sub { font-size: 0.72rem; color: var(--gg-palette-text-secondary); }

.gg-cov-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
    gap: 14px;
    align-items: start;
}
.gg-cov-col {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-width: 0;
}
.gg-cov-card {
    padding: 14px 16px !important;
}
.gg-cov-card-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}
.gg-cov-card-title { font-size: 0.9rem; font-weight: 820; color: var(--gg-palette-text-primary); }
.gg-cov-card-meta { font-size: 0.8rem; font-weight: 700; color: var(--gg-palette-text-secondary); }
.gg-cov-trend-down { color: var(--gg-palette-success); font-weight: 820; }
.gg-cov-trend-up { color: var(--gg-palette-warning); font-weight: 820; }

.gg-cov-tabs {
    display: inline-flex;
    gap: 4px;
    padding: 3px;
    margin-bottom: 12px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--gg-palette-background) 60%, var(--gg-palette-surface));
}
.gg-cov-tab {
    appearance: none;
    border: 0;
    cursor: pointer;
    padding: 5px 12px;
    border-radius: 8px;
    background: transparent;
    color: var(--gg-palette-text-secondary);
    font-size: 0.78rem;
    font-weight: 750;
    transition: background .15s ease, color .15s ease;
}
.gg-cov-tab:hover { color: var(--gg-palette-text-primary); }
.gg-cov-tab.is-active {
    background: var(--gg-palette-surface);
    color: var(--gg-palette-text-primary);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
}
.gg-cov-activity-select {
    width: 100%;
    margin-bottom: 10px;
    padding: 7px 10px;
    border-radius: 9px;
    border: 1px solid var(--gg-palette-divider);
    background: var(--gg-palette-surface);
    color: var(--gg-palette-text-primary);
    font-size: 0.8rem;
    font-weight: 650;
}
.gg-cov-activity-axis {
    display: flex;
    justify-content: space-between;
    margin-top: 6px;
    font-size: 0.7rem;
    color: var(--gg-palette-text-secondary);
}

.gg-cov-bars {
    display: flex;
    align-items: stretch;
    gap: 6px;
    height: 84px;
}
.gg-cov-barcol {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    gap: 3px;
}
.gg-cov-bar-val {
    font-size: 0.66rem;
    font-weight: 760;
    line-height: 1;
    color: var(--gg-palette-text-secondary);
    white-space: nowrap;
}
.gg-cov-bar {
    width: 100%;
    min-width: 0;
    border-radius: 3px 3px 0 0;
    background: var(--gg-hairline);
}
.gg-cov-bar.is-on { background: var(--gg-accent); }

.gg-cov-spark { width: 100%; height: 44px; display: block; }
.gg-cov-muscle { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.gg-cov-muscle .gg-muscle-heatmap { width: 100%; max-width: 340px; }
.gg-cov-muscle-legend {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    max-width: 260px;
    font-size: 0.74rem;
    color: var(--gg-palette-text-secondary);
}
.gg-cov-muscle-bar {
    flex: 1;
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgb(110, 116, 124), rgb(95, 190, 58));
}

/* Izomcsoport-szűrő chip kép-bélyeg */
.gg-filter-chip-img .gg-legacy-chip-content,
.gg-filter-chip-img.gg-legacy-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: auto;
}
.gg-filter-chip-thumb {
    width: 30px;
    height: 30px;
    object-fit: contain;
    border-radius: 5px;
    background: color-mix(in srgb, var(--gg-palette-text-primary) 6%, transparent);
    flex: none;
}
.gg-cov-body { display: flex; align-items: center; gap: 14px; }
.gg-cov-bodyimg-btn {
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
    flex: none;
    border-radius: var(--gg-radius-sm);
    line-height: 0;
    transition: outline-color 0.12s ease;
    outline: 2px solid transparent;
    outline-offset: 2px;
}
.gg-cov-bodyimg-btn:hover {
    outline-color: color-mix(in srgb, var(--gg-accent) 45%, transparent);
}
.gg-cov-bodyimg {
    width: auto;
    height: 124px;
    object-fit: contain;
    border-radius: var(--gg-radius-sm);
    background: var(--gg-palette-surface);
}
.gg-bodycomp-modal {
    max-width: 360px;
    width: calc(100% - 32px);
    border-radius: var(--gg-radius-md, 12px);
}
.gg-bodycomp-modal-img {
    display: flex;
    justify-content: center;
    background: var(--gg-palette-surface);
    border-radius: var(--gg-radius-sm);
    padding: 8px;
}
.gg-bodycomp-modal-img img {
    width: auto;
    height: 220px;
    object-fit: contain;
}
.gg-bodycomp-slider-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    font-size: 0.88rem;
    color: var(--gg-palette-text-secondary);
    margin-bottom: 2px;
}
.gg-bodycomp-slider-head strong { color: var(--gg-palette-text-primary); font-weight: 760; }
.gg-cov-bodyright { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.gg-cov-bodylabels { display: flex; flex-wrap: wrap; gap: 14px; font-size: 0.82rem; color: var(--gg-palette-text-secondary); }
.gg-cov-bodylabels strong { color: var(--gg-palette-text-primary); font-weight: 760; }

.gg-cov-toplist { display: flex; flex-direction: column; gap: 9px; }
.gg-cov-toprow { display: flex; align-items: center; gap: 10px; min-width: 0; }
.gg-cov-topname {
    flex: 1;
    min-width: 0;
    font-size: 0.86rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--gg-palette-text-primary);
}
.gg-cov-topbar {
    flex: 1.4;
    height: 8px;
    border-radius: 999px;
    background: var(--gg-hairline);
    overflow: hidden;
}
.gg-cov-topbar > span { display: block; height: 8px; border-radius: 999px; background: var(--gg-accent); }
.gg-cov-topval { width: 56px; text-align: right; flex: none; font-size: 0.8rem; font-weight: 720; color: var(--gg-palette-text-secondary); }

.gg-cov-next {
    padding: 14px 16px;
    border-radius: var(--gg-radius-sm);
    background: color-mix(in srgb, var(--gg-accent) 12%, var(--gg-palette-surface));
    border: 1px solid color-mix(in srgb, var(--gg-accent) 28%, transparent);
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.gg-cov-next-label { font-size: 0.72rem; font-weight: 760; text-transform: uppercase; letter-spacing: 0.03em; color: var(--gg-palette-text-secondary); }
.gg-cov-next-title { font-size: 1rem; font-weight: 820; color: var(--gg-palette-text-primary); }
.gg-cov-next-sub { font-size: 0.82rem; color: var(--gg-palette-text-secondary); }

.gg-cov-lastlist { display: flex; flex-direction: column; gap: 7px; }
.gg-cov-lastrow { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.gg-cov-lastname {
    font-size: 0.86rem;
    color: var(--gg-palette-text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.gg-cov-lastdetail { font-size: 0.82rem; font-weight: 720; color: var(--gg-palette-text-secondary); white-space: nowrap; flex: none; }

.gg-cov-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.gg-cov-chip {
    font-size: 0.78rem;
    font-weight: 700;
    padding: 4px 11px;
    border-radius: 999px;
    background: var(--gg-palette-surface);
    border: 1px solid var(--gg-hairline);
    color: var(--gg-palette-text-primary);
}
.gg-cov-chip.is-warn {
    background: color-mix(in srgb, var(--gg-palette-warning) 16%, transparent);
    border-color: color-mix(in srgb, var(--gg-palette-warning) 40%, transparent);
    color: var(--gg-palette-warning-darken);
}

.gg-cov-notelist { display: flex; flex-direction: column; gap: 8px; }
.gg-cov-note { display: flex; flex-direction: column; gap: 2px; }
.gg-cov-note-text { font-size: 0.86rem; color: var(--gg-palette-text-primary); }
.gg-cov-note-date { font-size: 0.74rem; color: var(--gg-palette-text-secondary); }

.gg-cov-empty { font-size: 0.84rem; color: var(--gg-palette-text-secondary); padding: 6px 0; }

@media (max-width: 960px) {
    .gg-cov-grid { grid-template-columns: 1fr; }
}
.gg-calendar-event-del {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--gg-palette-surface);
    color: var(--gg-palette-error);
    box-shadow: 0 0 0 1px var(--gg-hairline);
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.12s ease;
}
.gg-calendar-event-del .gg-legacy-icon-root {
    font-size: 0.95rem;
}
.gg-calendar-event-ghost:hover .gg-calendar-event-del,
.gg-calendar-event-del:focus-visible {
    opacity: 1;
}
.gg-cal-month-dot.is-ghost { background: var(--gg-palette-primary); box-shadow: 0 0 0 1.5px color-mix(in srgb, var(--gg-palette-primary) 40%, transparent); }
.gg-cal-month-dot.is-ghost.is-conflict { background: var(--gg-palette-error); }

.gg-cal-month { display: flex; flex-direction: column; gap: 4px; }
.gg-cal-month-weekdays {
    display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px;
    font-size: .75rem; color: var(--gg-palette-text-secondary); text-align: center; font-weight: 600;
}
.gg-cal-month-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.gg-cal-month-day {
    display: flex; flex-direction: column; align-items: stretch; gap: 4px;
    min-height: 104px; padding: 6px; border-radius: 10px; cursor: pointer;
    background: color-mix(in srgb, var(--gg-palette-surface) 70%, transparent);
    border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,0.06));
    color: var(--gg-palette-text-primary); text-align: left;
    transition: border-color .15s ease, background .15s ease;
}
.gg-cal-month-day:hover { border-color: var(--gg-palette-primary); }
.gg-cal-month-day--muted { opacity: .45; }
.gg-cal-month-grid .gg-cal-month-day--today {
    border-color: var(--gg-palette-primary);
    background: color-mix(in srgb, var(--gg-palette-primary) 24%, transparent);
    box-shadow: inset 0 0 0 2px var(--gg-palette-primary), 0 0 12px color-mix(in srgb, var(--gg-palette-primary) 35%, transparent);
}
.gg-cal-month-day--selected { background: color-mix(in srgb, var(--gg-palette-primary) 14%, var(--gg-palette-surface)); border-color: var(--gg-palette-primary); }
.gg-cal-month-day-head { display: flex; align-items: center; justify-content: space-between; gap: 4px; }
.gg-cal-month-day-num { font-weight: 700; font-size: .82rem; }
/* A mai nap erős, kontrasztos jelölése: a dátum egy kitöltött körben. */
.gg-cal-month-day--today .gg-cal-month-day-num {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 23px; height: 23px; padding: 0 5px;
    border-radius: 999px;
    background: var(--gg-palette-primary);
    color: var(--gg-palette-primary-text, #15151a);
    font-weight: 850;
}
.gg-cal-month-day-count {
    font-size: .62rem; font-weight: 800; line-height: 1;
    padding: 2px 5px; border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-primary) 22%, transparent);
    color: var(--gg-palette-primary);
}
.gg-cal-month-events { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.gg-cal-month-chip {
    display: flex; align-items: center; gap: 4px;
    width: 100%; min-width: 0; padding: 2px 5px;
    border: 0; border-left: 3px solid var(--gg-palette-info);
    border-radius: 4px; cursor: pointer; text-align: left;
    background: color-mix(in srgb, var(--gg-palette-info) 16%, transparent);
    color: var(--gg-palette-text-primary);
    transition: filter .12s ease;
}
.gg-cal-month-chip:hover { filter: brightness(1.18); }
.gg-cal-month-chip-time { font-size: .62rem; font-weight: 800; opacity: .85; flex: 0 0 auto; }
.gg-cal-month-chip-label { font-size: .66rem; font-weight: 650; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.gg-cal-month-chip.is-completed { border-left-color: var(--gg-palette-success); background: color-mix(in srgb, var(--gg-palette-success) 16%, transparent); }
.gg-cal-month-chip.is-noshow { border-left-color: var(--gg-palette-warning); background: color-mix(in srgb, var(--gg-palette-warning) 16%, transparent); }
.gg-cal-month-chip.is-cancelled { border-left-color: var(--gg-palette-error); background: color-mix(in srgb, var(--gg-palette-error) 14%, transparent); }
.gg-cal-month-chip.is-cancelled .gg-cal-month-chip-label { text-decoration: line-through; opacity: .65; }
.gg-cal-month-chip.is-ghost { border-left-style: dashed; border-left-color: var(--gg-palette-primary); background: color-mix(in srgb, var(--gg-palette-primary) 12%, transparent); }
.gg-cal-month-chip.is-ghost.is-conflict { border-left-color: var(--gg-palette-error); }
.gg-cal-month-chip.is-online { box-shadow: inset 2px 0 0 0 color-mix(in srgb, var(--gg-palette-tertiary, #7e57c2) 80%, transparent); }
.gg-cal-month-chip-more {
    border: 0; background: transparent; cursor: pointer; padding: 1px 5px;
    font-size: .62rem; font-weight: 700; color: var(--gg-palette-text-secondary); text-align: left;
}
.gg-cal-month-chip-more:hover { color: var(--gg-palette-primary); }

/* Fókusz-kliens módban: az ő alkalmai erősek, a többiek egy halvány számra fogva. */
.gg-cal-month-foreign-count {
    font-size: .62rem; font-weight: 700; line-height: 1.2;
    padding: 1px 5px; border-radius: 6px; align-self: flex-start;
    color: var(--gg-palette-text-secondary);
    background: color-mix(in srgb, var(--gg-palette-text-secondary) 12%, transparent);
    opacity: .8;
}
.gg-cal-month-chip.is-focus {
    font-weight: 750;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gg-palette-primary) 32%, transparent);
}
.gg-cal-month-day--has-focus {
    border-color: var(--gg-palette-primary) !important;
    background: color-mix(in srgb, var(--gg-palette-primary) 14%, var(--gg-palette-surface)) !important;
    box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--gg-palette-primary) 60%, transparent);
}

@media (max-width: 640px) {
    .gg-cal-month-day { min-height: 72px; padding: 4px; gap: 3px; }
    .gg-cal-month-chip-time { display: none; }
    .gg-calendar-board-range { font-size: .85rem; }
    .gg-calendar-board-toolbar { gap: 8px; }
    /* A naptár-rács a képernyő két széléig érjen: nincs saroklekerekítés, nincs oldalsó szegély */
    .gg-cal-board-surface .gg-calendar-timeline {
        border-radius: 0;
        border-left: none;
        border-right: none;
    }
}
/* ── CalendarBoard sor-alapú timeline: a magasságot a sorok adják (kompakt összecsukás) ── */
.gg-calendar-board .gg-calendar-time-column { min-height: 0; }
.gg-calendar-board .gg-calendar-scroll-region { height: auto; max-height: clamp(360px, calc(100vh - 300px), 760px); }
.gg-calendar-gap-row {
    position: relative;
    display: flex; align-items: center; justify-content: center;
    border-bottom: 1px dashed color-mix(in srgb, var(--gg-palette-divider) 70%, transparent);
    background: repeating-linear-gradient(135deg,
        transparent, transparent 7px,
        color-mix(in srgb, var(--gg-palette-surface) 55%, transparent) 7px,
        color-mix(in srgb, var(--gg-palette-surface) 55%, transparent) 14px);
}
.gg-calendar-gap-hint { font-size: .68rem; color: var(--gg-palette-text-secondary); opacity: .75; }
.gg-calendar-gap-label {
    color: var(--gg-palette-text-secondary); opacity: .5; font-weight: 700;
    align-items: center !important; justify-content: center !important;
}

/* ============================================================
   Kliens-dashboard (/c/{token}) — GymGo app-szerű, bottom-tab navigáció.
   FIGYELEM: saját `--gc-*` token-készlet, NEM a legacy UI palettából él →
   a sötét változatot külön kell megadni (`.gg-dark .gg-cdash-app`, lentebb).

   A `--gc-primary` a KIEMELŐ szín, és alapból MONOKRÓM. A ClientDashboard
   inline style-lal írja felül, ha a kliens az onboardingon színt választott.
   ============================================================ */
.gg-cdash-app {
    /* A kiemelő szín HÁROM szerepe, szétválasztva:
         --gc-primary        : maga a szín (tömör háttérként)
         --gc-primary-dark   : sötétebb árnyalat — CSAK háttér (hover, gradiens vége)
         --gc-on-primary     : a tömör színen lévő tinta (C#-ból, luminancia szerint választva)
         --gc-primary-soft   : árnyalt FELÜLET — a színből és a téma felületéből keverve
         --gc-accent-ink     : akcentes SZÖVEG a lap felületén — a téma tintája felé húzva
       Így minden felirat olvasható marad, bármelyik szín + bármelyik téma esetén. */
    --gc-primary: #14171A;
    --gc-primary-dark: #000000;
    --gc-primary-soft: color-mix(in srgb, var(--gc-primary) 14%, var(--gc-surface));
    --gc-accent-ink: color-mix(in srgb, var(--gc-primary) 62%, var(--gc-text));
    --gc-bg: #F4F6F5;
    --gc-surface: #FFFFFF;
    --gc-surface-2: #F5F5F5;
    --gc-border: #E5E7EB;
    --gc-text: #111827;
    --gc-muted: #6B7280;
    --gc-warn: #FACC15;
    --gc-info: #1D4ED8;
    --gc-radius: 18px;
    --gc-shadow: 0 6px 20px rgba(17, 24, 39, .08);

    position: fixed;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    background: var(--gc-bg);
    color: var(--gc-text);
    font-family: 'Open Sans', 'Segoe UI', system-ui, sans-serif;
    overflow: hidden;
    z-index: 1;
}

/* Sötét változat. A --gc-primary itt is monokróm alapértelmezett; a kliens választása
   (inline style) ezt felülírja, ezért a mono-t a ClientDashboard oldja fel futásidőben. */
.gg-dark .gg-cdash-app {
    --gc-primary: #F4F7F8;
    --gc-primary-dark: #FFFFFF;
    --gc-bg: #0B0F13;
    --gc-surface: #14181D;
    --gc-surface-2: #191E24;
    --gc-border: #272C31;
    --gc-text: #ECEFF1;
    --gc-muted: #9BA1A6;
    --gc-warn: #E3B341;
    --gc-info: #5AA6E0;
    --gc-shadow: 0 6px 20px rgba(0, 0, 0, .55);
}

.gg-cdash-app .gg-cdash-screen,
.gg-cdash-app .gg-cdash-auth,
.gg-cdash-app .gg-cdash-center {
    width: 100%;
    max-width: 480px;
    height: 100%;
    display: flex;
    flex-direction: column;
    background: var(--gc-bg);
    box-shadow: 0 0 40px rgba(0,0,0,.05);
}

.gg-cdash-center { align-items: center; justify-content: center; gap: 12px; text-align: center; }
.gg-cdash-pad { padding: 18px 16px 22px; }

.gg-cdash-content {
    flex: 1 1 auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 8px;
}

/* Typography */
.gg-cdash-h1 { font-size: 1.5rem; font-weight: 800; margin: 0 0 14px; letter-spacing: -.01em; }
.gg-cdash-h2 { font-size: 1.35rem; font-weight: 800; margin: 0 0 6px; text-align: center; }
.gg-cdash-muted { color: var(--gc-muted); font-size: .85rem; }
.gg-cdash-eyebrow { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; }
.gg-cdash-section-label { font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--gc-muted); margin: 20px 2px 8px; }

.gg-cdash-topbar { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 16px; }
.gg-cdash-topbar-actions { display:flex; align-items:center; gap:8px; flex:none; }
.gg-cdash-logo { font-weight: 900; color: var(--gc-primary); letter-spacing: -.02em; font-size: 1.05rem; }
.gg-cdash-logo--lg { font-size: 1.7rem; text-align: center; margin: 8px auto 14px; }
.gg-cdash-brandmark { font-weight: 900; color: var(--gc-primary); font-size: 1.6rem; }
.gg-cdash-logo-img { height: 36px; width: auto; display: block; object-fit: contain; }
.gg-cdash-logo-img--lg { height: 58px; margin: 4px auto 16px; }

/* Témaszín-választó (kliens) */
.gg-cdash-theme { display: flex; flex-direction: column; gap: 4px; }
.gg-cdash-theme-sub { margin-bottom: 6px; }
.gg-cdash-theme-swatches { display: flex; flex-wrap: wrap; gap: 12px; }
.gg-cdash-swatch {
    width: 38px; height: 38px; border-radius: 50%; cursor: pointer; padding: 0;
    border: 2px solid transparent; box-shadow: 0 0 0 1px var(--gc-border);
    display: inline-flex; align-items: center; justify-content: center;
    color: #fff; transition: transform .12s, box-shadow .12s;
}
.gg-cdash-swatch:hover { transform: translateY(-1px); }
/* A kijelölő gyűrű a szövegszínből jön → sötét témában is látszik (a régi rgba(17,24,39) eltűnt). */
.gg-cdash-swatch.is-sel { box-shadow: 0 0 0 2px var(--gc-surface), 0 0 0 4px color-mix(in srgb, var(--gg-palette-text-primary) 55%, transparent); transform: translateY(-1px); }
.gg-cdash-swatch .gg-legacy-icon-root { font-size: 1.1rem; filter: drop-shadow(0 1px 1px rgba(0,0,0,.35)); }
/* Monokróm svatch: a korong maga a szövegszín, ezért a pipa a HÁTTÉR színe legyen. */
.gg-cdash-swatch.is-mono { box-shadow: 0 0 0 1px color-mix(in srgb, var(--gg-palette-text-primary) 28%, transparent); }
.gg-cdash-swatch.is-mono.is-sel { box-shadow: 0 0 0 2px var(--gc-surface), 0 0 0 4px color-mix(in srgb, var(--gg-palette-text-primary) 55%, transparent); }
.gg-dark .gg-cdash-swatch.is-mono .gg-legacy-icon-root { color: #14171A; filter: none; }

/* Onboarding: szín-választó a köszöntő kártyán */
.gg-cdash-onboard-accent { margin-top: 18px; width: 100%; }
.gg-cdash-onboard-accent-label {
    font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
    color: var(--gg-palette-text-secondary); margin-bottom: 10px;
}
.gg-cdash-onboard-accent .gg-cdash-theme-swatches { justify-content: center; gap: 10px; }
.gg-cdash-onboard-accent .gg-cdash-swatch { width: 32px; height: 32px; }

/* Cards */
.gg-cdash-card {
    background: var(--gc-surface);
    border: 1px solid var(--gc-border);
    border-radius: var(--gc-radius);
    padding: 16px;
    margin-bottom: 12px;
}

/* Hero */
/* A hero HÁTTERE a kiemelő szín → a rajta lévő tinta a --gc-on-primary (nem fix #fff!).
   Monokróm + sötét téma esetén a kiemelő szín majdnem FEHÉR, ott a szöveg sötét kell legyen. */
.gg-cdash-hero {
    position: relative;
    background: linear-gradient(135deg, var(--gc-primary), var(--gc-primary-dark));
    color: var(--gc-on-primary, #fff);
    border-radius: 22px;
    padding: 20px;
    margin-bottom: 16px;
    box-shadow: var(--gc-shadow);
}
.gg-cdash-hero-logo { position: absolute; top: 16px; right: 18px; height: 20px; opacity: .92; }
.gg-cdash-tag {
    display: inline-block;
    background: color-mix(in srgb, var(--gc-on-primary, #fff) 22%, transparent);
    color: var(--gc-on-primary, #fff);
    font-size: .72rem; font-weight: 800; padding: 5px 10px; border-radius: 999px; margin-bottom: 10px;
}
.gg-cdash-hero-title { font-size: 1.5rem; font-weight: 800; line-height: 1.15; }
.gg-cdash-hero-meta { opacity: .9; font-size: .9rem; margin-top: 4px; }
.gg-cdash-hero-note { margin-top: 12px; font-size: .85rem; opacity: .92; }
.gg-cdash-hero-btn { margin-top: 14px; background: var(--gc-on-primary, #fff) !important; color: var(--gc-primary) !important; }

/* Stat tiles */
.gg-cdash-stat-row { display: flex; gap: 12px; margin: 4px 0 8px; }
.gg-cdash-stat {
    flex: 1; background: var(--gc-surface); border: 1px solid var(--gc-border);
    border-radius: 16px; padding: 16px; text-align: center;
}
.gg-cdash-stat-value { font-size: 1.8rem; font-weight: 800; color: var(--gc-primary); line-height: 1; }
.gg-cdash-stat-label { font-size: .76rem; color: var(--gc-muted); margin-top: 6px; font-weight: 600; }

/* Heti haladás-csík (óra nélkül) */
.gg-cdash-rhythm { display: flex; align-items: center; gap: 12px; }
.gg-cdash-rhythm .gg-legacy-icon-root { color: var(--gc-primary); flex: none; }
.gg-cdash-rhythm-title { font-weight: 700; font-size: .95rem; }
.gg-cdash-rhythm-sub { font-size: .82rem; margin-top: 1px; }

.gg-cdash-week { display: flex; flex-direction: column; gap: 9px; }
.gg-cdash-week-head { display: flex; align-items: baseline; justify-content: space-between; }
.gg-cdash-week-label { font-weight: 700; }
.gg-cdash-week-count { font-size: 1.05rem; color: var(--gc-primary); }
.gg-cdash-week-bar { height: 12px; border-radius: 999px; background: color-mix(in srgb, var(--gc-muted) 22%, transparent); overflow: hidden; }
.gg-cdash-week-bar span { display: block; height: 100%; border-radius: 999px; background: var(--gc-primary); transition: width .35s cubic-bezier(.2,.7,.3,1); }
.gg-cdash-week-note { font-size: .82rem; }

/* Workout cards */
.gg-cdash-wcard { display: flex; align-items: center; gap: 12px; }
.gg-cdash-wcard-main { flex: 1; min-width: 0; }
.gg-cdash-wcard-title { font-weight: 700; font-size: .98rem; }

.gg-cdash-activity { display: flex; align-items: center; gap: 12px; }
.gg-cdash-activity-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--gc-primary); flex: none; }

/* Chips */
.gg-cdash-chip {
    display: inline-flex; align-items: center; font-size: .72rem; font-weight: 800;
    padding: 5px 11px; border-radius: 999px; background: var(--gc-surface-2); color: var(--gc-muted); flex: none;
}
.gg-cdash-chip-done { background: var(--gc-primary-soft); color: var(--gc-accent-ink); }
.gg-cdash-chip-info { background: #DBEAFE; color: #1D4ED8; }
.gg-cdash-chip-skip { background: #FEF3C7; color: #92660a; }
.gg-cdash-chip-partial { background: var(--gc-warn); color: #4a3a00; }

/* Empty states */
.gg-cdash-empty { text-align: center; padding: 28px 18px; color: var(--gc-muted); }
.gg-cdash-empty .gg-legacy-icon-root { color: var(--gc-primary); }
.gg-cdash-empty-title { font-weight: 800; color: var(--gc-text); margin: 10px 0 4px; }
/* Goal-gradient „friss kliens" kártya: pozitív, részleges-haladás állapot */
.gg-cdash-onboard { text-align: center; padding: 26px 20px; }
.gg-cdash-onboard-badge { display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: color-mix(in srgb, var(--gc-primary) 14%, transparent); margin-bottom: 6px; }
.gg-cdash-onboard-badge .gg-legacy-icon-root { color: var(--gc-primary); }
.gg-cdash-onboard-bar { height: 8px; border-radius: 999px; background: color-mix(in srgb, var(--gc-muted) 22%, transparent); overflow: hidden; max-width: 240px; margin: 16px auto 8px; }
.gg-cdash-onboard-bar span { display: block; height: 100%; border-radius: 999px; background: var(--gc-primary); }
.gg-cdash-onboard-step { font-size: .78rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--gc-primary); }
.gg-cdash-empty-sm { text-align: center; padding: 16px; }

/* Secure / CTA card */
.gg-cdash-secure { display: flex; align-items: center; gap: 12px; justify-content: space-between; background: var(--gc-primary-soft); border-color: transparent; }
.gg-cdash-secure-title { font-weight: 800; }

/* Profile */
.gg-cdash-profile { display: flex; align-items: center; gap: 14px; }
.gg-cdash-avatar {
    width: 52px; height: 52px; border-radius: 50%; background: var(--gc-primary); color: var(--gc-on-primary, #fff);
    display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 1.3rem; flex: none;
}
.gg-cdash-footnote { text-align: center; color: var(--gc-muted); font-size: .78rem; margin-top: 18px; }

/* Buttons */
.gg-cdash-primary-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    background: var(--gc-primary); color: var(--gc-on-primary, #fff); border: none; border-radius: 12px;
    padding: 12px 18px; font-weight: 800; font-size: .95rem; cursor: pointer; transition: background .15s, transform .1s;
}
.gg-cdash-primary-btn:hover:not(:disabled) { background: var(--gc-primary-dark); }
.gg-cdash-primary-btn:active:not(:disabled) { transform: translateY(1px); }
.gg-cdash-primary-btn:disabled { opacity: .5; cursor: default; }
.gg-cdash-sm-btn { padding: 9px 16px; font-size: .85rem; border-radius: 10px; flex: none; }
.gg-cdash-fullw { width: 100%; }
.gg-cdash-ghost-btn {
    background: transparent; color: var(--gc-accent-ink); border: 1.5px solid var(--gc-primary);
    border-radius: 12px; padding: 9px 16px; font-weight: 800; font-size: .85rem; cursor: pointer; flex: none;
}
.gg-cdash-ghost-btn:hover { background: var(--gc-primary-soft); }


.gg-cdash-trainer-rel {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
}
.gg-cdash-trainer-rel-main { min-width: 0; }

.gg-cdash-profile-reminder {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}
.gg-cdash-profile-reminder .gg-cdash-ghost-btn { flex: none; }
.gg-cdash-textlink { background: none; border: none; color: var(--gc-accent-ink); font-weight: 700; cursor: pointer; padding: 8px; font-size: .85rem; }
.gg-cdash-iconbtn { background: var(--gc-surface-2); border: 1px solid var(--gc-border); border-radius: 12px; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; cursor: pointer; flex: none; }

.gg-cdash-error { background: #FEE2E2; color: #b91c1c; border-radius: 12px; padding: 10px 14px; font-size: .85rem; font-weight: 600; }

/* Bottom tab bar */
.gg-cdash-tabbar {
    flex: none; display: flex; background: var(--gc-surface);
    border-top: 1px solid var(--gc-border); padding: 6px 4px calc(6px + env(safe-area-inset-bottom, 0px));
}
.gg-cdash-tab {
    flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px;
    background: none; border: none; cursor: pointer; padding: 7px 2px;
    color: var(--gc-muted); font-size: .68rem; font-weight: 700;
}
.gg-cdash-tab .gg-legacy-icon-root { font-size: 1.4rem; }
.gg-cdash-tab--active { color: var(--gc-primary); }

/* Auth */
.gg-cdash-auth { justify-content: center; padding: 24px 22px; gap: 0; }
.gg-cdash-auth-sub { text-align: center; margin: 0 0 22px; }
.gg-cdash-auth-form { display: flex; flex-direction: column; gap: 14px; }

/* Workout form */
.gg-cdash-form { flex: 1 1 auto; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 14px 16px 120px; background: var(--gc-bg); }
.gg-cdash-form-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.gg-cdash-form-head-text { display: flex; flex-direction: column; min-width: 0; }
.gg-cdash-form-title { font-weight: 800; font-size: 1.1rem; }
.gg-cdash-form-sub { color: var(--gc-muted); font-size: .8rem; }
.gg-cdash-note-banner { display: flex; align-items: center; gap: 8px; background: #DBEAFE; color: #1D4ED8; border-radius: 12px; padding: 10px 14px; font-size: .85rem; margin-bottom: 12px; }
.gg-cdash-exercise-title { font-weight: 800; font-size: 1.05rem; margin-bottom: 10px; }
.gg-cdash-set { border: 1px solid var(--gc-border); border-radius: 14px; padding: 12px; margin-bottom: 10px; background: var(--gc-surface-2); }
.gg-cdash-set-done { border-color: var(--gc-primary); background: var(--gc-primary-soft); }
.gg-cdash-set-skip { border-color: var(--gc-warn); background: #FEFCE8; }
.gg-cdash-set-head { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 10px; }
.gg-cdash-set-label { display: flex; flex-direction: column; }
.gg-cdash-set-name { font-weight: 700; font-size: .9rem; }
.gg-cdash-set-prescription { color: var(--gc-muted); font-size: .78rem; }
.gg-cdash-set-inputs { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin-bottom: 10px; }
.gg-cdash-set-actions { display: flex; gap: 8px; }
.gg-cdash-setbtn {
    flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 4px;
    background: var(--gc-surface); border: 1.5px solid var(--gc-border); border-radius: 10px;
    padding: 8px; font-weight: 700; font-size: .82rem; cursor: pointer; color: var(--gc-muted);
}
.gg-cdash-setbtn:disabled { opacity: .45; cursor: default; }
.gg-cdash-setbtn-done-active { background: var(--gc-primary); border-color: var(--gc-primary); color: var(--gc-on-primary, #fff); }
.gg-cdash-setbtn-skip-active { background: var(--gc-warn); border-color: var(--gc-warn); color: #4a3a00; }

.gg-cdash-submit-bar {
    position: fixed; bottom: 0; left: 50%; transform: translateX(-50%);
    width: 100%; max-width: 480px; background: var(--gc-surface);
    border-top: 1px solid var(--gc-border); padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
    display: flex; flex-direction: column; gap: 8px;
}
.gg-cdash-submit-hint { font-size: .76rem; color: var(--gc-muted); text-align: center; }
.gg-cdash-submit-bar .gg-cdash-primary-btn { width: 100%; }

/* legacy UI input polish inside the client app */
.gg-cdash-app .gg-legacy-input-control { background: var(--gc-surface); border-radius: 10px; }
.gg-cdash-app .gg-legacy-input.gg-legacy-input-outlined .gg-legacy-input-outlined-border { border-radius: 10px; }

/* Kliens "player" mód — a traineri player mintájára, GymGo világos témában. */
.gg-cdash-eyebrow { font-size: .68rem; text-transform: uppercase; letter-spacing: .07em; font-weight: 800; }

.gg-cdash-player-progress { padding: 4px 2px 2px; }
.gg-cdash-player-progress-head { display: flex; justify-content: space-between; align-items: baseline; font-size: .82rem; color: var(--gc-muted); margin-bottom: 6px; }
.gg-cdash-player-progress-head strong { color: var(--gc-text); }
.gg-cdash-player-bar { height: 8px; border-radius: 999px; background: var(--gc-surface-2); overflow: hidden; }
.gg-cdash-player-bar-fill { height: 100%; border-radius: 999px; background: var(--gc-primary); transition: width .25s ease; }

.gg-cdash-player-card {
    background: var(--gc-surface); border: 1px solid var(--gc-border); border-radius: var(--gc-radius);
    padding: 16px; margin-bottom: 12px; box-shadow: var(--gc-shadow);
}
.gg-cdash-player-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.gg-cdash-player-exercise { font-size: 1.4rem; font-weight: 800; line-height: 1.15; margin: 2px 0; }
.gg-cdash-player-inputs { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin-bottom: 14px; }
.gg-cdash-player-card .gg-cdash-primary-btn { width: 100%; padding: 13px; font-size: 1rem; }

.gg-cdash-player-next {
    display: flex; align-items: center; gap: 8px; width: 100%; text-align: left;
    background: var(--gc-primary-soft); border: 1px solid transparent; border-radius: 14px;
    padding: 12px 14px; margin-bottom: 12px; cursor: pointer;
}
.gg-cdash-player-next strong { color: var(--gc-accent-ink); }
.gg-cdash-player-next small { margin-left: auto; }

.gg-cdash-player-nav { display: flex; gap: 8px; margin-bottom: 18px; }
.gg-cdash-player-navbtn {
    flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 4px;
    background: var(--gc-surface); border: 1px solid var(--gc-border); border-radius: 12px;
    padding: 10px 8px; font-weight: 700; font-size: .85rem; color: var(--gc-text); cursor: pointer;
}
.gg-cdash-player-navbtn:disabled { opacity: .4; cursor: default; }

.gg-cdash-player-timeline { display: flex; flex-direction: column; gap: 10px; margin-bottom: 12px; }
.gg-cdash-player-group {
    background: var(--gc-surface); border: 1px solid var(--gc-border); border-radius: 14px; padding: 12px 14px;
}
.gg-cdash-player-group-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; font-size: .92rem; }
.gg-cdash-player-pills { display: flex; flex-wrap: wrap; gap: 7px; }
.gg-cdash-player-pill {
    width: 34px; height: 34px; border-radius: 10px; border: 1.5px solid var(--gc-border);
    background: var(--gc-surface-2); color: var(--gc-muted); font-weight: 800; font-size: .85rem; cursor: pointer;
}
.gg-cdash-player-pill.is-done { background: var(--gc-primary); border-color: var(--gc-primary); color: var(--gc-on-primary, #fff); }
.gg-cdash-player-pill.is-skip { background: var(--gc-warn); border-color: var(--gc-warn); color: #4a3a00; }
.gg-cdash-player-pill.is-current { box-shadow: 0 0 0 2px var(--gc-primary); border-color: var(--gc-primary); }

.gg-cdash-player-complete {
    text-align: center; background: var(--gc-surface); border: 1px solid var(--gc-border);
    border-radius: var(--gc-radius); padding: 28px 18px; margin-bottom: 12px; box-shadow: var(--gc-shadow);
}
.gg-cdash-player-complete-badge { color: var(--gc-primary); margin-bottom: 8px; }
.gg-cdash-player-complete-badge .gg-legacy-icon-root { font-size: 3rem; }
.gg-cdash-player-complete-title { font-size: 1.25rem; font-weight: 800; margin-bottom: 4px; }

/* Player tabok (Player | Gyakorlatok) + Fejlődés statisztika */
.gg-cdash-seg { display: flex; gap: 4px; background: var(--gc-surface-2); border-radius: 12px; padding: 4px; margin-bottom: 14px; }
.gg-cdash-seg-btn {
    flex: 1; border: none; background: transparent; border-radius: 9px; padding: 9px;
    font-weight: 800; font-size: .88rem; color: var(--gc-muted); cursor: pointer;
}
.gg-cdash-seg-btn.is-active { background: var(--gc-surface); color: var(--gc-accent-ink); box-shadow: 0 1px 4px rgba(17,24,39,.1); }

/* Szett-számláló az aktuális gyakorlat kártyában */
.gg-cdash-setdots { display: flex; align-items: center; gap: 11px; margin-top: 10px; flex-wrap: wrap; }
.gg-cdash-setdot {
    position: relative;
    width: 27px; height: 27px; border-radius: 50%; flex: none; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1.5px solid var(--gc-border); background: var(--gc-surface-2);
    color: var(--gc-muted); font-weight: 800; font-size: .8rem;
    transition: box-shadow .12s ease, border-color .12s ease;
}
/* Status is shown by the corner MARK below, not by colour (theme-accent-agnostic). */
.gg-cdash-setdot.is-filled { background: var(--gc-surface); border-color: var(--gc-text); color: var(--gc-text); }
.gg-cdash-setdot.is-skip { opacity: .45; }
.gg-cdash-setdot.is-current { box-shadow: 0 0 0 2px var(--gc-primary); border-color: var(--gc-primary); color: var(--gc-text); }
.gg-cdash-setdot-num { line-height: 1; }
.gg-cdash-setdot-mark {
    position: absolute; right: -5px; bottom: -5px;
    min-width: 15px; height: 15px; padding: 0 2px; border-radius: 999px;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--gc-text); color: var(--gc-surface);
    font-size: .62rem; font-weight: 900; line-height: 1;
    border: 1.5px solid var(--gc-surface);
}

/* %-os (1RM%) intenzitás jelzés + popup */
.gg-cdash-pct-row { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.gg-cdash-pct-chip { display: inline-flex; align-items: center; background: #DBEAFE; color: #1D4ED8; font-weight: 800; font-size: .82rem; padding: 5px 12px; border-radius: 999px; }
.gg-cdash-pct-chip.gg-cdash-bw-chip { background: var(--gc-primary-soft); color: var(--gc-accent-ink); }
.gg-cdash-bw-hint { font-size: .76rem; }
.gg-cdash-pct-info {
    display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px;
    border-radius: 50%; border: none; background: #DBEAFE; color: #1D4ED8; cursor: pointer; flex: none;
}
.gg-cdash-pct-info:hover { background: #c7dbfd; }
.gg-cdash-pct-popup {
    background: #EFF6FF; border: 1px solid #BFDBFE; color: #1e3a8a;
    border-radius: 12px; padding: 12px 14px; font-size: .85rem; line-height: 1.45; margin-bottom: 12px;
}

.gg-cdash-weight-wrap { width: 100%; }

/* Testsúlyos extra súly + / − vezérlő (kliens állítja) */
.gg-cdash-extraweight,
.gg-player-extraweight { display: flex; align-items: flex-start; gap: 8px; }
.gg-cdash-extraweight .gg-legacy-input-control,
.gg-player-extraweight .gg-legacy-input-control { flex: 1 1 auto; }
.gg-cdash-extraweight-sign,
.gg-extraweight-sign {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    margin-top: 2px;
    border-radius: 10px;
    border: 1px solid var(--gg-border, #d9d9d9);
    background: var(--gg-surface, #fff);
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.gg-cdash-extraweight-sign.is-plus,
.gg-extraweight-sign.is-plus { color: var(--gc-primary); border-color: var(--gc-primary); background: color-mix(in srgb, var(--gc-primary) 9%, transparent); }
.gg-cdash-extraweight-sign.is-minus,
.gg-extraweight-sign.is-minus { color: #C0392B; border-color: #C0392B; background: rgba(192,57,43,.08); }
.gg-cdash-extraweight-sign:disabled,
.gg-extraweight-sign:disabled { opacity: .5; cursor: not-allowed; }

.gg-cdash-weight-hint { display: flex; align-items: center; gap: 6px; color: #92660a; font-size: .8rem; font-weight: 600; margin-bottom: 12px; }
.gg-cdash-weight-hint .gg-legacy-icon-root { color: var(--gc-warn); }

.gg-cdash-player-inputs-2 { grid-template-columns: 1fr 1fr; }
.gg-cdash-set-inputs-2 { grid-template-columns: 1fr 1fr; }

.gg-cdash-stat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 6px; }

.gg-cdash-bars { display: flex; align-items: flex-end; justify-content: space-between; gap: 6px; height: 130px; }
.gg-cdash-bar-col { flex: 1; display: flex; flex-direction: column; align-items: center; height: 100%; }
.gg-cdash-bar-track { flex: 1; width: 100%; max-width: 26px; display: flex; align-items: flex-end; }
.gg-cdash-bar-fill { width: 100%; background: var(--gc-primary); border-radius: 6px 6px 3px 3px; min-height: 4px; transition: height .25s ease; }
.gg-cdash-bar-fill.is-empty { background: var(--gc-border); }
.gg-cdash-bar-val { font-size: .78rem; font-weight: 800; margin-top: 5px; }
.gg-cdash-bar-label { font-size: .64rem; color: var(--gc-muted); margin-top: 1px; }

.gg-cdash-cal-month { font-weight: 800; text-align: center; margin-bottom: 10px; text-transform: capitalize; }
.gg-cdash-cal-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-bottom: 6px; }
.gg-cdash-cal-weekdays span { text-align: center; font-size: .68rem; font-weight: 700; color: var(--gc-muted); }
.gg-cdash-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.gg-cdash-cal-day { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; border-radius: 9px; font-size: .8rem; font-weight: 600; color: var(--gc-text); }
.gg-cdash-cal-day.is-out { color: var(--gc-border); }
.gg-cdash-cal-day.is-active { background: var(--gc-primary); color: var(--gc-on-primary, #fff); font-weight: 800; }
.gg-cdash-cal-day.is-today { box-shadow: inset 0 0 0 2px var(--gc-primary); }
.gg-cdash-cal-day.is-today.is-active { box-shadow: none; }

/* Interaktív naptár-tab (kliens önidőzítés) */
.gg-cdash-cal-intro { margin: -4px 0 14px; }
.gg-cdash-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.gg-cdash-cal-head .gg-cdash-cal-month { margin-bottom: 0; flex: 1; }
.gg-cdash-cal-nav { width: 34px; height: 34px; border-radius: 9px; border: 1px solid var(--gc-border); background: var(--gc-surface); color: var(--gc-text); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.gg-cdash-cal-nav:hover { background: var(--gc-surface-2); }
.gg-cdash-cal-day { position: relative; }
.gg-cdash-cal-dots { position: absolute; bottom: 2px; left: 0; right: 0; display: flex; gap: 2px; justify-content: center; }
.gg-cdash-cal-group-events { position: absolute; left: 3px; right: 3px; bottom: 3px; display: grid; gap: 2px; }
.gg-cdash-cal-group-event { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border-radius: 4px; padding: 2px 4px; background: color-mix(in srgb, var(--gc-primary) 18%, var(--gc-surface)); border-left: 2px solid var(--gc-primary); color: var(--gc-text); font-size: .58rem; line-height: 1.15; text-align: left; }
/* Az ALAK különbözteti meg a modalitást (kör = online, háromszög = jelenléti), a szín mindig a témaszín.
   A KITÖLTÉS a státusz: tele = elvégzett, kontúr = még hátra. Téma-független, nincs színütközés. */
.gg-cdash-cal-mark { width: 16px; height: 16px; display: inline-block; vertical-align: middle; flex: none; }
.gg-cdash-cal-mark.is-done { fill: var(--gc-primary); stroke: none; }
.gg-cdash-cal-mark.is-open { fill: none; stroke: var(--gc-primary); stroke-width: 1.6; stroke-linejoin: round; }

/* mai nap erős kiemelése */
.gg-cdash-cal-day.is-today { background: var(--gc-primary-soft); box-shadow: inset 0 0 0 2px var(--gc-primary); }
.gg-cdash-cal-day.is-today span { color: var(--gc-accent-ink); font-weight: 800; }
.gg-cdash-cal-day.is-active.is-today { background: var(--gc-primary); box-shadow: none; }
.gg-cdash-cal-day.is-active.is-today span { color: var(--gc-on-primary, #fff); }

.gg-cdash-cal-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 12px; font-size: .76rem; color: var(--gc-muted); }
.gg-cdash-cal-legend-note { display: inline-flex; align-items: center; gap: 5px; }
.gg-cdash-cal-legend span { display: inline-flex; align-items: center; gap: 5px; }
.gg-cdash-cal-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.gg-cdash-cal-item-main { min-width: 0; }
.gg-cdash-cal-dateinput { flex: none; padding: 8px 10px; border-radius: 10px; border: 1px solid var(--gc-border); background: var(--gc-surface); color: var(--gc-text); font-size: .82rem; font-family: inherit; }
.gg-cdash-cal-dateinput:focus { outline: none; border-color: var(--gc-primary); }

.gg-cdash-topex { margin-bottom: 12px; }
.gg-cdash-topex:last-child { margin-bottom: 0; }
.gg-cdash-topex-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 5px; }
.gg-cdash-topex-name { font-weight: 700; font-size: .9rem; }
.gg-cdash-topex-track { height: 8px; border-radius: 999px; background: var(--gc-surface-2); overflow: hidden; }
.gg-cdash-topex-fill { height: 100%; border-radius: 999px; background: var(--gc-primary); }

/* ============================================================
   Edzéssablon szerkesztő — YC polish (P1 összegző + P2 szett-rács)
   ============================================================ */
.gg-tpl-summary { margin: 2px 0 2px; }
.gg-tpl-summary-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 10px; }
.gg-tpl-tile {
    background: color-mix(in srgb, var(--gg-palette-surface) 60%, transparent);
    border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,.07));
    border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px;
}
.gg-tpl-tile-val { font-size: 1.35rem; font-weight: 700; line-height: 1.05; color: var(--gg-palette-text-primary); }
.gg-tpl-tile-label { font-size: .72rem; color: var(--gg-palette-text-secondary); }
.gg-tpl-muscles { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.gg-tpl-muscle { font-size: .72rem; font-weight: 600; padding: 3px 10px; border-radius: 999px; background: color-mix(in srgb, var(--gg-palette-primary) 16%, transparent); color: var(--gg-palette-primary); }

.gg-ghost-add { border-style: dashed !important; }

.gg-tset-grid {
    display: grid;
    grid-template-columns: 30px 48px minmax(92px, 1.1fr) 56px 56px minmax(0, 1fr) auto;
    align-items: center; gap: 10px;
}
.gg-tset-head { padding: 0 10px 2px; font-size: .67rem; color: var(--gg-palette-text-secondary); text-transform: uppercase; letter-spacing: .04em; }
.gg-tset-row {
    padding: 7px 10px; border-radius: 10px; cursor: pointer;
    border: 1px solid transparent; transition: background .12s ease, border-color .12s ease;
}
.gg-tset-row:hover { background: color-mix(in srgb, var(--gg-palette-surface) 55%, transparent); }
.gg-tset-row.is-selected { border-color: var(--gg-palette-primary); background: color-mix(in srgb, var(--gg-palette-primary) 10%, transparent); }
.gg-tset-idx { width: 24px; height: 24px; border-radius: 50%; background: color-mix(in srgb, var(--gg-palette-surface) 75%, transparent); display: flex; align-items: center; justify-content: center; font-size: .8rem; font-weight: 700; color: var(--gg-palette-text-primary); }
.gg-tset-reps { font-size: .92rem; font-weight: 600; color: var(--gg-palette-text-primary); }
.gg-tset-cell { font-size: .82rem; color: var(--gg-palette-text-secondary); }
.gg-tset-row .gg-template-load-chip { justify-self: start; white-space: nowrap; }
.gg-tset-badges { display: flex; align-items: center; gap: 6px; min-width: 0; }
.gg-tset-typebadge { font-size: .67rem; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: color-mix(in srgb, var(--gg-palette-info) 18%, transparent); color: var(--gg-palette-info); }
.gg-tset-note-icon { color: var(--gg-palette-text-secondary); opacity: .85; }
.gg-tset-actions { display: flex; align-items: center; justify-self: end; }
.gg-tset-footer { display: flex; gap: 4px; padding-top: 2px; }
.gg-tset-exnote { margin-bottom: 2px; }
.gg-tset-exnote-view { display: flex; align-items: center; gap: 8px; font-size: .82rem; color: var(--gg-palette-text-secondary); padding: 2px 2px 4px; }

/* P3 — blokk + superset vizuál */
.gg-tpl-outline { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.gg-tpl-outline-chip { display: inline-flex; align-items: center; gap: 6px; font-size: .76rem; font-weight: 600; padding: 4px 11px 4px 4px; border-radius: 999px; background: color-mix(in srgb, var(--gg-palette-surface) 60%, transparent); border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,.07)); color: var(--gg-palette-text-secondary); }
.gg-tpl-outline-letter { width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: .72rem; background: color-mix(in srgb, var(--blk, var(--gg-palette-primary)) 22%, transparent); color: var(--blk, var(--gg-palette-primary)); }

.gg-tblock-c0 { --blk: var(--gg-palette-primary); }
.gg-tblock-c1 { --blk: var(--gg-palette-info); }
.gg-tblock-c2 { --blk: var(--gg-palette-success); }
.gg-tblock-c3 { --blk: var(--gg-palette-warning); }
.gg-tblock-c4 { --blk: var(--gg-palette-secondary, var(--gg-palette-primary)); }
.gg-template-exercise-group.gg-tblock { position: relative; }
.gg-template-exercise-group.gg-tblock::before {
    content: ""; position: absolute; left: 0; top: 8px; bottom: 8px; width: 4px;
    border-radius: 3px; background: var(--blk, var(--gg-palette-primary));
}
/* Blokk drag-drop átrendezés */
.gg-tblock-wrap { transition: opacity .12s ease; }
.gg-tblock-wrap.is-dragging { opacity: .45; }
.gg-tblock-wrap.is-dragover { position: relative; }
.gg-tblock-wrap.is-dragover::before {
    content: ""; position: absolute; left: 4px; right: 4px; top: -5px; height: 3px;
    border-radius: 3px; background: var(--gg-palette-primary); z-index: 3;
}
.gg-tblock-drag-handle {
    display: inline-flex; align-items: center; justify-content: center;
    cursor: grab; color: var(--gg-palette-text-secondary); flex: none;
    border-radius: 7px; padding: 2px; transition: color .12s, background .12s;
}
.gg-tblock-drag-handle:hover { color: var(--gg-palette-primary); background: color-mix(in srgb, var(--gg-palette-primary) 12%, transparent); }
.gg-tblock-drag-handle:active { cursor: grabbing; }

.gg-tblock-head-main { display: flex; align-items: center; gap: 10px; min-width: 0; }
.gg-tblock-letter { width: 30px; height: 30px; border-radius: 9px; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 1rem; flex: none; background: color-mix(in srgb, var(--blk, var(--gg-palette-primary)) 18%, transparent); color: var(--blk, var(--gg-palette-primary)); }
.gg-tblock-title-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.gg-tblock-superset-badge { font-size: .68rem; font-weight: 700; padding: 2px 9px; border-radius: 999px; background: color-mix(in srgb, var(--gg-palette-info) 18%, transparent); color: var(--gg-palette-info); }

.gg-tblock-subhead { display: flex; align-items: center; gap: 8px; margin: 8px 0 2px; }
.gg-tblock-sublabel { font-size: .72rem; font-weight: 800; padding: 2px 8px; border-radius: 7px; background: color-mix(in srgb, var(--blk, var(--gg-palette-primary)) 16%, transparent); color: var(--blk, var(--gg-palette-primary)); }
.gg-tblock-subname { font-weight: 600; font-size: .92rem; color: var(--gg-palette-text-primary); }
.gg-tblock-subcount { font-size: .76rem; margin-left: auto; }

/* Finom, de látható gyakorlat-attribútumok a blokk-fejlécben (szint/kategória/izom/erő/mechanika/eszköz). */
.gg-tblock-attrs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 14px;
    margin-top: 6px;
}
.gg-tblock-attrs-sub { margin: 2px 0 4px 38px; }
.gg-tblock-attrs .gg-level-tag,
.gg-tblock-attrs .gg-mg-tag,
.gg-tblock-attrs .gg-force-tag,
.gg-tblock-attrs .gg-mechanic-tag,
.gg-tblock-attrs .gg-category-tag,
.gg-tblock-attrs .gg-equip-tag {
    gap: 5px;
    font-size: .72rem;
    color: var(--gg-palette-text-secondary);
    opacity: .8;
}
.gg-tblock-attrs .gg-level-tag-img,
.gg-tblock-attrs .gg-mg-tag-img,
.gg-tblock-attrs .gg-force-tag-img,
.gg-tblock-attrs .gg-mechanic-tag-img,
.gg-tblock-attrs .gg-category-tag-img,
.gg-tblock-attrs .gg-equip-tag-frame { width: 20px; height: 20px; }

/* P4 — program board: hét-akcentus + drag-drop */
.gg-program-week-headline { display: flex; align-items: center; gap: 10px; }
.gg-program-week-badge {
    width: 28px; height: 28px; border-radius: 9px; flex: none;
    display: flex; align-items: center; justify-content: center;
    font-weight: 800; font-size: .95rem;
    background: color-mix(in srgb, var(--gg-palette-primary) 18%, transparent);
    color: var(--gg-palette-primary);
}
.gg-program-template-slot[draggable="true"] { cursor: grab; }
.gg-program-template-slot[draggable="true"]:active { cursor: grabbing; }
.gg-program-template-slot.is-dragging { opacity: .45; }
.gg-program-day-card.is-droppable {
    outline: 2px dashed color-mix(in srgb, var(--gg-palette-primary) 55%, transparent);
    outline-offset: 2px;
    background: color-mix(in srgb, var(--gg-palette-primary) 7%, transparent) !important;
}
.gg-program-progression-badge {
    margin-left: 6px; align-self: center; font-size: .72rem; font-weight: 800; padding: 3px 10px; border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-success) 20%, transparent); color: var(--gg-palette-success);
}
.gg-program-progression-badge.is-base { background: color-mix(in srgb, var(--gg-palette-text-secondary) 14%, transparent); color: var(--gg-palette-text-secondary); }

/* P5 — gazdag sablon-listakártyák */
.gg-tcard { display: flex !important; flex-direction: column; gap: 7px; align-items: stretch; text-align: left; }
.gg-tcard-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.gg-tcard-title { font-weight: 700; font-size: .95rem; color: var(--gg-palette-text-primary); }
.gg-tcard-diff { font-size: .68rem; font-weight: 700; padding: 2px 8px; border-radius: 999px; flex: none; background: color-mix(in srgb, var(--gg-palette-primary) 16%, transparent); color: var(--gg-palette-primary); }
.gg-tcard-notes { font-size: .8rem; color: var(--gg-palette-text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gg-tcard-muscles { display: flex; flex-wrap: wrap; gap: 5px; }
.gg-tcard-muscle { font-size: .68rem; font-weight: 600; padding: 2px 8px; border-radius: 999px; background: color-mix(in srgb, var(--gg-palette-surface) 60%, transparent); border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,.08)); color: var(--gg-palette-text-secondary); }
.gg-tcard-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.gg-tcard-dots { display: flex; align-items: center; gap: 4px; }
.gg-tcard-dot { width: 7px; height: 7px; border-radius: 50%; background: color-mix(in srgb, var(--gg-palette-primary) 55%, transparent); }
.gg-tcard-more { font-size: .68rem; color: var(--gg-palette-text-secondary); margin-left: 2px; }
.gg-tcard-counts { font-size: .72rem; color: var(--gg-palette-text-secondary); }

/* P6 — kliens-előnézet telefon-keret */
.gg-client-preview-wrap { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.gg-client-preview-bar { display: flex; align-items: center; gap: 8px; color: #fff; font-weight: 600; font-size: .9rem; }
.gg-client-preview-phone {
    width: 400px; max-width: 92vw; height: min(800px, 84vh);
    border-radius: 30px; overflow: hidden; border: 9px solid #0d0d0d; background: #fff;
    box-shadow: 0 22px 60px rgba(0,0,0,.55);
    position: relative; transform: translateZ(0);
}
.gg-client-preview-app { position: absolute !important; inset: 0 !important; transform: translateZ(0); }
.gg-client-preview-phone .gg-cdash-screen { max-width: 100% !important; box-shadow: none !important; }
.gg-client-preview-phone .gg-cdash-submit-bar { max-width: 100% !important; }

/* P8/P9 — gyakorlat-info karika + testsúlyos jelzés */
.gg-exinfo-btn { margin-left: -2px; opacity: .7; }
.gg-exinfo-btn:hover { opacity: 1; }
.gg-bodyweight-note { display: flex; align-items: center; gap: 8px; font-size: .82rem; color: var(--gg-palette-text-secondary); padding: 6px 0; }
.gg-bodyweight-note .gg-legacy-icon-root { color: var(--gg-palette-info); }


/* ============ Landing v3 - theme-aware (scoped .gg-landing-v2) ============ */

/* ---- tokens: dark ---- */
.gg-dark .gg-landing-v2 {
    --v2-bg: #08080B; --v2-surface: #101015; --v2-surface-2: #17171D;
    --v2-line: rgba(255,255,255,.07); --v2-line-2: rgba(255,255,255,.045); --v2-line-strong: rgba(255,255,255,.13);
    --v2-t1: #F4F4F5; --v2-t2: #A6A6B2; --v2-t3: #74747F;
    --v2-gold: #FAFAFA; --v2-gold-soft: rgba(255,255,255,.09); --v2-gold-hover: #FFFFFF;
    --v2-green: #FAFAFA;
    --v2-gold-fill: #FFFFFF; --v2-cta-text: #09090B;
    --v2-glow: radial-gradient(62% 52% at 50% -8%, rgba(255,255,255,.08) 0%, rgba(255,255,255,.02) 42%, transparent 70%);
    --v2-shadow: 0 1px 0 rgba(255,255,255,.04) inset, 0 24px 60px -16px rgba(0,0,0,.7);
    --v2-tex: rgba(255,255,255,.03);
}
/* ---- tokens: light ---- */
.gg-light .gg-landing-v2 {
    --v2-bg: #FBFBFE; --v2-surface: #F6F6FB; --v2-surface-2: #FFFFFF;
    --v2-line: rgba(17,17,19,.09); --v2-line-2: rgba(17,17,19,.06); --v2-line-strong: rgba(17,17,19,.16);
    --v2-t1: #16161C; --v2-t2: #52525B; --v2-t3: #8A8A93;
    --v2-gold: #16161C; --v2-gold-soft: rgba(17,17,19,.06); --v2-gold-hover: #000000;
    --v2-green: #16161C;
    --v2-gold-fill: #111113; --v2-cta-text: #FFFFFF;
    --v2-glow: radial-gradient(62% 50% at 50% -8%, rgba(17,17,19,.05) 0%, rgba(17,17,19,.015) 42%, transparent 70%);
    --v2-shadow: 0 1px 2px rgba(17,17,19,.04), 0 14px 34px rgba(17,17,19,.08);
    --v2-tex: rgba(0,0,0,.045);
}
.gg-landing-v2 {
    --v2-gold-fill: #111113;
    --v2-cta-text: #FFFFFF;
    --v2-serif: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --v2-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --v2-mono: ui-monospace, 'SF Mono', 'Segoe UI Mono', 'Roboto Mono', monospace;
    font-family: var(--v2-sans); color: var(--v2-t1);
    -webkit-font-smoothing: antialiased; font-optical-sizing: auto; position: relative; isolation: isolate;
}
.gg-dark .gg-landing-v2.gg-auth-landing,
.gg-light .gg-landing-v2.gg-auth-landing,
.gg-landing-v2.gg-auth-landing { background: var(--v2-bg) !important; }
.gg-landing-v2::before {
    content: ""; position: absolute; inset: 0 0 auto 0; height: 720px; z-index: 0; pointer-events: none;
    background: var(--v2-glow);
}
.gg-landing-v2::after {
    content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background-image: radial-gradient(var(--v2-tex) 1px, transparent 1px); background-size: 32px 32px;
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, transparent 60%);
    mask-image: linear-gradient(to bottom, #000 0%, transparent 60%);
}
.gg-landing-v2 > * { position: relative; z-index: 1; }

/* ---- háttér-videó (görgetéssel scrub-olt, monokróm) ---- */
.gg-landing-v2 .gg-auth-bg { position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.gg-landing-v2 .gg-auth-bg-video { width: 100%; height: 100%; object-fit: cover; display: block; }
.gg-landing-v2 .gg-auth-bg-scrim { position: absolute; inset: 0; }
.gg-dark .gg-landing-v2 .gg-auth-bg-scrim { background: linear-gradient(180deg, rgba(8,8,11,.50) 0%, rgba(8,8,11,.32) 38%, rgba(8,8,11,.38) 62%, rgba(8,8,11,.66) 100%); }
.gg-light .gg-landing-v2 .gg-auth-bg-scrim { background: linear-gradient(180deg, rgba(251,251,254,.66) 0%, rgba(251,251,254,.50) 38%, rgba(251,251,254,.55) 62%, rgba(251,251,254,.80) 100%); }
/* A központosított hero szöveg olvasható marad a most áttetszőbb videó felett. */
.gg-dark .gg-landing-v2 .gg-auth-copy h1, .gg-dark .gg-landing-v2 .gg-auth-lead, .gg-dark .gg-landing-v2 .gg-auth-kicker { text-shadow: 0 1px 24px rgba(0,0,0,.6); }
.gg-light .gg-landing-v2 .gg-auth-copy h1, .gg-light .gg-landing-v2 .gg-auth-lead, .gg-light .gg-landing-v2 .gg-auth-kicker { text-shadow: 0 1px 20px rgba(251,251,254,.85); }

/* ---- nav ---- */
.gg-landing-v2 .gg-auth-nav { max-width: 1200px; margin: 0 auto; padding: 20px clamp(20px,5vw,40px); }
.gg-landing-v2 .gg-auth-brand-mark { background: var(--v2-surface); border: 1px solid var(--v2-line-strong); color: var(--v2-t1); }
.gg-landing-v2 .gg-auth-brand-name { font-weight: 600; letter-spacing: -.01em; color: var(--v2-t1); }
.gg-landing-v2 .gg-auth-brand-sub { color: var(--v2-t3); }
.gg-landing-v2 .gg-auth-nav-link { color: var(--v2-t1); border: 1px solid var(--v2-line-strong); border-radius: 8px; text-transform: none; font-family: var(--v2-sans); font-weight: 500; background: transparent; padding: 8px 16px; font-size: 14px; cursor: pointer; transition: border-color .15s, background .15s; }
.gg-landing-v2 .gg-auth-nav-link:hover { border-color: var(--v2-gold); background: var(--v2-gold-soft); }
/* Sötét/világos kapcsoló a landing fejlécében — ugyanaz a vizuális nyelv, mint a LanguageSwitcher globuszáé.
   Az ikon a CÉL-állapotot mutatja (sötétben nap = „váltás világosra"). */
.gg-landing-v2 .gg-auth-theme-switch {
    display: inline-grid; place-items: center;
    width: 38px; height: 38px; padding: 0;
    background: transparent; border: 1px solid transparent; border-radius: 999px;
    color: var(--v2-t2); cursor: pointer;
    transition: color .15s ease, background .15s ease, border-color .15s ease;
}
.gg-landing-v2 .gg-auth-theme-switch:hover { color: var(--v2-t1); background: var(--v2-gold-soft); border-color: var(--v2-line-strong); }
.gg-landing-v2 .gg-auth-theme-switch:focus-visible { outline: 2px solid var(--v2-t1); outline-offset: 2px; }
.gg-landing-v2 .gg-auth-theme-switch svg { width: 19px; height: 19px; display: block; }

/* ---- hero (központosított, egyoszlopos: bold küldetés középen, termék-mockup alatta) ---- */
.gg-landing-v2 .gg-auth-hero {
    max-width: 980px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; text-align: center; gap: clamp(40px,6vw,64px);
    padding: clamp(64px,10vw,132px) clamp(20px,5vw,40px) clamp(40px,6vw,72px);
}
.gg-landing-v2 .gg-auth-copy { order: 1; display: flex; flex-direction: column; align-items: center; max-width: 820px; }
.gg-landing-v2 .gg-auth-product-stage { order: 2; position: static; inset: auto; z-index: auto; opacity: 1; pointer-events: auto; display: flex; justify-content: center; width: 100%; }
.gg-landing-v2 .gg-auth-pill { display: none; }
.gg-landing-v2 .gg-auth-copy h1 {
    font-family: var(--v2-serif); font-weight: 800; font-size: clamp(2.9rem,6.9vw,5.4rem); line-height: 1.0;
    letter-spacing: -.035em; color: var(--v2-t1); margin: 0 0 22px;
}
.gg-landing-v2 .gg-auth-copy h1 em { font-style: normal; color: var(--v2-gold); }
.gg-landing-v2 .gg-auth-lead {
    font-family: var(--v2-sans); font-size: clamp(1.1rem,1.5vw,1.35rem); line-height: 1.55; letter-spacing: -.005em;
    color: var(--v2-t2); max-width: 46ch; margin: 0 auto 34px;
}
.gg-landing-v2 .gg-auth-cta-row { margin: 0; display: flex; justify-content: center; }
.gg-landing-v2 .gg-auth-primary-cta {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    background: var(--v2-gold-fill) !important; color: var(--v2-cta-text) !important; height: 50px; padding: 0 26px; border: none !important;
    border-radius: 12px; font-family: var(--v2-sans); font-size: 15px; font-weight: 600; text-transform: none; cursor: pointer;
    box-shadow: 0 8px 24px -10px rgba(0,0,0,.45); transition: background .15s, transform .08s, box-shadow .2s, opacity .15s;
}
.gg-landing-v2 .gg-auth-primary-cta:hover { background: var(--v2-gold-hover) !important; transform: translateY(-1px); opacity: .92; }
.gg-landing-v2 .gg-auth-primary-cta:active { transform: translateY(0) scale(.99); }
.gg-landing-v2 .gg-auth-primary-cta .gg-legacy-icon-root { color: var(--v2-cta-text) !important; }
/* Másodlagos „próbáld ki fiók nélkül" CTA — outline a gold primary mellé
   FIGYELEM: a szöveg-tokenek neve --v2-t1 / --v2-t2 (NINCS --v2-heading / --v2-muted).
   A korábbi, nem létező nevek mindig a beégetett világos fallbackre estek vissza (#E8EBED),
   így világos témán fehér szöveg lett fehér háttéren — főleg :hover-en. */
.gg-landing-v2 .gg-auth-cta-row { flex-wrap: wrap; gap: 12px; }
.gg-landing-v2 .gg-auth-secondary-cta {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    background: transparent; color: var(--v2-t1); height: 50px; padding: 0 22px;
    border: 1px solid var(--v2-line-strong); border-radius: 12px; font-family: var(--v2-sans);
    font-size: 15px; font-weight: 600; cursor: pointer; transition: background .15s, transform .08s, border-color .15s, opacity .15s;
}
.gg-landing-v2 .gg-auth-secondary-cta:hover { background: var(--v2-surface); border-color: var(--v2-t1); transform: translateY(-1px); }
.gg-landing-v2 .gg-auth-secondary-cta:disabled { opacity: .6; cursor: default; transform: none; }
.gg-landing-v2 .gg-auth-secondary-cta .gg-legacy-icon-root { color: inherit; }
.gg-landing-v2 .gg-auth-demo-empty { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; margin-top: 4px; padding: 8px 12px; background: none; border: none; cursor: pointer; font-family: var(--v2-sans); font-size: 13px; color: var(--v2-t2); text-decoration: underline; text-underline-offset: 3px; transition: color .15s ease; }
.gg-landing-v2 .gg-auth-demo-empty:hover { color: var(--v2-t1); }
.gg-landing-v2 .gg-auth-proof-strip { display: none; }

/* ---- deck ---- */
.gg-landing-v2 .gg-auth-deck { width: min(380px,86vw); margin: 0; transform: none; position: relative; animation: gg-v2-float 6s ease-in-out infinite; }
.gg-landing-v2 .gg-auth-deck-card { transform: rotate(-2deg); border-radius: 16px; padding: 22px; background: var(--v2-surface); border: 1px solid var(--v2-line-strong); box-shadow: var(--v2-shadow); backdrop-filter: none; transition: transform .35s; }
.gg-landing-v2 .gg-auth-deck:hover .gg-auth-deck-card { transform: rotate(-1deg) translateY(-5px); }
.gg-landing-v2 .gg-auth-deck-ghost { background: var(--v2-surface); border: 1px solid var(--v2-line-2); filter: blur(.5px); border-radius: 16px; height: 92%; }
.gg-landing-v2 .gg-auth-deck-ghost-1 { transform: rotate(.5deg) translate(12px,12px) scale(.97); opacity: .55; }
.gg-landing-v2 .gg-auth-deck-ghost-2 { transform: rotate(3deg) translate(24px,24px) scale(.94); opacity: .3; }
.gg-landing-v2 .gg-auth-deck-head { margin-bottom: 16px; gap: 12px; }
.gg-landing-v2 .gg-auth-deck-client { font-size: 15px; font-weight: 600; letter-spacing: -.01em; color: var(--v2-t1); }
.gg-landing-v2 .gg-auth-deck-sub { font-size: 12px; color: var(--v2-t3); }
.gg-landing-v2 .gg-auth-deck-ring { width: 78px; height: 78px; flex-shrink: 0; aspect-ratio: 1/1; min-width: 78px; border: none; transform: none; color: var(--v2-t1); display: grid; place-items: center; background: radial-gradient(closest-side, var(--v2-surface) calc(100% - 6px), transparent 0), conic-gradient(var(--v2-gold) calc(var(--p,92)*1%), var(--v2-line-strong) 0); }
.gg-landing-v2 .gg-auth-deck-ring b { font-size: 18px; font-weight: 700; letter-spacing: -.02em; }
.gg-landing-v2 .gg-auth-deck-rows { gap: 0; }
.gg-landing-v2 .gg-auth-deck-row { grid-template-columns: 1fr auto auto; height: 44px; padding: 0 2px; border-radius: 0; background: none; border-top: 1px solid var(--v2-line-2); font-size: 14px; gap: 10px; }
.gg-landing-v2 .gg-auth-deck-row span { color: var(--v2-t1); }
.gg-landing-v2 .gg-auth-deck-row b { color: var(--v2-t2); font-size: 13px; font-weight: 500; }
.gg-landing-v2 .gg-auth-deck-row i { width: auto; height: auto; background: none !important; font-size: 13px; font-style: normal; }
.gg-landing-v2 .gg-auth-deck-row.is-done i { color: var(--v2-green); }
.gg-landing-v2 .gg-auth-deck-row.is-warn { background: var(--v2-gold-soft); border-radius: 8px; border-top: none; padding: 0 10px; margin: 2px 0; }
.gg-landing-v2 .gg-auth-deck-row.is-warn b, .gg-landing-v2 .gg-auth-deck-row.is-warn i { color: var(--v2-gold); }
.gg-landing-v2 .gg-auth-deck-foot { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--v2-line); }
.gg-landing-v2 .gg-auth-deck-count { color: var(--v2-t3); font-weight: 500; }
.gg-landing-v2 .gg-auth-deck-ok { background: var(--v2-surface-2); border: 1px solid var(--v2-line-strong); color: var(--v2-t1); font-size: 12px; font-weight: 600; padding: 6px 16px; border-radius: 999px; }

/* ═══ Játszható review-pakli ════════════════════════════════════════════════
   A felső kártya interaktív; a mögötte lévők abszolút pozíciójúak, ezért nem
   nyújtják a konténert. A pakli FOGY, ahogy jóváhagysz — a haladás vizuális. */
.gg-landing-v2 .gg-auth-deck { min-height: 380px; }
.gg-landing-v2 .gg-auth-deck-card { transition: transform .45s cubic-bezier(.16, 1, .3, 1), opacity .45s ease; }
.gg-landing-v2 .gg-auth-deck-card.gg-deck-depth-1,
.gg-landing-v2 .gg-auth-deck-card.gg-deck-depth-2 { position: absolute; left: 0; right: 0; top: 0; bottom: 0; overflow: hidden; pointer-events: none; }
.gg-landing-v2 .gg-auth-deck-card.gg-deck-depth-1 { transform: rotate(.5deg) translate(12px, 12px) scale(.97); opacity: .55; }
.gg-landing-v2 .gg-auth-deck-card.gg-deck-depth-2 { transform: rotate(3deg) translate(24px, 24px) scale(.94); opacity: .3; }
/* a hover-emelés csak a felső, megfogható kártyára vonatkozzon */
.gg-landing-v2 .gg-auth-deck:hover .gg-auth-deck-card { transform: rotate(-2deg); }
.gg-landing-v2 .gg-auth-deck:hover .gg-auth-deck-card.gg-deck-depth-0 { transform: rotate(-1deg) translateY(-5px); }
.gg-landing-v2 .gg-auth-deck:hover .gg-auth-deck-card.gg-deck-depth-1 { transform: rotate(.5deg) translate(12px, 12px) scale(.97); }
.gg-landing-v2 .gg-auth-deck:hover .gg-auth-deck-card.gg-deck-depth-2 { transform: rotate(3deg) translate(24px, 24px) scale(.94); }

@keyframes ggDeckApprove {
    0%   { transform: rotate(-2deg); opacity: 1; }
    100% { transform: translate(46px, -96px) rotate(9deg) scale(.92); opacity: 0; }
}
.gg-landing-v2 .gg-auth-deck-card.is-leaving,
.gg-landing-v2 .gg-auth-deck:hover .gg-auth-deck-card.is-leaving { animation: ggDeckApprove .52s cubic-bezier(.4, 0, .6, 1) forwards; transition: none; }

/* visszajelzés-sáv */
.gg-landing-v2 .gg-auth-deck-comment {
    display: flex; align-items: center; gap: 8px; margin-top: 14px; min-height: 44px;
    padding: 6px 6px 6px 13px; border: 1px solid var(--v2-line-strong); border-radius: 999px; background: var(--v2-surface-2);
}
.gg-landing-v2 .gg-auth-deck-comment-input {
    flex: 1; min-width: 0; border: 0; outline: none; background: none;
    min-height: 44px; font-family: var(--v2-sans); font-size: 13px; color: var(--v2-t1);
}
.gg-landing-v2 .gg-auth-deck-comment-input::placeholder { color: var(--v2-t3); }
.gg-landing-v2 .gg-auth-deck-comment-send {
    flex: none; width: 44px; height: 44px; display: grid; place-items: center; padding: 0;
    border: none; border-radius: 999px; cursor: pointer;
    background: var(--v2-gold-fill); color: var(--v2-cta-text);
    transition: opacity .15s ease, transform .1s ease;
}
.gg-landing-v2 .gg-auth-deck-comment-send:hover:not(:disabled) { transform: translateX(1px); }
.gg-landing-v2 .gg-auth-deck-comment-send:disabled { opacity: .3; cursor: default; }
.gg-landing-v2 .gg-auth-deck-comment-send svg { width: 15px; height: 15px; }
.gg-landing-v2 .gg-auth-deck-comment-sent {
    display: inline-flex; align-items: center; gap: 8px; padding: 5px 2px;
    font-family: var(--v2-sans); font-size: 12.5px; font-weight: 600; color: var(--v2-t2);
    animation: ggDeckSent .35s cubic-bezier(.16, 1, .3, 1) both;
}
.gg-landing-v2 .gg-auth-deck-comment-sent svg { width: 14px; height: 14px; color: var(--v2-t1); }
@keyframes ggDeckSent { from { opacity: 0; transform: translateX(-6px); } to { opacity: 1; transform: none; } }

/* jóváhagyó gomb — magas kontraszt ALAPBÓL (kitöltött, nem halvány) + hangsúlyos, figyelemhívó
   ritmusos rázás/pulzálás, hogy egyértelmű legyen a fő interakció */
.gg-landing-v2 .gg-auth-deck-ok { position: relative; min-height: 44px; cursor: pointer; transition: transform .08s ease, box-shadow .15s ease; }
.gg-landing-v2 .gg-auth-deck-ok:not(:disabled) { background: var(--v2-gold-fill); color: var(--v2-cta-text); border-color: transparent; box-shadow: 0 4px 14px -4px var(--v2-gold-fill); animation: ggDeckNudge 3s ease-in-out infinite; transform-origin: center; }
.gg-landing-v2 .gg-auth-deck-ok::after { content: ""; position: absolute; inset: -2px; border-radius: 999px; pointer-events: none; animation: ggDeckPulse 2.4s ease-out infinite; }
@keyframes ggDeckPulse { 0% { box-shadow: 0 0 0 0 var(--v2-gold-fill); } 70%, 100% { box-shadow: 0 0 0 11px transparent; } }
/* rövid, hangsúlyos rázás minden ciklus ELEJÉN, aztán nyugalom — nem zaklató, de észrevehető */
@keyframes ggDeckNudge {
  0%, 82%, 100% { transform: translateX(0) rotate(0); }
  85% { transform: translateX(-2.5px) rotate(-1.4deg); }
  88% { transform: translateX(2.5px) rotate(1.4deg); }
  91% { transform: translateX(-2px) rotate(-1deg); }
  94% { transform: translateX(2px) rotate(1deg); }
  97% { transform: translateX(-1px) rotate(0); }
}
.gg-landing-v2 .gg-auth-deck-ok:hover:not(:disabled) { background: var(--v2-gold-hover); animation-play-state: paused; box-shadow: 0 6px 18px -4px var(--v2-gold-fill); }
.gg-landing-v2 .gg-auth-deck-ok:active:not(:disabled) { transform: scale(.96); }
.gg-landing-v2 .gg-auth-deck-ok:disabled { opacity: .5; cursor: default; }
.gg-landing-v2 .gg-auth-deck-ok:disabled::after { animation: none; }

/* „mára kész" panel */
.gg-landing-v2 .gg-auth-deck-done {
    display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 10px;
    min-height: 380px; padding: 32px 26px; transform: rotate(-1deg);
    animation: ggHeroRise .5s cubic-bezier(.16, 1, .3, 1) both;
}
.gg-landing-v2 .gg-auth-deck-done-ic { width: 58px; height: 58px; border-radius: 999px; display: grid; place-items: center; border: 1.5px solid var(--v2-line-strong); color: var(--v2-t1); }
.gg-landing-v2 .gg-auth-deck-done-ic svg { width: 26px; height: 26px; stroke-dasharray: 32; stroke-dashoffset: 32; animation: ggDeckCheck .5s .2s cubic-bezier(.16, 1, .3, 1) forwards; }
@keyframes ggDeckCheck { to { stroke-dashoffset: 0; } }
.gg-landing-v2 .gg-auth-deck-done h3 { margin: 8px 0 0; font-family: var(--v2-serif); font-size: 20px; font-weight: 700; letter-spacing: -.02em; line-height: 1.25; color: var(--v2-t1); max-width: 22ch; }
.gg-landing-v2 .gg-auth-deck-done p { margin: 0; font-family: var(--v2-sans); font-size: 13px; line-height: 1.5; color: var(--v2-t2); max-width: 32ch; }
.gg-landing-v2 .gg-auth-deck-restart {
    margin-top: 8px; padding: 7px 18px; border-radius: 999px; cursor: pointer;
    background: transparent; border: 1px solid var(--v2-line-strong); color: var(--v2-t2);
    font-family: var(--v2-sans); font-size: 12px; font-weight: 600;
    transition: color .15s ease, background .15s ease;
}
.gg-landing-v2 .gg-auth-deck-restart:hover { color: var(--v2-t1); background: var(--v2-gold-soft); }

@media (prefers-reduced-motion: reduce) {
    .gg-landing-v2 .gg-auth-deck { animation: none; }
    .gg-landing-v2 .gg-auth-deck-ok::after,
    .gg-landing-v2 .gg-auth-deck-ok:not(:disabled),
    .gg-landing-v2 .gg-auth-deck-done-ic svg { animation: none; }
    .gg-landing-v2 .gg-auth-deck-done-ic svg { stroke-dashoffset: 0; }
    .gg-landing-v2 .gg-auth-deck-card.is-leaving { animation-duration: .2s; }
}

/* ---- full-width band (marquee ticker) ---- */
.gg-landing-v2 .gg-auth-band { width: 100%; overflow: hidden; border-top: 1px solid var(--v2-line); border-bottom: 1px solid var(--v2-line); background: var(--v2-surface); display: flex; align-items: center; height: 56px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.gg-landing-v2 .gg-auth-band-track { display: flex; flex-shrink: 0; animation: gg-v2-marquee 42s linear infinite; }
.gg-landing-v2 .gg-auth-band-group { display: flex; gap: 44px; padding-right: 44px; flex-shrink: 0; }
.gg-landing-v2 .gg-auth-band-item { font-family: var(--v2-mono); font-size: 12.5px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: var(--v2-t3); display: inline-flex; align-items: center; gap: 10px; white-space: nowrap; }
.gg-landing-v2 .gg-auth-band-item::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--v2-gold); opacity: .75; flex-shrink: 0; }

/* ---- feature grid ---- */
.gg-landing-v2 .gg-auth-features { max-width: 1200px; margin: 0 auto; padding: clamp(64px,9vw,120px) clamp(20px,5vw,40px); }
.gg-landing-v2 .gg-auth-features-head { max-width: 680px; margin-left: auto; margin-right: auto; text-align: center; }
.gg-landing-v2 .gg-auth-features-grid { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); }
.gg-landing-v2 .gg-auth-feature { position: relative; background: var(--v2-surface); border: 1px solid var(--v2-line); border-radius: 16px; padding: 26px 24px; box-shadow: var(--v2-shadow); transition: border-color .2s, transform .2s; overflow: hidden; }
.gg-landing-v2 .gg-auth-feature:hover { transform: translateY(-3px); border-color: var(--v2-line-strong); }
.gg-landing-v2 .gg-auth-feature::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: radial-gradient(80% 60% at 50% 0%, var(--v2-gold-soft), transparent 60%); opacity: 0; transition: opacity .25s; }
.gg-landing-v2 .gg-auth-feature:hover::after { opacity: 1; }
.gg-landing-v2 .gg-auth-feature > * { position: relative; z-index: 1; }
.gg-landing-v2 .gg-auth-feature-ico { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; background: var(--v2-gold-soft); color: var(--v2-gold); margin-bottom: 16px; border: 1px solid var(--v2-line); }
.gg-landing-v2 .gg-auth-feature-ico .gg-legacy-icon-root { font-size: 20px; color: var(--v2-gold); }
.gg-landing-v2 .gg-auth-feature h3 { font-family: var(--v2-sans); font-size: 1.0625rem; font-weight: 600; letter-spacing: -.01em; color: var(--v2-t1); margin: 0 0 8px; }
.gg-landing-v2 .gg-auth-feature p { font-family: var(--v2-sans); font-size: .9rem; line-height: 1.55; color: var(--v2-t2); margin: 0; }

/* ---- feature screenshots gallery ---- */
.gg-landing-v2 .gg-auth-shots { max-width: 1200px; margin: 0 auto; padding: clamp(8px,2vw,16px) clamp(20px,5vw,40px) clamp(56px,8vw,96px); }
.gg-landing-v2 .gg-auth-shots-grid { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.gg-landing-v2 .gg-auth-shot { margin: 0; background: var(--v2-surface); border: 1px solid var(--v2-line); border-radius: 16px; overflow: hidden; box-shadow: var(--v2-shadow); transition: transform .2s, border-color .2s; }
.gg-landing-v2 .gg-auth-shot:hover { transform: translateY(-3px); border-color: var(--v2-line-strong); }
.gg-landing-v2 .gg-auth-shot-frame { position: relative; aspect-ratio: 16 / 9; background: var(--v2-surface-2); border-bottom: 1px solid var(--v2-line); overflow: hidden; }
.gg-landing-v2 .gg-auth-shot-frame::before {
    content: "GymGo";
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: var(--v2-t3);
    font-weight: 800;
    font-size: clamp(1.4rem, 3vw, 2.2rem);
    opacity: .22;
    background:
        linear-gradient(90deg, transparent 0 31%, var(--v2-line-2) 31% 31.5%, transparent 31.5% 65%, var(--v2-line-2) 65% 65.5%, transparent 65.5%),
        linear-gradient(180deg, transparent 0 34%, var(--v2-line-2) 34% 34.5%, transparent 34.5% 68%, var(--v2-line-2) 68% 68.5%, transparent 68.5%);
}
.gg-landing-v2 .gg-auth-shot-frame img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; object-position: top left; display: block; }
.gg-landing-v2 .gg-auth-shot figcaption { padding: 16px 18px; }
.gg-landing-v2 .gg-auth-shot figcaption strong { display: block; font-family: var(--v2-sans); font-weight: 700; font-size: 1rem; color: var(--v2-t1); margin-bottom: 4px; }
.gg-landing-v2 .gg-auth-shot figcaption span { font-size: .88rem; line-height: 1.5; color: var(--v2-t2); }

/* ---- section heads (serif) ---- */
.gg-landing-v2 .gg-auth-flow-section { max-width: 1200px; margin: 0 auto; padding: clamp(56px,8vw,104px) clamp(20px,5vw,40px); }
.gg-landing-v2 .gg-auth-section-head { text-align: left; max-width: 680px; margin: 0 0 44px; }
.gg-landing-v2 .gg-auth-panel-badge { font-family: var(--v2-mono); font-size: 12px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--v2-gold); background: none; border: none; padding: 0; }
.gg-landing-v2 .gg-auth-section-head h2 { font-family: var(--v2-serif); font-size: clamp(1.75rem,3vw,2.75rem); font-weight: 700; line-height: 1.1; letter-spacing: -.015em; color: var(--v2-t1); margin: 14px 0 12px; }
.gg-landing-v2 .gg-auth-section-head p { font-family: var(--v2-sans); color: var(--v2-t2); font-size: 1.05rem; line-height: 1.6; margin: 0; }

/* ---- loop steps ---- */
.gg-landing-v2 .gg-auth-loop { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(260px,1fr)); }
.gg-landing-v2 .gg-auth-loop-step { background: var(--v2-surface); border: 1px solid var(--v2-line); border-radius: 16px; padding: 26px; box-shadow: var(--v2-shadow); }
.gg-landing-v2 .gg-auth-loop-num { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; color: var(--v2-gold); border: 1px solid var(--v2-line-strong); background: var(--v2-gold-soft); font-family: var(--v2-mono); font-weight: 600; margin-bottom: 16px; }
.gg-landing-v2 .gg-auth-loop-art { display: inline-grid; place-items: center; width: 60px; height: 60px; border-radius: 16px; color: var(--v2-gold); border: 1px solid var(--v2-line-strong); background: var(--v2-gold-soft); margin-bottom: 18px; }
.gg-landing-v2 .gg-auth-loop-art svg { width: 32px; height: 32px; }
.gg-landing-v2 .gg-auth-loop-step strong { display: block; font-family: var(--v2-sans); color: var(--v2-t1); font-weight: 600; font-size: 1.1rem; letter-spacing: -.01em; margin-bottom: 6px; }
.gg-landing-v2 .gg-auth-loop-step p { font-family: var(--v2-sans); color: var(--v2-t2); font-size: .92rem; line-height: 1.55; margin: 0; }

/* ---- proof ---- */
.gg-landing-v2 .gg-auth-proof-section { max-width: 1100px; margin: 0 auto clamp(64px,9vw,110px); background: var(--v2-surface); border: 1px solid var(--v2-line); border-radius: 20px; padding: clamp(32px,5vw,56px); display: grid; gap: 28px; }
.gg-landing-v2 .gg-auth-quote { margin: 0; }
.gg-landing-v2 .gg-auth-quote blockquote { font-family: var(--v2-serif); font-size: clamp(1.3rem,2.4vw,1.9rem); font-weight: 400; font-style: italic; line-height: 1.35; letter-spacing: -.01em; color: var(--v2-t1); margin: 0; }
.gg-landing-v2 .gg-auth-quote figcaption { font-family: var(--v2-sans); color: var(--v2-t3); margin-top: 14px; font-size: .9rem; }
.gg-landing-v2 .gg-auth-quote-punch { font-family: var(--v2-sans); margin: 18px 0 0; font-size: clamp(1rem, 1.6vw, 1.12rem); font-weight: 700; letter-spacing: -.01em; color: var(--v2-t1); }
.gg-landing-v2 .gg-auth-proof-cta { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }

/* ---- auth overlay (theme-aware via tokens) ---- */
.gg-landing-v2 .gg-auth-overlay { position: fixed; inset: 0; z-index: 1300; display: grid; place-items: center; padding: 20px; background: rgba(0,0,0,.6); backdrop-filter: blur(6px); animation: gg-v2-fade .2s ease; }
.gg-landing-v2 .gg-auth-overlay .gg-auth-panel { background: var(--v2-surface) !important; border: 1px solid var(--v2-line-strong) !important; border-radius: 18px !important; box-shadow: var(--v2-shadow) !important; width: min(420px,94vw); max-height: 92vh; overflow-y: auto; padding: 30px 28px !important; position: relative; animation: gg-v2-rise .26s cubic-bezier(.16,1,.3,1); }
.gg-landing-v2 .gg-auth-overlay-close { position: absolute; top: 14px; right: 14px; width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--v2-line-strong); background: var(--v2-surface-2); color: var(--v2-t2); font-size: 19px; line-height: 1; cursor: pointer; display: grid; place-items: center; }
.gg-landing-v2 .gg-auth-overlay-close:hover { color: var(--v2-t1); border-color: var(--v2-gold); }
.gg-landing-v2 .gg-auth-overlay .gg-auth-panel-badge { color: var(--v2-gold); }
.gg-landing-v2 .gg-auth-overlay .gg-auth-panel-header h2 { font-family: var(--v2-serif); font-weight: 700; font-size: 1.5rem; line-height: 1.2; letter-spacing: -.01em; color: var(--v2-t1); }
.gg-landing-v2 .gg-auth-overlay .gg-auth-panel-header p { font-family: var(--v2-sans); color: var(--v2-t2); }
.gg-landing-v2 .gg-auth-overlay .gg-auth-tabs .gg-legacy-tabs-tabbar { background: var(--v2-surface-2); border-radius: 10px; border: 1px solid var(--v2-line); }
.gg-landing-v2 .gg-auth-overlay .gg-legacy-tab { color: var(--v2-t2); text-transform: none; font-family: var(--v2-sans); }
.gg-landing-v2 .gg-auth-overlay .gg-legacy-tab.gg-legacy-tab-active { color: var(--v2-t1); }
.gg-landing-v2 .gg-auth-overlay .gg-legacy-tab-slider { background: var(--v2-gold) !important; }

/* ---- auth form (Legacy-mentes: tabseg + Gg-mezők) ---- */
.gg-landing-v2 .gg-auth-tabseg { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; background: var(--v2-surface-2); border: 1px solid var(--v2-line); border-radius: 10px; margin-bottom: 18px; }
.gg-landing-v2 .gg-auth-tabseg-btn { border: none; background: transparent; color: var(--v2-t2); font-family: var(--v2-sans); font-size: 14px; font-weight: 600; padding: 9px 0; border-radius: 7px; cursor: pointer; transition: background .15s, color .15s; }
.gg-landing-v2 .gg-auth-tabseg-btn:hover { color: var(--v2-t1); }
.gg-landing-v2 .gg-auth-tabseg-btn.is-active { background: var(--v2-surface); color: var(--v2-t1); box-shadow: 0 1px 3px rgba(0, 0, 0, .18); }
.gg-landing-v2 .gg-auth-form { display: flex; flex-direction: column; gap: 14px; }
.gg-landing-v2 .gg-auth-btn-stack { display: flex; flex-direction: column; gap: 10px; }
.gg-landing-v2 .gg-fld-error { font-size: .8rem; color: var(--gg-palette-error, #e5484d); margin-top: 4px; }
.gg-landing-v2 .gg-auth-oauth-divider { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 10px; color: var(--v2-t3); font-size: .75rem; margin-top: 2px; }
.gg-landing-v2 .gg-auth-oauth-divider span { height: 1px; background: var(--v2-line); }
.gg-landing-v2 .gg-auth-oauth-divider b { font-weight: 600; }
.gg-landing-v2 .gg-auth-google-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; border: 1px solid var(--v2-line); border-radius: 8px; background: var(--v2-surface-2); color: var(--v2-t1); font: 600 14px var(--v2-sans); cursor: pointer; }
.gg-landing-v2 .gg-auth-google-button:hover:not(:disabled) { border-color: var(--v2-gold); background: var(--v2-surface); }
.gg-landing-v2 .gg-auth-google-button:disabled { cursor: not-allowed; opacity: .55; }
.gg-landing-v2 .gg-auth-google-g { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: #4285f4; font: 700 14px Arial, sans-serif; }
.gg-landing-v2 .gg-auth-oauth-note { margin: -5px 0 0; color: var(--v2-t3); font-size: .75rem; line-height: 1.4; text-align: center; }
.gg-landing-v2 .gg-auth-progress-bar { position: relative; height: 3px; border-radius: 999px; background: var(--v2-line); overflow: hidden; }
.gg-landing-v2 .gg-auth-progress-bar span { position: absolute; inset: 0; width: 40%; border-radius: inherit; background: var(--v2-gold); animation: gg-auth-progress-slide 1.1s ease-in-out infinite; }
@keyframes gg-auth-progress-slide { 0% { left: -40%; } 100% { left: 100%; } }
.gg-landing-v2 .gg-auth-progress { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.gg-landing-v2 .gg-auth-progress-text { font-size: .82rem; color: var(--v2-t3); }

/* ---- motion ---- */
@keyframes gg-v2-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes gg-v2-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes gg-v2-rise { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes gg-v2-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

@media (max-width: 900px) {
    .gg-landing-v2 .gg-auth-hero { grid-template-columns: 1fr; gap: 36px; }
    .gg-landing-v2 .gg-auth-copy { order: 0; }
    .gg-landing-v2 .gg-auth-product-stage { order: 1; justify-content: flex-start; }
    .gg-landing-v2 .gg-auth-section-head { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
    .gg-landing-v2 .gg-auth-deck { animation: none; }
    .gg-landing-v2 .gg-auth-band-track { animation: none; }
}


/* ---- Landing v3 serif override (beats .gg-auth-copy h1 font !important) ---- */
.gg-landing-v2 .gg-auth-copy h1,
.gg-landing-v2 .gg-auth-section-head h2,
.gg-landing-v2 .gg-auth-overlay .gg-auth-panel-header h2,
.gg-landing-v2 .gg-auth-quote blockquote {
    font-family: var(--v2-serif) !important;
}
.gg-landing-v2 .gg-auth-copy h1 { letter-spacing: -.035em !important; font-weight: 800 !important; }
.gg-landing-v2 .gg-auth-section-head h2 { letter-spacing: -.025em !important; font-weight: 800 !important; }


/* ---- Brand logo marks (GymGo sphere) — no visible container, larger ---- */
.gg-logo-mark, .gg-auth-brand-mark,
.gg-dark .gg-logo-mark, .gg-dark .gg-auth-brand-mark,
.gg-light .gg-logo-mark, .gg-light .gg-auth-brand-mark {
    background: none !important; border: none !important; box-shadow: none !important;
}
/* app sidebar / onboarding mark */
.gg-logo-mark { width: 60px; height: 60px; border-radius: 0; overflow: visible; padding: 0; }
.gg-logo-mark-img { width: 100%; height: 100%; object-fit: contain; display: none; }
.gg-dark .gg-logo-mark-img--dark { display: block; }
.gg-light .gg-logo-mark-img--light { display: block; }
/* landing nav mark */
.gg-landing-v2 .gg-auth-brand-mark { width: 56px; height: 56px; padding: 0; overflow: visible; }
.gg-landing-v2 .gg-brand-mark-img { width: 100%; height: 100%; object-fit: contain; display: none; }
.gg-dark .gg-landing-v2 .gg-brand-mark-img--dark { display: block; }
.gg-light .gg-landing-v2 .gg-brand-mark-img--light { display: block; }


/* ---- Exercises: filter trigger ---- */
.gg-filter-open-btn.ggbtn {
    border-color: var(--gg-border-strong);
    background: color-mix(in srgb, var(--gg-surface) 88%, var(--gg-surface-muted));
}
.gg-filter-open-btn.ggbtn:hover {
    border-color: color-mix(in srgb, var(--gg-accent) 40%, var(--gg-border-strong));
    background: color-mix(in srgb, var(--gg-accent) 8%, var(--gg-surface));
}
.gg-filter-open-btn.is-active.ggbtn {
    border-color: color-mix(in srgb, var(--gg-accent) 62%, var(--gg-border));
    color: var(--gg-text);
    background: color-mix(in srgb, var(--gg-accent) 14%, var(--gg-surface));
}
.gg-filter-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    margin-left: 8px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1;
    background: var(--gg-accent);
    color: #1D2B36;
}
.gg-filter-open-btn.is-active .gg-filter-count {
    background: var(--gg-text);
    color: var(--gg-surface);
}


/* ---- Landing: hero kicker + band trust caption ---- */
.gg-landing-v2 .gg-auth-kicker {
    font-family: var(--v2-sans);
    font-size: clamp(1.05rem, 1.5vw, 1.35rem);
    font-weight: 600;
    letter-spacing: -.01em;
    text-transform: none !important;
    color: var(--v2-gold);
    margin: 0 0 14px;
}

/* ═══ Hero belépő koreográfia ═══════════════════════════════════════════════
   1) a kérdés nagyban, a hero közepe felé tolva     (0 → .95s, majd tart)
   2) a saját helyére húzódik / visszazsugorodik     (.95s → 1.55s)
   3) a két címsor-sor maszkolva felúszik            (1.45s, 1.60s)
   4) lead → CTA-sor → „üres demó" link              (2.05s → 2.40s)
   A rejtett elemek a HELYÜKÖN maradnak (opacity:0, nem display:none),
   így a kicker nem ugrik, amikor a többi megjelenik. */
.gg-hero-intro {
    /* drop = a nyugalmi helyétől a fold vizuális közepéig; scale úgy, hogy a szöveg
       a legkeskenyebb kijelzőn se lógjon ki (a kicker doboza fit-content, nem teljes szélesség) */
    --gg-kick-drop: 180px;
    --gg-kick-scale: 2.55;
}
@media (max-width: 900px) { .gg-hero-intro { --gg-kick-drop: 130px; --gg-kick-scale: 2.0; } }
@media (max-width: 560px) { .gg-hero-intro { --gg-kick-drop: 92px; --gg-kick-scale: 1.55; } }
@media (max-width: 400px) { .gg-hero-intro { --gg-kick-drop: 80px; --gg-kick-scale: 1.4; } }

@keyframes ggHeroKicker {
    0%   { opacity: 0; transform: translateY(var(--gg-kick-drop)) scale(var(--gg-kick-scale)); }
    16%  { opacity: 1; transform: translateY(var(--gg-kick-drop)) scale(var(--gg-kick-scale)); }
    50%  { opacity: 1; transform: translateY(var(--gg-kick-drop)) scale(var(--gg-kick-scale)); }
    100% { opacity: 1; transform: none; }
}
@keyframes ggHeroLine { from { transform: translateY(112%); } to { transform: none; } }
@keyframes ggHeroRise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

.gg-landing-v2 .gg-hero-intro .gg-auth-kicker {
    transform-origin: 50% 50%;
    will-change: transform, opacity;
    animation: ggHeroKicker 1.55s cubic-bezier(.22, 1, .36, 1) both;
}

/* Soronkénti maszk. A padding/negatív margó a leszárak (g, j, y) levágását előzi meg. */
.gg-landing-v2 .gg-hero-intro h1 .gg-hero-line {
    display: block;
    overflow: hidden;
    padding-bottom: .14em;
    margin-bottom: -.14em;
}
.gg-landing-v2 .gg-hero-intro h1 .gg-hero-line > span {
    display: block;
    will-change: transform;
    animation: ggHeroLine .9s cubic-bezier(.16, 1, .3, 1) both;
}
.gg-landing-v2 .gg-hero-intro h1 .gg-hero-line:nth-child(1) > span { animation-delay: 1.45s; }
.gg-landing-v2 .gg-hero-intro h1 .gg-hero-line:nth-child(2) > span { animation-delay: 1.60s; }

.gg-landing-v2 .gg-hero-intro .gg-auth-lead      { animation: ggHeroRise .7s cubic-bezier(.16, 1, .3, 1) 2.05s both; }
.gg-landing-v2 .gg-hero-intro .gg-auth-cta-row   { animation: ggHeroRise .7s cubic-bezier(.16, 1, .3, 1) 2.25s both; }
.gg-landing-v2 .gg-hero-intro .gg-auth-demo-empty { animation: ggHeroRise .7s cubic-bezier(.16, 1, .3, 1) 2.40s both; }
/* a termék-makett a szöveg UTÁN érkezik, hogy ne vonja el a figyelmet a kérdésről */
.gg-landing-v2 .gg-auth-hero .gg-auth-product-stage { animation: ggHeroRise .9s cubic-bezier(.16, 1, .3, 1) 2.55s both; }

@media (prefers-reduced-motion: reduce) {
    .gg-landing-v2 .gg-hero-intro .gg-auth-kicker,
    .gg-landing-v2 .gg-hero-intro h1 .gg-hero-line > span,
    .gg-landing-v2 .gg-hero-intro .gg-auth-lead,
    .gg-landing-v2 .gg-hero-intro .gg-auth-cta-row,
    .gg-landing-v2 .gg-hero-intro .gg-auth-demo-empty,
    .gg-landing-v2 .gg-auth-hero .gg-auth-product-stage {
        animation: none !important;
        opacity: 1;
        transform: none;
    }
}

.gg-landing-v2 .gg-auth-band-caption {
    text-align: center;
    font-family: var(--v2-sans);
    font-size: .85rem;
    letter-spacing: .01em;
    color: var(--v2-t3);
    margin: 22px 0 0;
}


/* ============ Plan Wizard (varázsló) ============ */
.gg-wizard-overlay {
    position: fixed; inset: 0; z-index: 1500; display: grid; place-items: center; padding: 20px;
    background: rgba(0,0,0,.62); backdrop-filter: blur(8px); animation: gg-wiz-fade .2s ease;
}
@keyframes gg-wiz-fade { from { opacity: 0; } to { opacity: 1; } }
.gg-wizard {
    width: min(760px, 96vw); max-height: 90vh; display: flex; flex-direction: column;
    background: var(--gg-palette-surface); border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,.1));
    border-radius: 20px; box-shadow: 0 24px 70px rgba(0,0,0,.55); overflow: hidden;
    animation: gg-wiz-rise .26s cubic-bezier(.16,1,.3,1);
}
@keyframes gg-wiz-rise { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: none; } }
.gg-wizard-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--gg-palette-divider, rgba(255,255,255,.08)); }
.gg-wizard-steps { display: flex; gap: 7px; }
.gg-wizard-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--gg-palette-lines-default, rgba(255,255,255,.18)); transition: all .2s; }
.gg-wizard-dot.is-active { background: var(--gg-palette-primary); transform: scale(1.25); }
.gg-wizard-dot.is-done { background: color-mix(in srgb, var(--gg-palette-primary) 55%, transparent); }
.gg-wizard-close { width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,.14)); background: var(--gg-palette-background); color: var(--gg-palette-text-secondary); font-size: 20px; line-height: 1; cursor: pointer; display: grid; place-items: center; }
.gg-wizard-close:hover { color: var(--gg-palette-text-primary); }

.gg-wizard-body { flex: 1 1 auto; overflow-y: auto; padding: 24px clamp(20px,4vw,32px); }
.gg-wizard-title { font-size: 1.5rem; font-weight: 800; margin: 0 0 4px; color: var(--gg-palette-text-primary); }
.gg-wizard-sub { color: var(--gg-palette-text-secondary); margin: 0 0 20px; font-size: .92rem; }
.gg-wizard-label { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--gg-palette-text-secondary); margin: 18px 0 8px; }

.gg-wizard-cardrow { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.gg-wizard-card { text-align: left; display: flex; flex-direction: column; gap: 6px; padding: 18px; border-radius: 14px; cursor: pointer; background: var(--gg-palette-background); border: 1.5px solid var(--gg-palette-lines-default, rgba(255,255,255,.1)); color: var(--gg-palette-text-primary); transition: border-color .15s, transform .08s, background .15s; }
.gg-wizard-card:hover { border-color: color-mix(in srgb, var(--gg-palette-primary) 50%, transparent); }
.gg-wizard-card.is-sel { border-color: var(--gg-palette-primary); background: color-mix(in srgb, var(--gg-palette-primary) 10%, var(--gg-palette-background)); }
.gg-wizard-card.is-small { padding: 14px 16px; }
.gg-wizard-card strong { font-size: 1rem; }
.gg-wizard-card span { font-size: .82rem; color: var(--gg-palette-text-secondary); }
.gg-wizard-card-ico { width: 40px; height: 40px; border-radius: 11px; display: grid; place-items: center; background: color-mix(in srgb, var(--gg-palette-primary) 16%, transparent); color: var(--gg-palette-primary); margin-bottom: 4px; }
.gg-wizard-locked-type { display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; align-items: center; padding: 14px 16px; margin-bottom: 12px; border: 1.5px solid color-mix(in srgb, var(--gg-palette-primary) 35%, transparent); border-radius: 12px; background: color-mix(in srgb, var(--gg-palette-primary) 8%, var(--gg-palette-background)); }
.gg-wizard-locked-type .gg-wizard-card-ico { grid-row: span 2; margin: 0; }
.gg-wizard-locked-type strong { font-size: .96rem; color: var(--gg-palette-text-primary); }
.gg-wizard-locked-type span:not(.gg-wizard-card-ico) { font-size: .82rem; color: var(--gg-palette-text-secondary); }

.gg-wizard-chiprow { display: flex; flex-wrap: wrap; gap: 8px; }
.gg-wizard-pill { padding: 8px 16px; border-radius: 999px; cursor: pointer; font-size: .88rem; font-weight: 600; background: var(--gg-palette-background); border: 1.5px solid var(--gg-palette-lines-default, rgba(255,255,255,.12)); color: var(--gg-palette-text-primary); transition: all .12s; }
.gg-wizard-pill:hover { border-color: color-mix(in srgb, var(--gg-palette-primary) 50%, transparent); }
.gg-wizard-pill.is-sel { background: var(--gg-palette-primary); border-color: var(--gg-palette-primary); color: var(--gg-palette-primary-text, #1a1206); }
.gg-wizard-pill.is-danger.is-sel { background: var(--gg-palette-error); border-color: var(--gg-palette-error); color: #fff; }

.gg-wizard-musclegrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 10px; }
.gg-wizard-muscle { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 6px; border-radius: 12px; cursor: pointer; background: var(--gg-palette-background); border: 2px solid var(--gg-palette-lines-default, rgba(255,255,255,.1)); color: var(--gg-palette-text-primary); transition: all .12s; }
.gg-wizard-muscle img { width: 46px; height: 46px; object-fit: contain; }
.gg-wizard-muscle span { font-size: .72rem; text-align: center; line-height: 1.1; }
.gg-wizard-muscle.is-focus { border-color: var(--gg-palette-primary); background: color-mix(in srgb, var(--gg-palette-primary) 12%, transparent); }
.gg-wizard-muscle.is-excl { border-color: var(--gg-palette-error); background: color-mix(in srgb, var(--gg-palette-error) 12%, transparent); opacity: .82; }

.gg-wizard-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 10px; }
@media (max-width: 620px) { .gg-wizard-grid2, .gg-wizard-cardrow { grid-template-columns: 1fr; } }

.gg-wizard-summary { background: var(--gg-palette-background); border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,.1)); border-radius: 14px; padding: 16px; margin-bottom: 16px; }
.gg-wizard-summary-tiles { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.gg-wizard-summary-tiles span { font-size: .8rem; font-weight: 600; padding: 5px 12px; border-radius: 999px; background: color-mix(in srgb, var(--gg-palette-primary) 12%, transparent); color: var(--gg-palette-primary); }
.gg-wizard-days { display: grid; gap: 12px; }
.gg-wizard-day { background: var(--gg-palette-background); border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,.1)); border-radius: 14px; padding: 14px 16px; }
.gg-wizard-day-head { display: flex; justify-content: space-between; align-items: center; font-weight: 700; margin-bottom: 8px; color: var(--gg-palette-text-primary); }
.gg-wizard-day-head span { font-size: .78rem; font-weight: 600; color: var(--gg-palette-text-secondary); }
.gg-wizard-ex { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 10px; height: 38px; border-top: 1px solid var(--gg-palette-divider, rgba(255,255,255,.06)); font-size: .9rem; }
.gg-wizard-ex-name { color: var(--gg-palette-text-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gg-wizard-superset-chip { display: inline-flex; align-items: center; margin-left: 6px; padding: 1px 8px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--gg-accent) 45%, transparent); background: color-mix(in srgb, var(--gg-accent) 12%, transparent); color: color-mix(in srgb, var(--gg-accent) 72%, var(--gg-palette-text-primary)); font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; vertical-align: middle; }
.gg-wizard-ex-meta { color: var(--gg-palette-text-secondary); font-size: .82rem; font-variant-numeric: tabular-nums; }
.gg-wizard-swap { min-width: 30px; height: 30px; padding: 0 9px; border-radius: 8px; border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,.12)); background: var(--gg-palette-surface); color: var(--gg-palette-text-secondary); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 5px; font-size: .78rem; font-weight: 700; white-space: nowrap; }
.gg-wizard-swap:hover { color: var(--gg-palette-primary); border-color: var(--gg-palette-primary); }
.gg-wizard-busy { display: flex; align-items: center; gap: 10px; color: var(--gg-palette-text-secondary); padding: 20px 0; }

.gg-wizard-foot { display: flex; justify-content: space-between; gap: 12px; padding: 16px 20px; border-top: 1px solid var(--gg-palette-divider, rgba(255,255,255,.08)); }
.gg-wizard-info-overlay { position: fixed; inset: 0; z-index: 1600; display: grid; place-items: center; padding: 20px; background: rgba(0,0,0,.38); }
.gg-wizard-info-modal { width: min(620px, calc(100vw - 32px)); max-height: calc(100vh - 40px); overflow: auto; border-radius: 14px; padding: 18px; background: var(--gg-palette-surface); color: var(--gg-palette-text-primary); box-shadow: 0 24px 70px rgba(0,0,0,.28); border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,.12)); }
.gg-wizard-info-modal header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 12px; }
.gg-wizard-info-modal h3 { margin: 0; font-size: 1.15rem; }
.gg-wizard-info-modal p { margin: 0; color: var(--gg-palette-text-secondary); }
.gg-wizard-info-description { margin-top: 12px !important; line-height: 1.5; }
.gg-pass-continuation-modal { width: min(760px, calc(100vw - 32px)); max-height: calc(100vh - 40px); overflow: auto; border-radius: var(--gg-radius-md, 14px); }
.gg-pass-continuation-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.gg-pass-continuation-summary > div { min-width: 0; padding: 12px; border: 1px solid var(--gg-hairline, var(--gg-palette-lines-default)); border-radius: 10px; background: color-mix(in srgb, var(--gg-surface-muted, var(--gg-palette-background)) 52%, transparent); }
.gg-pass-continuation-summary span { display: block; color: var(--gg-palette-text-secondary); font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.gg-pass-continuation-summary strong { display: block; overflow: hidden; color: var(--gg-palette-text-primary); font-size: .92rem; text-overflow: ellipsis; white-space: nowrap; }
.gg-pass-continuation-list { display: grid; gap: 8px; }
.gg-pass-continuation-row { display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px; border: 1px solid var(--gg-hairline, var(--gg-palette-lines-default)); border-radius: 12px; background: var(--gg-palette-surface); }
.gg-pass-continuation-row.has-conflict { border-color: color-mix(in srgb, var(--gg-palette-warning) 44%, var(--gg-hairline)); background: color-mix(in srgb, var(--gg-palette-warning) 8%, var(--gg-palette-surface)); }
.gg-pass-continuation-date { display: grid; justify-items: center; padding: 8px 4px; border-radius: 10px; background: color-mix(in srgb, var(--gg-palette-primary) 9%, transparent); }
.gg-pass-continuation-date span,
.gg-pass-continuation-date small { color: var(--gg-palette-text-secondary); font-size: .7rem; font-weight: 850; text-transform: uppercase; }
.gg-pass-continuation-date strong { color: var(--gg-palette-text-primary); font-size: 1.35rem; line-height: 1; }
.gg-pass-continuation-main { display: grid; gap: 2px; min-width: 0; }
.gg-pass-continuation-main strong { overflow: hidden; color: var(--gg-palette-text-primary); font-weight: 850; text-overflow: ellipsis; white-space: nowrap; }
.gg-pass-continuation-main span,
.gg-pass-continuation-main small { color: var(--gg-palette-text-secondary); font-size: .8rem; font-weight: 700; }
@media (max-width: 680px) { .gg-pass-continuation-summary { grid-template-columns: 1fr; } .gg-pass-continuation-row { grid-template-columns: 52px minmax(0, 1fr); } .gg-pass-continuation-row .gg-status-chip { grid-column: 1 / -1; justify-self: start; } }
.gg-wizard-btn { padding: 0 22px; height: 44px; border-radius: 11px; font-weight: 700; font-size: .92rem; cursor: pointer; border: 1px solid transparent; transition: all .12s; }
.gg-wizard-btn:disabled { opacity: .4; cursor: default; }
.gg-wizard-btn-ghost { background: transparent; border-color: var(--gg-palette-lines-default, rgba(255,255,255,.14)); color: var(--gg-palette-text-primary); }
.gg-wizard-btn-primary { background: var(--gg-palette-primary); color: var(--gg-palette-primary-text, #1a1206); margin-left: auto; }
.gg-wizard-btn-primary:not(:disabled):hover { filter: brightness(1.06); }


/* ---- Wizard W-B/W-C: guided exercises + warnings + volume + periodization ---- */
.gg-wizard-guided-ex { padding: 10px 0; border-top: 1px solid var(--gg-palette-divider, rgba(255,255,255,.06)); }
.gg-wizard-guided-ex:first-of-type { border-top: none; }
.gg-wizard-guided-cur { display: flex; align-items: baseline; gap: 8px; margin-bottom: 7px; }
.gg-wizard-guided-cur b { color: var(--gg-palette-text-primary); font-size: .92rem; }
.gg-wizard-guided-cur span { color: var(--gg-palette-text-secondary); font-size: .78rem; font-variant-numeric: tabular-nums; }
.gg-wizard-cand-row { display: flex; flex-wrap: wrap; gap: 6px; }
.gg-wizard-cand { padding: 5px 11px; border-radius: 999px; cursor: pointer; font-size: .8rem; background: var(--gg-palette-surface); border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,.12)); color: var(--gg-palette-text-secondary); transition: all .12s; }
.gg-wizard-cand:hover { color: var(--gg-palette-text-primary); border-color: color-mix(in srgb, var(--gg-palette-primary) 50%, transparent); }
.gg-wizard-cand.is-sel { background: var(--gg-palette-primary); border-color: var(--gg-palette-primary); color: var(--gg-palette-primary-text, #1a1206); font-weight: 600; }

/* ── Vezetett (részletes) gyakorlat-szerkesztő (W-B) ── */
.gg-wizard-guided-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 7px; }
.gg-wizard-guided-top .gg-wizard-guided-cur { margin-bottom: 0; }
.gg-wizard-fav { color: var(--gg-palette-error, #E5484D); }
.gg-wizard-fav, .gg-wizard-frequent { font-size: 1rem; }
.gg-wizard-fav.gg-legacy-icon-root, .gg-wizard-frequent.gg-legacy-icon-root { font-size: 1.05rem; }
.gg-wizard-frequent { color: #E8B100; }
.gg-wizard-fav-sm, .gg-wizard-frequent-sm { margin-left: 3px; vertical-align: middle; }
.gg-wizard-fav-sm.gg-legacy-icon-root, .gg-wizard-frequent-sm.gg-legacy-icon-root { font-size: .92rem; }
.gg-wizard-fav-sm { color: var(--gg-palette-error, #E5484D); }
.gg-wizard-frequent-sm { color: #E8B100; }
.gg-wizard-exdel { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 7px; border: 1px solid transparent; background: transparent; color: var(--gg-palette-text-secondary); cursor: pointer; transition: all .12s; }
.gg-wizard-exdel:hover { color: var(--gg-palette-error); border-color: color-mix(in srgb, var(--gg-palette-error) 40%, transparent); background: color-mix(in srgb, var(--gg-palette-error) 10%, transparent); }

.gg-wizard-guided-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 9px; }
.gg-wizard-step { display: inline-flex; align-items: center; gap: 2px; border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,.12)); border-radius: 9px; background: var(--gg-palette-surface); overflow: hidden; }
.gg-wizard-step button { width: 30px; height: 30px; border: none; background: transparent; color: var(--gg-palette-text-secondary); font-size: 1.05rem; font-weight: 700; line-height: 1; cursor: pointer; transition: background .12s, color .12s; }
.gg-wizard-step button:hover { background: color-mix(in srgb, var(--gg-palette-primary) 16%, transparent); color: var(--gg-palette-text-primary); }
.gg-wizard-step span { min-width: 66px; text-align: center; font-size: .8rem; font-weight: 600; color: var(--gg-palette-text-primary); font-variant-numeric: tabular-nums; padding: 0 2px; }
.gg-wizard-restchip { display: inline-flex; align-items: center; gap: 4px; font-size: .76rem; color: var(--gg-palette-text-secondary); }
.gg-wizard-restchip .gg-legacy-icon-root { font-size: 1rem; }

.gg-wizard-cand-more { display: inline-flex; align-items: center; gap: 4px; border-style: dashed; }
.gg-wizard-cand-more .gg-legacy-icon-root { font-size: .95rem; }
.gg-wizard-search { margin-top: 8px; padding: 10px; border-radius: 11px; background: color-mix(in srgb, var(--gg-palette-primary) 5%, var(--gg-palette-surface)); border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,.1)); }
.gg-wizard-search-input { width: 100%; box-sizing: border-box; margin-bottom: 9px; padding: 9px 12px; border-radius: 9px; border: 1px solid var(--gg-palette-lines-default, rgba(255,255,255,.16)); background: var(--gg-palette-background); color: var(--gg-palette-text-primary); font-size: .85rem; outline: none; }
.gg-wizard-search-input:focus { border-color: var(--gg-palette-primary); }
.gg-wizard-empty { font-size: .8rem; color: var(--gg-palette-text-secondary); padding: 2px 0; }

.gg-wizard-addex { display: inline-flex; align-items: center; gap: 5px; margin-top: 10px; padding: 7px 13px; border-radius: 9px; border: 1px dashed color-mix(in srgb, var(--gg-palette-primary) 45%, transparent); background: transparent; color: var(--gg-palette-primary); font-size: .82rem; font-weight: 600; cursor: pointer; transition: background .12s; }
.gg-wizard-addex:hover { background: color-mix(in srgb, var(--gg-palette-primary) 10%, transparent); }
.gg-wizard-addex .gg-legacy-icon-root { font-size: 1.05rem; }

@media (max-width: 560px) {
    .gg-wizard-guided-controls { gap: 6px; }
    .gg-wizard-step span { min-width: 58px; }
}

.gg-wizard-warns { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.gg-wizard-warns-top { margin-top: 16px; margin-bottom: 0; }
.gg-wizard-warn { display: flex; align-items: flex-start; gap: 8px; padding: 10px 12px; border-radius: 11px; font-size: .85rem; line-height: 1.4; background: color-mix(in srgb, var(--gg-palette-warning) 12%, transparent); border: 1px solid color-mix(in srgb, var(--gg-palette-warning) 35%, transparent); color: var(--gg-palette-text-primary); }
.gg-wizard-warn .gg-legacy-icon-root { color: var(--gg-palette-warning); flex-shrink: 0; }

.gg-wizard-volbars { display: flex; flex-direction: column; gap: 6px; margin-bottom: 8px; }
.gg-wizard-volbar { display: grid; grid-template-columns: 120px 1fr 28px; align-items: center; gap: 10px; font-size: .82rem; }
.gg-wizard-volbar > span { color: var(--gg-palette-text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gg-wizard-volbar-track { height: 8px; border-radius: 999px; background: var(--gg-palette-lines-default, rgba(255,255,255,.1)); overflow: hidden; }
.gg-wizard-volbar-track i { display: block; height: 100%; border-radius: 999px; background: var(--gg-palette-primary); }
.gg-wizard-volbar > b { color: var(--gg-palette-text-primary); font-variant-numeric: tabular-nums; text-align: right; }

.gg-wizard-weeks { display: flex; align-items: flex-end; gap: 8px; height: 90px; padding: 4px 0; }
.gg-wizard-week { display: flex; flex-direction: column; align-items: center; gap: 4px; justify-content: flex-end; }
.gg-wizard-week i { display: block; width: 26px; border-radius: 6px 6px 0 0; background: color-mix(in srgb, var(--gg-palette-primary) 70%, transparent); }
.gg-wizard-week span { font-size: .68rem; color: var(--gg-palette-text-secondary); }

.gg-wizard-note { margin-top: 14px; font-size: .82rem; color: var(--gg-palette-text-secondary); padding: 8px 12px; border-radius: 10px; background: color-mix(in srgb, var(--gg-palette-primary) 8%, transparent); }

.gg-wizard-names { margin-bottom: 16px; }

.gg-wizard-hint { display: flex; align-items: flex-start; gap: 8px; margin-top: 14px; padding: 11px 13px; border-radius: 11px; font-size: .84rem; line-height: 1.45; background: color-mix(in srgb, var(--gg-palette-primary) 9%, transparent); border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 22%, transparent); color: var(--gg-palette-text-secondary); }
.gg-wizard-hint .gg-legacy-icon-root { color: var(--gg-palette-primary); flex-shrink: 0; }

/* ---- Sidebar nav tidy-up (grouped sections) ---- */
.gg-nav-section { text-transform: uppercase; margin-top: 20px; }
.gg-nav-divider.gg-legacy-divider { margin: 14px 14px !important; border-color: var(--gg-palette-divider); opacity: .7; }

.gg-wizard-help { margin: 2px 0 14px; font-size: .82rem; line-height: 1.45; color: var(--gg-palette-text-secondary); }
.gg-wizard-help strong { color: var(--gg-palette-text-primary); font-weight: 600; }

/* ---- Wizard G3: volume status colors ---- */
.gg-wizard-volbar.is-low .gg-wizard-volbar-track i { background: var(--gg-palette-error); }
.gg-wizard-volbar.is-ok .gg-wizard-volbar-track i { background: var(--gg-palette-success); }
.gg-wizard-volbar.is-high .gg-wizard-volbar-track i { background: var(--gg-palette-warning); }
.gg-vol-dot { display:inline-block; width:9px; height:9px; border-radius:50%; vertical-align:middle; margin:0 2px; }
.gg-vol-dot.is-low { background: var(--gg-palette-error); }
.gg-vol-dot.is-ok { background: var(--gg-palette-success); }
.gg-vol-dot.is-high { background: var(--gg-palette-warning); }

/* ============ Shell components (GgEmptyState / GgPageHeader / GgStatusChip) ============ */
.gg-emptystate { padding: clamp(28px, 5vw, 56px) 28px; border-radius: 18px; }
.gg-emptystate-inner { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; max-width: 460px; margin: 0 auto; }
.gg-emptystate-icon { font-size: 2.4rem !important; }
.gg-emptystate-text { display: flex; flex-direction: column; gap: 4px; }
.gg-emptystate-body { line-height: 1.55; }
.gg-emptystate-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 6px; }

.gg-pageheader { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.gg-pageheader-text { display: flex; flex-direction: column; gap: 2px; }
.gg-pageheader-title { margin: 0; font-size: 1.5rem; line-height: 1.2; font-weight: 700; letter-spacing: -.01em; }
.gg-pageheader-sub { margin: 0; font-size: .875rem; line-height: 1.4; }

/* Megosztott mező-stílus a Gg field-primitíveknek (GgField/GgNumberField/GgDecimalField/GgDateField).
   Egy forrás → nincs komponensenkénti scoped duplikáció. Téma-helyes. */
.gg-fld { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.gg-fld.is-disabled { opacity: .6; }
.gg-fld-label { font-size: .78rem; font-weight: 700; color: var(--gg-palette-text-secondary); }
.gg-fld-input {
    width: 100%; box-sizing: border-box;
    height: 42px; padding: 0 12px;
    border-radius: 11px; border: 1px solid var(--gg-palette-divider);
    background: color-mix(in srgb, var(--gg-palette-background) 50%, var(--gg-palette-surface));
    color: var(--gg-palette-text-primary); font: inherit; font-size: .9rem;
    transition: border-color .15s ease, box-shadow .15s ease;
}
textarea.gg-fld-input { height: auto; padding: 10px 12px; resize: vertical; line-height: 1.5; }
.gg-fld-input::placeholder { color: var(--gg-palette-text-secondary); opacity: .65; }
.gg-fld-input:focus { outline: none; border-color: var(--gg-palette-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--gg-palette-primary) 22%, transparent); }
.gg-fld-input::-webkit-calendar-picker-indicator { cursor: pointer; opacity: .6; }

/* Dialógus-szekciók (Legacy-leváltáshoz: LegacyPaper/Grid/Item helyett natív). */
.gg-dlg-section {
    padding: 14px; border-radius: 14px;
    border: 1px solid var(--gg-palette-divider);
    background: color-mix(in srgb, var(--gg-palette-surface) 96%, transparent);
}
.gg-dlg-section + .gg-dlg-section { margin-top: 12px; }
.gg-dlg-section-title { margin: 0 0 10px; font-size: 1rem; font-weight: 700; }
.gg-dlg-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: end; }
.gg-dlg-col-12 { grid-column: 1 / -1; }
.gg-dlg-alert {
    grid-column: 1 / -1; font-size: .84rem; padding: 9px 12px; border-radius: 10px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-warning) 45%, transparent);
    background: color-mix(in srgb, var(--gg-palette-warning) 14%, transparent);
    color: var(--gg-palette-warning);
}
.gg-dlg-chip {
    display: inline-flex; align-items: center; padding: 2px 9px; border-radius: 999px;
    font-size: .72rem; font-weight: 700;
    background: color-mix(in srgb, var(--gg-palette-text-primary) 10%, transparent);
    color: var(--gg-palette-text-secondary);
}
.gg-dlg-paid-cell { display: flex; align-items: center; padding-bottom: 6px; }
.gg-dlg-hint { margin: 6px 0 0; font-size: .78rem; color: var(--gg-palette-text-secondary); }
.gg-dlg-recurring { margin-top: 10px; display: flex; flex-direction: column; gap: 10px; }
.gg-dlg-preview { min-height: 360px; }
/* „Új alkalom" dialógus két oszlopa (bal: adatok, jobb: előnézet). */
.gg-quick-session-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.gg-quick-session-col { min-width: 0; }
@media (max-width: 900px) {
    .gg-quick-session-cols { grid-template-columns: 1fr; }
}
/* AddSessionDialog normál mód: bal adatok (1fr) + jobb naptár-előnézet (2fr). */
.gg-as-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 16px; align-items: start; }
.gg-as-col-details, .gg-as-col-preview { min-width: 0; }
.gg-as-preview-section { min-height: 500px; }
.gg-as-h { margin: 0; font-size: 1rem; font-weight: 700; }
/* GgModal fejléc ikon + cím (figyelmeztető/quick-add modalok). */
.gg-modal-icon-title { display: flex; align-items: center; gap: 8px; min-width: 0; }
.gg-quickadd-body { display: flex; flex-direction: column; gap: 14px; }
.gg-time-picker-title { font-size: 1rem; font-weight: 700; }
.gg-time-picker-day { font-size: .78rem; }
/* Pass-adjustment refund összegkártya. */
.gg-pa-refund { display: flex; flex-direction: column; gap: 4px; padding: 14px; border-radius: 12px; }
.gg-pa-refund-amount { font-size: 1.25rem; font-weight: 800; }
/* PassEditorDialog natív szekciók (a Legacy pa-*/LegacyGrid helyett). */
.gg-pe-switch-row { display: flex; align-items: center; gap: 10px; min-height: 44px; }
.gg-pe-section { display: flex; flex-direction: column; gap: 10px; padding: 16px; }
.gg-pe-section-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.gg-pass-credit-choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.gg-pass-credit-choice { display: flex; flex-direction: column; gap: 4px; }
.gg-pass-linked-session-card { display: flex; flex-direction: column; gap: 8px; padding: 14px; border: 1px solid var(--gg-palette-divider); border-radius: 14px; }
.gg-pass-session-preview { display: flex; flex-direction: column; gap: 6px; padding: 14px; }
.gg-dlg-alert--error {
    border-color: color-mix(in srgb, var(--gg-palette-error) 45%, transparent);
    background: color-mix(in srgb, var(--gg-palette-error) 14%, transparent);
    color: var(--gg-palette-error);
}
.gg-dlg-alert--success {
    border-color: color-mix(in srgb, var(--gg-palette-success) 45%, transparent);
    background: color-mix(in srgb, var(--gg-palette-success) 14%, transparent);
    color: var(--gg-palette-success);
}
@media (max-width: 600px) {
    .gg-pass-credit-choice-grid { grid-template-columns: 1fr; }
}
/* GgSlider — natív range input, téma-akcent. */
.gg-slider { -webkit-appearance: none; appearance: none; width: 100%; height: 6px; border-radius: 999px; background: var(--gg-palette-divider); outline: none; cursor: pointer; margin: 10px 0; }
.gg-slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 20px; height: 20px; border-radius: 50%; background: var(--gg-palette-primary); border: 2px solid var(--gg-palette-surface); box-shadow: 0 1px 4px rgba(0, 0, 0, .3); cursor: pointer; }
.gg-slider::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: var(--gg-palette-primary); border: 2px solid var(--gg-palette-surface); cursor: pointer; }
.gg-slider:disabled, .gg-slider.is-disabled { opacity: .45; cursor: not-allowed; }
/* GgCheckBox — egyedi doboz. */
.gg-checkbox { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; user-select: none; }
.gg-checkbox input { position: absolute; opacity: 0; width: 0; height: 0; }
.gg-checkbox-box { width: 20px; height: 20px; border-radius: 6px; border: 2px solid var(--gg-palette-divider); display: inline-grid; place-items: center; transition: background .12s, border-color .12s; flex: none; }
.gg-checkbox input:checked + .gg-checkbox-box { background: var(--gg-palette-primary); border-color: var(--gg-palette-primary); }
.gg-checkbox input:checked + .gg-checkbox-box::after { content: ""; width: 6px; height: 11px; border: solid var(--gg-palette-primary-text, #fff); border-width: 0 2px 2px 0; transform: rotate(45deg) translate(-1px, -1px); }
.gg-checkbox.is-disabled { opacity: .5; cursor: not-allowed; }
.gg-checkbox-label { font-size: .9rem; }
@media (max-width: 960px) {
    .gg-as-cols { grid-template-columns: 1fr; }
}
/* Kétállású szegmens-kapcsoló (pl. jelenlét-mód: személyes / online). */
.gg-seg2 { display: flex; gap: 8px; }
.gg-seg2-btn {
    flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    height: 40px; border-radius: 10px; font: inherit; font-size: .88rem; font-weight: 700;
    border: 1px solid var(--gg-palette-divider); background: transparent;
    color: var(--gg-palette-text-primary); cursor: pointer;
    transition: background .12s, border-color .12s, color .12s;
}
.gg-seg2-btn:hover { border-color: color-mix(in srgb, var(--gg-palette-primary) 40%, var(--gg-palette-divider)); }
.gg-seg2-btn.is-on {
    background: var(--gg-palette-primary); border-color: var(--gg-palette-primary);
    color: var(--gg-palette-primary-text, #fff);
}
@media (max-width: 600px) {
    .gg-dlg-grid { grid-template-columns: 1fr; }
}
.gg-pageheader-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

.gg-statuschip { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 999px; font-size: .72rem; font-weight: 700; line-height: 1.4; border: 1px solid transparent; white-space: nowrap; }
.gg-statuschip .gg-legacy-icon-root { font-size: 14px; }
.gg-statuschip--neutral { color: var(--gg-palette-text-secondary); background: color-mix(in srgb, var(--gg-palette-text-secondary) 12%, transparent); }
.gg-statuschip--success { color: var(--gg-palette-success); background: color-mix(in srgb, var(--gg-palette-success) 14%, transparent); border-color: color-mix(in srgb, var(--gg-palette-success) 30%, transparent); }
.gg-statuschip--warning { color: var(--gg-palette-warning); background: color-mix(in srgb, var(--gg-palette-warning) 14%, transparent); border-color: color-mix(in srgb, var(--gg-palette-warning) 30%, transparent); }
.gg-statuschip--error { color: var(--gg-palette-error); background: color-mix(in srgb, var(--gg-palette-error) 14%, transparent); border-color: color-mix(in srgb, var(--gg-palette-error) 30%, transparent); }
.gg-statuschip--info { color: var(--gg-palette-info); background: color-mix(in srgb, var(--gg-palette-info) 14%, transparent); border-color: color-mix(in srgb, var(--gg-palette-info) 30%, transparent); }
.gg-statuschip--accent { color: var(--gg-palette-primary); background: color-mix(in srgb, var(--gg-palette-primary) 14%, transparent); border-color: color-mix(in srgb, var(--gg-palette-primary) 30%, transparent); }

/* ════════════════════════════════════════════════════════════════════
   Online coaching: publikus foglaló oldal (/book) + edzői foglalás-inbox
   ════════════════════════════════════════════════════════════════════ */

/* ── Publikus /book oldal ── */
.gg-book {
    min-height: 100%;
    padding: clamp(16px, 4vw, 40px) 16px 64px;
    display: flex;
    justify-content: center;
}
.gg-book-shell { width: 100%; max-width: 640px; display: flex; flex-direction: column; gap: 18px; }
.gg-book-hero { text-align: center; padding: 8px 0 4px; }
.gg-book-title { font-size: clamp(1.6rem, 4.5vw, 2.2rem); font-weight: 800; margin: 0 0 8px; color: var(--gg-palette-text-primary); }
.gg-book-sub { font-size: 1rem; color: var(--gg-palette-text-secondary); margin: 0; line-height: 1.5; }
.gg-book-steps { display: flex; gap: 8px; justify-content: center; }
.gg-book-step {
    font-size: .8rem; font-weight: 700; padding: 5px 14px; border-radius: 999px;
    background: color-mix(in srgb, var(--gg-palette-text-secondary) 14%, transparent);
    color: var(--gg-palette-text-secondary);
}
.gg-book-step.is-active { background: var(--gg-palette-primary); color: var(--gg-palette-primary-text, #fff); }
.gg-book-card {
    background: var(--gg-palette-surface);
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 80%, transparent);
    border-radius: 18px; padding: clamp(16px, 3vw, 26px);
    box-shadow: 0 10px 34px color-mix(in srgb, var(--gg-palette-text-primary) 8%, transparent);
}
.gg-book-section-title { font-size: 1.1rem; font-weight: 700; margin: 0 0 4px; color: var(--gg-palette-text-primary); }
.gg-book-section-hint { font-size: .88rem; color: var(--gg-palette-text-secondary); margin: 0 0 14px; }
.gg-book-empty { padding: 24px; text-align: center; color: var(--gg-palette-text-secondary); }
.gg-book-day { margin-bottom: 16px; }
.gg-book-day-label { font-size: .82rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--gg-palette-primary); margin-bottom: 8px; }
.gg-book-slot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: 8px; }
.gg-book-slot {
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 32%, transparent);
    background: color-mix(in srgb, var(--gg-palette-primary) 6%, transparent);
    color: var(--gg-palette-text-primary);
    border-radius: 11px; padding: 11px 6px; font-weight: 700; font-size: .95rem; cursor: pointer;
    transition: background .14s ease, border-color .14s ease, transform .14s ease;
}
.gg-book-slot:hover { border-color: var(--gg-palette-primary); transform: translateY(-1px); }
.gg-book-slot.is-selected { background: var(--gg-palette-primary); color: var(--gg-palette-primary-text, #fff); border-color: var(--gg-palette-primary); }
.gg-book-actions { display: flex; justify-content: flex-end; gap: 10px; }
.gg-book-chosen {
    display: flex; align-items: center; gap: 8px; margin-bottom: 16px; padding: 9px 13px;
    border-radius: 11px; background: color-mix(in srgb, var(--gg-palette-primary) 10%, transparent);
    font-weight: 650; color: var(--gg-palette-text-primary);
}
.gg-book-change { margin-left: auto; border: 0; background: transparent; color: var(--gg-palette-primary); font-weight: 700; cursor: pointer; }
.gg-book-form { display: flex; flex-direction: column; gap: 14px; }
.gg-book-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.gg-book-error { margin-top: 12px; color: var(--gg-palette-error); font-weight: 600; font-size: .9rem; }
.gg-book-done { text-align: center; }
.gg-book-done-badge { color: var(--gg-palette-success); margin-bottom: 6px; }
.gg-book-next { text-align: left; margin: 18px 0; padding: 16px 18px; border-radius: 14px; background: color-mix(in srgb, var(--gg-palette-primary) 7%, transparent); }
.gg-book-next-head { font-weight: 800; margin-bottom: 8px; color: var(--gg-palette-text-primary); }
.gg-book-next-list { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 7px; color: var(--gg-palette-text-secondary); line-height: 1.45; }
.gg-book-linkbox { text-align: left; padding: 14px 16px; border-radius: 14px; border: 1px dashed color-mix(in srgb, var(--gg-palette-primary) 40%, transparent); }
.gg-book-linkbox-label { font-size: .8rem; font-weight: 700; color: var(--gg-palette-text-secondary); margin-bottom: 7px; }
.gg-book-linkbox-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.gg-book-linkbox-url { flex: 1; min-width: 0; overflow-wrap: anywhere; font-size: .82rem; color: var(--gg-palette-primary); background: color-mix(in srgb, var(--gg-palette-primary) 8%, transparent); padding: 7px 10px; border-radius: 8px; }

@media (max-width: 560px) {
    .gg-book-form-row { grid-template-columns: 1fr; }
}

/* ── Edzői foglalás-inbox (/coaching-bookings) ── */
.gg-booking-sharebar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 16px 20px !important; }
.gg-booking-sharebar-copy { display: flex; align-items: center; gap: 12px; min-width: 0; }
.gg-booking-sharebar-title { font-weight: 700; }
.gg-booking-sharebar-url { display: block; font-size: .82rem; color: var(--gg-palette-primary); overflow-wrap: anywhere; }
.gg-booking-sharebar-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.gg-booking-loading { display: flex; justify-content: center; padding: 48px; }
.gg-booking-empty { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; padding: 48px 24px !important; }
.gg-booking-group-title { font-weight: 700; color: var(--gg-palette-text-secondary); }
.gg-booking-list { display: flex; flex-direction: column; gap: 12px; margin-top: 10px; }
.gg-booking-card { padding: 18px 20px !important; border-left: 4px solid var(--gg-palette-primary) !important; }
.gg-booking-card.status-requested { border-left-color: var(--gg-palette-warning) !important; }
.gg-booking-card.status-confirmed { border-left-color: var(--gg-palette-info) !important; }
.gg-booking-card.status-meetingdone { border-left-color: var(--gg-palette-primary) !important; }
.gg-booking-card.status-planassigned { border-left-color: var(--gg-palette-success) !important; }
.gg-booking-card.status-cancelled { border-left-color: var(--gg-palette-text-disabled) !important; opacity: .7; }
.gg-booking-card-head { display: flex; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.gg-booking-card-when { display: flex; flex-direction: column; min-width: 92px; }
.gg-booking-card-date { font-weight: 800; font-size: 1.02rem; }
.gg-booking-card-day { font-size: .78rem; color: var(--gg-palette-text-secondary); text-transform: capitalize; }
.gg-booking-card-identity { flex: 1; min-width: 160px; }
.gg-booking-card-contact { display: flex; flex-wrap: wrap; gap: 12px; color: var(--gg-palette-text-secondary); font-size: .82rem; margin-top: 2px; }
.gg-booking-card-contact span { display: inline-flex; align-items: center; gap: 4px; }
.gg-booking-card-badges { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.gg-booking-status { font-size: .72rem; font-weight: 800; padding: 3px 10px; border-radius: 999px; text-transform: uppercase; letter-spacing: .03em; background: color-mix(in srgb, var(--gg-palette-primary) 16%, transparent); color: var(--gg-palette-primary); }
.gg-booking-status.status-requested { background: color-mix(in srgb, var(--gg-palette-warning) 18%, transparent); color: var(--gg-palette-warning); }
.gg-booking-status.status-confirmed { background: color-mix(in srgb, var(--gg-palette-info) 18%, transparent); color: var(--gg-palette-info); }
.gg-booking-status.status-planassigned { background: color-mix(in srgb, var(--gg-palette-success) 18%, transparent); color: var(--gg-palette-success); }
.gg-booking-status.status-cancelled { background: color-mix(in srgb, var(--gg-palette-text-disabled) 22%, transparent); color: var(--gg-palette-text-secondary); }
.gg-booking-reminder-due { display: inline-flex; align-items: center; gap: 4px; font-size: .74rem; font-weight: 700; color: var(--gg-palette-warning); }
.gg-booking-intake { margin: 12px 0; padding: 12px 14px; border-radius: 12px; background: color-mix(in srgb, var(--gg-palette-text-primary) 4%, transparent); display: flex; flex-direction: column; gap: 7px; }
.gg-booking-intake-row { font-size: .88rem; display: flex; gap: 8px; }
.gg-booking-intake-row.is-warning { color: var(--gg-palette-warning); }
.gg-booking-intake-label { font-weight: 700; flex: 0 0 auto; color: var(--gg-palette-text-secondary); }
.gg-booking-intake-row.is-warning .gg-booking-intake-label { color: var(--gg-palette-warning); }
.gg-booking-intake-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.gg-booking-chip { font-size: .76rem; font-weight: 650; padding: 3px 10px; border-radius: 999px; background: color-mix(in srgb, var(--gg-palette-primary) 12%, transparent); color: var(--gg-palette-primary); }
.gg-booking-meeting { display: flex; align-items: flex-start; gap: 10px; margin: 8px 0 12px; }
.gg-booking-meeting > .gg-legacy-input-control { flex: 1; }
.gg-booking-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.gg-booking-closed-note { display: flex; align-items: center; gap: 8px; color: var(--gg-palette-text-secondary); font-size: .9rem; }
.gg-oc-bookings-banner { border-radius: 12px; }
.gg-oc-bookings-banner-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; width: 100%; }

/* Online programok promo-kártya az Online coaching oldalon */
.gg-oc-programs { display: flex; align-items: center; gap: 14px; cursor: pointer; flex-wrap: wrap; }
.gg-oc-programs-ic { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; color: var(--gg-palette-primary); background: color-mix(in srgb, var(--gg-palette-primary) 12%, transparent); }
.gg-oc-programs-text { flex: 1 1 220px; min-width: 0; }
.gg-oc-programs-title { display: flex; align-items: center; gap: 8px; font-weight: 800; font-size: 1rem; }
.gg-oc-programs-badge { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 99px; background: var(--gg-palette-warning); color: #fff; font-size: .72rem; font-weight: 800; }
.gg-oc-programs-body { color: var(--gg-palette-text-secondary); font-size: .86rem; margin-top: 2px; }

@media (max-width: 560px) {
    .gg-booking-meeting { flex-direction: column; }
    .gg-booking-meeting > .gg-legacy-input-control { width: 100%; }
    .gg-booking-card-badges { align-items: flex-start; }
}

/* Eszközválasztó a publikus booking űrlapon */
.gg-book-equip-label { font-weight: 700; font-size: .95rem; color: var(--gg-palette-text-primary); }
.gg-book-equip-hint { font-size: .82rem; color: var(--gg-palette-text-secondary); margin: 2px 0 8px; }
.gg-book-equip-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.gg-book-equip-chip {
    border: 1px solid color-mix(in srgb, var(--gg-palette-primary) 32%, transparent);
    background: color-mix(in srgb, var(--gg-palette-primary) 5%, transparent);
    color: var(--gg-palette-text-primary);
    border-radius: 999px; padding: 7px 14px; font-weight: 650; font-size: .88rem; cursor: pointer;
    transition: background .14s ease, border-color .14s ease;
}
.gg-book-equip-chip:hover { border-color: var(--gg-palette-primary); }
.gg-book-equip-chip.is-selected { background: var(--gg-palette-primary); color: var(--gg-palette-primary-text, #fff); border-color: var(--gg-palette-primary); }
.gg-booking-chip.is-equip { background: color-mix(in srgb, var(--gg-palette-text-secondary) 14%, transparent); color: var(--gg-palette-text-secondary); }

/* Modalitás-gyorsszűrő a Kliensek oldalon */
.gg-modality-filter { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.gg-modality-filter-label { font-size: .85rem; font-weight: 700; color: var(--gg-palette-text-secondary); margin-right: 2px; }
.gg-modality-filter-chip {
    display: inline-flex; align-items: center; gap: 6px;
    border: 1px solid color-mix(in srgb, var(--gg-palette-divider) 80%, transparent);
    background: var(--gg-palette-surface); color: var(--gg-palette-text-secondary);
    border-radius: 999px; padding: 6px 14px; font-weight: 650; font-size: .86rem; cursor: pointer;
    transition: background .14s ease, border-color .14s ease, color .14s ease;
}
.gg-modality-filter-chip:hover { border-color: var(--gg-palette-primary); color: var(--gg-palette-text-primary); }
.gg-modality-filter-chip.is-active { background: var(--gg-palette-primary); color: var(--gg-palette-primary-text, #fff); border-color: var(--gg-palette-primary); }
.gg-modality-filter-chip.is-active .gg-legacy-icon-root { color: var(--gg-palette-primary-text, #fff); }

/* Kliens dashboard: bemutatkozó hívás kártya (lemondás / áthelyezés) */
.gg-cdash-intro { border-left: 4px solid var(--gc-primary); }
.gg-cdash-intro-head { display: flex; align-items: center; gap: 10px; }
.gg-cdash-intro-title { font-weight: 700; }
.gg-cdash-intro-when { font-size: .85rem; margin-top: 1px; }
.gg-cdash-intro-join { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; padding: 9px 16px; border-radius: 10px; background: var(--gc-primary); color: var(--gc-on-primary, #fff); font-weight: 650; text-decoration: none; }
.gg-cdash-intro-pending { font-size: .85rem; margin-top: 8px; }
.gg-cdash-intro-actions { display: flex; gap: 8px; margin-top: 12px; }
.gg-cdash-intro-btn { border: 1px solid var(--gc-border); background: var(--gc-surface); color: inherit; border-radius: 999px; padding: 6px 14px; font-weight: 650; font-size: .85rem; cursor: pointer; }
.gg-cdash-intro-btn.is-danger { color: #d9534f; border-color: color-mix(in srgb, #d9534f 40%, transparent); }
.gg-cdash-intro-slots { margin-top: 12px; border-top: 1px solid var(--gc-border); padding-top: 10px; }
.gg-cdash-intro-slot-day { font-size: .78rem; font-weight: 700; opacity: .7; margin: 8px 0 4px; }
.gg-cdash-intro-slot-row { display: flex; flex-wrap: wrap; gap: 6px; }
.gg-cdash-intro-slot { border: 1px solid color-mix(in srgb, var(--gc-primary) 35%, transparent); background: color-mix(in srgb, var(--gc-primary) 8%, transparent); color: inherit; border-radius: 9px; padding: 7px 12px; font-weight: 650; cursor: pointer; }
.gg-cdash-intro-slot:hover { background: var(--gc-primary); color: var(--gc-on-primary, #fff); }

/* ============ A11y: visible keyboard-focus ring ============ */
/* :focus-visible → shows only on keyboard navigation, never on mouse click, so it is a pure
   accessibility win with no visual change for mouse users. Placed last to win equal-specificity cascade. */
a:focus-visible,
button:focus-visible,
.gg-legacy-button-root:focus-visible,
.gg-legacy-icon-button-root:focus-visible,
[role="button"]:focus-visible,
[tabindex]:focus-visible,
.gg-pickcard:focus-visible,
.gg-legacy-nav-link:focus-visible,
.gg-bn-tab:focus-visible,
summary:focus-visible {
    outline: 2px solid var(--gg-palette-primary);
    outline-offset: 2px;
    border-radius: 6px;
}

/* ============ Client portal: completed workout-log detail (mirrors the GymGo app's workout log) ============ */
.gg-cdash-wcard--clickable { cursor: pointer; }
.gg-cdash-wcard-chevron { color: var(--gc-primary); opacity: .85; flex: 0 0 auto; }
.gg-cdash-log { display: flex; flex-direction: column; gap: 8px; margin: 2px 0 10px; }
.gg-cdash-log-empty { padding: 6px 2px; }
.gg-cdash-log-ex { border: 1px solid var(--gc-border); border-radius: 16px; background: var(--gc-surface); padding: 12px 14px; }
.gg-cdash-log-ex-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.gg-cdash-log-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 30px; padding: 0 9px; border-radius: 10px; background: var(--gc-primary); color: var(--gc-on-primary, #fff); font-weight: 700; font-size: .9rem; }
.gg-cdash-log-ex-name { font-weight: 700; font-size: 1rem; flex: 1 1 auto; line-height: 1.2; }
.gg-cdash-log-ex-count { font-size: .78rem; color: var(--gc-muted); flex: 0 0 auto; }
.gg-cdash-log-sets { display: flex; flex-direction: column; gap: 6px; }
.gg-cdash-log-set { display: flex; align-items: center; gap: 8px; background: var(--gc-primary-soft); border-radius: 9px; padding: 7px 12px; font-weight: 650; font-size: .92rem; }
.gg-cdash-log-set.is-skipped { background: color-mix(in srgb, var(--gc-muted) 14%, transparent); }
.gg-cdash-log-set-idx { color: var(--gc-muted); font-weight: 700; min-width: 20px; }
.gg-cdash-log-set-val { color: var(--gc-text); }
.gg-cdash-log-set-skip { color: var(--gc-muted); font-style: italic; font-weight: 600; }

/* Client portal: body map (muscle heatmap) on the Progress tab — mirrors the GymGo app's "muscles worked" */
.gg-cdash-bodymap { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.gg-cdash-bodymap-svg { width: 100%; max-width: 280px; }
.gg-cdash-bodymap-legend { display: flex; align-items: center; gap: 8px; font-size: .75rem; color: var(--gc-muted); }
.gg-cdash-bodymap-bar { width: 90px; height: 8px; border-radius: 4px; background: linear-gradient(90deg, rgb(110,116,124), rgb(95,190,58)); }

/* Client portal: workout comment thread (client ↔ trainer feedback) */
.gg-cdash-comments { margin-top: 8px; border-top: 1px solid var(--gc-border); padding-top: 10px; display: flex; flex-direction: column; gap: 8px; }
.gg-cdash-comments-title { font-size: .8rem; font-weight: 700; color: var(--gc-muted); }
.gg-cdash-comments-empty { font-size: .85rem; }
.gg-cdash-comment { border-radius: 12px; padding: 8px 12px; max-width: 88%; }
.gg-cdash-comment.is-client { align-self: flex-end; background: var(--gc-primary-soft); }
.gg-cdash-comment.is-trainer { align-self: flex-start; background: var(--gc-surface-2); border: 1px solid var(--gc-border); }
.gg-cdash-comment-who { font-size: .7rem; font-weight: 700; opacity: .7; }
.gg-cdash-comment-text { font-size: .92rem; white-space: pre-wrap; word-break: break-word; }
.gg-cdash-comment-time { font-size: .68rem; color: var(--gc-muted); margin-top: 2px; }
.gg-cdash-comment-compose { display: flex; gap: 8px; align-items: center; margin-top: 4px; }
.gg-cdash-comment-input { flex: 1; min-width: 0; border: 1px solid var(--gc-border); border-radius: 999px; padding: 9px 14px; background: var(--gc-surface); color: var(--gc-text); font-size: .9rem; }
.gg-cdash-comment-input:focus { outline: none; border-color: var(--gc-primary); }

/* Online review deck: trainer feedback / comment thread */
.gg-deck-comments { margin-top: 12px; border-top: 1px solid var(--gg-palette-lines-default, rgba(0,0,0,.1)); padding-top: 10px; display: flex; flex-direction: column; gap: 6px; }
.gg-deck-comments-title { font-size: .78rem; font-weight: 700; opacity: .65; }
.gg-deck-comment { border-radius: 10px; padding: 6px 10px; max-width: 90%; font-size: .88rem; }
.gg-deck-comment.is-trainer { align-self: flex-end; background: var(--gg-palette-primary-hover, rgba(0,0,0,.06)); }
.gg-deck-comment.is-client { align-self: flex-start; background: var(--gg-palette-background-grey, rgba(0,0,0,.04)); }
.gg-deck-comment-who { font-size: .68rem; font-weight: 700; opacity: .6; margin-right: 6px; }
.gg-deck-comment-text { word-break: break-word; }
.gg-deck-comment-compose { display: flex; gap: 8px; align-items: center; margin-top: 4px; }
.gg-deck-comment-input { flex: 1; min-width: 0; border: 1px solid var(--gg-palette-lines-default, rgba(0,0,0,.15)); border-radius: 8px; padding: 8px 12px; font-size: .9rem; background: var(--gg-palette-surface, #fff); color: var(--gg-palette-text-primary, #111); }
.gg-deck-comment-input:focus { outline: none; border-color: var(--gg-palette-primary); }

/* ═══════════════ Csoportos órák (kliens portál) ═══════════════ */
.gg-cdash-gc-head { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.gg-cdash-gc-title { font-weight: 700; }
.gg-cdash-gc-trainer { font-size: .78rem; font-weight: 700; color: var(--gc-primary); margin-top: 2px; }
.gg-cdash-gc-discover { margin-left: auto; display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--gc-primary); border-radius: 999px; background: var(--gc-primary); color: var(--gc-on-primary, #fff); font: inherit; font-size: .78rem; font-weight: 800; cursor: pointer; padding: 8px 12px; box-shadow: 0 2px 8px color-mix(in srgb, var(--gc-primary) 30%, transparent); }.gg-cdash-gc-discover:hover { background: var(--gc-primary-dark); border-color: var(--gc-primary-dark); transform: translateY(-1px); }.gg-cdash-gc-discover span { font-size: 1rem; line-height: .7; }
.gg-cdash-gc-empty { color: var(--gg-palette-text-secondary, #9aa4af); font-size: .88rem; line-height: 1.45; margin: 4px 0 12px; }
.gg-cdash-gc-list { display: flex; flex-direction: column; gap: 8px; }
.gg-cdash-gc-item {
    display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
    padding: 10px 12px; border-radius: 12px;
    border: 1px solid var(--gg-palette-lines-default, rgba(148,163,184,.25));
    background: var(--gg-palette-surface, #141c24);
}
.gg-cdash-gc-item.is-booked { border-color: var(--gc-primary); background: var(--gc-primary-soft); }
.gg-cdash-gc-item.is-wait { border-style: dashed; }
.gg-cdash-gc-item-main { min-width: 0; flex: 1; }
.gg-cdash-gc-item-name { font-weight: 700; }
.gg-cdash-gc-item-meta { font-size: .82rem; color: var(--gg-palette-text-secondary, #9aa4af); display: flex; flex-wrap: wrap; gap: 4px; margin-top: 2px; }
.gg-cdash-gc-warn { font-size: .78rem; color: #b4690e; margin-top: 4px; }
.gg-cdash-gc-note { font-size: .8rem; line-height: 1.35; color: #3f4650; margin-top: 6px; padding: 6px 9px; border-radius: 8px; background: rgba(11,145,22,.07); border: 1px solid rgba(11,145,22,.16); }
.gg-cdash-gc-note::before { content: "💬 "; }
.gg-cdash-gc-item-action { display: flex; align-items: center; gap: 8px; flex: none; }
.gg-cdash-gc-badge { font-size: .72rem; font-weight: 800; padding: 5px 9px; border-radius: 999px; line-height: 1; white-space: nowrap; }
.gg-cdash-gc-badge.is-booked { background: #167a42; color: #fff; border: 1px solid #32b76c; box-shadow: 0 1px 5px rgba(0,0,0,.2); }.gg-cdash-gc-badge.is-booked::before { content: "✓"; margin-right: 5px; font-weight: 900; }
.gg-cdash-gc-badge.is-upcoming { background: #283746; color: #e4edf5; border: 1px solid #64748b; }
.gg-cdash-gc-badge.is-wait { background: #fff3df; color: #b4690e; }
.gg-cdash-gc-btn {
    border: 1px solid var(--gc-primary); color: var(--gc-primary); background: transparent;
    font-weight: 700; font-size: .82rem; padding: 7px 14px; border-radius: 999px; cursor: pointer;
}
.gg-cdash-gc-btn.is-primary { background: var(--gc-primary); color: var(--gc-on-primary, #fff); }
.gg-cdash-gc-btn.is-cancel { border-color: #d44; color: #d44; }
.gg-cdash-gc-btn:disabled { opacity: .55; cursor: default; }
.gg-cdash-gc-toggle {
    margin-top: 8px; width: 100%; background: transparent; border: none; cursor: pointer;
    color: var(--gc-primary); font-weight: 700; font-size: .85rem; padding: 6px;
}
.gg-wizard-check {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin: .25rem 0 .75rem;
    font-weight: 700;
    color: var(--gg-text);
}

.gg-wizard-check input {
    width: 18px;
    height: 18px;
    accent-color: var(--gg-primary);
}

.gg-wizard-set-order {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin: .35rem 0 .6rem 1rem;
}

.gg-wizard-set-order span {
    border: 1px solid var(--gg-border);
    background: var(--gg-surface-subtle);
    border-radius: 6px;
    padding: .2rem .45rem;
    font-size: .78rem;
    color: var(--gg-muted);
}

/* Naptár-csatolás banner (Calendar oldal) */
.gg-cal-connect-banner { display:flex; align-items:center; gap:14px; padding:14px 18px; margin-bottom:10px; }
.gg-cal-connect-text { flex:1; min-width:0; display:flex; flex-direction:column; }
.gg-cal-connect-text b { font-size:.95rem; }
.gg-cal-connect-text span { font-size:.82rem; opacity:.7; }

/* Regisztráció: keresztnév + vezetéknév egymás mellett */
.gg-auth-name-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
@media(max-width:420px){.gg-auth-name-row{grid-template-columns:1fr;}}

/* ── Szám-mező saját −/+ stepper (natív böngésző-spinner nélkül) ── */
.gg-fld-input[type=number]::-webkit-outer-spin-button,
.gg-fld-input[type=number]::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.gg-fld-input[type=number]{ -moz-appearance:textfield; appearance:textfield; }
.gg-num{ display:flex; align-items:stretch; }
.gg-num .gg-num-input{ border-radius:0; border-left:none; border-right:none; text-align:center; }
.gg-num-btn{ height:42px; width:44px; flex:none; display:grid; place-items:center;
  border:1px solid var(--gg-palette-divider);
  background: color-mix(in srgb, var(--gg-palette-background) 50%, var(--gg-palette-surface));
  color: var(--gg-palette-text-primary); cursor:pointer; transition: background .15s ease, border-color .15s ease; }
.gg-num-btn:first-child{ border-radius:11px 0 0 11px; }
.gg-num-btn:last-child{ border-radius:0 11px 11px 0; }
.gg-num-btn:hover:not(:disabled){ background: color-mix(in srgb, var(--gg-palette-primary) 12%, transparent); border-color: var(--gg-palette-primary); }
.gg-num-btn:disabled{ opacity:.45; cursor:default; }
.gg-onboarding-fieldnote{ margin-top:5px; font-size:.78rem; }
.gg-onboarding-payment-explain{ margin-top:12px; }

/* ══ Mobil (telefon): kártyák helyett kompakt, edge-to-edge SÁVOK — max helykihasználtság ══ */
@media (max-width: 640px) {
    /* A sávok a képernyő széléig érnek (a belső padding marad, így a tartalom nem tapad a szélhez) */
    .gg-page { padding-top: 6px; padding-left: 0; padding-right: 0; }
    .gg-page-shell { gap: 8px; }

    /* A :not(.gg-auth-panel):not(.gg-auth-product-stage) NEM szűr semmit — a specificitást emeli
       (0,3,0)-ra, hogy legyőzze a globális @media(max-width:960px) `.gg-legacy-paper:not()...` (0,3,0)
       !important kerekítő szabályt (a 640-es sáv KÉSŐBB van a fájlban → azonos specificitásnál nyer).
       A legtöbb .gg-surface/.gg-kpi-card LegacyPaper, ezért kell ez a magasabb specificitás. */
    .gg-surface:not(.gg-auth-panel):not(.gg-auth-product-stage),
    .gg-kpi-card:not(.gg-auth-panel):not(.gg-auth-product-stage),
    .gg-gc-share:not(.gg-auth-panel):not(.gg-auth-product-stage),
    .gg-oc-card:not(.gg-auth-panel):not(.gg-auth-product-stage),
    .gg-dash-m-focus:not(.gg-auth-panel):not(.gg-auth-product-stage) {
        padding: 12px 14px;
        border-radius: 0 !important;
        border-left: none !important;
        border-right: none !important;
        box-shadow: none !important;
    }

    /* Fejléc-sávok kompaktabbak, kevesebb üres hely */
    .gg-gc-hero,
    .gg-pageheader { padding-left: 14px; padding-right: 14px; margin-bottom: 2px; }
    .gg-gc-h1 { font-size: 1.35rem; }
    .gg-gc-sub, .gg-pageheader-sub { font-size: .82rem; }

    /* Üres állapotok: kisebb ikon + kevesebb padding, ne foglaljon egy teljes képernyőt */
    .gg-gc-empty, .gg-cdash-empty, .gg-empty-state { padding: 24px 16px; }
    .gg-gc-empty .gg-legacy-icon-root, .gg-empty-state .gg-legacy-icon-root { font-size: 2.2rem; }

    /* Naptár: a board-sáv belső padding nélkül, hogy a rács a képernyő két széléig érjen */
    .gg-cal-board-surface { padding: 0; }
    .gg-cal-board-surface .gg-calendar-board-toolbar { padding-left: 12px; padding-right: 12px; }

    /* Coaching review átfedő kártyacsomag: telefonon nincs hover-fan → függőleges lista,
       teljes szélességű kártyák, nincs negatív margó (különben vízszintes túlcsordulás) */
    .gg-review-fan { flex-direction: column; align-items: stretch; gap: 8px; padding: 4px 0 8px; min-height: 0; }
    .gg-review-fan-card { width: 100%; }
    .gg-review-fan-card:not(:first-child) { margin-left: 0; }

    /* Bejövő kliens-jelentkezés sor: a név/e-mail egész sort kap, a gombok alá kerülnek
       egy sorba (ne szoruljanak össze az e-maillel) */
    .gg-incoming-row { flex-wrap: wrap; gap: 8px 10px; }
    .gg-incoming-main { flex: 1 1 100%; min-width: 0; }
    .gg-incoming-row .gg-legacy-button-root { flex: 1 1 0; }
}

/* ══ Fókusz-keret: EGÉR-/programozott fókusznál NE legyen kijelölő-keret (billentyűzetes marad – a11y).
   A FocusOnNavigate a h1-et (tabindex=-1) fókuszálja MINDEN navigációnál → azon sose legyen keret;
   a kattintott kártyákon (pl. onboarding hibrid) se maradjon fókusz-keret. A `.selected`/`.is-selected`
   állapotok NEM :focus-ök, ezeket nem érinti. ══ */
:focus:not(:focus-visible) { outline: none !important; }
[tabindex="-1"]:focus, [tabindex="-1"]:focus-visible { outline: none !important; }

/* ══ Plan wizard: megdolgozott izmok — ikonos kártyák + [N] szett + státusz-ikon ══ */
.gg-wizard-volgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(94px, 1fr)); gap: 10px; margin-top: 6px; }
.gg-wizard-volcard { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 8px 10px; border-radius: 14px; border: 1px solid var(--gg-palette-divider); background: var(--gg-palette-surface); text-align: center; }
.gg-wizard-volcard-ico { width: 46px; height: 46px; display: grid; place-items: center; opacity: .95; }
.gg-wizard-volcard-ico img { width: 100%; height: 100%; object-fit: contain; }
.gg-wizard-volcard-name { font-size: .78rem; font-weight: 600; line-height: 1.15; }
.gg-wizard-volcard-foot { display: flex; align-items: center; gap: 6px; margin-top: 2px; }
.gg-wizard-volcard-sets { font-size: .76rem; font-weight: 800; padding: 2px 9px; border-radius: 99px; background: color-mix(in srgb, var(--gg-palette-text-primary) 8%, transparent); }
.gg-wizard-volcard-status { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; color: #fff; }
.gg-wizard-volcard-status .gg-legacy-icon-root { font-size: 15px; }
.gg-wizard-volcard.is-ok .gg-wizard-volcard-status { background: #2e7d32; }
.gg-wizard-volcard.is-high .gg-wizard-volcard-status { background: #b7791f; }
.gg-wizard-volcard.is-low .gg-wizard-volcard-status { background: #c2342b; }
.gg-wizard-volcard.is-neutral .gg-wizard-volcard-status { background: #9aa5ad; }
.gg-wizard-volcard.is-ok { border-color: rgba(46,125,50,.35); }
.gg-wizard-volcard.is-low { border-color: rgba(194,52,43,.40); }
.gg-wizard-volcard.is-high { border-color: rgba(183,121,31,.40); }
/* ============ GymGo framework-independent utilities ============ */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.gg-stack { display: flex; flex-direction: column; }
.gg-cluster { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.gg-cluster--between { justify-content: space-between; }
.gg-gap-2 { gap: 12px; }

.gg-spinner,
.ggbtn-spinner {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid color-mix(in srgb, currentColor 25%, transparent);
    border-top-color: currentColor;
    border-radius: 50%;
    animation: gg-spin .72s linear infinite;
}

.gg-progress-indeterminate {
    position: relative;
    height: 3px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--gg-primary-soft);
}
.gg-progress-indeterminate > span {
    position: absolute;
    inset-block: 0;
    width: 38%;
    border-radius: inherit;
    background: var(--gg-primary);
    animation: gg-progress-slide 1.15s ease-in-out infinite;
}

.gg-alert {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 11px 13px;
    border: 1px solid var(--gg-border);
    border-radius: 12px;
    background: var(--gg-surface-muted);
    color: var(--gg-text);
    font-size: .88rem;
}
.gg-alert--info { border-color: color-mix(in srgb, var(--gg-palette-info) 28%, var(--gg-border)); background: color-mix(in srgb, var(--gg-palette-info) 8%, var(--gg-surface)); }
.gg-alert--success { border-color: color-mix(in srgb, var(--gg-palette-success) 28%, var(--gg-border)); background: color-mix(in srgb, var(--gg-palette-success) 8%, var(--gg-surface)); }
.gg-alert--warning { border-color: color-mix(in srgb, var(--gg-palette-warning) 30%, var(--gg-border)); background: color-mix(in srgb, var(--gg-palette-warning) 9%, var(--gg-surface)); }
.gg-alert--danger { border-color: color-mix(in srgb, var(--gg-palette-error) 28%, var(--gg-border)); background: color-mix(in srgb, var(--gg-palette-error) 8%, var(--gg-surface)); }

.gg-time-field-trigger {
    appearance: none;
    width: 100%;
    min-height: var(--gg-control-height);
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
}
.gg-time-field-value {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: var(--gg-control-height);
    padding: 0 13px;
    border: 1px solid var(--gg-border);
    border-radius: 11px;
    background: var(--gg-surface);
}

@keyframes gg-spin { to { transform: rotate(360deg); } }
@keyframes gg-progress-slide { from { transform: translateX(-120%); } 50% { transform: translateX(120%); } to { transform: translateX(280%); } }

@media (prefers-reduced-motion: reduce) {
    .gg-spinner, .ggbtn-spinner, .gg-progress-indeterminate > span { animation-duration: 2.5s; }
}

/* Compatibility primitives are GymGo-owned semantic HTML; they keep the large
   workflow surface coherent while individual pages move to richer primitives. */
.gg-text { margin: 0; color: inherit; }
.gg-text--h3 { font-size: clamp(1.8rem, 3vw, 2.5rem); letter-spacing: -.035em; line-height: 1.08; }
.gg-text--h4 { font-size: clamp(1.5rem, 2.4vw, 2rem); letter-spacing: -.025em; line-height: 1.12; }
.gg-text--h5 { font-size: 1.28rem; font-weight: 750; }
.gg-text--h6, .gg-text--subtitle1 { font-size: 1rem; font-weight: 720; }
.gg-text--subtitle2 { font-size: .88rem; font-weight: 700; }
.gg-text--body2 { font-size: .875rem; }
.gg-text--caption { font-size: .76rem; color: var(--gg-text-muted); }
.gg-text--overline { font: 700 .69rem/1.2 var(--gg-font-mono); text-transform: uppercase; letter-spacing: .1em; color: var(--gg-text-muted); }
.gg-align--center { text-align: center; }.gg-align--end { text-align: end; }
.gg-tone--success { --gg-control-tone: var(--gg-palette-success); }
.gg-tone--warning { --gg-control-tone: var(--gg-palette-warning); }
.gg-tone--danger { --gg-control-tone: var(--gg-palette-error); }
.gg-tone--info { --gg-control-tone: var(--gg-palette-info); }
.gg-tone--brand { --gg-control-tone: var(--gg-primary); }
.gg-tone--neutral { --gg-control-tone: var(--gg-text-muted); }
.gg-text.gg-tone--success,.gg-iconbtn.gg-tone--success { color:var(--gg-palette-success); }
.gg-text.gg-tone--warning,.gg-iconbtn.gg-tone--warning { color:var(--gg-palette-warning); }
.gg-text.gg-tone--danger,.gg-iconbtn.gg-tone--danger { color:var(--gg-palette-error); }
.gg-text.gg-tone--info,.gg-iconbtn.gg-tone--info { color:var(--gg-palette-info); }

.gg-stack { gap: 8px; }.gg-stack.is-row { flex-direction: row; align-items: center; flex-wrap: wrap; }
.gg-stack--gap-0{gap:0}.gg-stack--gap-1{gap:4px}.gg-stack--gap-2{gap:8px}.gg-stack--gap-3{gap:12px}.gg-stack--gap-4{gap:16px}.gg-stack--gap-5{gap:20px}.gg-stack--gap-6{gap:24px}
.gg-items--start{align-items:flex-start}.gg-items--center{align-items:center}.gg-items--end{align-items:flex-end}.gg-items--stretch{align-items:stretch}
.gg-justify--start{justify-content:flex-start}.gg-justify--center{justify-content:center}.gg-justify--flexend{justify-content:flex-end}.gg-justify--spacebetween{justify-content:space-between}
.gg-spacer { flex: 1 1 auto; }

.gg-grid { display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gg-grid-gap,8px); }
.gg-grid-item { grid-column:span var(--gg-xs,12);min-width:0; }
@media(min-width:600px){.gg-grid-item{grid-column:span var(--gg-sm,var(--gg-xs,12))}}
@media(min-width:900px){.gg-grid-item{grid-column:span var(--gg-md,var(--gg-sm,var(--gg-xs,12)))}}
@media(min-width:1200px){.gg-grid-item{grid-column:span var(--gg-lg,var(--gg-md,var(--gg-sm,var(--gg-xs,12))))}}
@media(min-width:1536px){.gg-grid-item{grid-column:span var(--gg-xl,var(--gg-lg,var(--gg-md,var(--gg-sm,var(--gg-xs,12)))))}}

.gg-iconbtn { appearance:none;display:inline-grid;place-items:center;min-width:44px;min-height:44px;padding:9px;border:1px solid transparent;border-radius:11px;background:transparent;color:var(--gg-control-tone,var(--gg-text));cursor:pointer; }
.gg-iconbtn:hover:not(:disabled){background:var(--gg-row-hover);border-color:var(--gg-border)}
.gg-iconbtn:disabled{opacity:.42;cursor:not-allowed}.gg-iconbtn.gg-size--small{min-width:36px;min-height:36px;padding:7px}.gg-iconbtn.gg-size--large{min-width:48px;min-height:48px}
/* Shared button primitive. This is deliberately global: GgAction, GgMenu and
   file-input labels also emit ggbtn outside GgButton's isolated stylesheet. */
.ggbtn {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 44px;
    min-height: 44px;
    max-width: 100%;
    padding: 0 18px;
    overflow: hidden;
    border: 1px solid transparent;
    border-radius: var(--gg-radius-md, 12px);
    background: transparent;
    color: var(--gg-text);
    font: inherit;
    font-size: .9rem;
    font-weight: 750;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
    text-decoration: none;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: color 160ms ease, background 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 100ms ease;
}
.ggbtn:hover { text-decoration: none; }
.ggbtn:active:not(:disabled):not([aria-disabled="true"]):not(.is-disabled) { transform: translateY(1px); }
.ggbtn:focus-visible { outline: 2px solid var(--gg-accent); outline-offset: 3px; }
.ggbtn:disabled,
.ggbtn[aria-disabled="true"],
.ggbtn.is-disabled { opacity: .52; cursor: not-allowed; pointer-events: none; }
.ggbtn.is-block { width: 100%; }
.ggbtn > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }

.ggbtn--primary,
.ggbtn--filled {
    border-color: transparent;
    background: var(--gg-control-tone, var(--gg-accent));
    color: var(--gg-on-primary, #fff);
    box-shadow: 0 10px 24px -14px color-mix(in srgb, var(--gg-control-tone, var(--gg-accent)) 82%, transparent);
}
.ggbtn--primary:not(:disabled):not([aria-disabled="true"]):not(.is-disabled):hover,
.ggbtn--filled:not(:disabled):not([aria-disabled="true"]):not(.is-disabled):hover {
    background: color-mix(in srgb, var(--gg-control-tone, var(--gg-accent)) 88%, #000);
}
.ggbtn--secondary {
    border-color: var(--gg-border);
    background: var(--gg-surface-muted);
    color: var(--gg-text);
}
.ggbtn--secondary:not(:disabled):not([aria-disabled="true"]):not(.is-disabled):hover {
    border-color: var(--gg-border-strong);
    background: var(--gg-surface-subtle);
}
.ggbtn--ghost,
.ggbtn--outlined {
    border-color: color-mix(in srgb, var(--gg-control-tone, var(--gg-border-strong)) 40%, var(--gg-border));
    background: transparent;
    color: var(--gg-control-tone, var(--gg-text));
}
.ggbtn--ghost:not(:disabled):not([aria-disabled="true"]):not(.is-disabled):hover,
.ggbtn--outlined:not(:disabled):not([aria-disabled="true"]):not(.is-disabled):hover {
    border-color: color-mix(in srgb, var(--gg-control-tone, var(--gg-border-strong)) 64%, var(--gg-border));
    background: color-mix(in srgb, var(--gg-control-tone, var(--gg-text)) 7%, transparent);
}
.ggbtn--text {
    border-color: transparent;
    background: transparent;
    color: var(--gg-control-tone, var(--gg-text-muted));
}
.ggbtn--text:not(:disabled):not([aria-disabled="true"]):not(.is-disabled):hover {
    background: color-mix(in srgb, var(--gg-control-tone, var(--gg-text)) 7%, transparent);
    color: var(--gg-control-tone, var(--gg-text));
}
.ggbtn--danger {
    border-color: color-mix(in srgb, var(--gg-danger, var(--gg-palette-error)) 40%, var(--gg-border));
    background: transparent;
    color: var(--gg-danger, var(--gg-palette-error));
}
.ggbtn--danger:not(:disabled):not([aria-disabled="true"]):not(.is-disabled):hover {
    background: color-mix(in srgb, var(--gg-danger, var(--gg-palette-error)) 10%, transparent);
}
.ggbtn.is-sm,
.ggbtn.gg-size--small { min-width: 36px; min-height: 36px; padding: 0 12px; border-radius: var(--gg-radius-sm, 10px); font-size: .8rem; }
.ggbtn.gg-size--large { min-width: 48px; min-height: 48px; padding-inline: 21px; font-size: 1rem; }
.gg-chip { display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:4px 9px;border-radius:999px;border:1px solid transparent;background:color-mix(in srgb,var(--gg-control-tone,var(--gg-text-muted)) 10%,transparent);color:var(--gg-control-tone,var(--gg-text));font-size:.78rem;font-weight:650; }
.gg-chip--outlined{background:transparent;border-color:color-mix(in srgb,var(--gg-control-tone,var(--gg-text-muted)) 35%,var(--gg-border))}.gg-chip button{border:0;background:transparent;color:inherit;padding:1px;display:grid;cursor:pointer}

.gg-overlay { position:fixed;inset:0;display:grid;place-items:center;padding:20px;background:rgba(4,8,11,.3);backdrop-filter:blur(3px); }.gg-overlay.is-dark{background:rgba(4,8,11,.64)}
.gg-fld-control { display:flex;align-items:center;gap:8px;min-height:var(--gg-control-height);padding:0 12px;border:1px solid var(--gg-border);border-radius:11px;background:var(--gg-surface);transition:border-color var(--gg-ease),box-shadow var(--gg-ease); }
.gg-fld-control:focus-within{border-color:var(--gg-primary);box-shadow:var(--gg-focus-ring)}
.gg-fld-control .gg-fld-input{flex:1;min-width:0;padding:10px 0;border:0!important;background:transparent!important;box-shadow:none!important;outline:0;color:var(--gg-text);resize:vertical}.gg-fld-help{font-size:.74rem;color:var(--gg-text-muted)}.gg-fld-help.is-error{color:var(--gg-palette-error)}
.gg-check{display:inline-flex;align-items:center;gap:9px;min-height:44px;cursor:pointer}.gg-check input{position:absolute;opacity:0}.gg-check-box{width:20px;height:20px;display:grid;place-items:center;border:1px solid var(--gg-border-strong);border-radius:6px;color:transparent;background:var(--gg-surface)}.gg-check input:checked+.gg-check-box{background:var(--gg-primary);border-color:var(--gg-primary);color:var(--gg-on-primary)}
.gg-slider{width:100%;accent-color:var(--gg-primary)}

.gg-table-wrap{width:100%;overflow:auto;border:1px solid var(--gg-border);border-radius:var(--gg-radius-lg);background:var(--gg-surface)}.gg-table{width:100%;border-collapse:collapse;font-size:.86rem}.gg-table th{padding:12px 14px;text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.055em;color:var(--gg-text-muted);background:var(--gg-surface-muted);border-bottom:1px solid var(--gg-border)}.gg-table td{padding:13px 14px;border-bottom:1px solid var(--gg-border);vertical-align:middle}.gg-table tbody tr:last-child td{border-bottom:0}.gg-table.has-hover tbody tr:hover{background:var(--gg-row-hover)}.gg-table.is-striped tbody tr:nth-child(even){background:color-mix(in srgb,var(--gg-surface-muted) 38%,transparent)}.gg-table.is-dense td{padding-block:9px}.gg-table-pager{padding:10px 14px;border-top:1px solid var(--gg-border);color:var(--gg-text-muted);font-size:.76rem}

.gg-menu{position:relative}.gg-menu>summary{list-style:none;cursor:pointer}.gg-menu>summary::-webkit-details-marker{display:none}.gg-menu-popover{position:absolute;z-index:100;top:calc(100% + 7px);right:0;min-width:190px;padding:6px;border:1px solid var(--gg-border);border-radius:13px;background:var(--gg-surface);box-shadow:var(--gg-shadow-soft)}.gg-menu-item{width:100%;min-height:40px;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--gg-text);text-align:left;cursor:pointer}.gg-menu-item:hover:not(:disabled){background:var(--gg-row-hover)}
.gg-button-group{display:inline-flex}.gg-button-group>*{border-radius:0!important;margin-left:-1px}.gg-button-group>*:first-child{border-radius:10px 0 0 10px!important;margin-left:0}.gg-button-group>*:last-child{border-radius:0 10px 10px 0!important}
.gg-radio-group{display:grid;gap:9px;margin:0;padding:0;border:0}.gg-radio{display:flex;align-items:center;gap:9px;min-height:44px;cursor:pointer}.gg-radio>input{position:absolute;opacity:0}.gg-radio>span:not(.gg-radio-label){width:20px;height:20px;border:1px solid var(--gg-border-strong);border-radius:50%;background:var(--gg-surface);box-shadow:inset 0 0 0 5px var(--gg-surface)}.gg-radio>input:checked+span{background:var(--gg-primary);border-color:var(--gg-primary)}
.gg-tabs-list{display:flex;gap:4px;overflow:auto;border-bottom:1px solid var(--gg-border)}.gg-tabs-list button{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:9px 13px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--gg-text-muted);white-space:nowrap;cursor:pointer}.gg-tabs-list button.is-active{color:var(--gg-text);border-bottom-color:var(--gg-primary)}.gg-tab-panel{padding-top:18px}
.gg-container{width:min(100% - 32px,1200px);margin-inline:auto}.gg-container--extrasmall{max-width:440px}.gg-container--small{max-width:640px}.gg-container--medium{max-width:900px}

@media(max-width:720px){.gg-table thead{display:none}.gg-table,.gg-table tbody,.gg-table tr,.gg-table td{display:block;width:100%}.gg-table tr{padding:9px 12px;border-bottom:1px solid var(--gg-border)}.gg-table td{display:grid;grid-template-columns:minmax(90px,38%) 1fr;gap:10px;padding:6px 0;border:0}.gg-table td::before{content:attr(data-label);color:var(--gg-text-muted);font-size:.72rem;font-weight:700}.gg-overlay{padding:0;align-items:end}.gg-grid-item{grid-column:span 12}}

.gg-dialog-host-scrim{position:fixed;inset:0;display:grid;place-items:center;padding:24px;background:rgba(4,8,11,.62);backdrop-filter:blur(6px)}
.gg-dialog-host-shell{width:min(100%,760px);max-height:min(90vh,900px);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--gg-border);border-radius:20px;background:var(--gg-surface);box-shadow:0 30px 90px rgba(0,0,0,.32)}
.gg-dialog-host--extrasmall{max-width:420px}.gg-dialog-host--small{max-width:560px}.gg-dialog-host--medium{max-width:760px}.gg-dialog-host--large{max-width:980px}.gg-dialog-host--extralarge{max-width:1200px}.gg-dialog-host--fullscreen{width:calc(100vw - 32px);height:calc(100vh - 32px);max-width:none;max-height:none}
.gg-intake-assisted-confirmation{border:1px solid color-mix(in srgb,var(--gg-primary) 35%,var(--gg-border));border-radius:14px;padding:14px;background:color-mix(in srgb,var(--gg-primary) 6%,transparent)}.gg-intake-assisted-confirmation p{margin:6px 0 10px;color:var(--gg-text-muted);font-size:.84rem;line-height:1.45}.gg-intake-assisted-confirmation .gg-intake-consent{display:flex;align-items:flex-start;gap:9px;font-size:.87rem}.gg-intake-assisted-confirmation .gg-intake-consent input{margin-top:3px}
.gg-dialog-host-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--gg-border)}.gg-dialog-host-head h2{margin:0;font-size:1.08rem;letter-spacing:-.015em}.gg-dialog-host-body{min-height:0;overflow:auto}.gg-dialog-frame-content{padding:18px}.gg-dialog-frame-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;padding:13px 18px;border-top:1px solid var(--gg-border);background:var(--gg-surface-muted)}
@media(max-width:640px){.gg-dialog-host-scrim{padding:0;place-items:end center}.gg-dialog-host-shell{width:100%;max-width:none;max-height:92dvh;border-radius:20px 20px 0 0;border-bottom:0}.gg-dialog-frame-actions>*{flex:1 1 auto}}
/* Scheduling composer footer keeps the calculated outcome visible at commit time. */
.gg-schedule-footer-summary {
    display: flex;
    flex: 1 1 30rem;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem 1.1rem;
    min-width: 0;
    color: var(--gg-text-muted);
    font-size: .78rem;
}
.gg-cdash-modal-backdrop { position: fixed; z-index: 80; inset: 0; display: grid; place-items: center; padding: 18px; background: rgba(3,8,12,.68); backdrop-filter: blur(6px); }
.gg-cdash-modal { width: min(560px, 100%); max-height: min(78vh, 680px); overflow: auto; border: 1px solid var(--gg-palette-lines-default, rgba(148,163,184,.28)); border-radius: 18px; background: var(--gg-palette-surface, #141c24); color: var(--gg-palette-text-primary, #f8fafc); box-shadow: 0 24px 70px rgba(0,0,0,.42); padding: 20px; }
.gg-cdash-modal header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.gg-cdash-modal h2 { margin: 0; font-size: 1.12rem; }.gg-cdash-modal p { margin: 4px 0 0; color: var(--gg-palette-text-secondary, #9aa4af); font-size: .88rem; }
.gg-cdash-modal-close { border: 0; background: transparent; color: inherit; font-size: 1.45rem; cursor: pointer; line-height: 1; }
.gg-cdash-trainer-list { display: grid; gap: 8px; }.gg-cdash-trainer-choice { display: flex; justify-content: space-between; align-items: center; gap: 12px; width: 100%; padding: 14px; border: 1px solid var(--gg-palette-lines-default, rgba(148,163,184,.25)); border-radius: 12px; background: transparent; color: inherit; text-align: left; cursor: pointer; }.gg-cdash-trainer-choice:hover { border-color: var(--gc-primary); }.gg-cdash-trainer-choice span { color: var(--gg-palette-text-secondary, #9aa4af); font-size: .8rem; }
.gg-cdash-gc-back { border: 0; background: transparent; color: var(--gc-primary); padding: 0 0 12px; font-weight: 700; cursor: pointer; }

.gg-schedule-footer-summary strong { color: var(--gg-text); }
.gg-schedule-footer-summary .has-conflict,
.gg-schedule-footer-summary .has-conflict strong { color: var(--gg-danger); }
.gg-schedule-footer-actions { display: flex; align-items: center; gap: .65rem; margin-left: auto; }
.gg-schedule-save-action { display: inline-flex; }

@media (max-width: 760px) {
    .gg-add-session-composer-footer {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr);
        gap: 7px !important;
        padding: 7px 10px calc(7px + env(safe-area-inset-bottom)) !important;
    }
    .gg-schedule-footer-summary {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 3px 10px;
        width: 100%;
        flex-basis: 100%;
        font-size: .68rem;
        line-height: 1.25;
    }
    .gg-schedule-footer-summary > span {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .gg-schedule-footer-actions {
        display: grid !important;
        grid-template-columns: auto auto minmax(0, 1fr);
        width: 100%;
        min-width: 0;
        justify-content: stretch;
    }

    .gg-schedule-save-action:not(.is-final) {
        display: none;
    }

    .gg-add-session-composer-footer.is-step-1 .gg-schedule-step-back,
    .gg-add-session-composer-footer.is-step-3 .gg-schedule-step-next {
        display: none;
    }

    .gg-add-session-composer-footer.is-step-1 .gg-schedule-footer-actions {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }

    .gg-add-session-composer-footer.is-step-1 .gg-schedule-footer-actions > :first-child {
        grid-column: 1;
    }

    .gg-add-session-composer-footer.is-step-1 .gg-schedule-step-next {
        grid-column: 2;
    }

    .gg-add-session-composer-footer.is-step-3 .gg-schedule-footer-actions {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }

    .gg-add-session-composer-footer.is-step-3 .gg-schedule-footer-actions > :first-child {
        grid-column: 1;
        grid-row: 1;
    }

    .gg-add-session-composer-footer.is-step-3 .gg-schedule-step-back {
        grid-column: 2;
        grid-row: 1;
    }

    .gg-add-session-composer-footer.is-step-3 .gg-schedule-save-action {
        grid-column: 1 / -1;
        grid-row: 2;
    }
}
/* Shared calendar/client scheduling entry point. */
.gg-schedule-client-picker { display: grid; gap: .55rem; }
.gg-schedule-client-picker > button {
    width: 100%; min-height: 56px; display: grid; grid-template-columns: 2.25rem 1fr auto;
    align-items: center; gap: .75rem; padding: .65rem .75rem; border: 1px solid var(--gg-border);
    border-radius: .75rem; background: var(--gg-surface); color: var(--gg-text); text-align: left;
}
.gg-schedule-client-picker > button:hover { border-color: var(--gg-brand); background: var(--gg-surface-raised); }
.gg-schedule-client-picker strong, .gg-schedule-client-picker small { display: block; }
.gg-schedule-client-picker small { color: var(--gg-text-muted); margin-top: .1rem; }

/* The scheduler's month preview lives in a height-constrained modal. Keep its
   six calendar rows inside that surface instead of letting their fixed minimum
   height push the last weeks below the footer. */
.gg-weekly-calendar-surface .gg-cal-month {
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.gg-weekly-calendar-surface .gg-cal-month-grid {
    flex: 1 1 0;
    min-height: 0;
    grid-template-rows: repeat(6, minmax(0, 1fr));
    grid-auto-rows: minmax(0, 1fr);
}

.gg-weekly-calendar-surface .gg-cal-month-day {
    min-height: 0;
    overflow: hidden;
}
