/* _content/HémiolePro.Web/Components/Layout/AuthLayout.razor.rz.scp.css */
/* AuthLayout.razor.css
   Intentionnellement vide : tous les styles .auth-* sont dans app.css (global)
   car le CSS scopé Blazor ne se propage pas aux composants enfants.
   Voir wwwroot/app.css section "Auth — styles globaux".
*/
/* _content/HémiolePro.Web/Components/Layout/HpSidebar.razor.rz.scp.css */
/* HpSidebar.razor.css — styles scopés */

.hp-sidebar[b-28mmffb5e4] {
    width: var(--sidebar-width);
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    background: var(--surface-alt);
    border-right: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    z-index: 100;
    transition: width var(--transition);
    overflow: hidden;
}

.hp-sidebar--collapsed[b-28mmffb5e4] {
    width: var(--sidebar-compact);
}

/* Header */
.hp-sidebar__header[b-28mmffb5e4] {
    padding: var(--space-4) var(--space-4) var(--space-3);
    border-bottom: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    position: relative;
}

.hp-sidebar__logo[b-28mmffb5e4] {
    display: flex;
    align-items: center;
    gap: var(--space-2-5);
    text-decoration: none;
    min-height: 44px;
}

.hp-sidebar__brand[b-28mmffb5e4] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--ink);
}

.hp-sidebar__brand-accent[b-28mmffb5e4] {
    color: var(--accent);
}

.hp-sidebar__tenant[b-28mmffb5e4] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-left: 2px;
}

.hp-sidebar__toggle[b-28mmffb5e4] {
    all: unset;
    position: absolute;
    top: var(--space-4);
    right: var(--space-3);
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-sm);
    color: var(--ink-subtle);
    cursor: pointer;
    transition: background var(--transition-fast), color var(--transition-fast);
}

.hp-sidebar__toggle:hover[b-28mmffb5e4] {
    background: var(--border);
    color: var(--ink);
}

/* Nav */
.hp-sidebar__nav[b-28mmffb5e4] {
    list-style: none;
    padding: var(--space-3) var(--space-2);
    flex: 1;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.hp-sidebar__link[b-28mmffb5e4] {
    display: flex;
    align-items: center;
    gap: var(--space-2-5);
    padding: var(--space-2-5) var(--space-3);
    border-radius: var(--radius-md);
    color: var(--ink-muted);
    font-size: var(--text-sm);
    font-weight: 500;
    text-decoration: none;
    min-height: 44px;
    transition: background var(--transition-fast), color var(--transition-fast);
    white-space: nowrap;
}

.hp-sidebar__link:hover[b-28mmffb5e4] {
    background: var(--accent-soft);
    color: var(--ink);
    text-decoration: none;
}

.hp-sidebar__link--active[b-28mmffb5e4] {
    background: var(--accent-soft);
    color: var(--accent);
    font-weight: 600;
    border-left: 3px solid var(--accent);
    padding-left: calc(var(--space-3) - 3px);
}

.hp-sidebar__link--active:hover[b-28mmffb5e4] {
    color: var(--accent);
}

.hp-sidebar__icon[b-28mmffb5e4] {
    flex-shrink: 0;
    width: 17px;
    height: 17px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hp-sidebar__label[b-28mmffb5e4] {
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Footer */
.hp-sidebar__footer[b-28mmffb5e4] {
    padding: var(--space-2) var(--space-2) var(--space-4);
    border-top: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.hp-sidebar__hr[b-28mmffb5e4] {
    border: none;
    border-top: 1px solid var(--border);
    margin: var(--space-1) 0 var(--space-2);
}

/* Séparateurs de sections */
.hp-sidebar__section-divider[b-28mmffb5e4] {
    list-style: none;
    height: 1px;
    background: var(--border);
    margin: var(--space-1) var(--space-2);
}

.hp-sidebar__section-label[b-28mmffb5e4] {
    list-style: none;
    font-size: var(--text-2xs);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-subtle);
    padding: var(--space-2) var(--space-3) var(--space-1);
}

/* Overlay mobile */
.hp-sidebar__overlay[b-28mmffb5e4] {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(10, 6, 28, 0.45);
    z-index: 99;
    animation: hp-fade-in var(--transition-fast) ease;
}

/* ── Mobile ── */
@media (max-width: 768px) {
    .hp-sidebar[b-28mmffb5e4] {
        transform: translateX(-100%);
        transition: transform var(--transition);
        width: var(--sidebar-width);
    }

    .hp-sidebar--open[b-28mmffb5e4] {
        transform: translateX(0);
    }

    .hp-sidebar__overlay[b-28mmffb5e4] {
        display: block;
    }

    .hp-sidebar__toggle[b-28mmffb5e4] {
        display: none;
    }
}
/* _content/HémiolePro.Web/Components/Layout/HpTopbar.razor.rz.scp.css */
/* HpTopbar.razor.css */

.hp-topbar[b-18zybo02x1] {
    height: var(--topbar-height);
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    box-shadow: 0 1px 0 var(--border), 0 2px 8px rgba(14, 11, 28, 0.04);
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: 0 var(--space-8);
    position: sticky;
    top: 0;
    z-index: 50;
}

.hp-topbar__hamburger[b-18zybo02x1] {
    all: unset;
    display: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: var(--radius-md);
    color: var(--ink-muted);
    cursor: pointer;
    transition: background var(--transition-fast);
    flex-shrink: 0;
}

.hp-topbar__hamburger:hover[b-18zybo02x1] {
    background: var(--accent-soft);
    color: var(--ink);
}

.hp-topbar__title[b-18zybo02x1] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--ink);
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hp-topbar__actions[b-18zybo02x1] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-shrink: 0;
}

.hp-topbar__icon-btn[b-18zybo02x1] {
    all: unset;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-md);
    color: var(--ink-muted);
    cursor: pointer;
    transition: background var(--transition-fast), color var(--transition-fast);
}

.hp-topbar__icon-btn:hover[b-18zybo02x1] {
    background: var(--accent-soft);
    color: var(--ink);
}

/* User menu */
.hp-topbar__user-menu[b-18zybo02x1] {
    position: relative;
}

.hp-topbar__user-btn[b-18zybo02x1] {
    all: unset;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-1-5) var(--space-3) var(--space-1-5) var(--space-1-5);
    border-radius: var(--radius-pill);
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--ink);
    cursor: pointer;
    min-height: 44px;
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.hp-topbar__user-btn:hover[b-18zybo02x1] {
    border-color: var(--border-strong);
    background: var(--surface-alt);
}

.hp-topbar__avatar[b-18zybo02x1] {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--accent), #3a1660);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-family: var(--font-body);
}

.hp-topbar__user-name[b-18zybo02x1] {
    font-size: var(--text-sm);
    font-weight: 500;
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.hp-topbar__chevron[b-18zybo02x1] {
    color: var(--ink-subtle);
    transition: transform var(--transition-fast);
}

.hp-topbar__chevron--open[b-18zybo02x1] {
    transform: rotate(180deg);
}

/* Dropdown */
.hp-topbar__dropdown[b-18zybo02x1] {
    position: absolute;
    top: calc(100% + var(--space-2));
    right: 0;
    min-width: 180px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-modal);
    padding: var(--space-1-5);
    z-index: 200;
}

.hp-topbar__dropdown-item[b-18zybo02x1] {
    all: unset;
    display: flex;
    align-items: center;
    gap: var(--space-2-5);
    padding: var(--space-2-5) var(--space-3);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ink-muted);
    cursor: pointer;
    width: 100%;
    box-sizing: border-box;
    transition: background var(--transition-fast), color var(--transition-fast);
    text-decoration: none;
    min-height: 44px;
}

.hp-topbar__dropdown-item:hover[b-18zybo02x1] {
    background: var(--accent-soft);
    color: var(--ink);
    text-decoration: none;
}

.hp-topbar__dropdown-item--danger:hover[b-18zybo02x1] {
    background: var(--danger-soft);
    color: var(--danger);
}

.hp-topbar__dropdown-sep[b-18zybo02x1] {
    border: none;
    border-top: 1px solid var(--border);
    margin: var(--space-1-5) 0;
}

.hp-topbar__dropdown-form[b-18zybo02x1] {
    display: contents;
}

/* ── Mobile ── */
@media (max-width: 768px) {
    .hp-topbar[b-18zybo02x1] {
        padding: 0 var(--space-4);
    }

    .hp-topbar__hamburger[b-18zybo02x1] {
        display: flex;
    }

    .hp-topbar__user-name[b-18zybo02x1] {
        display: none;
    }
}
/* _content/HémiolePro.Web/Components/Layout/LandingLayout.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════
   LandingLayout — Navbar fixe + Footer
   Tokens CSS uniquement · Pas de valeur hex en dur
   ═══════════════════════════════════════════════════════════════ */

/* ── Reset base layout ──────────────────────────────────────── */
.landing-layout[b-aknorx37bb] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background: var(--bg);
    font-family: var(--font-body);
    color: var(--ink);
}

/* ── Navbar ─────────────────────────────────────────────────── */
.landing-nav[b-aknorx37bb] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.landing-nav__inner[b-aknorx37bb] {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--space-6);
    height: 64px;
    display: flex;
    align-items: center;
    gap: var(--space-8);
}

/* Logo + marque */
.landing-nav__brand[b-aknorx37bb] {
    display: flex;
    align-items: center;
    gap: var(--space-2-5);
    text-decoration: none;
    flex-shrink: 0;
}

.landing-nav__brand-text[b-aknorx37bb] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.01em;
}

.landing-nav__brand-accent[b-aknorx37bb] {
    color: var(--accent);
}

/* Liens desktop */
.landing-nav__links[b-aknorx37bb] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    margin-left: auto;
}

.landing-nav__link[b-aknorx37bb] {
    font-size: var(--text-md);
    font-weight: 500;
    color: var(--ink-muted);
    text-decoration: none;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-md);
    transition: color var(--transition), background var(--transition);
    min-height: 44px;
    display: inline-flex;
    align-items: center;
}

.landing-nav__link:hover[b-aknorx37bb] {
    color: var(--ink);
    background: var(--accent-soft);
}

.landing-nav__btn-ghost[b-aknorx37bb] {
    font-size: var(--text-md);
    font-weight: 500;
    color: var(--ink);
    text-decoration: none;
    padding: 0 var(--space-4);
    height: 40px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-md);
    transition: border-color var(--transition), background var(--transition);
}

.landing-nav__btn-ghost:hover[b-aknorx37bb] {
    border-color: var(--accent-border);
    background: var(--accent-soft);
    color: var(--accent);
}

.landing-nav__btn-primary[b-aknorx37bb] {
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--surface);
    text-decoration: none;
    padding: 0 var(--space-5);
    height: 40px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    background: var(--accent);
    border-radius: var(--radius-md);
    transition: opacity var(--transition), box-shadow var(--transition);
}

.landing-nav__btn-primary:hover[b-aknorx37bb] {
    opacity: 0.88;
    box-shadow: var(--shadow-glow);
}

/* Hamburger mobile */
.landing-nav__hamburger[b-aknorx37bb] {
    display: none;
    margin-left: auto;
    padding: var(--space-2);
    background: none;
    border: none;
    cursor: pointer;
    color: var(--ink);
    border-radius: var(--radius-md);
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    transition: background var(--transition);
}

.landing-nav__hamburger:hover[b-aknorx37bb] {
    background: var(--accent-soft);
}

/* Menu mobile */
.landing-nav__mobile[b-aknorx37bb] {
    display: none;
    flex-direction: column;
    gap: var(--space-1);
    padding: var(--space-4) var(--space-6) var(--space-6);
    border-top: 1px solid var(--border);
    background: var(--surface);
}

.landing-nav__mobile--open[b-aknorx37bb] {
    display: flex;
}

.landing-nav__mobile-link[b-aknorx37bb] {
    font-size: var(--text-lg);
    font-weight: 500;
    color: var(--ink);
    text-decoration: none;
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    min-height: 48px;
    display: flex;
    align-items: center;
    transition: background var(--transition);
}

.landing-nav__mobile-link:hover[b-aknorx37bb] {
    background: var(--accent-soft);
    color: var(--accent);
}

.landing-nav__mobile-cta[b-aknorx37bb] {
    margin-top: var(--space-2);
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--surface);
    text-decoration: none;
    padding: 0 var(--space-5);
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--accent);
    border-radius: var(--radius-md);
    transition: opacity var(--transition);
}

.landing-nav__mobile-cta:hover[b-aknorx37bb] {
    opacity: 0.88;
}

/* ── Contenu ─────────────────────────────────────────────────── */
.landing-main[b-aknorx37bb] {
    flex: 1;
    padding-top: 64px; /* hauteur navbar */
}

/* ── Footer ──────────────────────────────────────────────────── */
.landing-footer[b-aknorx37bb] {
    background: var(--surface);
    border-top: 1px solid var(--border);
    padding: var(--space-10) var(--space-6);
}

.landing-footer__inner[b-aknorx37bb] {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: var(--space-8);
    flex-wrap: wrap;
}

.landing-footer__brand[b-aknorx37bb] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.landing-footer__brand-text[b-aknorx37bb] {
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 700;
    color: var(--ink-muted);
}

.landing-footer__links[b-aknorx37bb] {
    display: flex;
    gap: var(--space-5);
    flex-wrap: wrap;
}

.landing-footer__link[b-aknorx37bb] {
    font-size: var(--text-sm);
    color: var(--ink-subtle);
    text-decoration: none;
    transition: color var(--transition);
}

.landing-footer__link:hover[b-aknorx37bb] {
    color: var(--ink-muted);
}

.landing-footer__copy[b-aknorx37bb] {
    margin-left: auto;
    font-size: var(--text-sm);
    color: var(--ink-subtle);
}

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 768px) {
    .landing-nav__links[b-aknorx37bb] {
        display: none;
    }

    .landing-nav__hamburger[b-aknorx37bb] {
        display: inline-flex;
    }

    .landing-footer__inner[b-aknorx37bb] {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-5);
    }

    .landing-footer__copy[b-aknorx37bb] {
        margin-left: 0;
    }
}
/* _content/HémiolePro.Web/Components/Layout/MainLayout.razor.rz.scp.css */
/* MainLayout.razor.css
   La sidebar est en position:fixed.
   --current-sidebar-width est injectée dynamiquement depuis MainLayout.razor
   via style inline, et mise à jour à chaque toggle collapsed.
*/

.hp-layout[b-mnzhy9c0mt] {
    min-height: 100vh;
    --current-sidebar-width: var(--sidebar-width); /* valeur par défaut SSR */
}

.hp-layout__main[b-mnzhy9c0mt] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    margin-left: var(--current-sidebar-width);
    transition: margin-left var(--transition);
}

.hp-layout__content[b-mnzhy9c0mt] {
    flex: 1;
    padding: var(--space-8);
    overflow-y: auto;
}

/* ── Mobile ── */
@media (max-width: 768px) {
    .hp-layout__main[b-mnzhy9c0mt] {
        margin-left: 0;
    }

    .hp-layout__content[b-mnzhy9c0mt] {
        padding: var(--space-4);
    }
}

/* Blazor error UI */
#blazor-error-ui[b-mnzhy9c0mt] {
    background: var(--warning-soft);
    border: 1px solid var(--warning-border);
    border-radius: var(--radius-md);
    color: var(--warning);
    padding: var(--space-3) var(--space-4);
    display: none;
    position: fixed;
    bottom: var(--space-4);
    right: var(--space-4);
    z-index: 1000;
    font-size: var(--text-sm);
    max-width: 400px;
    box-shadow: var(--shadow-modal);
}

#blazor-error-ui .dismiss[b-mnzhy9c0mt] {
    cursor: pointer;
    margin-left: var(--space-3);
    font-style: normal;
}

/* _content/HémiolePro.Web/Components/Pages/Abonnements/AccesBloque.razor.rz.scp.css */
.ab-layout[b-mb2zu5hkah] {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg);
    padding: var(--space-6);
}

.ab-card[b-mb2zu5hkah] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-10) var(--space-8);
    width: 100%;
    max-width: 440px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-5);
    text-align: center;
}

.ab-logo[b-mb2zu5hkah] {
    display: flex;
    align-items: center;
    gap: var(--space-2-5);
    text-decoration: none;
    margin-bottom: var(--space-2);
}

.ab-logo__brand[b-mb2zu5hkah] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--ink);
}

.ab-logo__accent[b-mb2zu5hkah] { color: var(--accent); }

.ab-icon[b-mb2zu5hkah] {
    width: 60px;
    height: 60px;
    border-radius: var(--radius-lg);
    background: var(--warning-soft);
    border: 1px solid var(--warning-border);
    color: var(--warning);
    display: flex;
    align-items: center;
    justify-content: center;
}

.ab-titre[b-mb2zu5hkah] {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--ink);
    margin: 0;
}

.ab-desc[b-mb2zu5hkah] {
    font-family: var(--font-body);
    font-size: var(--text-md);
    color: var(--ink-muted);
    line-height: 1.6;
    margin: 0;
}

.ab-actions[b-mb2zu5hkah] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    width: 100%;
}

.ab-btn-primary[b-mb2zu5hkah] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-3) var(--space-6);
    background: var(--accent);
    color: var(--surface);
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: var(--text-md);
    font-weight: 600;
    text-decoration: none;
    min-height: 44px;
    transition: opacity 0.15s;
}

.ab-btn-primary:hover[b-mb2zu5hkah] { opacity: 0.88; }

.ab-btn-primary:focus-visible[b-mb2zu5hkah] {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
}

.ab-btn-ghost[b-mb2zu5hkah] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-2-5) var(--space-6);
    background: none;
    color: var(--ink-muted);
    border: 1.5px solid var(--border-strong);
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: var(--text-md);
    font-weight: 500;
    text-decoration: none;
    min-height: 44px;
    transition: background 0.15s;
}

.ab-btn-ghost:hover[b-mb2zu5hkah] { background: var(--surface-alt); }

.ab-note[b-mb2zu5hkah] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink-subtle);
    margin: 0;
}
/* _content/HémiolePro.Web/Components/Pages/Abonnements/GestionAbonnement.razor.rz.scp.css */
.ga-page[b-hquw7attuz] {
    max-width: 760px;
    margin: 0 auto;
    padding: var(--space-8) var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

/* ── Skeleton ────────────────────────────────────────────────────────────── */
.ga-skeleton[b-hquw7attuz] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.ga-skeleton__block[b-hquw7attuz] {
    height: 80px;
    background: var(--border);
    border-radius: var(--radius-md);
    animation: ga-pulse-b-hquw7attuz 1.5s ease-in-out infinite;
}

.ga-skeleton__block--sm[b-hquw7attuz] { height: 48px; }

@keyframes ga-pulse-b-hquw7attuz {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.4; }
}

/* ── Banner essai ─────────────────────────────────────────────────────────── */
.ga-banner-essai[b-hquw7attuz] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
    padding: var(--space-5) var(--space-6);
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 70%, var(--exercice)));
    color: var(--surface);
}

.ga-banner-essai--urgent[b-hquw7attuz] {
    background: linear-gradient(135deg, var(--danger), var(--exercice));
}

.ga-banner-essai__icon[b-hquw7attuz] {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
}

.ga-banner-essai__body[b-hquw7attuz] {
    flex: 1;
    min-width: 0;
}

.ga-banner-essai__label[b-hquw7attuz] {
    font-family: var(--font-body);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    opacity: 0.85;
    margin-bottom: var(--space-1);
}

.ga-banner-essai__titre[b-hquw7attuz] {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.2;
    margin-bottom: var(--space-1);
}

.ga-banner-essai__detail[b-hquw7attuz] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    opacity: 0.85;
    line-height: 1.5;
}

/* ── Section head ────────────────────────────────────────────────────────── */
.ga-section-head[b-hquw7attuz] {
    text-align: center;
}

.ga-section-title[b-hquw7attuz] {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--ink);
    margin: 0 0 var(--space-2) 0;
    letter-spacing: -0.015em;
}

.ga-section-sub[b-hquw7attuz] {
    font-family: var(--font-body);
    font-size: var(--text-md);
    color: var(--ink-muted);
    margin: 0;
}

/* ── Billing toggle ──────────────────────────────────────────────────────── */
.ga-billing-toggle[b-hquw7attuz] {
    display: flex;
    align-self: center;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: 3px;
    gap: 3px;
}

.ga-billing-btn[b-hquw7attuz] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-5);
    border-radius: calc(var(--radius-md) - 3px);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ink-muted);
    background: transparent;
    border: none;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, box-shadow 0.15s;
}

.ga-billing-btn--active[b-hquw7attuz] {
    background: var(--surface);
    color: var(--ink);
    font-weight: 600;
    box-shadow: 0 1px 3px var(--border);
}

.ga-billing-badge[b-hquw7attuz] {
    padding: 2px 6px;
    background: var(--success);
    color: var(--surface);
    border-radius: var(--radius-pill);
    font-size: var(--text-xs);
    font-weight: 700;
}

/* ── Plans ───────────────────────────────────────────────────────────────── */
.ga-plans[b-hquw7attuz] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4);
    align-items: start;
}

@media (max-width: 560px) {
    .ga-plans[b-hquw7attuz] { grid-template-columns: 1fr; }
}

.ga-plan[b-hquw7attuz] {
    background: var(--surface);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    position: relative;
    transition: opacity 0.2s;
}

.ga-plan--featured[b-hquw7attuz] {
    border-color: var(--accent);
    background: linear-gradient(150deg, var(--surface) 60%, var(--accent-soft));
    box-shadow: 0 12px 32px -12px color-mix(in srgb, var(--accent) 25%, transparent);
}

.ga-plan--dimmed[b-hquw7attuz] {
    opacity: 0.6;
}

.ga-plan__top-badge[b-hquw7attuz] {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    padding: 3px 12px;
    background: var(--accent);
    color: var(--surface);
    font-family: var(--font-body);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-radius: var(--radius-pill);
    white-space: nowrap;
}

.ga-plan__kicker[b-hquw7attuz] {
    font-family: var(--font-body);
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.ga-plan__prix-wrap[b-hquw7attuz] {
    display: flex;
    align-items: baseline;
    gap: var(--space-2);
}

.ga-plan__prix[b-hquw7attuz] {
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.025em;
    font-variant-numeric: tabular-nums;
}

.ga-plan__unite[b-hquw7attuz] {
    font-family: var(--font-body);
    font-size: var(--text-lg);
    font-weight: 400;
    color: var(--ink-muted);
}

.ga-plan__hint[b-hquw7attuz] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    margin: 0;
    line-height: 1.4;
}

.ga-plan__promo[b-hquw7attuz] {
    color: var(--success);
}

.ga-plan__features[b-hquw7attuz] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    border-top: 1px solid var(--border);
    padding-top: var(--space-4);
}

.ga-plan__features li[b-hquw7attuz] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink-muted);
}

.ga-plan__features li[b-hquw7attuz]::before {
    content: '';
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    background: var(--success-soft);
    border: 1px solid var(--success-border);
    border-radius: 50%;
    background-image: url("data:image/svg+xml,%3Csvg width='9' height='7' viewBox='0 0 9 7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='1 3.5 3.5 6 8 1' stroke='%231F9D87' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
}

.ga-plan__cta[b-hquw7attuz] {
    width: 100%;
    margin-top: var(--space-2);
}

/* ── Bannières ───────────────────────────────────────────────────────────── */
.ga-banner[b-hquw7attuz] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-4);
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: var(--text-md);
    line-height: 1.5;
}

.ga-banner--info[b-hquw7attuz] {
    background: var(--accent-soft);
    border: 1px solid var(--accent-border);
    color: var(--accent);
}

.ga-banner--warning[b-hquw7attuz] {
    background: var(--warning-soft);
    border: 1px solid var(--warning-border);
    color: var(--warning);
}

.ga-banner--danger[b-hquw7attuz] {
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger);
}

/* ── Card statut actif ───────────────────────────────────────────────────── */
.ga-status-card[b-hquw7attuz] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
    padding: var(--space-5);
    border-radius: var(--radius-md);
    border: 1px solid var(--border);
}

.ga-status-card--success[b-hquw7attuz] {
    background: var(--success-soft);
    border-color: var(--success-border);
}

.ga-status-card__icon[b-hquw7attuz] {
    color: var(--success);
    flex-shrink: 0;
    margin-top: 2px;
}

.ga-status-card__content[b-hquw7attuz] {
    flex: 1;
    min-width: 0;
}

.ga-status-card__titre[b-hquw7attuz] {
    font-family: var(--font-body);
    font-size: var(--text-md);
    font-weight: 700;
    color: var(--ink);
    margin: 0 0 var(--space-1) 0;
}

.ga-status-card__desc[b-hquw7attuz] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    margin: 0 0 var(--space-2) 0;
    line-height: 1.5;
}

.ga-status-card__next[b-hquw7attuz] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    margin: 0;
}

/* ── Confirmation réactivation ────────────────────────────────────────────── */
.ga-confirm-bloc[b-hquw7attuz] {
    padding: var(--space-5);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.ga-confirm-bloc__head[b-hquw7attuz] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-family: var(--font-body);
    font-size: var(--text-md);
    color: var(--ink);
}

.ga-confirm-bloc p[b-hquw7attuz] {
    font-family: var(--font-body);
    font-size: var(--text-md);
    color: var(--ink-muted);
    margin: 0;
    line-height: 1.5;
}

.ga-confirm-actions[b-hquw7attuz] {
    display: flex;
    gap: var(--space-3);
    flex-wrap: wrap;
}

/* ── Historique ──────────────────────────────────────────────────────────── */
.ga-historique[b-hquw7attuz] {
    border-top: 1px solid var(--border);
    padding-top: var(--space-6);
}

.ga-historique__titre[b-hquw7attuz] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--ink);
    margin: 0 0 var(--space-4) 0;
    letter-spacing: -0.01em;
}

.ga-historique__date[b-hquw7attuz] {
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    white-space: nowrap;
}

.ga-historique__transition[b-hquw7attuz] {
    color: var(--ink);
    font-weight: 500;
    font-size: var(--text-sm);
}

.ga-historique__motif[b-hquw7attuz] {
    color: var(--ink-subtle);
    font-style: italic;
    font-size: var(--text-sm);
}

/* ── Spinner ─────────────────────────────────────────────────────────────── */
.ga-spinner[b-hquw7attuz] {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: var(--surface);
    border-radius: 50%;
    animation: ga-spin-b-hquw7attuz 0.7s linear infinite;
    display: inline-block;
    flex-shrink: 0;
}

.ga-spinner--dark[b-hquw7attuz] {
    border-color: rgba(0, 0, 0, 0.12);
    border-top-color: var(--ink);
}

@keyframes ga-spin-b-hquw7attuz {
    to { transform: rotate(360deg); }
}
/* _content/HémiolePro.Web/Components/Pages/Abonnements/Onboarding.razor.rz.scp.css */
.ob-layout[b-0806ypxky0] {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg);
    padding: var(--space-6);
}

.ob-card[b-0806ypxky0] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-10) var(--space-8);
    width: 100%;
    max-width: 520px;
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

@media (max-width: 540px) {
    .ob-card[b-0806ypxky0] {
        padding: var(--space-6) var(--space-5);
    }
}

/* ── Logo ───────────────────────────────────────────────────────────────── */
.ob-logo[b-0806ypxky0] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    text-decoration: none;
    align-self: flex-start;
}

.ob-logo__brand[b-0806ypxky0] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--ink);
}

.ob-logo__accent[b-0806ypxky0] {
    color: var(--accent);
}

/* ── Stepper ─────────────────────────────────────────────────────────────── */
.ob-stepper[b-0806ypxky0] {
    display: flex;
    align-items: center;
    gap: 0;
}

.ob-stepper__step[b-0806ypxky0] {
    display: flex;
    align-items: center;
    flex: 1;
}

.ob-stepper__step:last-child[b-0806ypxky0] {
    flex: 0;
}

.ob-stepper__num[b-0806ypxky0] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 2px solid var(--border-strong);
    background: var(--surface);
    color: var(--ink-muted);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.ob-stepper__step--active .ob-stepper__num[b-0806ypxky0] {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--surface);
}

.ob-stepper__step--done .ob-stepper__num[b-0806ypxky0] {
    background: var(--success);
    border-color: var(--success);
    color: var(--surface);
}

.ob-stepper__line[b-0806ypxky0] {
    flex: 1;
    height: 2px;
    background: var(--border);
    margin: 0 var(--space-2);
}

.ob-stepper__step--done + .ob-stepper__step .ob-stepper__line[b-0806ypxky0],
.ob-stepper__step--done .ob-stepper__line[b-0806ypxky0] {
    background: var(--success);
}

/* ── Titres ─────────────────────────────────────────────────────────────── */
.ob-title[b-0806ypxky0] {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--ink);
    margin: 0;
}

.ob-subtitle[b-0806ypxky0] {
    font-family: var(--font-body);
    font-size: var(--text-md);
    color: var(--ink-muted);
    margin: 0;
    line-height: 1.5;
}

/* ── Cards de type ───────────────────────────────────────────────────────── */
.ob-type-cards[b-0806ypxky0] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.ob-type-card[b-0806ypxky0] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-2);
    padding: var(--space-5);
    background: var(--surface);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-md);
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
    min-height: 44px;
}

.ob-type-card:hover[b-0806ypxky0] {
    border-color: var(--accent-border);
    background: var(--accent-soft);
}

.ob-type-card--selected[b-0806ypxky0] {
    border-color: var(--accent);
    background: var(--accent-soft);
}

.ob-type-card:focus-visible[b-0806ypxky0] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.ob-type-card__icon[b-0806ypxky0] {
    color: var(--accent);
    display: flex;
}

.ob-type-card__titre[b-0806ypxky0] {
    font-family: var(--font-body);
    font-size: var(--text-md);
    font-weight: 700;
    color: var(--ink);
}

.ob-type-card__desc[b-0806ypxky0] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    line-height: 1.4;
}

.ob-type-card__check[b-0806ypxky0] {
    position: absolute;
    top: var(--space-4);
    right: var(--space-4);
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--accent);
    color: var(--surface);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ── Formulaire ─────────────────────────────────────────────────────────── */
.ob-form[b-0806ypxky0] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.ob-field[b-0806ypxky0] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.ob-label[b-0806ypxky0] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
}

.ob-label-opt[b-0806ypxky0] {
    font-weight: 400;
    color: var(--ink-subtle);
}

.ob-input[b-0806ypxky0] {
    padding: var(--space-2-5) var(--space-4);
    border: 1.5px solid var(--border-strong);
    border-radius: var(--radius-md);
    background: var(--surface);
    font-family: var(--font-body);
    font-size: var(--text-md);
    color: var(--ink);
    width: 100%;
    min-height: 44px;
    transition: border-color 0.15s;
    box-sizing: border-box;
}

.ob-input:focus[b-0806ypxky0] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.ob-input--select[b-0806ypxky0] {
    cursor: pointer;
    appearance: auto;
}

.ob-validation[b-0806ypxky0] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--danger);
}

/* ── Consentements ──────────────────────────────────────────────────────── */
.ob-consents[b-0806ypxky0] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-5);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}

.ob-consent[b-0806ypxky0] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    font-family: var(--font-body);
    font-size: var(--text-md);
    color: var(--ink);
    cursor: pointer;
    line-height: 1.4;
}

.ob-consent__check[b-0806ypxky0] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    margin-top: 2px;
    accent-color: var(--accent);
    cursor: pointer;
}

.ob-consent__link[b-0806ypxky0] {
    color: var(--accent);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* ── Boutons ────────────────────────────────────────────────────────────── */
.ob-btn-primary[b-0806ypxky0] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-6);
    background: var(--accent);
    color: var(--surface);
    border: none;
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: var(--text-md);
    font-weight: 600;
    cursor: pointer;
    min-height: 44px;
    transition: opacity 0.15s;
    width: fit-content;
    align-self: flex-start;
}

.ob-btn-primary--full[b-0806ypxky0] {
    width: 100%;
    align-self: stretch;
}

.ob-btn-primary:hover:not(:disabled)[b-0806ypxky0] { opacity: 0.88; }
.ob-btn-primary:disabled[b-0806ypxky0] { opacity: 0.5; cursor: not-allowed; }

.ob-btn-primary:focus-visible[b-0806ypxky0] {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
}

.ob-btn-ghost[b-0806ypxky0] {
    background: none;
    border: none;
    color: var(--ink-muted);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    cursor: pointer;
    padding: var(--space-2) 0;
    text-decoration: underline;
    text-underline-offset: 2px;
    min-height: 44px;
    align-self: flex-start;
}

.ob-btn-ghost:hover[b-0806ypxky0] { color: var(--ink); }

/* ── Note réassurance ───────────────────────────────────────────────────── */
.ob-reassurance[b-0806ypxky0] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    margin: 0;
}

/* ── Alerte ─────────────────────────────────────────────────────────────── */
.ob-alert[b-0806ypxky0] {
    padding: var(--space-3) var(--space-4);
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--danger);
}

/* ── Spinner ────────────────────────────────────────────────────────────── */
.ob-spinner[b-0806ypxky0] {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,0.3);
    border-top-color: var(--surface);
    border-radius: 50%;
    animation: ob-spin-b-0806ypxky0 0.7s linear infinite;
    display: inline-block;
    flex-shrink: 0;
}

@keyframes ob-spin-b-0806ypxky0 {
    to { transform: rotate(360deg); }
}
/* _content/HémiolePro.Web/Components/Pages/Abonnements/Tarifs.razor.rz.scp.css */
.tarifs[b-3l7whlp9e1] {
    max-width: 1100px;
    margin: 0 auto;
    padding: var(--space-16) var(--space-6) var(--space-12);
}

/* ── Hero ───────────────────────────────────────────────────────────────── */
.tarifs__hero[b-3l7whlp9e1] {
    text-align: center;
    margin-bottom: var(--space-12);
}

.tarifs__badge[b-3l7whlp9e1] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-1-5) var(--space-4);
    background: var(--accent-soft);
    color: var(--accent);
    border: 1px solid var(--accent-border);
    border-radius: var(--radius-pill);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 600;
    margin-bottom: var(--space-6);
}

.tarifs__titre[b-3l7whlp9e1] {
    font-family: var(--font-display);
    font-size: clamp(2rem, 5vw, 3rem);
    font-weight: 700;
    color: var(--ink);
    line-height: 1.1;
    letter-spacing: -0.025em;
    margin-bottom: var(--space-4);
}

.tarifs__sous-titre[b-3l7whlp9e1] {
    font-family: var(--font-body);
    font-size: var(--text-lg);
    color: var(--ink-muted);
    max-width: 520px;
    margin: 0 auto;
    line-height: 1.6;
}

/* ── Grille ─────────────────────────────────────────────────────────────── */
.tarifs__grille[b-3l7whlp9e1] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-6);
    margin-bottom: var(--space-10);
    align-items: start;
}

@media (max-width: 720px) {
    .tarifs__grille[b-3l7whlp9e1] {
        grid-template-columns: 1fr;
    }
}

.tarifs__card[b-3l7whlp9e1] {
    background: var(--surface);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-xl);
    padding: var(--space-8);
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    position: relative;
}

.tarifs__card--conserv[b-3l7whlp9e1] {
    border-color: var(--accent);
    background: linear-gradient(160deg, var(--surface) 55%, var(--accent-soft));
    box-shadow: 0 18px 40px -18px color-mix(in srgb, var(--accent) 30%, transparent);
}

.tarifs__card-badge-top[b-3l7whlp9e1] {
    position: absolute;
    top: -13px;
    left: 50%;
    transform: translateX(-50%);
    padding: 4px 14px;
    background: var(--accent);
    color: var(--surface);
    font-family: var(--font-body);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-radius: var(--radius-pill);
    white-space: nowrap;
}

.tarifs__card-header[b-3l7whlp9e1] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
}

.tarifs__card-icon[b-3l7whlp9e1] {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    border-radius: var(--radius-md);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ink-muted);
}

.tarifs__card-icon--conserv[b-3l7whlp9e1] {
    background: var(--accent-soft);
    border-color: var(--accent-border);
    color: var(--accent);
}

.tarifs__card-titre[b-3l7whlp9e1] {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--ink);
    margin: 0 0 var(--space-1) 0;
    letter-spacing: -0.015em;
}

.tarifs__card-desc[b-3l7whlp9e1] {
    font-family: var(--font-body);
    font-size: var(--text-md);
    color: var(--ink-muted);
    line-height: 1.5;
    margin: 0;
}

/* ── Toggle ─────────────────────────────────────────────────────────────── */
.tarifs__toggle[b-3l7whlp9e1] {
    display: inline-flex;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: 3px;
    gap: 3px;
    align-self: flex-start;
}

.tarifs__toggle-btn[b-3l7whlp9e1] {
    padding: var(--space-2) var(--space-4);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ink-muted);
    background: transparent;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    border-radius: calc(var(--radius-md) - 3px);
    transition: background 0.15s, color 0.15s, box-shadow 0.15s;
}

.tarifs__toggle-btn--active[b-3l7whlp9e1] {
    background: var(--surface);
    color: var(--ink);
    font-weight: 600;
    box-shadow: 0 1px 3px var(--border);
}

.tarifs__toggle-badge[b-3l7whlp9e1] {
    font-size: var(--text-xs);
    font-weight: 700;
    padding: 2px 6px;
    background: var(--success);
    color: var(--surface);
    border-radius: var(--radius-pill);
}

/* ── Prix ───────────────────────────────────────────────────────────────── */
.tarifs__prix-bloc[b-3l7whlp9e1] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.tarifs__prix-ligne[b-3l7whlp9e1] {
    display: flex;
    align-items: baseline;
    gap: var(--space-2);
}

.tarifs__prix-montant[b-3l7whlp9e1] {
    font-family: var(--font-display);
    font-size: 3rem;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.025em;
    font-variant-numeric: tabular-nums;
}

.tarifs__prix-unite[b-3l7whlp9e1] {
    font-family: var(--font-body);
    font-size: var(--text-lg);
    font-weight: 400;
    color: var(--ink-muted);
}

.tarifs__prix-annuel-hint[b-3l7whlp9e1] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    line-height: 1.4;
}

/* ── Features ───────────────────────────────────────────────────────────── */
.tarifs__features[b-3l7whlp9e1] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    flex: 1;
    border-top: 1px solid var(--border);
    padding-top: var(--space-5);
}

.tarifs__feature[b-3l7whlp9e1] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    font-family: var(--font-body);
    font-size: var(--text-md);
    color: var(--ink);
    line-height: 1.4;
}

.tarifs__feature--optional[b-3l7whlp9e1] {
    color: var(--ink-muted);
}

.tarifs__feature-icon[b-3l7whlp9e1] {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--success-soft);
    border: 1px solid var(--success-border);
    color: var(--success);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
}

.tarifs__feature-icon--opt[b-3l7whlp9e1] {
    background: var(--surface-alt);
    border-color: var(--border);
    color: var(--ink-subtle);
}

/* ── Tableau conservatoire ──────────────────────────────────────────────── */
.tarifs__table-wrapper[b-3l7whlp9e1] {
    overflow-x: auto;
    border-radius: var(--radius-md);
    border: 1px solid var(--border);
}

.tarifs__table[b-3l7whlp9e1] {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--font-body);
    font-size: var(--text-md);
}

.tarifs__table th[b-3l7whlp9e1] {
    padding: var(--space-3) var(--space-4);
    background: var(--surface-alt);
    color: var(--ink-subtle);
    font-weight: 700;
    font-size: var(--text-xs);
    text-align: left;
    border-bottom: 1px solid var(--border);
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.tarifs__table td[b-3l7whlp9e1] {
    padding: var(--space-3) var(--space-4);
    color: var(--ink);
    border-bottom: 1px solid var(--border);
}

.tarifs__table tr:last-child td[b-3l7whlp9e1] {
    border-bottom: none;
}

.tarifs__table td:first-child[b-3l7whlp9e1] {
    color: var(--ink-muted);
}

.tarifs__table-muted[b-3l7whlp9e1] {
    color: var(--ink-muted);
    font-variant-numeric: tabular-nums;
}

.tarifs__table-devis[b-3l7whlp9e1] {
    text-align: center;
    font-weight: 600;
    color: var(--accent);
}

/* ── CTA ────────────────────────────────────────────────────────────────── */
.tarifs__cta[b-3l7whlp9e1] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-3-5) var(--space-6);
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: var(--text-md);
    font-weight: 600;
    text-decoration: none;
    transition: opacity 0.15s;
    min-height: 44px;
}

.tarifs__cta:focus-visible[b-3l7whlp9e1] {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
}

.tarifs__cta--primary[b-3l7whlp9e1] {
    background: var(--surface-alt);
    color: var(--ink);
    border: 1.5px solid var(--border-strong);
}

.tarifs__cta--primary:hover[b-3l7whlp9e1] { background: var(--bg); }

.tarifs__cta--accent[b-3l7whlp9e1] {
    background: var(--accent);
    color: var(--surface);
    border: none;
}

.tarifs__cta--accent:hover[b-3l7whlp9e1] { opacity: 0.88; }

.tarifs__cta-note[b-3l7whlp9e1] {
    text-align: center;
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink-subtle);
    margin: 0;
}

/* ── Garanties ──────────────────────────────────────────────────────────── */
.tarifs__garanties[b-3l7whlp9e1] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-4);
    margin-bottom: var(--space-12);
}

@media (max-width: 720px) {
    .tarifs__garanties[b-3l7whlp9e1] {
        grid-template-columns: 1fr;
    }
}

.tarifs__garantie[b-3l7whlp9e1] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-4);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}

.tarifs__garantie-icon[b-3l7whlp9e1] {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    border-radius: var(--radius-sm);
    background: var(--success-soft);
    color: var(--success);
    display: flex;
    align-items: center;
    justify-content: center;
}

.tarifs__garantie div[b-3l7whlp9e1] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.tarifs__garantie strong[b-3l7whlp9e1] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 700;
    color: var(--ink);
}

.tarifs__garantie span[b-3l7whlp9e1] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    line-height: 1.5;
}

/* ── FAQ ────────────────────────────────────────────────────────────────── */
.tarifs__faq[b-3l7whlp9e1] {
    max-width: 720px;
    margin: 0 auto var(--space-12);
}

.tarifs__faq-titre[b-3l7whlp9e1] {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--ink);
    text-align: center;
    margin-bottom: var(--space-8);
    letter-spacing: -0.015em;
}

.tarifs__faq-liste[b-3l7whlp9e1] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.tarifs__faq-item[b-3l7whlp9e1] {
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    overflow: hidden;
}

.tarifs__faq-question[b-3l7whlp9e1] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-5);
    font-family: var(--font-body);
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--ink);
    cursor: pointer;
    list-style: none;
    background: var(--surface);
    transition: background 0.15s;
}

.tarifs__faq-question:hover[b-3l7whlp9e1] {
    background: var(--surface-alt);
}

.tarifs__faq-question[b-3l7whlp9e1]::-webkit-details-marker { display: none; }

.tarifs__faq-chevron[b-3l7whlp9e1] {
    flex-shrink: 0;
    color: var(--ink-subtle);
    transition: transform 0.2s;
}

details[open] .tarifs__faq-chevron[b-3l7whlp9e1] {
    transform: rotate(180deg);
}

.tarifs__faq-reponse[b-3l7whlp9e1] {
    padding: 0 var(--space-5) var(--space-5);
    font-family: var(--font-body);
    font-size: var(--text-md);
    color: var(--ink-muted);
    line-height: 1.6;
    background: var(--surface);
    margin: 0;
    border-top: 1px solid var(--border);
    padding-top: var(--space-4);
}

/* ── RGPD ───────────────────────────────────────────────────────────────── */
.tarifs__rgpd[b-3l7whlp9e1] {
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: var(--space-4) var(--space-5);
}

.tarifs__rgpd-inner[b-3l7whlp9e1] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    line-height: 1.5;
}

.tarifs__rgpd-icon[b-3l7whlp9e1] {
    flex-shrink: 0;
    color: var(--success);
    margin-top: 1px;
}

.tarifs__rgpd-lien[b-3l7whlp9e1] {
    color: var(--accent);
    text-decoration: underline;
    text-underline-offset: 2px;
}
/* _content/HémiolePro.Web/Components/Pages/Absences/Absences.razor.rz.scp.css */
/* Absences.razor.css — styles scopés page Absences admin */

.abs-page[b-gidt72epdo] {
    max-width: 1100px;
}

/* ── KPI tiles ── */
.abs-kpis[b-gidt72epdo] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-4);
}

@media (max-width: 768px) { .abs-kpis[b-gidt72epdo] { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .abs-kpis[b-gidt72epdo] { grid-template-columns: 1fr; } }

.abs-kpi[b-gidt72epdo] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-5) var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-1-5);
    transition: border-color var(--transition-fast);
}

.abs-kpi--warning[b-gidt72epdo] { border-color: var(--warning-border); }
.abs-kpi--danger[b-gidt72epdo]  { border-color: var(--danger-border); }

.abs-kpi__icon[b-gidt72epdo] {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--space-1);
    flex-shrink: 0;
}

.abs-kpi__icon--neutral[b-gidt72epdo] { background: var(--surface-alt); color: var(--ink-muted); }
.abs-kpi__icon--warning[b-gidt72epdo] { background: var(--warning-soft); color: var(--warning); }
.abs-kpi__icon--danger[b-gidt72epdo]  { background: var(--danger-soft);  color: var(--danger); }

.abs-kpi__value[b-gidt72epdo] {
    font-family: var(--font-display);
    font-size: var(--text-3xl);
    font-weight: 600;
    color: var(--ink);
    line-height: 1;
    letter-spacing: -0.025em;
}

.abs-kpi--warning .abs-kpi__value[b-gidt72epdo] { color: var(--warning); }
.abs-kpi--danger  .abs-kpi__value[b-gidt72epdo] { color: var(--danger); }

.abs-kpi__label[b-gidt72epdo] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    font-weight: 500;
}

/* ── Badge compteur ── */
.abs-badge[b-gidt72epdo] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 var(--space-1-5);
    border-radius: var(--radius-pill);
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    font-weight: 700;
    margin-left: var(--space-2);
    vertical-align: middle;
}

.abs-badge--danger[b-gidt72epdo] { background: var(--danger-soft); color: var(--danger); }

/* ── Identité élève dans tableau ── */
.abs-eleve[b-gidt72epdo] {
    display: flex;
    align-items: center;
    gap: var(--space-2-5);
}

.abs-avatar[b-gidt72epdo] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--accent-soft);
    color: var(--accent);
    font-size: var(--text-xs);
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.abs-eleve__name[b-gidt72epdo] {
    font-size: var(--text-sm);
    color: var(--ink);
    white-space: nowrap;
}

/* ── Cellule message tronqué ── */
.abs-message-cell[b-gidt72epdo] {
    max-width: 220px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--ink-muted);
    font-size: var(--text-sm);
}

/* ── Actions en ligne ── */
.abs-actions[b-gidt72epdo] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    justify-content: flex-end;
}

/* ── Confirmation inline ── */
.abs-confirm-inline[b-gidt72epdo] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    background: var(--accent-soft);
    border: 1px solid var(--accent-border);
    border-radius: var(--radius-md);
    white-space: nowrap;
}

.abs-confirm-inline__label[b-gidt72epdo] {
    font-size: var(--text-xs);
    color: var(--ink);
}

/* ── Drawer : contexte élève ── */
.abs-drawer-context[b-gidt72epdo] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2-5);
    padding: var(--space-3) var(--space-4);
    background: var(--surface-alt);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    line-height: 1.5;
}

.abs-drawer-context svg[b-gidt72epdo] { flex-shrink: 0; margin-top: 1px; color: var(--ink-subtle); }

/* ── Toast ── */
.abs-toast[b-gidt72epdo] {
    position: fixed;
    bottom: var(--space-6);
    right: var(--space-6);
    background: var(--ink);
    color: var(--bg);
    padding: var(--space-3) var(--space-5);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    z-index: 500;
    box-shadow: var(--shadow-modal);
    animation: abs-toast-in-b-gidt72epdo 0.2s ease-out;
}

@keyframes abs-toast-in-b-gidt72epdo {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}
/* _content/HémiolePro.Web/Components/Pages/Absences/AppelPresences.razor.rz.scp.css */
/* AppelPresences.razor.css — styles scopés page appel des présences */

.appel-page[b-xdakenjvkw] {
    max-width: 680px;
}

/* ── Lien retour ── */
.appel-back[b-xdakenjvkw] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1-5);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ink-muted);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.appel-back:hover[b-xdakenjvkw] { color: var(--accent); text-decoration: none; }

/* ── Sélecteur de date ── */
.appel-date-label[b-xdakenjvkw] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    white-space: nowrap;
}

.appel-date-input[b-xdakenjvkw] {
    width: 160px;
    min-width: 140px;
}

/* ── Résumé présences ── */
.appel-summary[b-xdakenjvkw] {
    display: flex;
    align-items: center;
    gap: var(--space-5);
    padding: var(--space-4) var(--space-5);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
}

.appel-summary__stat[b-xdakenjvkw] {
    display: flex;
    align-items: baseline;
    gap: var(--space-1-5);
}

.appel-summary__num[b-xdakenjvkw] {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    line-height: 1;
    letter-spacing: -0.025em;
}

.appel-summary__num--present[b-xdakenjvkw] { color: var(--success); }
.appel-summary__num--absent[b-xdakenjvkw]  { color: var(--danger); }
.appel-summary__num--total[b-xdakenjvkw]   { color: var(--ink); }

.appel-summary__lbl[b-xdakenjvkw] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
}

.appel-summary__sep[b-xdakenjvkw] {
    width: 1px;
    height: 24px;
    background: var(--border);
    flex-shrink: 0;
}

/* ── Liste élèves ── */
.appel-list[b-xdakenjvkw] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

/* ── Carte élève ── */
.appel-card[b-xdakenjvkw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-5);
    background: var(--surface);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-lg);
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.appel-card--absent[b-xdakenjvkw] {
    border-color: var(--danger-border);
    background: var(--danger-soft);
}

.appel-card__identity[b-xdakenjvkw] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex: 1;
    min-width: 0;
}

/* ── Avatar ── */
.appel-card__avatar[b-xdakenjvkw] {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--accent-soft);
    color: var(--accent);
    font-size: var(--text-sm);
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background var(--transition-fast), color var(--transition-fast);
}

.appel-card__avatar--absent[b-xdakenjvkw] {
    background: var(--danger-soft);
    color: var(--danger);
}

/* ── Infos élève ── */
.appel-card__info[b-xdakenjvkw] {
    display: flex;
    flex-direction: column;
    gap: var(--space-0-5);
}

.appel-card__name[b-xdakenjvkw] {
    font-size: var(--text-md);
    color: var(--ink);
    line-height: 1.3;
}

.appel-card__status[b-xdakenjvkw] {
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: 0.02em;
}

.appel-card__status--present[b-xdakenjvkw] { color: var(--success); }
.appel-card__status--absent[b-xdakenjvkw]  { color: var(--danger); }

/* ── Toggle présence/absence (cible 44x44 min) ── */
.appel-toggle[b-xdakenjvkw] {
    all: unset;
    cursor: pointer;
    flex-shrink: 0;
    /* zone de tap agrandie */
    padding: var(--space-2);
    margin: calc(-1 * var(--space-2));
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    transition: opacity var(--transition-fast);
}

.appel-toggle:focus-visible[b-xdakenjvkw] {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
    border-radius: var(--radius-md);
}

.appel-toggle__track[b-xdakenjvkw] {
    position: relative;
    display: block;
    width: 52px;
    height: 28px;
    border-radius: var(--radius-pill);
    transition: background var(--transition);
    min-width: 52px;
}

.appel-toggle--present .appel-toggle__track[b-xdakenjvkw] { background: var(--success); }
.appel-toggle--absent  .appel-toggle__track[b-xdakenjvkw] { background: var(--danger); }

.appel-toggle__knob[b-xdakenjvkw] {
    position: absolute;
    top: 4px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,0.22);
    transition: left var(--transition);
}

.appel-toggle--present .appel-toggle__knob[b-xdakenjvkw] { left: calc(100% - 24px); }
.appel-toggle--absent  .appel-toggle__knob[b-xdakenjvkw] { left: 4px; }

/* ── Footer ── */
.appel-footer[b-xdakenjvkw] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    align-items: flex-end;
    padding-top: var(--space-2);
}

.appel-footer__btn[b-xdakenjvkw] {
    font-size: var(--text-md);
    padding: 0 var(--space-8);
    height: 50px;
    min-height: 50px;
    box-shadow: var(--shadow-glow);
}

@media (max-width: 640px) {
    .page__header[b-xdakenjvkw] { flex-direction: column; gap: var(--space-4); }
    .appel-footer[b-xdakenjvkw] { align-items: stretch; }
    .appel-footer__btn[b-xdakenjvkw] { justify-content: center; }
    .appel-summary[b-xdakenjvkw] { gap: var(--space-3); }
}
/* _content/HémiolePro.Web/Components/Pages/Absences/MesAbsences.razor.rz.scp.css */
/* MesAbsences.razor.css — styles scopés page Mes absences */

.mes-absences-page[b-ou0a8zznst] { max-width: 900px; }

.mes-absences-page__header[b-ou0a8zznst] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: var(--space-8);
    flex-wrap: wrap;
}

.mes-absences-page__kicker[b-ou0a8zznst] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.mes-absences-page__title[b-ou0a8zznst] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: var(--space-2) 0 var(--space-2);
}

.mes-absences-page__desc[b-ou0a8zznst] { font-size: var(--text-md); color: var(--ink-subtle); }

/* ── Loading ── */
.mes-absences-loading[b-ou0a8zznst] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    color: var(--ink-subtle);
    padding: var(--space-6) 0;
}

/* ── Alert ── */
.mes-absences-alert[b-ou0a8zznst] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    margin-bottom: var(--space-4);
}
.mes-absences-alert--error[b-ou0a8zznst] { background: var(--danger-soft); color: var(--danger); border: 1px solid var(--danger-border); }

/* ── Spinner ── */
.mes-absences-spinner[b-ou0a8zznst] {
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 2px solid var(--border-strong);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: mes-absences-spin-b-ou0a8zznst 0.7s linear infinite;
}
.mes-absences-spinner--sm[b-ou0a8zznst] { width: 14px; height: 14px; border-color: rgba(255,255,255,0.3); border-top-color: white; }

@keyframes mes-absences-spin-b-ou0a8zznst { to { transform: rotate(360deg); } }

/* ── Empty ── */
.mes-absences-empty[b-ou0a8zznst] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-12) 0;
    color: var(--ink-subtle);
    font-size: var(--text-sm);
    text-align: center;
}

/* ── Table ── */
.mes-absences-table-wrapper[b-ou0a8zznst] {
    overflow-x: auto;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--surface);
}

.mes-absences-table[b-ou0a8zznst] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
}

.mes-absences-table thead tr[b-ou0a8zznst] { border-bottom: 1px solid var(--border); }

.mes-absences-table th[b-ou0a8zznst] {
    padding: var(--space-3) var(--space-4);
    text-align: left;
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

.mes-absences-table__row[b-ou0a8zznst] { border-bottom: 1px solid var(--border); }
.mes-absences-table__row:last-child[b-ou0a8zznst] { border-bottom: none; }
.mes-absences-table__row:hover[b-ou0a8zznst] { background: var(--surface-alt); }

.mes-absences-table__cell[b-ou0a8zznst] {
    padding: var(--space-3) var(--space-4);
    color: var(--ink);
    vertical-align: middle;
}
.mes-absences-table__cell--date[b-ou0a8zznst] { color: var(--ink-muted); white-space: nowrap; }
.mes-absences-table__cell--motif[b-ou0a8zznst] { color: var(--ink-muted); font-size: var(--text-sm); }

/* ── Boutons ── */
.mes-absences-btn[b-ou0a8zznst] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 500;
    font-family: var(--font-body);
    cursor: pointer;
    border: none;
    min-height: 44px;
    transition: background 0.15s;
}
.mes-absences-btn--primary[b-ou0a8zznst] { background: var(--accent); color: white; }
.mes-absences-btn--primary:hover:not(:disabled)[b-ou0a8zznst] { background: var(--accent-dark); }
.mes-absences-btn--ghost[b-ou0a8zznst] { background: transparent; color: var(--ink); border: 1px solid var(--border); }
.mes-absences-btn--ghost:hover:not(:disabled)[b-ou0a8zznst] { background: var(--surface-alt); }
.mes-absences-btn:disabled[b-ou0a8zznst] { opacity: 0.55; cursor: not-allowed; }

/* ── Drawer ── */
.mes-absences-overlay[b-ou0a8zznst] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.35);
    z-index: 200;
}

.mes-absences-drawer[b-ou0a8zznst] {
    position: fixed;
    top: 0;
    right: 0;
    width: 460px;
    max-width: 95vw;
    height: 100dvh;
    background: var(--surface);
    border-left: 1px solid var(--border);
    z-index: 201;
    display: flex;
    flex-direction: column;
    animation: mes-absences-slide-in-b-ou0a8zznst 0.22s ease-out;
}

@keyframes mes-absences-slide-in-b-ou0a8zznst { from { transform: translateX(100%); } to { transform: translateX(0); } }

.mes-absences-drawer__header[b-ou0a8zznst] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-5) var(--space-6);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}
.mes-absences-drawer__title[b-ou0a8zznst] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ink);
}
.mes-absences-drawer__close[b-ou0a8zznst] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: none;
    background: transparent;
    color: var(--ink-subtle);
    border-radius: var(--radius-md);
    cursor: pointer;
}
.mes-absences-drawer__close:hover[b-ou0a8zznst] { background: var(--surface-alt); }

.mes-absences-drawer__body[b-ou0a8zznst] {
    padding: var(--space-6);
    flex: 1;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.mes-absences-drawer__footer[b-ou0a8zznst] {
    padding: var(--space-4) var(--space-6);
    border-top: 1px solid var(--border);
    display: flex;
    justify-content: flex-end;
    gap: var(--space-3);
    flex-shrink: 0;
}

/* ── Champs ── */
.mes-absences-field[b-ou0a8zznst] { display: flex; flex-direction: column; gap: var(--space-1-5); }
.mes-absences-field__label[b-ou0a8zznst] { font-size: var(--text-sm); font-weight: 500; color: var(--ink); }
.mes-absences-field__required[b-ou0a8zznst] { color: var(--danger); }
.mes-absences-field__hint[b-ou0a8zznst] { font-size: var(--text-xs); color: var(--ink-subtle); }

.mes-absences-field__input[b-ou0a8zznst],
.mes-absences-field__select[b-ou0a8zznst] {
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    min-height: 44px;
    transition: border-color 0.15s;
}
.mes-absences-field__input:focus[b-ou0a8zznst],
.mes-absences-field__select:focus[b-ou0a8zznst] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.mes-absences-field__textarea[b-ou0a8zznst] {
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    min-height: 100px;
    resize: vertical;
    transition: border-color 0.15s;
}
.mes-absences-field__textarea:focus[b-ou0a8zznst] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

/* ── Toast ── */
.mes-absences-toast[b-ou0a8zznst] {
    position: fixed;
    bottom: var(--space-6);
    right: var(--space-6);
    background: var(--ink);
    color: var(--bg);
    padding: var(--space-3) var(--space-5);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    z-index: 300;
    box-shadow: var(--shadow-elev);
    animation: mes-absences-toast-in-b-ou0a8zznst 0.2s ease-out;
}

@keyframes mes-absences-toast-in-b-ou0a8zznst { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 640px) {
    .mes-absences-page__header[b-ou0a8zznst] { flex-direction: column; }
}
/* _content/HémiolePro.Web/Components/Pages/AccessDenied.razor.rz.scp.css */
.error-page[b-ehfyjxltd7] {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-6);
    background: var(--bg);
}

.error-card[b-ehfyjxltd7] {
    width: 100%;
    max-width: 480px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    padding: var(--space-10) var(--space-8);
    box-shadow: var(--shadow-screen);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-4);
    text-align: center;
}

.error-card__logo[b-ehfyjxltd7] {
    margin-bottom: var(--space-2);
}

.error-card__icon[b-ehfyjxltd7] {
    width: 72px;
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    border-radius: var(--radius-lg);
    color: var(--danger);
    margin-bottom: var(--space-2);
}

.error-card__title[b-ehfyjxltd7] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--ink);
    margin: 0;
    line-height: 1.2;
}

.error-card__message[b-ehfyjxltd7] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    line-height: 1.6;
    margin: 0;
    max-width: 360px;
}

.error-card__btn-primary[b-ehfyjxltd7] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    min-width: 44px;
    padding: 0 var(--space-6);
    margin-top: var(--space-2);
    background: var(--accent);
    color: #fff;
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 600;
    border-radius: var(--radius-md);
    text-decoration: none;
    transition: opacity 150ms ease;
    width: 100%;
}

.error-card__btn-primary:hover[b-ehfyjxltd7] {
    opacity: 0.88;
}

.error-card__btn-primary:focus-visible[b-ehfyjxltd7] {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
}

.error-card__link-secondary[b-ehfyjxltd7] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    text-decoration: underline;
    text-underline-offset: 3px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding: 0 var(--space-2);
    transition: color 150ms ease;
}

.error-card__link-secondary:hover[b-ehfyjxltd7] {
    color: var(--ink);
}

.error-card__link-secondary:focus-visible[b-ehfyjxltd7] {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
    border-radius: var(--radius-md);
}
/* _content/HémiolePro.Web/Components/Pages/Admin/AdminHub.razor.rz.scp.css */
/* AdminHub.razor.css — Hub d'administration */

.hub-page[b-dnd5hnb74k] {
    max-width: 960px;
}

/* ── Quick links ── */
.hub-quicklinks[b-dnd5hnb74k] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-bottom: var(--space-8);
}

.hub-quicklink[b-dnd5hnb74k] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    height: 36px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ink-muted);
    text-decoration: none;
    transition: border-color var(--transition), color var(--transition), background var(--transition);
    white-space: nowrap;
}

.hub-quicklink:hover[b-dnd5hnb74k] {
    border-color: var(--accent);
    color: var(--accent);
    background: var(--accent-soft);
}

.hub-quicklink:focus-visible[b-dnd5hnb74k] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

@media (max-width: 480px) {
    .hub-quicklinks[b-dnd5hnb74k] { gap: var(--space-2); }
    .hub-quicklink[b-dnd5hnb74k]  { font-size: var(--text-xs); padding: var(--space-2) var(--space-3); }
}

/* ── Grille de sections ── */
.hub-grid[b-dnd5hnb74k] {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
}

/* ── Section ── */
.hub-section__title[b-dnd5hnb74k] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    letter-spacing: 0.07em;
    text-transform: uppercase;
    margin: 0 0 var(--space-3);
}

.hub-cards[b-dnd5hnb74k] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: var(--space-3);
}

/* ── Card ── */
.hub-card[b-dnd5hnb74k] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-4);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    text-decoration: none;
    color: inherit;
    transition: border-color var(--transition), box-shadow var(--transition), background var(--transition);
    cursor: pointer;
}

.hub-card:hover[b-dnd5hnb74k] {
    border-color: var(--accent);
    box-shadow: var(--shadow-elev);
}

.hub-card:focus-visible[b-dnd5hnb74k] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.hub-card__icon[b-dnd5hnb74k] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: var(--accent-soft);
    border-radius: var(--radius-md);
    color: var(--accent);
    margin-top: 1px;
}

.hub-card__body[b-dnd5hnb74k] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
}

.hub-card__title[b-dnd5hnb74k] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
    line-height: 1.3;
}

.hub-card__desc[b-dnd5hnb74k] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
    line-height: 1.5;
}

/* ── Responsive ── */
@media (max-width: 640px) {
    .hub-cards[b-dnd5hnb74k] {
        grid-template-columns: 1fr;
    }
}
/* _content/HémiolePro.Web/Components/Pages/Admin/Administration.razor.rz.scp.css */
/* Administration.razor.css — styles scopés page d'administration */

.admin-page[b-8vaxxd2a9s] {
    max-width: 760px;
}

/* ── Grille 2 colonnes pour email/téléphone ── */
.admin-field-row[b-8vaxxd2a9s] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-5);
}

@media (max-width: 600px) {
    .admin-field-row[b-8vaxxd2a9s] { grid-template-columns: 1fr; }
}

/* ── Aperçu logo ── */
.admin-logo-preview[b-8vaxxd2a9s] {
    margin-top: var(--space-2);
}

.admin-logo-preview__label[b-8vaxxd2a9s] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    display: block;
    margin-bottom: var(--space-2);
}

.admin-logo-preview__img[b-8vaxxd2a9s] {
    max-height: 80px;
    max-width: 200px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    padding: var(--space-2);
    background: var(--surface);
    object-fit: contain;
}

.admin-logo-preview__error[b-8vaxxd2a9s] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--warning);
    padding: var(--space-3);
    background: var(--warning-soft);
    border: 1px solid var(--warning-border);
    border-radius: var(--radius-md);
}

/* ── Actions ── */
.admin-actions[b-8vaxxd2a9s] {
    display: flex;
    justify-content: flex-end;
}
/* _content/HémiolePro.Web/Components/Pages/Admin/Classes.razor.rz.scp.css */
/* Classes.razor.css — styles scopés page gestion des classes */

.classes-page[b-ilh8d4p9io] { max-width: 1100px; }

/* ── Filtres ── */
.classes-filters[b-ilh8d4p9io] {
    display: flex;
    gap: var(--space-4);
    margin-bottom: var(--space-6);
    flex-wrap: wrap;
}

.classes-filter[b-ilh8d4p9io] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 200px;
}

.classes-filter__label[b-ilh8d4p9io] {
    font-size: var(--text-xs);
    font-weight: 600;
    color: var(--ink-subtle);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.classes-filter__select[b-ilh8d4p9io] {
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: var(--text-sm);
    min-height: 44px;
}
.classes-filter__select:focus[b-ilh8d4p9io] {
    outline: none;
    border-color: var(--accent);
}

/* ── Empty states ── */
.classes-empty-state[b-ilh8d4p9io] {
    padding: var(--space-8) 0;
    color: var(--ink-subtle);
    font-size: var(--text-sm);
}

.classes-empty-state__icon[b-ilh8d4p9io] { margin-bottom: var(--space-3); }

.classes-empty[b-ilh8d4p9io] {
    padding: var(--space-6) var(--space-5);
    color: var(--ink-subtle);
    font-size: var(--text-sm);
}

/* ── Compteur ── */
.classes-compteur[b-ilh8d4p9io] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    margin-top: var(--space-2);
}
.classes-compteur__sep[b-ilh8d4p9io] { color: var(--border-strong); }

/* ── Grille de cards ── */
.classes-grid[b-ilh8d4p9io] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-4);
    margin-top: var(--space-5);
}

@media (max-width: 1100px) { .classes-grid[b-ilh8d4p9io] { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 680px)  { .classes-grid[b-ilh8d4p9io] { grid-template-columns: 1fr; } }

/* ── Card créneau ── */
.creneau-card[b-ilh8d4p9io] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-4) var(--space-4) 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    transition: box-shadow var(--transition-fast), border-color var(--transition-fast);
}
.creneau-card:hover[b-ilh8d4p9io] {
    box-shadow: var(--shadow-elev);
    border-color: var(--border-strong);
}
.creneau-card__header[b-ilh8d4p9io] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
}
.creneau-card__type[b-ilh8d4p9io] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}
.creneau-card__pastille[b-ilh8d4p9io] {
    width: 10px; height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}
.creneau-card__type-nom[b-ilh8d4p9io] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 700;
    color: var(--ink);
}
.creneau-card__count[b-ilh8d4p9io] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 2px var(--space-2);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    color: var(--ink-muted);
    white-space: nowrap;
}
.creneau-card__count--plein[b-ilh8d4p9io] {
    background: var(--danger-soft);
    border-color: var(--danger-border);
    color: var(--danger);
}
.creneau-card__discipline[b-ilh8d4p9io] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    font-weight: 500;
}
.creneau-card__horaire[b-ilh8d4p9io],
.creneau-card__lieu[b-ilh8d4p9io],
.creneau-card__prof[b-ilh8d4p9io] {
    display: flex;
    align-items: center;
    gap: var(--space-1-5);
    font-size: var(--text-sm);
    color: var(--ink-muted);
}
.creneau-card__horaire svg[b-ilh8d4p9io],
.creneau-card__lieu svg[b-ilh8d4p9io],
.creneau-card__prof svg[b-ilh8d4p9io] { color: var(--ink-subtle); flex-shrink: 0; }
.creneau-card__salle[b-ilh8d4p9io] { color: var(--ink-subtle); }
.creneau-card__offsite[b-ilh8d4p9io] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 2px var(--space-2);
    background: var(--warning-soft);
    color: var(--warning);
    border: 1px solid var(--warning-border);
    border-radius: var(--radius-pill);
    font-size: var(--text-xs);
}

/* Avatars élèves */
.creneau-card__avatars[b-ilh8d4p9io],
.creneau-card__avatars-placeholder[b-ilh8d4p9io] {
    display: flex;
    align-items: center;
    gap: -6px;
    margin-top: var(--space-1);
}
.creneau-card__avatar[b-ilh8d4p9io] {
    width: 28px; height: 28px;
    border-radius: 50%;
    background: var(--accent-soft);
    border: 2px solid var(--surface);
    color: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--text-2xs);
    font-weight: 700;
    margin-left: -6px;
}
.creneau-card__avatar:first-child[b-ilh8d4p9io] { margin-left: 0; }
.creneau-card__avatar--ghost[b-ilh8d4p9io] {
    background: var(--surface-alt);
    border-color: var(--border);
}
.creneau-card__avatar--more[b-ilh8d4p9io] {
    background: var(--surface-alt);
    color: var(--ink-muted);
    border-color: var(--border);
    font-size: var(--text-2xs);
}

/* Footer card */
.creneau-card__footer[b-ilh8d4p9io] {
    margin-top: auto;
    padding-top: var(--space-3);
    padding-bottom: var(--space-3);
    border-top: 1px solid var(--border);
}
.creneau-card__manage-btn[b-ilh8d4p9io] { width: 100%; justify-content: center; }

/* ── Sous-titre drawer (pas de global pour ça) ── */
.classes-drawer__subtitle[b-ilh8d4p9io] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    margin-top: var(--space-1);
}

/* ── Champ recherche avec icône loupe ── */
.classes-search-wrap[b-ilh8d4p9io] {
    position: relative;
    display: flex;
    align-items: center;
}
.classes-search-wrap svg[b-ilh8d4p9io] {
    position: absolute;
    left: var(--space-3);
    color: var(--ink-subtle);
    pointer-events: none;
}
.classes-field__input--search[b-ilh8d4p9io] { padding-left: calc(var(--space-3) + 14px + var(--space-2)); }

/* ── Drawer gestion élèves ── */
.drawer-eleves-section[b-ilh8d4p9io] { margin-bottom: var(--space-6); }
.drawer-eleves-header[b-ilh8d4p9io] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-3);
}
.drawer-eleves-count[b-ilh8d4p9io] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
}
.drawer-eleves-empty[b-ilh8d4p9io] {
    font-size: var(--text-sm);
    color: var(--ink-subtle);
    padding: var(--space-4) 0;
    text-align: center;
}
.drawer-eleves-list[b-ilh8d4p9io] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}
.drawer-eleve-item[b-ilh8d4p9io] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2-5) var(--space-3);
    background: var(--surface-alt);
    border-radius: var(--radius-md);
    border: 1px solid var(--border);
}
.drawer-eleve-avatar[b-ilh8d4p9io] {
    width: 32px; height: 32px;
    border-radius: 50%;
    background: var(--accent-soft);
    border: 1px solid var(--accent-border);
    color: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--text-xs);
    font-weight: 700;
    flex-shrink: 0;
}
.drawer-eleve-avatar--sm[b-ilh8d4p9io] { width: 26px; height: 26px; font-size: var(--text-2xs); }
.drawer-eleve-info[b-ilh8d4p9io] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}
.drawer-eleve-nom[b-ilh8d4p9io] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.drawer-eleve-niveau[b-ilh8d4p9io],
.drawer-eleve-disc[b-ilh8d4p9io] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
}
.drawer-eleve-desinscrit[b-ilh8d4p9io] { margin-left: auto; flex-shrink: 0; }
.drawer-eleve-confirm[b-ilh8d4p9io] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-left: auto;
    flex-shrink: 0;
}
.drawer-eleve-confirm__label[b-ilh8d4p9io] { font-size: var(--text-xs); color: var(--danger); }

/* Section inscrire */
.drawer-inscrire-section[b-ilh8d4p9io] {
    padding-top: var(--space-5);
    border-top: 1px solid var(--border);
}
.drawer-inscrire-titre[b-ilh8d4p9io] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    font-weight: 700;
    color: var(--ink);
    margin-bottom: var(--space-3);
}
.drawer-eleve-suggestions[b-ilh8d4p9io] {
    list-style: none;
    margin: var(--space-2) 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}
.drawer-eleve-suggestion[b-ilh8d4p9io] {
    width: 100%;
    display: flex;
    align-items: center;
    gap: var(--space-2-5);
    padding: var(--space-2) var(--space-3);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: border-color var(--transition-fast), background var(--transition-fast);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink);
    text-align: left;
}
.drawer-eleve-suggestion:hover:not(:disabled)[b-ilh8d4p9io] {
    border-color: var(--accent-border);
    background: var(--accent-soft);
}
.drawer-eleve-suggestion__meta[b-ilh8d4p9io] {
    margin-left: auto;
    font-size: var(--text-xs);
    color: var(--ink-subtle);
}
/* _content/HémiolePro.Web/Components/Pages/Admin/FenetresSaisie.razor.rz.scp.css */
/* FenetresSaisie.razor.css — Fenêtres de saisie des bulletins */

.fenetres-page[b-kt85o65fa9] {
    max-width: 1000px;
}

/* ── Badges statut ── */
.fenetres-badge[b-kt85o65fa9] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1-5);
    padding: 3px var(--space-2-5);
    border-radius: var(--radius-pill);
    font-size: var(--text-xs);
    font-weight: 600;
    white-space: nowrap;
}

.fenetres-badge--ouverte[b-kt85o65fa9] {
    background: var(--success-soft);
    color: var(--success);
    border: 1px solid var(--success-border);
}

.fenetres-badge--fermee[b-kt85o65fa9] {
    background: var(--surface-alt);
    color: var(--ink-subtle);
    border: 1px solid var(--border);
}

.fenetres-badge__dot[b-kt85o65fa9] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
    background: currentColor;
}
/* _content/HémiolePro.Web/Components/Pages/Admin/GestionReinscription.razor.rz.scp.css */
/* GestionReinscription.razor.css — styles scopés */

.gestion-reinsc-page[b-3ouehfl59g] {
    max-width: 960px;
}

/* Notice sprint */
.gestion-reinsc-sprint-notice[b-3ouehfl59g] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    background: var(--warning-soft);
    border: 1px solid var(--warning-border);
    border-radius: var(--radius-md);
    color: var(--warning);
    font-size: var(--text-sm);
    margin-bottom: var(--space-6);
}
.gestion-reinsc-sprint-notice code[b-3ouehfl59g] {
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    background: var(--warning-border);
    padding: 1px var(--space-1-5);
    border-radius: var(--radius-sm);
}

/* Empty hint */
.reinsc-empty-hint[b-3ouehfl59g] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    margin-top: var(--space-1);
}

/* Session cell */
.reinsc-session-cell[b-3ouehfl59g] {
    font-weight: 600;
    font-family: var(--font-mono);
}

/* Badges */
.gestion-reinsc-badge[b-3ouehfl59g] {
    display: inline-flex;
    padding: 2px var(--space-2);
    border-radius: var(--radius-pill);
    font-size: var(--text-xs);
    font-weight: 600;
}
.gestion-reinsc-badge--yes[b-3ouehfl59g] { background: var(--success-soft); color: var(--success); border: 1px solid var(--success-border); }
.gestion-reinsc-badge--no[b-3ouehfl59g]  { background: var(--surface-alt); color: var(--ink-muted); border: 1px solid var(--border); }

/* Statuts */
.gestion-reinsc-statut[b-3ouehfl59g] {
    display: inline-flex;
    padding: 2px var(--space-2-5);
    border-radius: var(--radius-pill);
    font-size: var(--text-xs);
    font-weight: 600;
}
.gestion-reinsc-statut--ouverte[b-3ouehfl59g]  { background: var(--success-soft); color: var(--success); border: 1px solid var(--success-border); }
.gestion-reinsc-statut--fermee[b-3ouehfl59g]   { background: var(--surface-alt); color: var(--ink-muted); border: 1px solid var(--border); }
.gestion-reinsc-statut--avenir[b-3ouehfl59g]   { background: var(--accent-soft); color: var(--accent); border: 1px solid var(--accent-border); }

/* Switch field dans le drawer */
.gestion-reinsc-switch-field[b-3ouehfl59g] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-3) var(--space-4);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}
/* _content/HémiolePro.Web/Components/Pages/Admin/GroupesPermissions.razor.rz.scp.css */
/* GroupesPermissions.razor.css — styles scopés */

/* ── Champ dans la dialog nouveau groupe ── */
.gp-dialog-field[b-ud1ycsyaee] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding-top: var(--space-1);
}

.gp-dialog-label[b-ud1ycsyaee] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
}

.gp-page[b-ud1ycsyaee] {
    max-width: 860px;
}

/* ── Liste groupes ── */
.gp-list[b-ud1ycsyaee] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.gp-card[b-ud1ycsyaee] {
    position: relative;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    transition: border-color var(--transition), box-shadow var(--transition);
}

.gp-card:hover[b-ud1ycsyaee] {
    border-color: var(--border-strong);
    box-shadow: var(--shadow-elev);
}

.gp-card__inner[b-ud1ycsyaee] {
    all: unset;
    cursor: pointer;
    flex: 1;
    padding: var(--space-4) var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-2-5);
    min-height: 44px;
}

.gp-card__inner:focus-visible[b-ud1ycsyaee] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
    border-radius: var(--radius-lg);
}

.gp-card__meta[b-ud1ycsyaee] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
}

.gp-card__name[b-ud1ycsyaee] {
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--ink);
}

.gp-card__members[b-ud1ycsyaee] {
    display: flex;
    align-items: center;
    gap: var(--space-1-5);
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    font-family: var(--font-mono);
}

.gp-card__perms[b-ud1ycsyaee] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1-5);
}

.gp-perm-chip[b-ud1ycsyaee] {
    display: inline-flex;
    align-items: center;
    padding: 2px var(--space-2-5);
    background: var(--accent-soft);
    color: var(--accent);
    border: 1px solid var(--accent-border);
    border-radius: var(--radius-pill);
    font-size: var(--text-2xs);
    font-weight: 600;
}

.gp-perm-chip--none[b-ud1ycsyaee] {
    background: var(--surface-alt);
    color: var(--ink-subtle);
    border-color: var(--border);
}

.gp-card__arrow[b-ud1ycsyaee] {
    color: var(--ink-subtle);
    margin-right: var(--space-4);
    flex-shrink: 0;
}

/* ── Vue détail ── */
.gp-detail[b-ud1ycsyaee] {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

.gp-back-btn[b-ud1ycsyaee] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ink-muted);
    padding: var(--space-2) 0;
    min-height: 44px;
    transition: color var(--transition);
}

.gp-back-btn:hover[b-ud1ycsyaee] { color: var(--ink); }
.gp-back-btn:focus-visible[b-ud1ycsyaee] { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--radius-sm); }

.gp-detail__header[b-ud1ycsyaee] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.gp-detail__name[b-ud1ycsyaee] {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: 0;
}

.gp-name-input[b-ud1ycsyaee] {
    flex: 1;
    max-width: 360px;
    padding: var(--space-2) var(--space-3);
    background: var(--surface);
    border: 1px solid var(--accent);
    border-radius: var(--radius-md);
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    color: var(--ink);
    min-height: 44px;
    box-shadow: 0 0 0 3px var(--accent-soft);
    box-sizing: border-box;
}

.gp-name-input:focus[b-ud1ycsyaee] { outline: none; }

/* ── Blocs de carte ── */
.gp-card-block[b-ud1ycsyaee] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-5) var(--space-6);
}

.gp-card-block__header[b-ud1ycsyaee] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-4);
}

.gp-card-block__title[b-ud1ycsyaee] {
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--ink);
    margin: 0 0 var(--space-4);
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center;
    gap: var(--space-2-5);
}

.gp-card-block__count[b-ud1ycsyaee] {
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    padding: 1px var(--space-2);
    color: var(--ink-subtle);
}

/* ── Grille permissions ── */
.gp-perms-grid[b-ud1ycsyaee] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: var(--space-5);
}

.gp-perm-row[b-ud1ycsyaee] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: background var(--transition);
    gap: var(--space-4);
}

.gp-perm-row:hover[b-ud1ycsyaee] { background: var(--surface-alt); }
.gp-perm-row--on[b-ud1ycsyaee]   { background: var(--accent-soft); }

.gp-perm-row__text[b-ud1ycsyaee] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
}

.gp-perm-row__label[b-ud1ycsyaee] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
}

.gp-perm-row__desc[b-ud1ycsyaee] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
}

.gp-perm-checkbox[b-ud1ycsyaee] {
    width: 18px;
    height: 18px;
    accent-color: var(--accent);
    cursor: pointer;
    flex-shrink: 0;
}

.gp-perms-actions[b-ud1ycsyaee] {
    display: flex;
    justify-content: flex-end;
    padding-top: var(--space-2);
    border-top: 1px solid var(--border);
}

/* ── Membres ── */
.gp-membres-list[b-ud1ycsyaee] {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.gp-membre-row[b-ud1ycsyaee] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2-5) var(--space-3);
    border-radius: var(--radius-md);
    transition: background var(--transition);
}

.gp-membre-row:hover[b-ud1ycsyaee] { background: var(--surface-alt); }

.gp-membre-row__info[b-ud1ycsyaee] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1px;
    overflow: hidden;
}

.gp-membre-row__name[b-ud1ycsyaee] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gp-membre-row__email[b-ud1ycsyaee] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    font-family: var(--font-mono);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Ajout membre ── */
.gp-add-membre[b-ud1ycsyaee] {
    display: flex;
    gap: var(--space-3);
    padding-top: var(--space-3);
    border-top: 1px solid var(--border);
    flex-wrap: wrap;
    align-items: flex-end;
}

.gp-add-membre .hp-field__input[b-ud1ycsyaee] {
    flex: 1;
    min-width: 200px;
}

.gp-field-error[b-ud1ycsyaee] {
    font-size: var(--text-xs);
    color: var(--danger);
    margin: var(--space-2) 0 0;
}

/* ── Zone danger ── */
.gp-danger-zone[b-ud1ycsyaee] {
    padding: var(--space-5) var(--space-6);
    border: 1px solid var(--danger-border);
    border-radius: var(--radius-lg);
    background: var(--danger-soft);
}

.gp-danger-zone__title[b-ud1ycsyaee] {
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--danger);
    margin: 0 0 var(--space-2);
}

.gp-danger-zone__desc[b-ud1ycsyaee] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    margin: 0 0 var(--space-4);
}

/* ── Icônes boutons ── */
.gp-icon-btn[b-ud1ycsyaee] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    min-width: 32px;
    min-height: 44px;
    border-radius: var(--radius-sm);
    color: var(--ink-subtle);
    transition: background var(--transition), color var(--transition);
}

.gp-icon-btn:hover[b-ud1ycsyaee]         { background: var(--border); color: var(--ink); }
.gp-icon-btn:focus-visible[b-ud1ycsyaee] { outline: 2px solid var(--accent); outline-offset: 1px; }
.gp-icon-btn--danger:hover[b-ud1ycsyaee] { background: var(--danger-soft); color: var(--danger); }
/* _content/HémiolePro.Web/Components/Pages/Admin/Profs.razor.rz.scp.css */
/* Profs.razor.css — Gestion des enseignants */

.profs-page[b-stj0112ccn] {
    max-width: 900px;
}

/* ── Toolbar ── */
.profs-toolbar[b-stj0112ccn] {
    display: flex;
    align-items: flex-end;
    gap: var(--space-4);
}

/* ── Badges type enseignant ── */
.profs-badge[b-stj0112ccn] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: var(--radius-pill);
    font-size: var(--text-xs);
    font-weight: 600;
}

.profs-badge--libre[b-stj0112ccn] {
    background: var(--libre-soft);
    color: var(--libre);
    border: 1px solid var(--libre-border);
}

.profs-badge--compte[b-stj0112ccn] {
    background: var(--accent-soft);
    color: var(--accent);
    border: 1px solid var(--accent-border);
}

/* ── Dépassement ── */
.profs-depassement[b-stj0112ccn] {
    color: var(--danger);
    font-weight: 700;
}

.profs-table__nom[b-stj0112ccn] {
    font-weight: 500;
    color: var(--ink);
}

.profs-empty__hint[b-stj0112ccn] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    margin-top: var(--space-1);
}

/* ── Edition inline heures ── */
.profs-heures-btn[b-stj0112ccn] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    background: none;
    border: 1px dashed var(--border-strong);
    border-radius: var(--radius-sm);
    padding: 2px var(--space-2);
    font-size: var(--text-sm);
    font-family: var(--font-mono);
    color: var(--ink-muted);
    cursor: pointer;
    transition: border-color var(--transition), color var(--transition);
}

.profs-heures-btn:hover[b-stj0112ccn] {
    border-color: var(--accent);
    color: var(--accent);
}

.profs-edit-inline[b-stj0112ccn] {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    justify-content: flex-end;
}

.profs-edit-inline__input[b-stj0112ccn] {
    width: 72px;
    height: 30px;
    padding: 0 var(--space-2);
    border: 1px solid var(--accent);
    border-radius: var(--radius-sm);
    font-size: var(--text-sm);
    font-family: var(--font-mono);
    background: var(--surface);
    color: var(--ink);
    text-align: right;
    box-sizing: border-box;
}

.profs-edit-inline__input:focus[b-stj0112ccn] {
    outline: none;
    box-shadow: 0 0 0 2px var(--accent-soft);
}

.profs-edit-inline__ok[b-stj0112ccn],
.profs-edit-inline__cancel[b-stj0112ccn] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: none;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: background var(--transition);
}

.profs-edit-inline__ok[b-stj0112ccn] {
    background: var(--accent);
    color: #fff;
}

.profs-edit-inline__ok:hover[b-stj0112ccn] { opacity: 0.88; }

.profs-edit-inline__cancel[b-stj0112ccn] {
    background: var(--surface-alt);
    color: var(--ink-muted);
    border: 1px solid var(--border);
}

.profs-edit-inline__cancel:hover[b-stj0112ccn] { background: var(--border); }
/* _content/HémiolePro.Web/Components/Pages/Admin/Referentiels.razor.rz.scp.css */
/* Referentiels.razor.css — styles scopés */

.ref-page[b-cwdsxy28vo] {
    max-width: 900px;
}

/* ── Section ── */
.ref-section[b-cwdsxy28vo] {
    padding: var(--space-6) 0;
}

.ref-toolbar[b-cwdsxy28vo] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-5);
    gap: var(--space-4);
}

.ref-section__title[b-cwdsxy28vo] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: 0;
}

/* ── Liste simple ── */
.ref-list[b-cwdsxy28vo] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ref-list__item[b-cwdsxy28vo] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    transition: background var(--transition);
}

.ref-list__item:hover[b-cwdsxy28vo] { background: var(--surface-alt); }
.ref-list__item--inactive[b-cwdsxy28vo] { opacity: 0.55; }

.ref-list__reorder[b-cwdsxy28vo] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ref-list__name[b-cwdsxy28vo] {
    flex: 1;
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ink);
}

.ref-list__badge[b-cwdsxy28vo] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    padding: 2px var(--space-2-5);
    font-family: var(--font-mono);
}

.ref-list__meta[b-cwdsxy28vo] { display: flex; align-items: center; gap: var(--space-2); }
.ref-list__actions[b-cwdsxy28vo] { display: flex; align-items: center; gap: var(--space-1); }

/* ── Icône bouton ── */
.ref-icon-btn[b-cwdsxy28vo] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    min-width: 30px;
    border-radius: var(--radius-sm);
    color: var(--ink-subtle);
    transition: background var(--transition), color var(--transition);
}

.ref-icon-btn:hover[b-cwdsxy28vo] { background: var(--border); color: var(--ink); }
.ref-icon-btn:disabled[b-cwdsxy28vo] { opacity: 0.3; cursor: not-allowed; }
.ref-icon-btn:focus-visible[b-cwdsxy28vo] { outline: 2px solid var(--accent); outline-offset: 1px; }
.ref-icon-btn--danger:hover[b-cwdsxy28vo] { background: var(--danger-soft); color: var(--danger); }

/* ── Formulaire inline ── */
.ref-inline-form[b-cwdsxy28vo] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-top: var(--space-4);
    padding: var(--space-4);
    background: var(--surface-alt);
    border: 1px dashed var(--border-strong);
    border-radius: var(--radius-md);
    flex-wrap: wrap;
}

.ref-inline-form--multi[b-cwdsxy28vo] { align-items: flex-start; }

/* Input inline — flex:1 spécifique à ce contexte (pas géré par hp-field__input) */
.ref-inline-form .hp-field__input[b-cwdsxy28vo] {
    flex: 1;
    min-width: 180px;
}

/* Select inline — max-width spécifique */
.hp-field__input.hp-field__input--select.ref-select-discipline[b-cwdsxy28vo] {
    max-width: 340px;
}

/* ── Cartes disciplines ── */
.ref-cards[b-cwdsxy28vo] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}

.ref-disc-card[b-cwdsxy28vo] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-4) var(--space-5);
}

.ref-disc-card__header[b-cwdsxy28vo] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-3);
}

.ref-disc-card__name[b-cwdsxy28vo] {
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--ink);
    flex: 1;
}

.ref-disc-card__rythme[b-cwdsxy28vo] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    padding: 2px var(--space-2-5);
}

.ref-disc-card__actions[b-cwdsxy28vo] { display: flex; gap: var(--space-1); }

.ref-disc-card__niveaux-label[b-cwdsxy28vo] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    display: block;
    margin-bottom: var(--space-2);
}

.ref-disc-card__checkboxes[b-cwdsxy28vo] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-5);
}

.ref-checkbox-label[b-cwdsxy28vo] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    cursor: pointer;
    user-select: none;
}

.ref-checkbox-label input[type="checkbox"][b-cwdsxy28vo] {
    width: 16px;
    height: 16px;
    accent-color: var(--accent);
    cursor: pointer;
}

/* ── État vide ── */
.ref-empty[b-cwdsxy28vo] {
    font-size: var(--text-sm);
    color: var(--ink-subtle);
    padding: var(--space-6) 0;
    text-align: center;
    margin: 0;
}
/* _content/HémiolePro.Web/Components/Pages/Admin/Salles.razor.rz.scp.css */
/* Salles.razor.css — styles scopés page gestion des salles */

.salles-page[b-7w9q13xn1p] {
    max-width: 760px;
}

/* ── Colonne nom ── */
.salles-table__nom[b-7w9q13xn1p] {
    font-weight: 500;
}

/* ── Toggle actif/inactif ── */
.salles-toggle[b-7w9q13xn1p] {
    all: unset;
    cursor: pointer;
    width: 40px;
    height: 22px;
    border-radius: var(--radius-pill);
    background: var(--border-strong);
    position: relative;
    transition: background var(--transition);
    flex-shrink: 0;
}

.salles-toggle:focus-visible[b-7w9q13xn1p] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.salles-toggle:disabled[b-7w9q13xn1p] {
    opacity: 0.5;
    cursor: not-allowed;
}

.salles-toggle--active[b-7w9q13xn1p] {
    background: var(--accent);
}

.salles-toggle__knob[b-7w9q13xn1p] {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--surface);
    transition: transform var(--transition);
    box-shadow: var(--shadow-card);
}

.salles-toggle--active .salles-toggle__knob[b-7w9q13xn1p] {
    transform: translateX(18px);
}
/* _content/HémiolePro.Web/Components/Pages/Admin/SessionAcademique.razor.rz.scp.css */
/* SessionAcademique.razor.css */

.session-page[b-e0eqx0tyq4] {
    max-width: 720px;
}

/* ── Bannière session active ── */
.session-active-banner[b-e0eqx0tyq4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--accent-soft);
    border: 1px solid var(--accent);
    border-radius: var(--radius-lg);
    padding: var(--space-4) var(--space-6);
    margin-bottom: var(--space-6);
}

.session-active-banner__info[b-e0eqx0tyq4] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
}

.session-active-banner__name[b-e0eqx0tyq4] {
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--ink);
}

.session-active-banner__dates[b-e0eqx0tyq4] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    font-family: var(--font-mono);
}

.session-active-banner__icon[b-e0eqx0tyq4] {
    color: var(--accent);
    flex-shrink: 0;
}

/* ── Badge active ── */
.session-active-badge[b-e0eqx0tyq4] {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 var(--space-2);
    background: var(--accent);
    color: var(--surface);
    font-size: var(--text-xs);
    font-weight: 700;
    border-radius: var(--radius-pill);
    letter-spacing: 0.03em;
}

.session-active-badge--sm[b-e0eqx0tyq4] {
    height: 18px;
    font-size: 10px;
}

/* ── Carte liste ── */
.session-card[b-e0eqx0tyq4] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.session-card__head[b-e0eqx0tyq4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-5) var(--space-6);
    border-bottom: 1px solid var(--border);
}

.session-card__title[b-e0eqx0tyq4] {
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

/* ── Liste sessions ── */
.session-list[b-e0eqx0tyq4] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.session-list__item[b-e0eqx0tyq4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-4) var(--space-6);
    border-bottom: 1px solid var(--border);
    min-height: 64px;
    gap: var(--space-4);
}

.session-list__item:last-child[b-e0eqx0tyq4] {
    border-bottom: none;
}

.session-list__item--active[b-e0eqx0tyq4] {
    background: var(--surface-alt);
}

.session-list__info[b-e0eqx0tyq4] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    flex: 1;
}

.session-list__name-row[b-e0eqx0tyq4] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.session-list__name[b-e0eqx0tyq4] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
}

.session-list__dates[b-e0eqx0tyq4] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
    font-family: var(--font-mono);
}

/* session-empty reuses page-empty — no additional override needed */
.session-empty[b-e0eqx0tyq4] {
    padding: var(--space-6);
    border: none;
}

/* ── Formulaire inline ── */
.session-form[b-e0eqx0tyq4] {
    padding: var(--space-6);
    border-top: 1px solid var(--border);
    background: var(--surface-alt);
}

.session-form__title[b-e0eqx0tyq4] {
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--ink);
    margin: 0 0 var(--space-5);
}

.session-field-row[b-e0eqx0tyq4] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4);
    margin-bottom: var(--space-5);
}

@media (max-width: 560px) {
    .session-field-row[b-e0eqx0tyq4] { grid-template-columns: 1fr; }
}

.session-form__actions[b-e0eqx0tyq4] {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-3);
    margin-top: var(--space-2);
}
/* _content/HémiolePro.Web/Components/Pages/Admin/Sites.razor.rz.scp.css */
/* Sites.razor.css — styles scopés page gestion des sites */

.sites-page[b-1og3tfh0qb] {
    max-width: 1100px;
}

/* ── KPIs ── */
.sites-kpis[b-1og3tfh0qb] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-4);
    margin-bottom: var(--space-6);
}

@media (max-width: 768px) {
    .sites-kpis[b-1og3tfh0qb] { grid-template-columns: repeat(2, 1fr); }
}

.sites-kpi-tile[b-1og3tfh0qb] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-4) var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.sites-kpi-tile__label[b-1og3tfh0qb] {
    font-size: var(--text-xs);
    font-weight: 600;
    color: var(--ink-subtle);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.sites-kpi-tile__value[b-1og3tfh0qb] {
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--ink);
}

.sites-kpi-tile__value--mono[b-1og3tfh0qb] {
    font-family: var(--font-mono);
    letter-spacing: -0.02em;
}

/* ── Barre d'actions ── */
.sites-actions-bar[b-1og3tfh0qb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-5);
    gap: var(--space-4);
}

.sites-section-title[b-1og3tfh0qb] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

/* ── Grille cards ── */
.sites-cards-grid[b-1og3tfh0qb] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-4);
}

@media (max-width: 1024px) {
    .sites-cards-grid[b-1og3tfh0qb] { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
    .sites-cards-grid[b-1og3tfh0qb] { grid-template-columns: 1fr; }
}

/* ── Card site ── */
.sites-card[b-1og3tfh0qb] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    transition: box-shadow var(--transition);
}

.sites-card:hover[b-1og3tfh0qb] {
    box-shadow: var(--shadow-card);
}

.sites-card--inactive[b-1og3tfh0qb] {
    opacity: 0.65;
}

.sites-card__head[b-1og3tfh0qb] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-3);
    border-bottom: none;
    padding: 0;
}

.sites-card__nom-wrap[b-1og3tfh0qb] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.sites-card__nom[b-1og3tfh0qb] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sites-card__ville[b-1og3tfh0qb] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
}

.sites-card__statut[b-1og3tfh0qb] {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 9999px;
    font-size: var(--text-xs);
    font-weight: 600;
    flex-shrink: 0;
}

.sites-card__statut--actif[b-1og3tfh0qb] {
    background: var(--success-soft);
    color: var(--success);
}

.sites-card__statut--inactif[b-1og3tfh0qb] {
    background: var(--surface-alt);
    color: var(--ink-muted);
}

/* ── Stats ── */
.sites-card__stats[b-1og3tfh0qb] {
    display: flex;
    gap: var(--space-4);
}

.sites-card__stat[b-1og3tfh0qb] {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    color: var(--ink-subtle);
    font-size: var(--text-sm);
}

.sites-card__stat-val[b-1og3tfh0qb] {
    font-weight: 600;
    color: var(--ink);
}

.sites-card__stat-val--mono[b-1og3tfh0qb] {
    font-family: var(--font-mono);
}

.sites-card__stat-label[b-1og3tfh0qb] {
    color: var(--ink-subtle);
}

/* ── Utilisation ── */
.sites-card__utilisation[b-1og3tfh0qb] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.sites-card__utilisation-label[b-1og3tfh0qb] {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.sites-card__utilisation-txt[b-1og3tfh0qb] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
}

.sites-card__utilisation-pct[b-1og3tfh0qb] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
}

.sites-card__utilisation-pct--mono[b-1og3tfh0qb] {
    font-family: var(--font-mono);
}

.sites-card__progress-track[b-1og3tfh0qb] {
    height: 6px;
    background: var(--surface-alt);
    border-radius: 3px;
    overflow: hidden;
}

.sites-card__progress-fill[b-1og3tfh0qb] {
    height: 100%;
    background: var(--accent);
    border-radius: 3px;
    transition: width 0.4s ease;
}

/* ── Pied de card ── */
.sites-card__footer[b-1og3tfh0qb] {
    display: flex;
    gap: var(--space-2);
    justify-content: flex-end;
    padding-top: var(--space-3);
    border-top: 1px solid var(--border);
    margin-top: auto;
}

/* Bouton avec texte + icône dans les cards */
.sites-btn-icon[b-1og3tfh0qb] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-1) var(--space-3);
    min-height: 36px;
    border: 1px solid var(--border);
    background: transparent;
    border-radius: var(--radius-md);
    color: var(--ink-subtle);
    cursor: pointer;
    font-size: var(--text-xs);
    font-weight: 500;
    transition: background var(--transition), color var(--transition);
}

.sites-btn-icon:hover:not(:disabled)[b-1og3tfh0qb] {
    background: var(--surface-alt);
    color: var(--ink);
}

.sites-btn-icon--danger:hover:not(:disabled)[b-1og3tfh0qb] {
    background: var(--danger-soft);
    color: var(--danger);
    border-color: var(--danger-border);
}

.sites-btn-icon--disabled[b-1og3tfh0qb] {
    opacity: 0.35;
    cursor: not-allowed;
}

/* ── Champs locaux drawer ── */
.sites-field-row[b-1og3tfh0qb] {
    display: flex;
    gap: var(--space-3);
}

.sites-field--grow[b-1og3tfh0qb] {
    flex: 1;
}

.sites-field__input--short[b-1og3tfh0qb] {
    width: 100px;
}

/* ── Vide ── */
.sites-empty[b-1og3tfh0qb] {
    padding: var(--space-8) var(--space-6);
    color: var(--ink-subtle);
    text-align: center;
    font-size: var(--text-sm);
}
/* _content/HémiolePro.Web/Components/Pages/Admin/TypesCours.razor.rz.scp.css */
/* TypesCours.razor.css — styles scopés page types de cours */

.tc-page[b-el3suo9w3w] {
    max-width: 960px;
}

/* ── Empty state ── */
.tc-empty[b-el3suo9w3w] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-12) var(--space-6);
    text-align: center;
}

.tc-empty__icon[b-el3suo9w3w] {
    color: var(--ink-muted);
}

.tc-empty__msg[b-el3suo9w3w] {
    color: var(--ink-subtle);
    font-size: var(--text-md);
    margin: 0;
}

/* ── Colonnes spécifiques au tableau ── */
.tc-table__col-color[b-el3suo9w3w] {
    width: 56px;
}

.tc-table__nom[b-el3suo9w3w] {
    font-weight: 500;
}

/* ── Pastille couleur ── */
.tc-pastille[b-el3suo9w3w] {
    display: inline-block;
    width: 20px;
    height: 20px;
    border-radius: 4px;
    border: 1px solid var(--border);
    flex-shrink: 0;
}

/* ── Boutons ordre ── */
.tc-ordre-btns[b-el3suo9w3w] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

/* ── Sélecteur couleur ── */
.tc-color-row[b-el3suo9w3w] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.tc-color-input[b-el3suo9w3w] {
    width: 44px;
    height: 44px;
    padding: 2px;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    cursor: pointer;
    background: var(--bg);
}

.tc-color-preview[b-el3suo9w3w] {
    width: 28px;
    height: 28px;
    border-radius: 4px;
    border: 1px solid var(--border);
    flex-shrink: 0;
}

.tc-color-value[b-el3suo9w3w] {
    font-size: var(--text-sm);
    color: var(--ink-subtle);
}

.tc-field__mono[b-el3suo9w3w] {
    font-family: var(--font-mono);
    font-size: var(--text-sm);
}

.tc-field__input--short[b-el3suo9w3w] {
    width: 100px;
}

.tc-field__input--mono[b-el3suo9w3w] {
    font-family: var(--font-mono);
}
/* _content/HémiolePro.Web/Components/Pages/Auth/Login.razor.rz.scp.css */
/* Login.razor.css — styles scopés pour la page connexion */
/* Tous les styles sont globaux dans app.css (auth-card, auth-form, etc.)
   aucun style spécifique à cette page n'est nécessaire. */
/* _content/HémiolePro.Web/Components/Pages/Auth/Onboarding.razor.rz.scp.css */
/* Onboarding.razor.css — styles scopés pour la page onboarding */

/* Bouton retour espacé du contenu précédent */
.onboarding-back[b-v289o6sphu] {
    margin-top: var(--space-3);
}
/* _content/HémiolePro.Web/Components/Pages/Auth/Register.razor.rz.scp.css */
/* Register.razor.css — styles scopés pour la page inscription */

/* Grille prénom / nom côte à côte */
.auth-name-row[b-oxci17tre4] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3);
}

@media (max-width: 400px) {
    .auth-name-row[b-oxci17tre4] {
        grid-template-columns: 1fr;
    }
}
/* _content/HémiolePro.Web/Components/Pages/Bulletins/BulletinCreer.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════════════
   BulletinCreer.razor.css — styles scopés page création bulletin
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Layout ── */
.bulletin-creer[b-vr7bj89p4o] {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    max-width: 640px;
}

/* ── Header avec retour ── */
.bulletin-creer__header[b-vr7bj89p4o] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.bulletin-creer__kicker[b-vr7bj89p4o] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.bulletin-creer__title[b-vr7bj89p4o] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: var(--space-1) 0 0;
}

/* ── Loading ── */
.bulletin-creer__loading[b-vr7bj89p4o] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-8) 0;
    color: var(--ink-subtle);
    font-size: var(--text-sm);
}

.bulletin-creer__spinner[b-vr7bj89p4o] {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: creer-spin-b-vr7bj89p4o 0.7s linear infinite;
    flex-shrink: 0;
}

@keyframes creer-spin-b-vr7bj89p4o {
    to { transform: rotate(360deg); }
}

/* ── Card formulaire ── */
.bulletin-creer__card[b-vr7bj89p4o] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    padding: var(--space-8);
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    box-shadow: var(--shadow-card);
}

/* ── Session académique info-ligne ── */
.bulletin-creer__session[b-vr7bj89p4o] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    font-weight: 500;
    margin: 0;
}

/* ── Sélection mode saisie ── */
.bulletin-creer__modes[b-vr7bj89p4o] {
    border: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.bulletin-creer__modes-hint[b-vr7bj89p4o] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    line-height: 1.5;
    margin: 0;
}

.bulletin-creer__modes-list[b-vr7bj89p4o] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.bulletin-creer__mode[b-vr7bj89p4o] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-5);
    background: var(--surface-alt);
    border: 2px solid var(--border);
    border-radius: var(--radius-lg);
    cursor: pointer;
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.bulletin-creer__mode input[type="radio"][b-vr7bj89p4o] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.bulletin-creer__mode:hover[b-vr7bj89p4o] {
    border-color: var(--accent-border);
    background: var(--accent-soft);
}

.bulletin-creer__mode--selected[b-vr7bj89p4o] {
    border-color: var(--accent);
    background: var(--accent-soft);
}

.bulletin-creer__mode-icon[b-vr7bj89p4o] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    min-width: 40px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    color: var(--accent);
}

.bulletin-creer__mode--selected .bulletin-creer__mode-icon[b-vr7bj89p4o] {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}

.bulletin-creer__mode-info[b-vr7bj89p4o] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.bulletin-creer__mode-info strong[b-vr7bj89p4o] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
}

.bulletin-creer__mode-info span[b-vr7bj89p4o] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
    line-height: 1.5;
}

/* ── Actions ── */
.bulletin-creer__actions[b-vr7bj89p4o] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-3);
    padding-top: var(--space-2);
    border-top: 1px solid var(--border);
}

/* ── Responsive ── */
@media (max-width: 640px) {
    .bulletin-creer__card[b-vr7bj89p4o] { padding: var(--space-5); }
    .bulletin-creer__actions[b-vr7bj89p4o] { flex-direction: column-reverse; }
    .bulletin-creer__actions .hp-btn[b-vr7bj89p4o] { width: 100%; }
}
/* _content/HémiolePro.Web/Components/Pages/Bulletins/BulletinDetail.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════════════
   BulletinDetail.razor.css — styles scopés page détail bulletin
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Layout ── */
.bulletin-detail[b-a2fgd51b3k] {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

/* ── Loading ── */
.bulletin-detail__loading[b-a2fgd51b3k] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-8) 0;
    color: var(--ink-subtle);
    font-size: var(--text-sm);
}

.bulletin-detail__spinner[b-a2fgd51b3k] {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: bd-spin-b-a2fgd51b3k 0.7s linear infinite;
    flex-shrink: 0;
}

@keyframes bd-spin-b-a2fgd51b3k {
    to { transform: rotate(360deg); }
}

/* ── En-tête ── */
.bulletin-detail__header[b-a2fgd51b3k] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    padding: var(--space-6);
    box-shadow: var(--shadow-card);
}

.bulletin-detail__nav[b-a2fgd51b3k] {
    display: flex;
    align-items: center;
}

.bulletin-detail__identity[b-a2fgd51b3k] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    flex: 1;
}

/* Avatar grand format */
.bulletin-detail__avatar[b-a2fgd51b3k] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    min-width: 52px;
    border-radius: 50%;
    background: var(--accent-soft);
    color: var(--accent);
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 700;
    letter-spacing: -0.02em;
}

.bulletin-detail__meta[b-a2fgd51b3k] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.bulletin-detail__name[b-a2fgd51b3k] {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: 0;
}

.bulletin-detail__period[b-a2fgd51b3k] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    flex-wrap: wrap;
}

.bulletin-detail__sep[b-a2fgd51b3k] { color: var(--border-strong); }

/* ── Stepper workflow ── */
.bulletin-detail__stepper[b-a2fgd51b3k] {
    display: flex;
    align-items: center;
    gap: 0;
    padding: var(--space-2) 0 var(--space-1);
}

.bulletin-detail__step-group[b-a2fgd51b3k] {
    display: flex;
    align-items: center;
    flex: 1;
}

.bulletin-detail__step-group:last-child[b-a2fgd51b3k] {
    flex: 0 0 auto;
}

.bulletin-detail__step[b-a2fgd51b3k] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-shrink: 0;
}

.bulletin-detail__step-node[b-a2fgd51b3k] {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background var(--transition-fast), border-color var(--transition-fast);
}

.bulletin-detail__step--done .bulletin-detail__step-node[b-a2fgd51b3k] {
    background: var(--libre);
    border: 1.5px solid var(--libre);
    color: #fff;
}

.bulletin-detail__step--current .bulletin-detail__step-node[b-a2fgd51b3k] {
    background: var(--surface);
    border: 2px solid var(--accent);
}

.bulletin-detail__step--pending .bulletin-detail__step-node[b-a2fgd51b3k] {
    background: var(--surface);
    border: 1.5px solid var(--border-strong);
}

.bulletin-detail__step-dot[b-a2fgd51b3k] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--accent);
    display: block;
}

.bulletin-detail__step-label[b-a2fgd51b3k] {
    font-size: var(--text-sm);
    font-weight: 600;
    white-space: nowrap;
}

.bulletin-detail__step--done .bulletin-detail__step-label[b-a2fgd51b3k]    { color: var(--ink); }
.bulletin-detail__step--current .bulletin-detail__step-label[b-a2fgd51b3k] { color: var(--ink); }
.bulletin-detail__step--pending .bulletin-detail__step-label[b-a2fgd51b3k] { color: var(--ink-subtle); }

.bulletin-detail__step-line[b-a2fgd51b3k] {
    flex: 1;
    height: 2px;
    margin: 0 var(--space-3);
    border-radius: var(--radius-pill);
    transition: background var(--transition-fast);
}

.bulletin-detail__step-line--done[b-a2fgd51b3k]    { background: var(--libre); }
.bulletin-detail__step-line--pending[b-a2fgd51b3k] { background: var(--border); }

/* ── Actions ── */
.bulletin-detail__actions[b-a2fgd51b3k] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
}

/* ── Sections ── */
.bulletin-detail__section[b-a2fgd51b3k] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-card);
}

.bulletin-detail__section-header[b-a2fgd51b3k] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--border);
    background: var(--surface-alt);
    gap: var(--space-4);
}

.bulletin-detail__section-title[b-a2fgd51b3k] {
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--border);
    background: var(--surface-alt);
}

/* Quand section-title est dans section-header, pas de padding/border propre */
.bulletin-detail__section-header .bulletin-detail__section-title[b-a2fgd51b3k] {
    padding: 0;
    border-bottom: none;
    background: transparent;
}

/* ── États vides ── */
.bulletin-detail__empty[b-a2fgd51b3k] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-10) var(--space-8);
    color: var(--ink-subtle);
    font-size: var(--text-sm);
    text-align: center;
}

.bulletin-detail__commentaire[b-a2fgd51b3k] {
    padding: var(--space-5);
    font-size: var(--text-sm);
    color: var(--ink);
    line-height: 1.7;
    border-left: 3px solid var(--accent);
    margin: var(--space-5);
    padding-left: var(--space-4);
    background: var(--accent-soft);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

.bulletin-detail__none[b-a2fgd51b3k] {
    color: var(--ink-subtle);
    font-style: italic;
}

/* Bouton enregistrer le commentaire positionné à droite */
.bulletin-detail__save-comment[b-a2fgd51b3k] {
    align-self: flex-end;
}

/* ── Tableau des notes ── */
.bulletin-table-wrapper[b-a2fgd51b3k] {
    overflow-x: auto;
}

.bulletin-table[b-a2fgd51b3k] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
}

.bulletin-table thead[b-a2fgd51b3k] {
    border-bottom: 1px solid var(--border);
}

.bulletin-table th[b-a2fgd51b3k] {
    padding: var(--space-3) var(--space-4);
    text-align: left;
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

.bulletin-table__row[b-a2fgd51b3k] {
    border-bottom: 1px solid var(--border);
    transition: background var(--transition-fast);
}

.bulletin-table__row:last-child[b-a2fgd51b3k] { border-bottom: none; }
.bulletin-table__row:hover[b-a2fgd51b3k] { background: var(--surface-alt); }

.bulletin-table__cell[b-a2fgd51b3k] {
    padding: var(--space-3) var(--space-4);
    color: var(--ink);
    vertical-align: middle;
}

.bulletin-table__cell--note[b-a2fgd51b3k] {
    white-space: nowrap;
}

.bulletin-table__cell--appreciation[b-a2fgd51b3k] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    max-width: 260px;
}

.bulletin-table__cell--actions[b-a2fgd51b3k] {
    white-space: nowrap;
    text-align: right;
}

.bulletin-table__note[b-a2fgd51b3k] {
    font-family: var(--font-mono);
    font-weight: 600;
    color: var(--accent);
    font-size: var(--text-md);
}

.bulletin-table__note-max[b-a2fgd51b3k] {
    font-weight: 400;
    color: var(--ink-subtle);
    font-size: var(--text-sm);
    margin-left: 2px;
}

.bulletin-table__none[b-a2fgd51b3k] {
    color: var(--ink-subtle);
}

/* ── hp-field__input--error (modificateur manquant dans app.css) ── */
[b-a2fgd51b3k] .hp-field__input--error {
    border-color: var(--danger);
    box-shadow: 0 0 0 3px var(--danger-soft);
}

/* ── Section révisions ── */
.bulletin-detail__section--revisions[b-a2fgd51b3k] {
    /* même style que les autres sections */
}

/* ── Timeline révisions ── */
.bulletin-revisions[b-a2fgd51b3k] {
    list-style: none;
    padding: var(--space-5);
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.bulletin-revisions__item[b-a2fgd51b3k] {
    display: flex;
    gap: var(--space-4);
    align-items: flex-start;
}

.bulletin-revisions__dot[b-a2fgd51b3k] {
    width: 10px;
    height: 10px;
    min-width: 10px;
    border-radius: 50%;
    background: var(--accent);
    margin-top: 5px;
    position: relative;
}

.bulletin-revisions__dot[b-a2fgd51b3k]::after {
    content: '';
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: calc(100% + var(--space-5));
    background: var(--border);
}

.bulletin-revisions__item:last-child .bulletin-revisions__dot[b-a2fgd51b3k]::after {
    display: none;
}

.bulletin-revisions__content[b-a2fgd51b3k] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.bulletin-revisions__header[b-a2fgd51b3k] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    flex-wrap: wrap;
}

.bulletin-revisions__champ[b-a2fgd51b3k] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
}

.bulletin-revisions__date[b-a2fgd51b3k] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    font-family: var(--font-mono);
}

.bulletin-revisions__values[b-a2fgd51b3k] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
}

.bulletin-revisions__old[b-a2fgd51b3k] {
    padding: 2px var(--space-2);
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    color: var(--danger);
    border-radius: var(--radius-sm);
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    text-decoration: line-through;
}

.bulletin-revisions__new[b-a2fgd51b3k] {
    padding: 2px var(--space-2);
    background: var(--success-soft);
    border: 1px solid var(--success-border);
    color: var(--success);
    border-radius: var(--radius-sm);
    font-size: var(--text-xs);
    font-family: var(--font-mono);
}

.bulletin-revisions__motif[b-a2fgd51b3k] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    font-style: italic;
    margin: 0;
}

/* ── Responsive ── */
@media (max-width: 640px) {
    .bulletin-detail__header[b-a2fgd51b3k] { padding: var(--space-4); }
    .bulletin-detail__name[b-a2fgd51b3k] { font-size: var(--text-lg); }
    .bulletin-table__cell--appreciation[b-a2fgd51b3k] { display: none; }
}
/* _content/HémiolePro.Web/Components/Pages/Bulletins/Bulletins.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════════════
   Bulletins.razor.css — styles scopés page liste bulletins
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Layout page ── */
.bulletins-page[b-c4tx2qa1vh] {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

/* ── Header ── */
.bulletins-page__header[b-c4tx2qa1vh] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4);
    flex-wrap: wrap;
}

.bulletins-page__header-inner[b-c4tx2qa1vh] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.bulletins-page__kicker[b-c4tx2qa1vh] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.bulletins-page__title[b-c4tx2qa1vh] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: var(--space-1) 0;
}

.bulletins-page__desc[b-c4tx2qa1vh] {
    font-size: var(--text-md);
    color: var(--ink-subtle);
    margin: 0;
}

.bulletins-page__actions[b-c4tx2qa1vh] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-shrink: 0;
}

/* ── Loading ── */
.bulletins-page__loading[b-c4tx2qa1vh] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-8) 0;
    color: var(--ink-subtle);
    font-size: var(--text-sm);
}

.bulletins-page__spinner[b-c4tx2qa1vh] {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: bulletins-spin-b-c4tx2qa1vh 0.7s linear infinite;
    flex-shrink: 0;
}

@keyframes bulletins-spin-b-c4tx2qa1vh {
    to { transform: rotate(360deg); }
}

/* ── Barre workflow ── */
.bulletins-workflow[b-c4tx2qa1vh] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    box-shadow: var(--shadow-card);
}

/* Barre de progression segmentée */
.bulletins-workflow__bar[b-c4tx2qa1vh] {
    display: flex;
    height: 8px;
    border-radius: var(--radius-pill);
    overflow: hidden;
    gap: 2px;
}

.bulletins-workflow__segment[b-c4tx2qa1vh] {
    height: 100%;
    min-width: 4px;
    transition: flex var(--transition-fast);
}

.bulletins-workflow__segment--brouillon[b-c4tx2qa1vh] { background: var(--ink-subtle); }
.bulletins-workflow__segment--soumis[b-c4tx2qa1vh]    { background: var(--warning); }
.bulletins-workflow__segment--valide[b-c4tx2qa1vh]    { background: var(--info); }
.bulletins-workflow__segment--diffuse[b-c4tx2qa1vh]   { background: var(--libre); }

/* Stats en dessous */
.bulletins-workflow__stats[b-c4tx2qa1vh] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-3);
}

.bulletins-workflow__stat[b-c4tx2qa1vh] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    padding: var(--space-2) var(--space-3);
    cursor: pointer;
    text-align: left;
    transition: background var(--transition-fast), border-color var(--transition-fast);
    min-height: 44px;
}

.bulletins-workflow__stat:hover[b-c4tx2qa1vh] {
    background: var(--surface-alt);
    border-color: var(--border);
}

.bulletins-workflow__stat--active[b-c4tx2qa1vh] {
    background: var(--accent-soft);
    border-color: var(--accent-border);
}

.bulletins-workflow__dot[b-c4tx2qa1vh] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.bulletins-workflow__dot--brouillon[b-c4tx2qa1vh] { background: var(--ink-subtle); }
.bulletins-workflow__dot--soumis[b-c4tx2qa1vh]    { background: var(--warning); }
.bulletins-workflow__dot--valide[b-c4tx2qa1vh]    { background: var(--info); }
.bulletins-workflow__dot--diffuse[b-c4tx2qa1vh]   { background: var(--libre); }

.bulletins-workflow__stat-label[b-c4tx2qa1vh] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-muted);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    flex: 1;
}

.bulletins-workflow__stat-val[b-c4tx2qa1vh] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
}

/* ── Filtres ── */
.bulletins-filters[b-c4tx2qa1vh] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-5);
}

.bulletins-filters__row[b-c4tx2qa1vh] {
    display: flex;
    gap: var(--space-4);
    flex-wrap: wrap;
}

.bulletins-filters__field[b-c4tx2qa1vh] {
    flex: 1;
    min-width: 180px;
}

/* Champ recherche avec icône */
.bulletins-filters__search[b-c4tx2qa1vh] {
    position: relative;
    display: flex;
    align-items: center;
}

.bulletins-filters__search-icon[b-c4tx2qa1vh] {
    position: absolute;
    left: var(--space-3);
    color: var(--ink-subtle);
    pointer-events: none;
    flex-shrink: 0;
}

.bulletins-filters__input[b-c4tx2qa1vh] {
    padding-left: calc(var(--space-3) + 15px + var(--space-2)) !important;
}

/* ── État vide ── */
.bulletins-empty[b-c4tx2qa1vh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-16) var(--space-8);
    color: var(--ink-subtle);
    font-size: var(--text-sm);
    text-align: center;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
}

/* ── Tableau ── */
.bulletins-table-wrapper[b-c4tx2qa1vh] {
    overflow-x: auto;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
}

.bulletins-table[b-c4tx2qa1vh] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
}

.bulletins-table thead[b-c4tx2qa1vh] {
    border-bottom: 1px solid var(--border);
}

.bulletins-table th[b-c4tx2qa1vh] {
    padding: var(--space-3) var(--space-4);
    text-align: left;
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
    background: var(--surface-alt);
}

.bulletins-table th:first-child[b-c4tx2qa1vh] { border-radius: var(--radius-lg) 0 0 0; }
.bulletins-table th:last-child[b-c4tx2qa1vh]  { border-radius: 0 var(--radius-lg) 0 0; }

.bulletins-table__row[b-c4tx2qa1vh] {
    border-bottom: 1px solid var(--border);
    cursor: pointer;
    transition: background var(--transition-fast);
}

.bulletins-table__row:last-child[b-c4tx2qa1vh] { border-bottom: none; }

.bulletins-table__row:hover[b-c4tx2qa1vh] { background: var(--accent-soft); }

.bulletins-table__row:focus-visible[b-c4tx2qa1vh] {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}

.bulletins-table__cell[b-c4tx2qa1vh] {
    padding: var(--space-3) var(--space-4);
    color: var(--ink);
    vertical-align: middle;
}

.bulletins-table__cell--name[b-c4tx2qa1vh] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-weight: 500;
}

.bulletins-table__cell--date[b-c4tx2qa1vh] {
    color: var(--ink-muted);
    white-space: nowrap;
    font-size: var(--text-sm);
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
}

/* Avatar initiales */
.bulletins-table__avatar[b-c4tx2qa1vh] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    min-width: 32px;
    border-radius: 50%;
    background: var(--accent-soft);
    color: var(--accent);
    font-family: var(--font-display);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0;
}

/* Badge nb notes */
.bulletins-table__badge[b-c4tx2qa1vh] {
    display: inline-flex;
    align-items: center;
    padding: 2px var(--space-2);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    color: var(--ink-muted);
    white-space: nowrap;
}

.bulletins-table__none[b-c4tx2qa1vh] {
    color: var(--ink-subtle);
}

/* ── Responsive ── */
@media (max-width: 900px) {
    .bulletins-workflow__stats[b-c4tx2qa1vh] { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .bulletins-page__header[b-c4tx2qa1vh] { flex-direction: column; }
    .bulletins-filters__row[b-c4tx2qa1vh] { flex-direction: column; }
    .bulletins-workflow__stats[b-c4tx2qa1vh] { grid-template-columns: repeat(2, 1fr); }
    .bulletins-table th:nth-child(5)[b-c4tx2qa1vh],
    .bulletins-table th:nth-child(6)[b-c4tx2qa1vh],
    .bulletins-table td:nth-child(5)[b-c4tx2qa1vh],
    .bulletins-table td:nth-child(6)[b-c4tx2qa1vh] { display: none; }
}

@media (max-width: 480px) {
    .bulletins-workflow__stats[b-c4tx2qa1vh] { grid-template-columns: repeat(2, 1fr); }
}
/* _content/HémiolePro.Web/Components/Pages/Bulletins/MesBulletins.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════════════
   MesBulletins.razor.css — styles scopés page bulletins élève/parents
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Layout ── */
.mes-bulletins[b-iznrmef50t] {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    max-width: 760px;
}

/* ── Header ── */
.mes-bulletins__header[b-iznrmef50t] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.mes-bulletins__kicker[b-iznrmef50t] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.mes-bulletins__title[b-iznrmef50t] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: var(--space-1) 0;
}

.mes-bulletins__desc[b-iznrmef50t] {
    font-size: var(--text-md);
    color: var(--ink-subtle);
    margin: 0;
}

/* ── Loading ── */
.mes-bulletins__loading[b-iznrmef50t] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-8) 0;
    color: var(--ink-subtle);
    font-size: var(--text-sm);
}

.mes-bulletins__spinner[b-iznrmef50t] {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: mb-spin-b-iznrmef50t 0.7s linear infinite;
    flex-shrink: 0;
}

@keyframes mb-spin-b-iznrmef50t {
    to { transform: rotate(360deg); }
}

/* ── État vide ── */
.mes-bulletins__empty[b-iznrmef50t] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-16) var(--space-8);
    color: var(--ink-subtle);
    font-size: var(--text-sm);
    text-align: center;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
}

.mes-bulletins__empty-sub[b-iznrmef50t] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    max-width: 320px;
    line-height: 1.5;
}

/* ── Filtre période (pill tabs) ── */
.mes-bulletins__periodes[b-iznrmef50t] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.mes-bulletins__periode-btn[b-iznrmef50t] {
    display: inline-flex;
    align-items: center;
    padding: var(--space-2) var(--space-4);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ink-muted);
    cursor: pointer;
    transition: border-color var(--transition-fast), color var(--transition-fast), background var(--transition-fast);
    min-height: 36px;
    white-space: nowrap;
}

.mes-bulletins__periode-btn:hover[b-iznrmef50t] {
    border-color: var(--accent-border);
    color: var(--accent);
    background: var(--accent-soft);
}

.mes-bulletins__periode-btn--active[b-iznrmef50t] {
    border-color: var(--accent);
    color: var(--accent);
    background: var(--accent-soft);
    font-weight: 600;
}

/* ── Liste style rows (PDF style) ── */
.mes-bulletins__list[b-iznrmef50t] {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.mes-bulletins__row[b-iznrmef50t] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--border);
    cursor: pointer;
    transition: background var(--transition-fast);
}

.mes-bulletins__row:last-child[b-iznrmef50t] { border-bottom: none; }

.mes-bulletins__row:hover[b-iznrmef50t] { background: var(--accent-soft); }

.mes-bulletins__row:focus-visible[b-iznrmef50t] {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}

.mes-bulletins__row-icon[b-iznrmef50t] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 44px;
    min-width: 36px;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    color: var(--ink-subtle);
    flex-shrink: 0;
    transition: background var(--transition-fast), color var(--transition-fast);
}

.mes-bulletins__row:hover .mes-bulletins__row-icon[b-iznrmef50t] {
    background: var(--accent-soft);
    color: var(--accent);
    border-color: var(--accent-border);
}

.mes-bulletins__row-body[b-iznrmef50t] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.mes-bulletins__row-periode[b-iznrmef50t] {
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.01em;
    display: block;
}

.mes-bulletins__row-meta[b-iznrmef50t] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: var(--text-sm);
    color: var(--ink-subtle);
}

.mes-bulletins__row-meta span:not(:last-child)[b-iznrmef50t]::after {
    content: '·';
    margin-left: var(--space-3);
    color: var(--border-strong);
}

.mes-bulletins__row-actions[b-iznrmef50t] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-shrink: 0;
}

.mes-bulletins__row-arrow[b-iznrmef50t] {
    color: var(--ink-subtle);
    transition: transform var(--transition-fast), color var(--transition-fast);
}

.mes-bulletins__row:hover .mes-bulletins__row-arrow[b-iznrmef50t] {
    transform: translateX(3px);
    color: var(--accent);
}

/* ── Vue détail ── */
.mes-bulletins__detail[b-iznrmef50t] {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

.mes-bulletins__detail-nav[b-iznrmef50t] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    flex-wrap: wrap;
}

.mes-bulletins__detail-header[b-iznrmef50t] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    padding: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    box-shadow: var(--shadow-card);
}

.mes-bulletins__detail-titre[b-iznrmef50t] {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: 0;
}

.mes-bulletins__detail-date[b-iznrmef50t] {
    font-size: var(--text-sm);
    color: var(--ink-subtle);
    margin: 0;
}

/* ── Section notes ── */
.mes-bulletins__notes[b-iznrmef50t],
.mes-bulletins__commentaire[b-iznrmef50t] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-card);
}

.mes-bulletins__section-title[b-iznrmef50t] {
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--ink);
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--border);
    background: var(--surface-alt);
    margin: 0;
}

/* ── Tableau notes ── */
.mes-bulletins__table-wrap[b-iznrmef50t] {
    overflow-x: auto;
}

.bulletin-table[b-iznrmef50t] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
}

.bulletin-table thead[b-iznrmef50t] {
    border-bottom: 1px solid var(--border);
}

.bulletin-table th[b-iznrmef50t] {
    padding: var(--space-3) var(--space-4);
    text-align: left;
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

.bulletin-table__row[b-iznrmef50t] {
    border-bottom: 1px solid var(--border);
}

.bulletin-table__row:last-child[b-iznrmef50t] { border-bottom: none; }

.bulletin-table__cell[b-iznrmef50t] {
    padding: var(--space-3) var(--space-4);
    color: var(--ink);
    vertical-align: middle;
}

.bulletin-table__cell--note[b-iznrmef50t] { white-space: nowrap; }

.bulletin-table__cell--appreciation[b-iznrmef50t] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
}

.bulletin-table__note[b-iznrmef50t] {
    font-family: var(--font-mono);
    font-weight: 600;
    color: var(--accent);
}

.bulletin-table__note-max[b-iznrmef50t] {
    font-weight: 400;
    color: var(--ink-subtle);
    font-size: var(--text-sm);
    margin-left: 2px;
}

/* ── Commentaire général ── */
.mes-bulletins__quote[b-iznrmef50t] {
    margin: var(--space-5);
    padding: var(--space-4) var(--space-5);
    border-left: 3px solid var(--accent);
    background: var(--accent-soft);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
    font-size: var(--text-sm);
    color: var(--ink);
    line-height: 1.7;
    font-style: italic;
}

.mes-bulletins__none[b-iznrmef50t] {
    padding: var(--space-5);
    font-size: var(--text-sm);
    color: var(--ink-subtle);
    font-style: italic;
    margin: 0;
}

/* ── Responsive ── */
@media (max-width: 640px) {
    .mes-bulletins__detail-nav[b-iznrmef50t] { flex-direction: column; align-items: flex-start; }
    .mes-bulletins__row[b-iznrmef50t] { padding: var(--space-3) var(--space-4); }
    .bulletin-table__cell--appreciation[b-iznrmef50t] { display: none; }
}
/* _content/HémiolePro.Web/Components/Pages/Dashboard.razor.rz.scp.css */
/* Dashboard.razor.css */

/* ── Layout ─────────────────────────────────────────── */

.dashboard[b-07738e7kar] {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

/* ── Hero ────────────────────────────────────────────── */

.dashboard__hero[b-07738e7kar] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}

.dashboard__hero-date[b-07738e7kar] {
    font-size: 13px;
    color: var(--ink-muted);
    margin-bottom: 6px;
    font-family: var(--font-body);
}

.dashboard__hero-title[b-07738e7kar] {
    margin: 0;
    font-family: var(--font-display);
    font-size: 38px;
    font-weight: 600;
    letter-spacing: -0.025em;
    line-height: 1.05;
    color: var(--ink);
}

.dashboard__hero-subtitle[b-07738e7kar] {
    color: var(--ink-muted);
}

.dashboard__hero-actions[b-07738e7kar] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

.dashboard__drive-btn[b-07738e7kar] {
    display: flex;
    align-items: center;
    gap: 6px;
}

/* ── KPI Grid ────────────────────────────────────────── */

.dashboard__kpi-grid[b-07738e7kar] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

.kpi-card[b-07738e7kar] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 18px;
}

.kpi-card__label[b-07738e7kar] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ink-muted);
    font-family: var(--font-body);
}

.kpi-card__dot[b-07738e7kar] {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
}

.kpi-card__dot--notion[b-07738e7kar]   { background: var(--notion); }
.kpi-card__dot--exercice[b-07738e7kar] { background: var(--exercice); }
.kpi-card__dot--libre[b-07738e7kar]    { background: var(--libre); }
.kpi-card__dot--warning[b-07738e7kar]  { background: var(--warning); }

.kpi-card__value-row[b-07738e7kar] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin-top: 10px;
}

.kpi-card__value[b-07738e7kar] {
    font-family: var(--font-display);
    font-size: 34px;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--ink);
    line-height: 1;
}

.kpi-card__unit[b-07738e7kar] {
    font-size: 13px;
    color: var(--ink-muted);
    font-family: var(--font-body);
}

.kpi-card__delta[b-07738e7kar] {
    font-size: 12px;
    color: var(--ink-subtle);
    margin-top: 4px;
    font-family: var(--font-body);
}

/* ── Two-column body ─────────────────────────────────── */

.dashboard__body[b-07738e7kar] {
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: 18px;
    align-items: start;
}

.dashboard__section-head[b-07738e7kar] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}

.dashboard__section-title[b-07738e7kar] {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--ink);
    font-family: var(--font-body);
}

.dashboard__section-link[b-07738e7kar] {
    font-size: 12px;
    font-weight: 600;
    color: var(--accent);
    text-decoration: none;
    font-family: var(--font-body);
    transition: opacity 0.15s ease;
}

.dashboard__section-link:hover[b-07738e7kar] {
    opacity: 0.75;
}

/* ── Recent card ─────────────────────────────────────── */

.dashboard__recent[b-07738e7kar] {
    padding: 18px 18px 8px;
}

.recent-list[b-07738e7kar] {
    display: flex;
    flex-direction: column;
}

.recent-row[b-07738e7kar] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 4px;
    border-bottom: 1px solid var(--border);
}

.recent-row:last-child[b-07738e7kar] {
    border-bottom: none;
}

.recent-thumb[b-07738e7kar] {
    width: 36px;
    height: 46px;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ink-subtle);
    flex-shrink: 0;
}

.recent-info[b-07738e7kar] {
    flex: 1;
    min-width: 0;
}

.recent-title[b-07738e7kar] {
    font-size: 13px;
    font-weight: 600;
    color: var(--ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--font-body);
}

.recent-tags[b-07738e7kar] {
    display: flex;
    gap: 5px;
    margin-top: 4px;
    flex-wrap: wrap;
}

.recent-tag[b-07738e7kar] {
    display: inline-flex;
    align-items: center;
    padding: 2px 7px;
    border-radius: var(--radius-pill);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.02em;
    font-family: var(--font-body);
}

.recent-tag--notion[b-07738e7kar] {
    background: color-mix(in srgb, var(--notion) 12%, transparent);
    color: var(--notion);
}

.recent-tag--exercice[b-07738e7kar] {
    background: color-mix(in srgb, var(--exercice) 12%, transparent);
    color: var(--exercice);
}

.recent-tag--libre[b-07738e7kar] {
    background: color-mix(in srgb, var(--libre) 12%, transparent);
    color: var(--libre);
}

.recent-date[b-07738e7kar] {
    font-size: 11px;
    color: var(--ink-subtle);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    flex-shrink: 0;
    font-family: var(--font-mono);
}

/* ── Right column ────────────────────────────────────── */

.dashboard__right[b-07738e7kar] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* ── Tags card ───────────────────────────────────────── */

.dashboard__tags[b-07738e7kar] {
    padding: 16px 18px;
}

.tag-cloud[b-07738e7kar] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 12px;
}

.tag-chip[b-07738e7kar] {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: var(--radius-pill);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.01em;
    cursor: pointer;
    font-family: var(--font-body);
    transition: opacity 0.15s ease;
}

.tag-chip:hover[b-07738e7kar] {
    opacity: 0.8;
}

.tag-chip--notion[b-07738e7kar] {
    background: color-mix(in srgb, var(--notion) 12%, transparent);
    color: var(--notion);
}

.tag-chip--exercice[b-07738e7kar] {
    background: color-mix(in srgb, var(--exercice) 12%, transparent);
    color: var(--exercice);
}

.tag-chip--libre[b-07738e7kar] {
    background: color-mix(in srgb, var(--libre) 12%, transparent);
    color: var(--libre);
}

/* ── Tip card ────────────────────────────────────────── */

.tip-card[b-07738e7kar] {
    background: linear-gradient(135deg, var(--notion), var(--accent));
    border-radius: var(--radius-lg);
    padding: 18px;
    color: #fff;
}

.tip-card__kicker[b-07738e7kar] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    opacity: 0.85;
    font-family: var(--font-body);
}

.tip-card__body[b-07738e7kar] {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    margin-top: 6px;
    line-height: 1.25;
    letter-spacing: -0.01em;
}

.tip-card__btn[b-07738e7kar] {
    margin-top: 14px;
    padding: 8px 14px;
    border: 0;
    border-radius: var(--radius-md);
    cursor: pointer;
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 12px;
    backdrop-filter: blur(4px);
    transition: background 0.15s ease;
    min-height: 44px;
}

.tip-card__btn:hover[b-07738e7kar] {
    background: rgba(255, 255, 255, 0.28);
}

/* ── Responsive ──────────────────────────────────────── */

@media (max-width: 1100px) {
    .dashboard__kpi-grid[b-07738e7kar] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 900px) {
    .dashboard__hero[b-07738e7kar] {
        flex-direction: column;
        align-items: flex-start;
    }

    .dashboard__body[b-07738e7kar] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .dashboard__hero-title[b-07738e7kar] {
        font-size: 28px;
    }

    .dashboard__kpi-grid[b-07738e7kar] {
        grid-template-columns: 1fr 1fr;
    }
}
/* _content/HémiolePro.Web/Components/Pages/Devoirs/DevoirDetail.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════════════
   DevoirDetail.razor.css — styles scopés page détail devoir
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Layout ── */
.devoir-detail-page[b-gul4uwwjwl] {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    max-width: 860px;
}

/* ── Breadcrumb ── */
.devoir-detail-page__breadcrumb[b-gul4uwwjwl] {
    display: flex;
    align-items: center;
}

.devoir-detail-page__back[b-gul4uwwjwl] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1-5);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    text-decoration: none;
    font-weight: 500;
    transition: color var(--transition-fast);
    min-height: 44px;
}

.devoir-detail-page__back:hover[b-gul4uwwjwl] {
    color: var(--accent);
    text-decoration: none;
}

/* ── Loading / Alert ── */
.devoir-detail-loading[b-gul4uwwjwl] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-8) 0;
    color: var(--ink-subtle);
    font-size: var(--text-sm);
}

.devoir-detail-spinner[b-gul4uwwjwl] {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: dd-spin-b-gul4uwwjwl 0.7s linear infinite;
    flex-shrink: 0;
}

.devoir-detail-spinner--sm[b-gul4uwwjwl] {
    width: 14px;
    height: 14px;
    border-color: rgba(255, 255, 255, 0.3);
    border-top-color: #fff;
}

@keyframes dd-spin-b-gul4uwwjwl {
    to { transform: rotate(360deg); }
}

.devoir-detail-alert[b-gul4uwwjwl] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2-5);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    line-height: 1.5;
    border: 1px solid transparent;
}

.devoir-detail-alert--error[b-gul4uwwjwl] {
    background: var(--danger-soft);
    border-color: var(--danger-border);
    color: var(--danger);
}

/* ── Header ── */
.devoir-detail-page__header[b-gul4uwwjwl] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    padding: var(--space-6);
    box-shadow: var(--shadow-card);
    flex-wrap: wrap;
}

.devoir-detail-page__header-main[b-gul4uwwjwl] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    flex: 1;
    min-width: 0;
}

.devoir-detail-page__title-row[b-gul4uwwjwl] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
}

.devoir-detail-page__title[b-gul4uwwjwl] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: 0;
    line-height: 1.2;
}

.devoir-detail-page__meta[b-gul4uwwjwl] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
    font-size: var(--text-sm);
    color: var(--ink-muted);
}

.devoir-detail-page__meta-item[b-gul4uwwjwl] {
    display: flex;
    align-items: center;
    gap: var(--space-1);
}

.devoir-detail-page__meta-sep[b-gul4uwwjwl] {
    color: var(--border-strong);
}

.devoir-detail-page__header-actions[b-gul4uwwjwl] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
    flex-shrink: 0;
}

/* ── Confirmation suppression inline ── */
.devoir-detail-confirm[b-gul4uwwjwl] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
    border-radius: var(--radius-md);
    flex-wrap: wrap;
}

.devoir-detail-confirm__label[b-gul4uwwjwl] {
    font-size: var(--text-xs);
    color: var(--danger);
    font-weight: 500;
}

/* ── Body ── */
.devoir-detail-page__body[b-gul4uwwjwl] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

/* ── Sections ── */
.devoir-detail-section[b-gul4uwwjwl] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-card);
}

.devoir-detail-section__head[b-gul4uwwjwl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--border);
    background: var(--surface-alt);
    gap: var(--space-4);
}

.devoir-detail-section__title[b-gul4uwwjwl] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--border);
    background: var(--surface-alt);
    line-height: 1.3;
}

/* Dans section__head, le title n'a pas de padding ni border propres */
.devoir-detail-section__head .devoir-detail-section__title[b-gul4uwwjwl] {
    padding: 0;
    border-bottom: none;
    background: transparent;
}

.devoir-detail-section__count[b-gul4uwwjwl] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 var(--space-1-5);
    border-radius: var(--radius-pill);
    background: var(--accent-soft);
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    color: var(--accent);
    font-weight: 700;
}

.devoir-detail-section__content[b-gul4uwwjwl] {
    padding: var(--space-5);
}

.devoir-detail-section__content--description[b-gul4uwwjwl] {
    font-size: var(--text-md);
    color: var(--ink);
    line-height: 1.7;
    white-space: pre-wrap;
}

.devoir-detail-section__empty[b-gul4uwwjwl] {
    padding: var(--space-6) var(--space-5);
    font-size: var(--text-sm);
    color: var(--ink-subtle);
    font-style: italic;
    margin: 0;
}

.devoir-detail-section__completions-summary[b-gul4uwwjwl] {
    padding: var(--space-4) var(--space-5);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    margin: 0;
}

/* ── Pièces jointes ── */
.devoir-detail-pj-list[b-gul4uwwjwl] {
    list-style: none;
    padding: 0;
    margin: 0;
}

.devoir-detail-pj-item[b-gul4uwwjwl] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-5);
    border-bottom: 1px solid var(--border);
    transition: background var(--transition-fast);
}

.devoir-detail-pj-item:last-child[b-gul4uwwjwl] { border-bottom: none; }
.devoir-detail-pj-item:hover[b-gul4uwwjwl] { background: var(--surface-alt); }

.devoir-detail-pj-item__icon[b-gul4uwwjwl] { color: var(--ink-subtle); flex-shrink: 0; }

.devoir-detail-pj-item__info[b-gul4uwwjwl] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.devoir-detail-pj-item__nom[b-gul4uwwjwl] {
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.devoir-detail-pj-item__meta[b-gul4uwwjwl] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
}

.devoir-detail-pj-item__actions[b-gul4uwwjwl] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-shrink: 0;
}

/* ── Boutons (contexte local) ── */
.devoir-detail-btn[b-gul4uwwjwl] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    font-family: var(--font-body);
    font-weight: 600;
    font-size: var(--text-sm);
    padding: 0 var(--space-4);
    height: 44px;
    min-height: 44px;
    border-radius: var(--radius-md);
    transition: opacity var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);
    white-space: nowrap;
    box-sizing: border-box;
    text-decoration: none;
}

.devoir-detail-btn:focus-visible[b-gul4uwwjwl] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.devoir-detail-btn:disabled[b-gul4uwwjwl] {
    opacity: 0.5;
    cursor: not-allowed;
}

.devoir-detail-btn--sm[b-gul4uwwjwl] {
    height: 36px;
    min-height: 36px;
    font-size: var(--text-xs);
    padding: 0 var(--space-3);
}

.devoir-detail-btn--primary[b-gul4uwwjwl] { background: var(--accent); color: #fff; }
.devoir-detail-btn--primary:hover:not(:disabled)[b-gul4uwwjwl] { opacity: 0.88; }

.devoir-detail-btn--ghost[b-gul4uwwjwl] {
    background: var(--surface-alt);
    color: var(--ink);
    border: 1px solid var(--border);
}
.devoir-detail-btn--ghost:hover:not(:disabled)[b-gul4uwwjwl] { background: var(--border); }

.devoir-detail-btn--danger[b-gul4uwwjwl] { background: var(--danger); color: #fff; }
.devoir-detail-btn--danger:hover:not(:disabled)[b-gul4uwwjwl] { opacity: 0.88; }

.devoir-detail-btn--success[b-gul4uwwjwl] {
    background: var(--success-soft);
    color: var(--success);
    border: 1px solid var(--success-border);
}

.devoir-detail-btn-icon[b-gul4uwwjwl] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 44px;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    color: var(--ink-subtle);
    transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
    box-sizing: border-box;
}

.devoir-detail-btn-icon:hover:not(:disabled)[b-gul4uwwjwl] {
    background: var(--surface-alt);
    color: var(--ink);
}

.devoir-detail-btn-icon--danger:hover:not(:disabled)[b-gul4uwwjwl] {
    background: var(--danger-soft);
    color: var(--danger);
    border-color: var(--danger-border);
}

/* ── Drawer overlay + panneau ── */
.devoir-detail-overlay[b-gul4uwwjwl] {
    position: fixed;
    inset: 0;
    background: rgba(10, 6, 28, 0.45);
    z-index: 400;
    animation: dd-fade-in-b-gul4uwwjwl var(--transition-slow) ease;
}

[data-theme="dark"] .devoir-detail-overlay[b-gul4uwwjwl] {
    background: rgba(0, 0, 0, 0.65);
}

@keyframes dd-fade-in-b-gul4uwwjwl {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.devoir-detail-drawer[b-gul4uwwjwl] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 460px;
    max-width: 100vw;
    background: var(--surface);
    border-left: 1px solid var(--border);
    box-shadow: var(--shadow-modal);
    z-index: 401;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: dd-slide-in-b-gul4uwwjwl var(--transition-slow) ease;
}

@keyframes dd-slide-in-b-gul4uwwjwl {
    from { transform: translateX(100%); opacity: 0.6; }
    to   { transform: translateX(0); opacity: 1; }
}

@media (max-width: 480px) {
    .devoir-detail-drawer[b-gul4uwwjwl] { width: 100%; }
}

.devoir-detail-drawer__header[b-gul4uwwjwl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-5) var(--space-6);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.devoir-detail-drawer__title[b-gul4uwwjwl] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    line-height: 1.2;
}

.devoir-detail-drawer__close[b-gul4uwwjwl] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: var(--radius-md);
    color: var(--ink-muted);
    transition: background var(--transition-fast), color var(--transition-fast);
    flex-shrink: 0;
    box-sizing: border-box;
}

.devoir-detail-drawer__close:hover[b-gul4uwwjwl] {
    background: var(--surface-alt);
    color: var(--ink);
}

.devoir-detail-drawer__close:focus-visible[b-gul4uwwjwl] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.devoir-detail-drawer__body[b-gul4uwwjwl] {
    flex: 1;
    overflow-y: auto;
    padding: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.devoir-detail-drawer__footer[b-gul4uwwjwl] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-6);
    border-top: 1px solid var(--border);
    background: var(--surface);
    flex-shrink: 0;
}

/* ── Champs formulaire drawer ── */
.devoir-detail-field[b-gul4uwwjwl] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1-5);
}

.devoir-detail-field--inline[b-gul4uwwjwl] {
    flex-direction: row;
    align-items: center;
    gap: var(--space-3);
}

.devoir-detail-field__label[b-gul4uwwjwl] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
}

.devoir-detail-field__required[b-gul4uwwjwl] { color: var(--danger); }

.devoir-detail-field__input[b-gul4uwwjwl],
.devoir-detail-field__textarea[b-gul4uwwjwl] {
    width: 100%;
    padding: 0 var(--space-3);
    height: 44px;
    min-height: 44px;
    background: var(--surface-alt);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink);
    transition: border-color var(--transition), box-shadow var(--transition);
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}

.devoir-detail-field__input:focus[b-gul4uwwjwl],
.devoir-detail-field__textarea:focus[b-gul4uwwjwl] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.devoir-detail-field__textarea[b-gul4uwwjwl] {
    height: auto;
    min-height: 100px;
    padding: var(--space-2-5) var(--space-3);
    resize: vertical;
}

/* ── Radio group ── */
.devoir-detail-radio-group[b-gul4uwwjwl] {
    display: flex;
    gap: var(--space-5);
    flex-wrap: wrap;
}

.devoir-detail-radio[b-gul4uwwjwl] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--ink);
    cursor: pointer;
    min-height: 44px;
    font-weight: 500;
}

/* ── Toast ── */
.devoir-detail-toast[b-gul4uwwjwl] {
    position: fixed;
    bottom: var(--space-6);
    right: var(--space-6);
    background: var(--ink);
    color: var(--bg);
    padding: var(--space-3) var(--space-5);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    z-index: 500;
    box-shadow: var(--shadow-modal);
    animation: dd-toast-in-b-gul4uwwjwl 0.2s ease-out;
    max-width: calc(100vw - var(--space-12));
}

@keyframes dd-toast-in-b-gul4uwwjwl {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Responsive ── */
@media (max-width: 640px) {
    .devoir-detail-page__header[b-gul4uwwjwl] { flex-direction: column; padding: var(--space-4); }
    .devoir-detail-page__title[b-gul4uwwjwl]  { font-size: var(--text-xl); }
    .devoir-detail-page__header-actions[b-gul4uwwjwl] { width: 100%; }
}
/* _content/HémiolePro.Web/Components/Pages/Devoirs/Devoirs.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════════════
   Devoirs.razor.css — styles scopés page liste devoirs
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Spinner ── */
.dv-spinner[b-iiwv7jsnnn] {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: dv-spin-b-iiwv7jsnnn 0.7s linear infinite;
    flex-shrink: 0;
}

.dv-spinner--sm[b-iiwv7jsnnn] {
    width: 14px;
    height: 14px;
    border-color: rgba(255, 255, 255, 0.3);
    border-top-color: #fff;
}

@keyframes dv-spin-b-iiwv7jsnnn {
    to { transform: rotate(360deg); }
}

/* ── Barre de filtres ── */
.dv-filter-bar[b-iiwv7jsnnn] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.dv-filter-pill[b-iiwv7jsnnn] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: var(--space-1-5);
    padding: 0 var(--space-3);
    height: 36px;
    border-radius: var(--radius-pill);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ink-muted);
    transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
    box-sizing: border-box;
    white-space: nowrap;
}

.dv-filter-pill:hover[b-iiwv7jsnnn] {
    background: var(--border);
    color: var(--ink);
}

.dv-filter-pill--active[b-iiwv7jsnnn] {
    background: var(--accent);
    color: #fff;
    border-color: var(--accent);
}

.dv-filter-pill--active:hover[b-iiwv7jsnnn] {
    background: var(--accent);
    color: #fff;
    opacity: 0.9;
}

.dv-filter-pill__count[b-iiwv7jsnnn] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: var(--radius-pill);
    background: rgba(255, 255, 255, 0.22);
    font-size: 10px;
    font-family: var(--font-mono);
    font-weight: 700;
    line-height: 1;
}

.dv-filter-pill:not(.dv-filter-pill--active) .dv-filter-pill__count[b-iiwv7jsnnn] {
    background: var(--accent-soft);
    color: var(--accent);
}

.dv-filter-bar__search[b-iiwv7jsnnn] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex: 1;
    min-width: 160px;
    max-width: 280px;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    padding: 0 var(--space-3);
    height: 36px;
    color: var(--ink-subtle);
    transition: border-color var(--transition), box-shadow var(--transition);
    box-sizing: border-box;
    margin-left: auto;
}

.dv-filter-bar__search:focus-within[b-iiwv7jsnnn] {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
    color: var(--ink);
}

.dv-filter-bar__input[b-iiwv7jsnnn] {
    all: unset;
    flex: 1;
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink);
    min-width: 0;
}

.dv-filter-bar__input[b-iiwv7jsnnn]::placeholder {
    color: var(--ink-subtle);
}

/* ── Liste devoirs prof ── */
.dv-list[b-iiwv7jsnnn] {
    display: flex;
    flex-direction: column;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-card);
}

.dv-row[b-iiwv7jsnnn] {
    display: flex;
    align-items: center;
    gap: 0;
    border-bottom: 1px solid var(--border);
    cursor: pointer;
    transition: background var(--transition-fast);
    position: relative;
}

.dv-row:last-child[b-iiwv7jsnnn] {
    border-bottom: none;
}

.dv-row:hover[b-iiwv7jsnnn] {
    background: var(--accent-soft);
}

.dv-row:focus-visible[b-iiwv7jsnnn] {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}

.dv-row__disc-bar[b-iiwv7jsnnn] {
    width: 4px;
    min-width: 4px;
    align-self: stretch;
    flex-shrink: 0;
}

.dv-row__body[b-iiwv7jsnnn] {
    flex: 1;
    min-width: 0;
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.dv-row__title[b-iiwv7jsnnn] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
}

.dv-row__meta[b-iiwv7jsnnn] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
    font-size: 11.5px;
    color: var(--ink-subtle);
}

.dv-row__meta-item[b-iiwv7jsnnn] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.dv-row__meta-sep[b-iiwv7jsnnn] {
    color: var(--border-strong);
}

.dv-row__right[b-iiwv7jsnnn] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: 12px 16px;
    flex-shrink: 0;
}

.dv-row__stats[b-iiwv7jsnnn] {
    display: flex;
    align-items: center;
}

.dv-row__completions[b-iiwv7jsnnn] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    color: var(--ink-subtle);
}

.dv-row__actions[b-iiwv7jsnnn] {
    display: flex;
    align-items: center;
    gap: var(--space-1);
}

/* ── Icône bouton (actions tableau) ── */
.dv-icon-btn[b-iiwv7jsnnn] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    min-width: 34px;
    min-height: 44px;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    color: var(--ink-subtle);
    transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
    box-sizing: border-box;
}

.dv-icon-btn:hover:not(:disabled)[b-iiwv7jsnnn] {
    background: var(--surface-alt);
    color: var(--ink);
}

.dv-icon-btn--accent:hover:not(:disabled)[b-iiwv7jsnnn] {
    background: var(--accent-soft);
    color: var(--accent);
    border-color: var(--accent-border);
}

.dv-icon-btn--danger:hover:not(:disabled)[b-iiwv7jsnnn] {
    background: var(--danger-soft);
    color: var(--danger);
    border-color: var(--danger-border);
}

/* ── Bande confirmation suppression ── */
.dv-confirm-strip[b-iiwv7jsnnn] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2-5) var(--space-5);
    background: var(--danger-soft);
    border-bottom: 1px solid var(--danger-border);
    font-size: var(--text-sm);
    color: var(--danger);
    flex-wrap: wrap;
}

.dv-confirm-strip svg[b-iiwv7jsnnn] {
    flex-shrink: 0;
}

.dv-confirm-strip span[b-iiwv7jsnnn] {
    flex: 1;
    min-width: 0;
    font-weight: 500;
}

/* ── Vue élève — liste ── */
.dv-eleve-list[b-iiwv7jsnnn] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.dv-eleve-card[b-iiwv7jsnnn] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: stretch;
    overflow: hidden;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
    box-shadow: var(--shadow-card);
}

.dv-eleve-card:hover[b-iiwv7jsnnn] {
    border-color: var(--accent-border);
    box-shadow: var(--shadow-elev);
}

.dv-eleve-card--fait[b-iiwv7jsnnn] {
    opacity: 0.7;
}

.dv-eleve-card__disc-bar[b-iiwv7jsnnn] {
    width: 4px;
    min-width: 4px;
    flex-shrink: 0;
}

.dv-eleve-card__body[b-iiwv7jsnnn] {
    flex: 1;
    min-width: 0;
    padding: var(--space-4) var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.dv-eleve-card__titre[b-iiwv7jsnnn] {
    font-weight: 600;
    font-size: var(--text-md);
    color: var(--ink);
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
}

.dv-eleve-card__titre:hover[b-iiwv7jsnnn] {
    color: var(--accent);
}

.dv-eleve-card__meta[b-iiwv7jsnnn] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    flex-wrap: wrap;
}

.dv-eleve-card__meta-sep[b-iiwv7jsnnn] {
    color: var(--border-strong);
}

.dv-eleve-card__echeance[b-iiwv7jsnnn] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.dv-eleve-card__right[b-iiwv7jsnnn] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    flex-shrink: 0;
}

.dv-check-btn[b-iiwv7jsnnn] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: 0 var(--space-3);
    height: 44px;
    min-height: 44px;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface-alt);
    color: var(--ink-muted);
    font-size: var(--text-sm);
    font-family: var(--font-body);
    font-weight: 500;
    transition: border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast);
    box-sizing: border-box;
    white-space: nowrap;
}

.dv-check-btn:hover[b-iiwv7jsnnn] {
    border-color: var(--accent-border);
    color: var(--accent);
    background: var(--accent-soft);
}

.dv-check-btn--checked[b-iiwv7jsnnn] {
    border-color: var(--success-border);
    color: var(--success);
    background: var(--success-soft);
}

/* ── Drawer ── */
.dv-drawer__kicker[b-iiwv7jsnnn] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin: 0 0 var(--space-1);
}

.dv-drawer__close[b-iiwv7jsnnn] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: var(--radius-md);
    color: var(--ink-muted);
    transition: background var(--transition-fast), color var(--transition-fast);
    flex-shrink: 0;
    box-sizing: border-box;
}

.dv-drawer__close:hover[b-iiwv7jsnnn] {
    background: var(--surface-alt);
    color: var(--ink);
}

.dv-drawer__close:focus-visible[b-iiwv7jsnnn] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

/* ── Champs formulaire ── */
.dv-textarea[b-iiwv7jsnnn] {
    width: 100%;
    padding: var(--space-2-5) var(--space-3);
    min-height: 110px;
    background: var(--surface-alt);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink);
    transition: border-color var(--transition), box-shadow var(--transition);
    box-sizing: border-box;
    resize: vertical;
    line-height: 1.6;
}

.dv-textarea:focus[b-iiwv7jsnnn] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.dv-field-hint[b-iiwv7jsnnn] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    line-height: 1.5;
}

.dv-required[b-iiwv7jsnnn] {
    color: var(--danger);
}

.dv-switch-row[b-iiwv7jsnnn] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--accent) 6%, var(--surface));
    border: 1px solid color-mix(in srgb, var(--accent) 16%, var(--border));
}

/* ── Responsive ── */
@media (max-width: 768px) {
    .dv-row__stats[b-iiwv7jsnnn] { display: none; }

    .dv-row__right[b-iiwv7jsnnn] {
        gap: var(--space-2);
        padding: var(--space-2) var(--space-3);
    }

    .dv-filter-bar__search[b-iiwv7jsnnn] {
        margin-left: 0;
        max-width: 100%;
        flex: 1 1 160px;
    }

    .dv-eleve-card[b-iiwv7jsnnn] {
        flex-direction: row;
    }

    .dv-eleve-card__right[b-iiwv7jsnnn] {
        flex-direction: column;
        align-items: flex-end;
        padding: var(--space-3);
        gap: var(--space-2);
    }
}

@media (max-width: 480px) {
    .dv-row__actions .dv-icon-btn:not(:last-child)[b-iiwv7jsnnn] {
        display: none;
    }
}
/* _content/HémiolePro.Web/Components/Pages/Eleves/EleveDetail.razor.rz.scp.css */
/* EleveDetail.razor.css — styles scopés fiche détail élève
   NOTE : .hp-field, .hp-btn définis dans app.css (global) car
   InputText/InputDate/InputSelect sont des composants enfants qui ne
   reçoivent pas l'attribut scope Blazor du parent. */

/* ── Chargement ── */
.eleve-detail__loading[b-ywpxgfub44] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    color: var(--ink-muted);
    font-size: var(--text-sm);
    padding: var(--space-12) 0;
}

.eleve-detail__spinner[b-ywpxgfub44] {
    width: 20px;
    height: 20px;
    border: 2px solid var(--border-strong);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: detail-spin-b-ywpxgfub44 700ms linear infinite;
    flex-shrink: 0;
}

@keyframes detail-spin-b-ywpxgfub44 {
    to { transform: rotate(360deg); }
}

/* ── Alertes ── */
.eleves-alert[b-ywpxgfub44] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 500;
    margin-bottom: var(--space-5);
}

.eleves-alert--error[b-ywpxgfub44] {
    background: var(--danger-soft);
    color: var(--danger);
    border: 1px solid var(--danger-border);
}

.eleves-alert--success[b-ywpxgfub44] {
    background: var(--success-soft);
    color: var(--success);
    border: 1px solid var(--success-border);
}

/* ── Conteneur principal ── */
.eleve-detail[b-ywpxgfub44] {
    max-width: 860px;
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

/* ── En-tête ── */
.eleve-detail__header[b-ywpxgfub44] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    flex-wrap: wrap;
}

.eleve-detail__identity[b-ywpxgfub44] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    flex: 1;
}

.eleve-detail__avatar[b-ywpxgfub44] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    min-width: 48px;
    border-radius: 50%;
    background: var(--accent-soft);
    color: var(--accent);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 700;
    letter-spacing: 0.02em;
    user-select: none;
    flex-shrink: 0;
}

.eleve-detail__name[b-ywpxgfub44] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: 0 0 var(--space-1);
}

/* ── Sections ── */
.eleve-detail__section[b-ywpxgfub44] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    padding-top: var(--space-5);
}

.eleve-detail__empty[b-ywpxgfub44] {
    font-size: var(--text-sm);
    color: var(--ink-subtle);
    margin: var(--space-4) 0;
}

/* ── Grille formulaire identité ── */
.eleve-detail__form-grid[b-ywpxgfub44] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4) var(--space-5);
}

.eleve-detail__form-actions[b-ywpxgfub44] {
    display: flex;
    justify-content: flex-end;
    padding-top: var(--space-2);
}

/* ── Contacts ── */
.eleve-contacts[b-ywpxgfub44] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.eleve-contacts__item[b-ywpxgfub44] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-5);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    transition: border-color var(--transition);
}

.eleve-contacts__item:hover[b-ywpxgfub44] {
    border-color: var(--border-strong);
}

/* Mode édition inline */
.eleve-contacts__item--editing[b-ywpxgfub44] {
    flex-direction: column;
    align-items: stretch;
    background: var(--surface-alt);
    border-color: var(--accent-border);
}

.eleve-contacts__edit-actions[b-ywpxgfub44] {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-3);
    padding-top: var(--space-3);
    border-top: 1px solid var(--border);
    margin-top: var(--space-3);
}

.eleve-contacts__info[b-ywpxgfub44] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.eleve-contacts__info strong[b-ywpxgfub44] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
}

.eleve-contacts__lien[b-ywpxgfub44] {
    display: inline-flex;
    align-items: center;
    padding: 2px var(--space-2-5);
    background: var(--accent-soft);
    color: var(--accent);
    border: 1px solid var(--accent-border);
    border-radius: 999px;
    font-size: var(--text-2xs);
    font-weight: 600;
    width: fit-content;
}

.eleve-contacts__principal[b-ywpxgfub44] {
    display: inline-flex;
    align-items: center;
    padding: 2px var(--space-2-5);
    background: var(--success-soft);
    color: var(--success);
    border: 1px solid var(--success-border);
    border-radius: 999px;
    font-size: var(--text-2xs);
    font-weight: 600;
    width: fit-content;
}

.eleve-contacts__coords[b-ywpxgfub44] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.eleve-contacts__link[b-ywpxgfub44] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    text-decoration: none;
    font-family: var(--font-mono);
    transition: color var(--transition);
}

.eleve-contacts__link:hover[b-ywpxgfub44] {
    color: var(--accent);
    text-decoration: underline;
}

/* ── Inscriptions ── */
.eleve-inscriptions[b-ywpxgfub44] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.eleve-inscriptions__item[b-ywpxgfub44] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    border-bottom: 1px solid var(--border);
    transition: background var(--transition);
}

.eleve-inscriptions__item:last-child[b-ywpxgfub44] {
    border-bottom: none;
}

.eleve-inscriptions__item:hover[b-ywpxgfub44] {
    background: var(--surface-alt);
}

.eleve-inscriptions__item--inactive[b-ywpxgfub44] {
    opacity: 0.6;
}

.eleve-inscriptions__info[b-ywpxgfub44] {
    flex: 1;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
    font-size: var(--text-sm);
    color: var(--ink);
}

.eleve-inscriptions__info strong[b-ywpxgfub44] {
    font-weight: 600;
}

.eleve-inscriptions__info span[b-ywpxgfub44] {
    color: var(--ink-muted);
}

.eleve-inscriptions__niveau[b-ywpxgfub44] {
    display: inline-flex;
    align-items: center;
    padding: 1px var(--space-2);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: 999px;
    font-size: var(--text-2xs);
    color: var(--ink-subtle);
}

.eleve-inscriptions__annee[b-ywpxgfub44] {
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    color: var(--ink-subtle);
    white-space: nowrap;
}

/* ── Section ajout (details/summary) ── */
.eleve-detail__add-section[b-ywpxgfub44] {
    border: 1px dashed var(--border-strong);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.eleve-detail__add-section summary[b-ywpxgfub44] {
    list-style: none;
    cursor: pointer;
    padding: var(--space-3) var(--space-4);
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--accent);
    transition: background var(--transition);
}

.eleve-detail__add-section summary:hover[b-ywpxgfub44] {
    background: var(--accent-soft);
}

.eleve-detail__add-section summary[b-ywpxgfub44]::-webkit-details-marker {
    display: none;
}

.eleve-detail__add-form[b-ywpxgfub44] {
    padding: var(--space-5);
    border-top: 1px solid var(--border);
    background: var(--surface-alt);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.eleve-detail__add-grid[b-ywpxgfub44] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4) var(--space-5);
}

/* ── Cards inscriptions ── */
.insc-cards[b-ywpxgfub44] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-bottom: var(--space-5);
}

.insc-card[b-ywpxgfub44] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-4) var(--space-5);
    transition: box-shadow var(--transition-fast);
}

.insc-card:hover[b-ywpxgfub44] { box-shadow: var(--shadow-elev); }
.insc-card--inactive[b-ywpxgfub44] { opacity: .65; }
.insc-card__header[b-ywpxgfub44] { margin-bottom: var(--space-3); }

.insc-card__badges[b-ywpxgfub44] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.insc-card__discipline-badge[b-ywpxgfub44] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-1) var(--space-2-5);
    background: var(--notion-soft);
    color: var(--notion);
    border: 1px solid var(--notion-border);
    border-radius: var(--radius-pill);
    font-size: var(--text-sm);
    font-weight: 600;
    font-family: var(--font-body);
}

.insc-card__annee-badge[b-ywpxgfub44] {
    display: inline-flex;
    padding: var(--space-1) var(--space-2-5);
    background: var(--surface-alt);
    color: var(--ink-muted);
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    font-size: var(--text-xs);
    font-family: var(--font-mono);
}

.insc-card__details[b-ywpxgfub44] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-bottom: var(--space-3);
}

.insc-card__detail-item[b-ywpxgfub44] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1-5);
    color: var(--ink-muted);
    font-size: var(--text-sm);
}

.insc-card__creneau[b-ywpxgfub44] {
    display: flex;
    align-items: center;
    margin-bottom: var(--space-4);
    min-height: 28px;
}

.insc-card__creneau-info[b-ywpxgfub44] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--ink);
    font-size: var(--text-sm);
}

.insc-card__creneau-info svg[b-ywpxgfub44] { color: var(--ink-muted); flex-shrink: 0; }
.insc-card__site[b-ywpxgfub44] { color: var(--ink-muted); }

.insc-card__capacite[b-ywpxgfub44] {
    margin-left: var(--space-2);
    padding: 2px var(--space-2);
    background: var(--surface-alt);
    border-radius: var(--radius-pill);
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    color: var(--ink-muted);
}

.insc-card__creneau-placeholder[b-ywpxgfub44] { color: var(--ink-subtle); font-size: var(--text-sm); font-style: italic; }

.insc-card__no-creneau[b-ywpxgfub44] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1-5);
    padding: var(--space-1) var(--space-2-5);
    background: var(--warning-soft);
    color: var(--warning);
    border: 1px solid var(--warning-border);
    border-radius: var(--radius-pill);
    font-size: var(--text-xs);
}

.insc-card__actions[b-ywpxgfub44] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding-top: var(--space-3);
    border-top: 1px solid var(--border);
}

/* ── Sélecteur de créneau ── */
.creneau-picker[b-ywpxgfub44] {
    list-style: none;
    margin: 0 0 var(--space-4);
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.creneau-picker__item[b-ywpxgfub44] {
    width: 100%;
    text-align: left;
    padding: var(--space-3) var(--space-4);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: border-color var(--transition-fast), background var(--transition-fast);
    font-family: var(--font-body);
    color: var(--ink);
    display: flex;
    flex-direction: column;
    gap: var(--space-1-5);
}

.creneau-picker__item:hover:not(:disabled)[b-ywpxgfub44] {
    border-color: var(--accent-border);
    background: var(--accent-soft);
}

.creneau-picker__item--selected[b-ywpxgfub44] {
    border-color: var(--accent);
    background: var(--accent-soft);
    box-shadow: 0 0 0 2px var(--accent-border);
}

.creneau-picker__item--full[b-ywpxgfub44] { opacity: .45; cursor: not-allowed; }

.creneau-picker__type[b-ywpxgfub44] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
}

.creneau-picker__pastille[b-ywpxgfub44] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.creneau-picker__meta[b-ywpxgfub44] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    color: var(--ink-muted);
    font-size: var(--text-sm);
}

.creneau-picker__count[b-ywpxgfub44] {
    align-self: flex-end;
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    color: var(--ink-subtle);
}

.creneau-picker__count--full[b-ywpxgfub44] { color: var(--danger); }

/* ── Bloc info identité ── */
.eleve-detail__info-bloc[b-ywpxgfub44] {
    margin-top: var(--space-8);
    padding-top: var(--space-6);
    border-top: 1px solid var(--border);
}

.eleve-detail__info-titre[b-ywpxgfub44] {
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--ink);
    margin-bottom: var(--space-4);
}

.eleve-detail__info-grid[b-ywpxgfub44] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: var(--space-2) var(--space-6);
}

.eleve-detail__info-grid dt[b-ywpxgfub44] { color: var(--ink-muted); font-size: var(--text-sm); }
.eleve-detail__info-grid dd[b-ywpxgfub44] { color: var(--ink); font-size: var(--text-sm); margin: 0; }

/* ── Header actions ── */
.eleve-detail__header-actions[b-ywpxgfub44] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-left: auto;
}

/* ── Contacts enrichis ── */
.eleve-contacts__avatar[b-ywpxgfub44] {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--accent-soft);
    border: 1px solid var(--accent-border);
    color: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--text-xs);
    font-weight: 700;
    flex-shrink: 0;
}

.eleve-contacts__meta[b-ywpxgfub44] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1-5);
    margin-top: var(--space-1);
}

.eleve-contacts__bulletins[b-ywpxgfub44] {
    padding: 2px var(--space-2);
    background: var(--success-soft);
    color: var(--success);
    border: 1px solid var(--success-border);
    border-radius: var(--radius-pill);
    font-size: var(--text-xs);
}

/* ── Empty state ── */
.eleve-detail__empty-state[b-ywpxgfub44] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-10) 0;
    color: var(--ink-subtle);
    text-align: center;
}

.eleve-detail__empty-state p[b-ywpxgfub44] { font-size: var(--text-sm); }
.eleve-detail__empty-state--sm[b-ywpxgfub44] { padding: var(--space-6) 0; }

/* ── Add button ── */
.eleve-detail__add-btn[b-ywpxgfub44] { margin-top: var(--space-4); }

/* ── Réinscription ── */
.reinscription-notice[b-ywpxgfub44] {
    display: flex;
    gap: var(--space-4);
    padding: var(--space-5);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    margin-bottom: var(--space-6);
}

.reinscription-notice__icon[b-ywpxgfub44] { color: var(--ink-subtle); flex-shrink: 0; }

.reinscription-notice__title[b-ywpxgfub44] {
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--ink);
    margin-bottom: var(--space-1);
}

.reinscription-notice__desc[b-ywpxgfub44] { font-size: var(--text-sm); color: var(--ink-muted); }
.reinscription-form__intro[b-ywpxgfub44] { font-size: var(--text-sm); color: var(--ink-muted); margin-bottom: var(--space-4); }

.reinscription-items[b-ywpxgfub44] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.reinscription-item[b-ywpxgfub44] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-4);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}

.reinscription-item__annee[b-ywpxgfub44] {
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    color: var(--ink-subtle);
    white-space: nowrap;
}

.reinscription-form__actions[b-ywpxgfub44] { margin-top: var(--space-6); }

/* ── Drawers ── */
@keyframes eleve-drawer-slide-in-b-ywpxgfub44 {
    from { transform: translateX(100%); opacity: 0.6; }
    to   { transform: translateX(0);    opacity: 1; }
}

.planning-drawer-overlay[b-ywpxgfub44] {
    position: fixed;
    inset: 0;
    background: rgba(10, 6, 28, 0.45);
    z-index: 400;
    animation: hp-fade-in 200ms ease;
}

[data-theme="dark"] .planning-drawer-overlay[b-ywpxgfub44] {
    background: rgba(0, 0, 0, 0.65);
}

.planning-drawer[b-ywpxgfub44] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 480px;
    max-width: 100vw;
    background: var(--surface);
    border-left: 1px solid var(--border);
    box-shadow: var(--shadow-modal);
    z-index: 401;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: eleve-drawer-slide-in-b-ywpxgfub44 200ms ease;
}

@media (max-width: 520px) {
    .planning-drawer[b-ywpxgfub44] { width: 100%; }
}

.planning-drawer__header[b-ywpxgfub44] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-5) var(--space-6);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.planning-drawer__title[b-ywpxgfub44] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    line-height: 1.2;
    margin: 0;
}

.planning-drawer__subtitle[b-ywpxgfub44] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    margin: var(--space-1) 0 0;
}

.planning-drawer__close[b-ywpxgfub44] {
    all: unset;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: var(--radius-md);
    color: var(--ink-muted);
    transition: background var(--transition-fast), color var(--transition-fast);
    flex-shrink: 0;
}

.planning-drawer__close:hover[b-ywpxgfub44] { background: var(--surface-alt); color: var(--ink); }
.planning-drawer__close:focus-visible[b-ywpxgfub44] { outline: 2px solid var(--accent); outline-offset: 2px; }

.planning-drawer__body[b-ywpxgfub44] {
    flex: 1;
    overflow-y: auto;
    padding: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.planning-drawer__footer[b-ywpxgfub44] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-6);
    border-top: 1px solid var(--border);
    background: var(--surface);
    flex-shrink: 0;
}

/* ── Responsive ── */
@media (max-width: 640px) {
    .eleve-detail__header[b-ywpxgfub44] {
        gap: var(--space-3);
    }

    .eleve-detail__name[b-ywpxgfub44] {
        font-size: var(--text-xl);
    }

    .eleve-detail__form-grid[b-ywpxgfub44],
    .eleve-detail__add-grid[b-ywpxgfub44] {
        grid-template-columns: 1fr;
    }

    .eleve-contacts__item[b-ywpxgfub44] {
        flex-direction: column;
        gap: var(--space-3);
    }

    .eleve-inscriptions__item[b-ywpxgfub44] {
        flex-wrap: wrap;
        gap: var(--space-2);
    }
}
/* _content/HémiolePro.Web/Components/Pages/Eleves/Eleves.razor.rz.scp.css */
/* Eleves.razor.css — styles scopés page liste des élèves */

/* ── Conteneur principal ── */
.eleves-page[b-pz1n0cyza6] {
    max-width: 1000px;
}

/* ── En-tête ── */
.eleves-page__header[b-pz1n0cyza6] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-5);
    margin-bottom: var(--space-7);
    flex-wrap: wrap;
}

.eleves-page__header-inner[b-pz1n0cyza6] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.eleves-page__kicker[b-pz1n0cyza6] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.eleves-page__title[b-pz1n0cyza6] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: var(--space-1) 0 var(--space-1);
}

.eleves-page__desc[b-pz1n0cyza6] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    margin: 0;
}

.eleves-page__actions[b-pz1n0cyza6] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-shrink: 0;
}

/* ── Chargement ── */
.eleves-page__loading[b-pz1n0cyza6] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    color: var(--ink-muted);
    font-size: var(--text-sm);
    padding: var(--space-12) 0;
}

.eleves-page__spinner[b-pz1n0cyza6] {
    width: 20px;
    height: 20px;
    border: 2px solid var(--border-strong);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: eleves-spin-b-pz1n0cyza6 700ms linear infinite;
    flex-shrink: 0;
}

@keyframes eleves-spin-b-pz1n0cyza6 {
    to { transform: rotate(360deg); }
}

/* ── Alertes ── */
.eleves-alert[b-pz1n0cyza6] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 500;
    margin-bottom: var(--space-5);
}

.eleves-alert--error[b-pz1n0cyza6] {
    background: var(--danger-soft);
    color: var(--danger);
    border: 1px solid var(--danger-border);
}

.eleves-alert--success[b-pz1n0cyza6] {
    background: var(--success-soft);
    color: var(--success);
    border: 1px solid var(--success-border);
}

/* ── Barre recherche + filtres ── */
.eleves-toolbar[b-pz1n0cyza6] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-5);
    flex-wrap: wrap;
}

.eleves-search[b-pz1n0cyza6] {
    position: relative;
    flex: 1;
    min-width: 220px;
    max-width: 400px;
}

.eleves-search__icon[b-pz1n0cyza6] {
    position: absolute;
    left: var(--space-3);
    top: 50%;
    transform: translateY(-50%);
    color: var(--ink-subtle);
    pointer-events: none;
}

.eleves-search__input[b-pz1n0cyza6] {
    width: 100%;
    padding: 0 var(--space-3) 0 calc(var(--space-3) + 16px + var(--space-2));
    height: 44px;
    min-height: 44px;
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink);
    transition: border-color var(--transition), box-shadow var(--transition);
    box-sizing: border-box;
}

.eleves-search__input[b-pz1n0cyza6]::placeholder {
    color: var(--ink-subtle);
}

.eleves-search__input:focus[b-pz1n0cyza6] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

/* Filtre chips */
.eleves-filters[b-pz1n0cyza6] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.eleves-filter-chip[b-pz1n0cyza6] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1-5);
    padding: 0 var(--space-3);
    height: 36px;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    font-family: var(--font-body);
    font-size: var(--text-xs);
    font-weight: 600;
    color: var(--ink-muted);
    cursor: pointer;
    transition: border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast);
}

.eleves-filter-chip:hover[b-pz1n0cyza6] {
    border-color: var(--border-strong);
    color: var(--ink);
}

.eleves-filter-chip--active[b-pz1n0cyza6] {
    background: var(--accent-soft);
    border-color: var(--accent-border);
    color: var(--accent);
}

/* ── État vide ── */
.eleves-empty[b-pz1n0cyza6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-16) 0;
    color: var(--ink-subtle);
    font-size: var(--text-sm);
    text-align: center;
}

.eleves-empty p[b-pz1n0cyza6] {
    margin: 0;
}

/* ── Tableau ── */
.eleves-table-wrapper[b-pz1n0cyza6] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--surface);
}

.eleves-table[b-pz1n0cyza6] {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink);
}

.eleves-table th[b-pz1n0cyza6] {
    padding: var(--space-3) var(--space-4);
    text-align: left;
    font-size: 10.5px;
    font-weight: 700;
    color: var(--ink-subtle);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--border);
    background: var(--surface-alt);
    white-space: nowrap;
}

.eleves-table th:first-child[b-pz1n0cyza6] {
    border-radius: var(--radius-lg) 0 0 0;
}

.eleves-table th:last-child[b-pz1n0cyza6] {
    border-radius: 0 var(--radius-lg) 0 0;
}

.eleves-table td[b-pz1n0cyza6] {
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--border);
    vertical-align: middle;
}

.eleves-table__row[b-pz1n0cyza6] {
    cursor: pointer;
    transition: background var(--transition);
}

.eleves-table__row:last-child td[b-pz1n0cyza6] {
    border-bottom: none;
}

.eleves-table__row:hover td[b-pz1n0cyza6] {
    background: var(--surface-alt);
}

.eleves-table__row:focus-visible[b-pz1n0cyza6] {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}

.eleves-table__cell[b-pz1n0cyza6] {
    color: var(--ink);
    font-size: var(--text-sm);
}

/* Cellule Nom — avatar + texte */
.eleves-table__cell--name[b-pz1n0cyza6] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.eleves-table__avatar[b-pz1n0cyza6] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    min-width: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--accent), var(--exercice));
    color: #fff;
    font-family: var(--font-display);
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: 0.02em;
    user-select: none;
    flex-shrink: 0;
}

.eleves-table__name[b-pz1n0cyza6] {
    font-weight: 600;
    color: var(--ink);
}

.eleves-table__email[b-pz1n0cyza6] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    margin-top: 1px;
}

/* Inscriptions / discipline */
.eleves-table__badge[b-pz1n0cyza6] {
    display: inline-flex;
    align-items: center;
    padding: 2px var(--space-2-5);
    background: var(--accent-soft);
    color: var(--accent);
    border: 1px solid var(--accent-border);
    border-radius: var(--radius-pill);
    font-size: var(--text-xs);
    font-weight: 600;
    font-family: var(--font-mono);
    margin-right: var(--space-2);
}

.eleves-table__annee[b-pz1n0cyza6] {
    display: inline-flex;
    align-items: center;
    padding: 2px var(--space-2);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    font-size: var(--text-2xs);
    color: var(--ink-subtle);
    font-family: var(--font-mono);
}

.eleves-table__none[b-pz1n0cyza6] {
    color: var(--ink-subtle);
}

/* ── Drawer overlay + panneau ── */
@keyframes eleves-fade-in-b-pz1n0cyza6 {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes eleves-slide-in-b-pz1n0cyza6 {
    from { transform: translateX(100%); }
    to   { transform: translateX(0); }
}

/* ── Responsive ── */
@media (max-width: 640px) {
    .eleves-page__header[b-pz1n0cyza6] {
        flex-direction: column;
        gap: var(--space-4);
    }

    .eleves-page__actions[b-pz1n0cyza6] {
        width: 100%;
    }

    .eleves-page__actions .hp-btn[b-pz1n0cyza6] {
        width: 100%;
    }

    .eleves-toolbar[b-pz1n0cyza6] {
        flex-direction: column;
        align-items: stretch;
    }

    .eleves-search[b-pz1n0cyza6] {
        max-width: 100%;
    }

    /* Masquer colonnes secondaires sur mobile */
    .eleves-table th:nth-child(3)[b-pz1n0cyza6],
    .eleves-table td:nth-child(3)[b-pz1n0cyza6],
    .eleves-table th:nth-child(4)[b-pz1n0cyza6],
    .eleves-table td:nth-child(4)[b-pz1n0cyza6] {
        display: none;
    }

    .hp-drawer[b-pz1n0cyza6] {
        width: 100vw;
        border-left: none;
        border-top: 1px solid var(--border);
        border-radius: var(--radius-lg) var(--radius-lg) 0 0;
        top: auto;
        max-height: 92dvh;
    }
}
/* _content/HémiolePro.Web/Components/Pages/Eleves/Reinscription.razor.rz.scp.css */
/* Reinscription.razor.css — styles scopés page réinscription élève/parent */

.reinsc-page[b-75w4795uri] { max-width: 760px; margin: 0 auto; padding: var(--space-8) var(--space-4); }
.reinsc-page__header[b-75w4795uri] { margin-bottom: var(--space-8); }
.reinsc-page__kicker[b-75w4795uri] {
    display: block;
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--ink-subtle);
    margin-bottom: var(--space-2);
}
.reinsc-page__title[b-75w4795uri] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--ink);
    margin: 0 0 var(--space-2);
}
.reinsc-page__desc[b-75w4795uri] { font-size: var(--text-md); color: var(--ink-muted); margin: 0; }

.reinsc-loading[b-75w4795uri] { display: flex; align-items: center; gap: var(--space-3); color: var(--ink-muted); padding: var(--space-8) 0; }
.reinsc-spinner[b-75w4795uri] {
    display: inline-block; width: 20px; height: 20px;
    border: 2px solid var(--border-strong);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: reinsc-spin-b-75w4795uri 0.7s linear infinite;
}

@keyframes reinsc-spin-b-75w4795uri { to { transform: rotate(360deg); } }

.reinsc-alert[b-75w4795uri] {
    display: flex; align-items: center; gap: var(--space-2-5);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    margin-bottom: var(--space-5);
}
.reinsc-alert--error[b-75w4795uri] { background: var(--danger-soft); color: var(--danger); border: 1px solid var(--danger-border); }

/* Pending notice */
.reinsc-pending-notice[b-75w4795uri] {
    display: flex; gap: var(--space-4);
    padding: var(--space-5);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    margin-bottom: var(--space-8);
}
.reinsc-pending-notice__icon[b-75w4795uri] { color: var(--ink-subtle); flex-shrink: 0; }
.reinsc-pending-notice__title[b-75w4795uri] { font-size: var(--text-md); font-weight: 600; color: var(--ink); margin-bottom: var(--space-1); }
.reinsc-pending-notice__desc[b-75w4795uri] { font-size: var(--text-sm); color: var(--ink-muted); }

/* Sections élèves */
.reinsc-eleves[b-75w4795uri] { display: flex; flex-direction: column; gap: var(--space-6); }
.reinsc-eleve-section[b-75w4795uri] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-5);
}
.reinsc-eleve-header[b-75w4795uri] {
    display: flex; align-items: center; gap: var(--space-3);
    margin-bottom: var(--space-5);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--border);
}
.reinsc-eleve-avatar[b-75w4795uri] {
    width: 44px; height: 44px;
    border-radius: 50%;
    background: var(--accent-soft);
    border: 2px solid var(--accent-border);
    color: var(--accent);
    display: flex; align-items: center; justify-content: center;
    font-size: var(--text-sm); font-weight: 700; flex-shrink: 0;
}
.reinsc-eleve-nom[b-75w4795uri] { font-family: var(--font-display); font-size: var(--text-lg); font-weight: 600; color: var(--ink); margin: 0 0 2px; }
.reinsc-eleve-annee[b-75w4795uri] { font-size: var(--text-xs); color: var(--ink-muted); }
.reinsc-empty[b-75w4795uri] { font-size: var(--text-sm); color: var(--ink-subtle); }

.reinsc-items[b-75w4795uri] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.reinsc-item[b-75w4795uri] {
    display: flex; align-items: center; justify-content: space-between; gap: var(--space-4);
    padding: var(--space-3) var(--space-4);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}
.reinsc-item__info[b-75w4795uri] { display: flex; flex-direction: column; gap: 2px; }
.reinsc-item__discipline[b-75w4795uri] { font-size: var(--text-sm); font-weight: 600; color: var(--ink); }
.reinsc-item__instrument[b-75w4795uri],
.reinsc-item__niveau[b-75w4795uri] { font-size: var(--text-xs); color: var(--ink-muted); }

.reinsc-actions[b-75w4795uri] { margin-top: var(--space-5); }
/* _content/HémiolePro.Web/Components/Pages/GED/ContenusTemporaires.razor.rz.scp.css */
/* ContenusTemporaires.razor.css */

.ct-page[b-cze8u6f03c] {
    max-width: 1000px;
}

.ct-page__header[b-cze8u6f03c] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: var(--space-8);
    flex-wrap: wrap;
}

.ct-page__kicker[b-cze8u6f03c] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.ct-page__title[b-cze8u6f03c] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: var(--space-2) 0 var(--space-2);
}

.ct-page__desc[b-cze8u6f03c] {
    font-size: var(--text-md);
    color: var(--ink-subtle);
    margin: 0;
}

.ct-loading[b-cze8u6f03c] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    color: var(--ink-subtle);
    padding: var(--space-8);
    justify-content: center;
}

.ct-spinner[b-cze8u6f03c] {
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 2px solid var(--surface-alt);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: ct-spin-b-cze8u6f03c 0.7s linear infinite;
}

@keyframes ct-spin-b-cze8u6f03c {
    to { transform: rotate(360deg); }
}

.ct-alert[b-cze8u6f03c] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    margin-bottom: var(--space-4);
}

.ct-alert--error[b-cze8u6f03c] {
    background: var(--danger-soft);
    color: var(--danger);
    border: 1px solid var(--danger-border);
}

.ct-alert--success[b-cze8u6f03c] {
    background: var(--success-soft);
    color: var(--success);
    border: 1px solid var(--success-border);
}

.ct-card[b-cze8u6f03c] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.ct-card__head[b-cze8u6f03c] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-5) var(--space-6);
    border-bottom: 1px solid var(--border);
}

.ct-card__title[b-cze8u6f03c] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.ct-empty[b-cze8u6f03c] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-16) var(--space-6);
    text-align: center;
    color: var(--ink-muted);
}

.ct-empty p[b-cze8u6f03c] {
    margin: 0;
    color: var(--ink-subtle);
    font-size: var(--text-md);
}

.ct-table-wrapper[b-cze8u6f03c] {
    overflow-x: auto;
}

.ct-table[b-cze8u6f03c] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
}

.ct-table thead th[b-cze8u6f03c] {
    padding: var(--space-3) var(--space-4);
    text-align: left;
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    background: var(--surface-alt);
    border-bottom: 1px solid var(--border);
    white-space: nowrap;
}

.ct-table tbody td[b-cze8u6f03c] {
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--border);
    vertical-align: middle;
    color: var(--ink);
}

.ct-table tbody tr:last-child td[b-cze8u6f03c] {
    border-bottom: none;
}

.ct-table tbody tr:hover[b-cze8u6f03c] {
    background: var(--surface-alt);
}

.ct-table__cell--title[b-cze8u6f03c] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ct-table__doc[b-cze8u6f03c] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
}

.ct-table__cell--mono[b-cze8u6f03c] {
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    color: var(--ink-subtle);
}

.ct-consult[b-cze8u6f03c] {
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    color: var(--ink);
}

.ct-col-date[b-cze8u6f03c]    { width: 160px; white-space: nowrap; }
.ct-col-center[b-cze8u6f03c]  { text-align: center; width: 100px; }
.ct-col-actions[b-cze8u6f03c] { width: 60px; text-align: right; }

/* Boutons */
.ct-btn[b-cze8u6f03c] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 500;
    cursor: pointer;
    border: none;
    min-height: 44px;
    transition: background 0.15s;
    white-space: nowrap;
    font-family: var(--font-body);
}

.ct-btn--primary[b-cze8u6f03c] {
    background: var(--accent);
    color: var(--surface);
}

.ct-btn--primary:hover:not(:disabled)[b-cze8u6f03c] {
    background: var(--accent-dark);
}

.ct-btn--ghost[b-cze8u6f03c] {
    background: transparent;
    color: var(--ink);
    border: 1px solid var(--border);
}

.ct-btn--ghost:hover:not(:disabled)[b-cze8u6f03c] {
    background: var(--surface-alt);
}

.ct-btn:disabled[b-cze8u6f03c] {
    opacity: 0.5;
    cursor: not-allowed;
}

.ct-btn__spinner[b-cze8u6f03c] {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,0.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: ct-spin-b-cze8u6f03c 0.7s linear infinite;
}

.ct-btn-icon[b-cze8u6f03c] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-md);
    border: none;
    background: transparent;
    color: var(--ink-subtle);
    cursor: pointer;
    transition: background 0.15s;
    padding: 0;
}

.ct-btn-icon:hover:not(:disabled)[b-cze8u6f03c] {
    background: var(--surface-alt);
    color: var(--ink);
}

.ct-btn-icon--danger:hover:not(:disabled)[b-cze8u6f03c] {
    background: var(--danger-soft);
    color: var(--danger);
}

/* Drawer */
.ct-drawer-overlay[b-cze8u6f03c] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.35);
    z-index: 200;
}

.ct-drawer[b-cze8u6f03c] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(460px, 96vw);
    background: var(--surface);
    border-left: 1px solid var(--border);
    z-index: 201;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.ct-drawer__header[b-cze8u6f03c] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-5) var(--space-6);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.ct-drawer__title[b-cze8u6f03c] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.ct-drawer__close[b-cze8u6f03c] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: none;
    background: transparent;
    color: var(--ink-subtle);
    cursor: pointer;
    border-radius: var(--radius-md);
    transition: background 0.15s;
}

.ct-drawer__close:hover[b-cze8u6f03c] {
    background: var(--surface-alt);
}

.ct-drawer__body[b-cze8u6f03c] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    padding: var(--space-6);
    overflow-y: auto;
    flex: 1;
}

.ct-drawer__footer[b-cze8u6f03c] {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-6);
    border-top: 1px solid var(--border);
    flex-shrink: 0;
}

/* Champs */
.ct-field[b-cze8u6f03c] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.ct-field--row[b-cze8u6f03c] {
    flex-direction: row;
    align-items: flex-start;
    gap: var(--space-3);
}

.ct-field--grow[b-cze8u6f03c] {
    flex: 1;
}

.ct-field--inline[b-cze8u6f03c] {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}

.ct-field__label[b-cze8u6f03c] {
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ink);
}

.ct-field__required[b-cze8u6f03c] {
    color: var(--danger);
    margin-left: 2px;
}

.ct-field__input[b-cze8u6f03c] {
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--bg);
    color: var(--ink);
    font-size: var(--text-sm);
    min-height: 44px;
    width: 100%;
    transition: border-color 0.15s;
    font-family: var(--font-body);
}

.ct-field__input:focus[b-cze8u6f03c] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.ct-field__input--textarea[b-cze8u6f03c] {
    min-height: unset;
    resize: vertical;
}

.ct-field__input--select[b-cze8u6f03c] {
    cursor: pointer;
    appearance: auto;
}

.ct-field__hint[b-cze8u6f03c] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
    font-style: italic;
}

.ct-checkbox[b-cze8u6f03c] {
    width: 20px;
    height: 20px;
    cursor: pointer;
    accent-color: var(--accent);
    flex-shrink: 0;
}

.ct-eleves-list[b-cze8u6f03c] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    max-height: 200px;
    overflow-y: auto;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: var(--space-3);
}

.ct-eleve-item[b-cze8u6f03c] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: var(--text-sm);
    color: var(--ink);
    cursor: pointer;
}

.sr-only[b-cze8u6f03c] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}
/* _content/HémiolePro.Web/Components/Pages/GED/Ged.razor.rz.scp.css */
/* Ged.razor.css — Explorateur GED */

/* ── Bandeau OAuth ── */
.ged-banner[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-5);
    font-size: var(--text-sm);
    margin-bottom: var(--space-4);
    border-radius: var(--radius-md);
}

.ged-banner--warn[b-4wrblphvlw] {
    background: var(--warning-soft);
    color: var(--warning);
    border: 1px solid var(--warning-border);
}

.ged-banner__link[b-4wrblphvlw] {
    color: inherit;
    font-weight: 600;
    text-decoration: underline;
}

.ged-banner__close[b-4wrblphvlw] {
    margin-left: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: transparent;
    border: none;
    cursor: pointer;
    color: inherit;
    border-radius: var(--radius-sm);
    flex-shrink: 0;
}

/* ── Page ── */
.ged-page[b-4wrblphvlw] {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.ged-page__header[b-4wrblphvlw] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: var(--space-6);
    flex-wrap: wrap;
}

.ged-page__kicker[b-4wrblphvlw] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.ged-page__title[b-4wrblphvlw] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: var(--space-1) 0 var(--space-2);
}

.ged-page__desc[b-4wrblphvlw] {
    font-size: var(--text-md);
    color: var(--ink-subtle);
    margin: 0;
}

/* ── Loading / Alerts ── */
.ged-loading[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    color: var(--ink-subtle);
    padding: var(--space-10);
    justify-content: center;
}

.ged-spinner[b-4wrblphvlw] {
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 2px solid var(--surface-alt);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: ged-spin-b-4wrblphvlw 0.7s linear infinite;
    flex-shrink: 0;
}

.ged-spinner--sm[b-4wrblphvlw] {
    width: 14px;
    height: 14px;
}

@keyframes ged-spin-b-4wrblphvlw {
    to { transform: rotate(360deg); }
}

.ged-alert[b-4wrblphvlw] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    margin-bottom: var(--space-4);
}

.ged-alert--error[b-4wrblphvlw] {
    background: var(--danger-soft);
    color: var(--danger);
    border: 1px solid var(--danger-border);
}

.ged-alert--success[b-4wrblphvlw] {
    background: var(--success-soft);
    color: var(--success);
    border: 1px solid var(--success-border);
}

.ged-alert--warn[b-4wrblphvlw] {
    background: var(--warning-soft);
    color: var(--warning);
    border: 1px solid var(--warning-border);
}

/* ── Layout 3 colonnes ── */
.ged-layout[b-4wrblphvlw] {
    display: grid;
    grid-template-columns: 240px 1fr 320px;
    gap: var(--space-4);
    flex: 1;
    min-height: 0;
    align-items: start;
}

@media (max-width: 1200px) {
    .ged-layout[b-4wrblphvlw] {
        grid-template-columns: 200px 1fr;
    }
    .ged-detail[b-4wrblphvlw] {
        grid-column: 1 / -1;
    }
}

@media (max-width: 768px) {
    .ged-layout[b-4wrblphvlw] {
        grid-template-columns: 1fr;
    }
}

/* ── Arborescence tags ── */
.ged-tree[b-4wrblphvlw] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    position: sticky;
    top: var(--space-4);
}

.ged-tree__header[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-4) var(--space-4) var(--space-3);
    border-bottom: 1px solid var(--border);
}

.ged-tree__title[b-4wrblphvlw] {
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--ink-subtle);
}

.ged-tree__list[b-4wrblphvlw],
.ged-tree__sublist[b-4wrblphvlw] {
    list-style: none;
    margin: 0;
    padding: var(--space-2) 0;
}

.ged-tree__sublist[b-4wrblphvlw] {
    padding-left: var(--space-5);
    padding-top: 0;
    padding-bottom: 0;
}

.ged-tree__item[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    font-size: var(--text-sm);
    color: var(--ink);
    cursor: pointer;
    border-radius: 0;
    transition: background 0.12s;
    flex-wrap: wrap;
    position: relative;
}

.ged-tree__item:hover[b-4wrblphvlw] {
    background: var(--surface-alt);
}

.ged-tree__item:focus-visible[b-4wrblphvlw] {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}

.ged-tree__item--active[b-4wrblphvlw] {
    background: var(--accent-soft);
    color: var(--accent);
    font-weight: 500;
}

.ged-tree__item--sub[b-4wrblphvlw] {
    padding-left: var(--space-2);
    font-size: var(--text-xs);
}

.ged-tree__icon[b-4wrblphvlw] {
    flex-shrink: 0;
}

.ged-tree__feedback[b-4wrblphvlw] {
    margin: var(--space-2) var(--space-3);
    font-size: var(--text-xs);
}

/* ── Colonne principale ── */
.ged-main[b-4wrblphvlw] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    min-width: 0;
}

.ged-main__toolbar[b-4wrblphvlw] {
    display: flex;
    gap: var(--space-3);
    align-items: center;
    flex-wrap: wrap;
}

.ged-search[b-4wrblphvlw] {
    position: relative;
    flex: 1;
    min-width: 200px;
}

.ged-search__icon[b-4wrblphvlw] {
    position: absolute;
    left: var(--space-3);
    top: 50%;
    transform: translateY(-50%);
    color: var(--ink-muted);
    pointer-events: none;
}

.ged-search__input[b-4wrblphvlw] {
    width: 100%;
    padding: var(--space-2) var(--space-3) var(--space-2) calc(var(--space-3) + 20px);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--bg);
    color: var(--ink);
    font-size: var(--text-sm);
    min-height: 44px;
    transition: border-color 0.15s;
    font-family: var(--font-body);
}

.ged-search__input:focus[b-4wrblphvlw] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.ged-select[b-4wrblphvlw] {
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--bg);
    color: var(--ink);
    font-size: var(--text-sm);
    min-height: 44px;
    cursor: pointer;
    appearance: auto;
    font-family: var(--font-body);
}

.ged-select--sm[b-4wrblphvlw] {
    min-height: 36px;
    font-size: var(--text-xs);
    padding: var(--space-1) var(--space-2);
}

/* ── View toggle (list / grid) ── */
.ged-view-toggle[b-4wrblphvlw] {
    display: flex;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: 3px;
    gap: 0;
    flex-shrink: 0;
}

.ged-view-toggle__btn[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: none;
    background: transparent;
    color: var(--ink-subtle);
    cursor: pointer;
    border-radius: var(--radius-sm);
    transition: background 0.12s, color 0.12s, box-shadow 0.12s;
    padding: 0;
}

.ged-view-toggle__btn--active[b-4wrblphvlw] {
    background: var(--surface);
    color: var(--ink);
    box-shadow: 0 1px 3px var(--border);
}

.ged-view-toggle__btn:hover:not(.ged-view-toggle__btn--active)[b-4wrblphvlw] {
    color: var(--ink-muted);
}

/* ── Tableau (vue liste) ── */
.ged-table-wrapper[b-4wrblphvlw] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow-x: auto;
}

.ged-table[b-4wrblphvlw] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
}

.ged-table thead th[b-4wrblphvlw] {
    padding: var(--space-3) var(--space-4);
    text-align: left;
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    background: var(--surface-alt);
    border-bottom: 1px solid var(--border);
    white-space: nowrap;
}

.ged-table tbody td[b-4wrblphvlw] {
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--border);
    color: var(--ink);
    vertical-align: middle;
}

.ged-table tbody tr:last-child td[b-4wrblphvlw] {
    border-bottom: none;
}

.ged-table__row[b-4wrblphvlw] {
    cursor: pointer;
    transition: background 0.1s;
}

.ged-table__row:hover[b-4wrblphvlw] {
    background: var(--surface-alt);
}

.ged-table__row:focus-visible[b-4wrblphvlw] {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}

.ged-table__row--selected[b-4wrblphvlw] {
    background: var(--accent-soft);
}

/* Cellule avec miniature */
.ged-table__cell--thumb[b-4wrblphvlw] {
    width: 44px;
    padding-top: var(--space-2);
    padding-bottom: var(--space-2);
    vertical-align: middle;
}

.ged-doc-thumb[b-4wrblphvlw] {
    width: 36px;
    height: 46px;
    border-radius: var(--radius-sm);
    background: var(--surface-alt);
    border: 1px dashed var(--border-strong);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
    position: relative;
}

.ged-doc-thumb--notion[b-4wrblphvlw] {
    background: var(--notion-soft);
    border-color: var(--notion-border);
}

.ged-doc-thumb--exercice[b-4wrblphvlw] {
    background: var(--exercice-soft);
    border-color: var(--exercice-border);
}

.ged-doc-thumb--libre[b-4wrblphvlw] {
    background: var(--libre-soft);
    border-color: var(--libre-border);
}

.ged-doc-thumb__icon[b-4wrblphvlw] {
    color: var(--ink-subtle);
    opacity: 0.5;
}

.ged-table__cell--name[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-width: 160px;
}

.ged-table__nom[b-4wrblphvlw] {
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 260px;
}

.ged-table__warn[b-4wrblphvlw] {
    color: var(--warning);
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.ged-table__cell--mono[b-4wrblphvlw] {
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    white-space: nowrap;
}

.ged-table__cell--size[b-4wrblphvlw] {
    color: var(--ink-subtle);
}

.ged-table__cell--date[b-4wrblphvlw] {
    white-space: nowrap;
    color: var(--ink-subtle);
}

.ged-table__cell--provider[b-4wrblphvlw] {
    color: var(--ink-muted);
}

.ged-table__cell--tags[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    flex-wrap: wrap;
}

.ged-tags__more[b-4wrblphvlw] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
    background: var(--surface-alt);
    border-radius: 999px;
    padding: 1px 6px;
}

.ged-table__col-ext[b-4wrblphvlw]      { width: 56px; }
.ged-table__col-size[b-4wrblphvlw]     { width: 80px; }
.ged-table__col-date[b-4wrblphvlw]     { width: 100px; }
.ged-table__col-provider[b-4wrblphvlw] { width: 56px; text-align: center; }
.ged-table__col-actions[b-4wrblphvlw]  { width: 80px; text-align: right; }

.ged-table__file-icon[b-4wrblphvlw] {
    flex-shrink: 0;
    color: var(--ink-muted);
}

/* ── Vue grille ── */
.ged-doc-grid[b-4wrblphvlw] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: var(--space-4);
}

.ged-doc-card[b-4wrblphvlw] {
    display: flex;
    flex-direction: column;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.15s, box-shadow 0.15s;
    text-align: left;
    padding: var(--space-3-5);
    gap: var(--space-3);
    width: 100%;
}

.ged-doc-card:hover[b-4wrblphvlw] {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px var(--border);
}

.ged-doc-card--selected[b-4wrblphvlw] {
    box-shadow: 0 0 0 2px var(--accent);
}

/* Miniature grille */
.ged-doc-card__thumb[b-4wrblphvlw] {
    width: 100%;
    height: 150px;
    border-radius: var(--radius-sm);
    background: var(--surface-alt);
    border: 1px dashed var(--border-strong);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
    flex-shrink: 0;
}

.ged-doc-card__thumb--notion[b-4wrblphvlw]   { background: var(--notion-soft);   border-color: var(--notion-border); }
.ged-doc-card__thumb--exercice[b-4wrblphvlw] { background: var(--exercice-soft); border-color: var(--exercice-border); }
.ged-doc-card__thumb--libre[b-4wrblphvlw]    { background: var(--libre-soft);    border-color: var(--libre-border); }

.ged-doc-card__thumb-lines[b-4wrblphvlw] {
    position: absolute;
    inset: 0;
    padding: var(--space-3);
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    justify-content: center;
}

.ged-doc-card__thumb-line[b-4wrblphvlw] {
    height: 3px;
    border-radius: 2px;
    background: var(--border-strong);
    opacity: 0.6;
}

.ged-doc-card__thumb-icon[b-4wrblphvlw] {
    color: var(--ink-subtle);
    opacity: 0.35;
    position: absolute;
    bottom: var(--space-2);
    right: var(--space-2);
}

/* Infos de la card */
.ged-doc-card__body[b-4wrblphvlw] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    min-width: 0;
}

.ged-doc-card__titlerow[b-4wrblphvlw] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-2);
}

.ged-doc-card__name[b-4wrblphvlw] {
    font-weight: 600;
    font-size: var(--text-sm);
    color: var(--ink);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-height: 1.35;
}

.ged-doc-card__tags[b-4wrblphvlw] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1);
}

.ged-doc-card__footer[b-4wrblphvlw] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    font-variant-numeric: tabular-nums;
}

.ged-doc-card__warn[b-4wrblphvlw] {
    color: var(--warning);
    display: flex;
    align-items: center;
}

/* ── État vide ── */
.ged-empty[b-4wrblphvlw] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-16) var(--space-6);
    text-align: center;
    color: var(--ink-muted);
}

.ged-empty p[b-4wrblphvlw] {
    margin: 0;
    font-size: var(--text-md);
    color: var(--ink-subtle);
}

.ged-empty__cta[b-4wrblphvlw] {
    margin-top: var(--space-2);
}

/* ── Panneau détail ── */
.ged-detail[b-4wrblphvlw] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    overflow: hidden;
    position: sticky;
    top: var(--space-4);
    max-height: calc(100vh - 120px);
    overflow-y: auto;
}

.ged-detail__header[b-4wrblphvlw] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-2);
    padding: var(--space-4) var(--space-4) 0;
    flex-shrink: 0;
}

.ged-detail__title[b-4wrblphvlw] {
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
    word-break: break-word;
    line-height: 1.4;
}

/* Prévisualisation */
.ged-detail__preview[b-4wrblphvlw] {
    background: var(--surface-alt);
    min-height: 180px;
    max-height: 280px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
}

.ged-detail__iframe[b-4wrblphvlw] {
    width: 100%;
    height: 260px;
    border: none;
}

.ged-detail__img[b-4wrblphvlw] {
    max-width: 100%;
    max-height: 260px;
    object-fit: contain;
}

.ged-detail__audio[b-4wrblphvlw] {
    width: 100%;
    padding: var(--space-4);
}

.ged-detail__video[b-4wrblphvlw] {
    width: 100%;
    max-height: 220px;
}

.ged-detail__no-preview[b-4wrblphvlw] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
    color: var(--ink-muted);
    padding: var(--space-8);
}

.ged-detail__no-preview-label[b-4wrblphvlw] {
    font-size: var(--text-sm);
    color: var(--ink-subtle);
}

.ged-detail__loading-preview[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 180px;
}

/* Métadonnées */
.ged-detail__meta[b-4wrblphvlw] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: var(--space-1) var(--space-4);
    padding: 0 var(--space-4);
    font-size: var(--text-sm);
    margin: 0;
}

.ged-detail__meta dt[b-4wrblphvlw] {
    color: var(--ink-subtle);
    font-weight: 500;
    white-space: nowrap;
}

.ged-detail__meta dd[b-4wrblphvlw] {
    color: var(--ink);
    margin: 0;
    word-break: break-word;
}

.ged-detail__meta-mono[b-4wrblphvlw] {
    font-family: var(--font-mono);
}

/* Section tags */
.ged-detail__section[b-4wrblphvlw] {
    padding: 0 var(--space-4);
}

.ged-detail__section-header[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-2);
    gap: var(--space-2);
}

.ged-detail__section-title[b-4wrblphvlw] {
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--ink-subtle);
}

.ged-detail__tag-add[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    gap: var(--space-1);
}

.ged-detail__tags[b-4wrblphvlw] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    min-height: 28px;
}

.ged-detail__tag-item[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    gap: var(--space-1);
}

.ged-detail__tag-remove[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border: none;
    background: transparent;
    color: var(--ink-muted);
    cursor: pointer;
    border-radius: var(--radius-sm);
    padding: 0;
}

.ged-detail__tag-remove:hover[b-4wrblphvlw] {
    background: var(--danger-soft);
    color: var(--danger);
}

.ged-detail__no-tag[b-4wrblphvlw] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    font-style: italic;
}

/* Actions */
.ged-detail__actions[b-4wrblphvlw] {
    display: flex;
    gap: var(--space-2);
    padding: var(--space-4);
    border-top: 1px solid var(--border);
    flex-wrap: wrap;
}

/* IA section */
.ged-detail__ai-section[b-4wrblphvlw] {
    padding: 0 var(--space-4) var(--space-4);
    border-top: 1px solid var(--border);
    padding-top: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.ged-detail__ai-header[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--ink-subtle);
}

.ged-detail__ai-form[b-4wrblphvlw] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.ged-detail__ai-result[b-4wrblphvlw] {
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: var(--space-3);
    font-size: var(--text-sm);
    color: var(--ink);
    line-height: 1.6;
}

.ged-detail__ai-result p[b-4wrblphvlw] {
    margin: 0;
}

/* ── Boutons globaux ── */
.ged-btn[b-4wrblphvlw] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 500;
    cursor: pointer;
    border: none;
    min-height: 44px;
    transition: background 0.15s, color 0.15s;
    white-space: nowrap;
    font-family: var(--font-body);
}

.ged-btn--primary[b-4wrblphvlw] {
    background: var(--accent);
    color: var(--surface);
}

.ged-btn--primary:hover:not(:disabled)[b-4wrblphvlw] {
    background: var(--accent-dark);
}

.ged-btn--ghost[b-4wrblphvlw] {
    background: transparent;
    color: var(--ink);
    border: 1px solid var(--border);
}

.ged-btn--ghost:hover:not(:disabled)[b-4wrblphvlw] {
    background: var(--surface-alt);
}

.ged-btn--sm[b-4wrblphvlw] {
    min-height: 36px;
    padding: var(--space-1) var(--space-3);
    font-size: var(--text-xs);
}

.ged-btn:disabled[b-4wrblphvlw] {
    opacity: 0.5;
    cursor: not-allowed;
}

.ged-btn__spinner[b-4wrblphvlw] {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,0.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: ged-spin-b-4wrblphvlw 0.7s linear infinite;
}

.ged-btn-icon[b-4wrblphvlw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: var(--radius-md);
    border: none;
    background: transparent;
    color: var(--ink-subtle);
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
    padding: 0;
}

.ged-btn-icon--sm[b-4wrblphvlw] {
    width: 32px;
    height: 32px;
    min-width: 32px;
}

.ged-btn-icon:hover:not(:disabled)[b-4wrblphvlw] {
    background: var(--surface-alt);
    color: var(--ink);
}

.ged-btn-icon--danger:hover:not(:disabled)[b-4wrblphvlw] {
    background: var(--danger-soft);
    color: var(--danger);
}

.ged-btn-icon:disabled[b-4wrblphvlw] {
    opacity: 0.3;
    cursor: not-allowed;
}

/* ── Drawer ── */
.ged-drawer-overlay[b-4wrblphvlw] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.35);
    z-index: 200;
}

.ged-drawer[b-4wrblphvlw] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(460px, 96vw);
    background: var(--surface);
    border-left: 1px solid var(--border);
    z-index: 201;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.ged-drawer__header[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-5) var(--space-6);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.ged-drawer__title[b-4wrblphvlw] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.ged-drawer__subtitle[b-4wrblphvlw] {
    font-size: var(--text-sm);
    color: var(--ink-subtle);
    margin: 0 0 var(--space-4);
}

.ged-drawer__close[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: none;
    background: transparent;
    color: var(--ink-subtle);
    cursor: pointer;
    border-radius: var(--radius-md);
    transition: background 0.15s;
}

.ged-drawer__close:hover[b-4wrblphvlw] {
    background: var(--surface-alt);
}

.ged-drawer__body[b-4wrblphvlw] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    padding: var(--space-6);
    overflow-y: auto;
    flex: 1;
}

.ged-drawer__footer[b-4wrblphvlw] {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-6);
    border-top: 1px solid var(--border);
    flex-shrink: 0;
}

/* ── Champs ── */
.ged-field[b-4wrblphvlw] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.ged-field__label[b-4wrblphvlw] {
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ink);
}

.ged-field__required[b-4wrblphvlw] {
    color: var(--danger);
    margin-left: 2px;
}

.ged-field__input[b-4wrblphvlw] {
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--bg);
    color: var(--ink);
    font-size: var(--text-sm);
    min-height: 44px;
    width: 100%;
    transition: border-color 0.15s;
    font-family: var(--font-body);
}

.ged-field__input:focus[b-4wrblphvlw] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.ged-field__input--textarea[b-4wrblphvlw] {
    min-height: unset;
    resize: vertical;
}

.ged-field__input--select[b-4wrblphvlw] {
    cursor: pointer;
    appearance: auto;
}

.ged-field__file[b-4wrblphvlw] {
    font-size: var(--text-sm);
    color: var(--ink);
}

.ged-field__error[b-4wrblphvlw] {
    font-size: var(--text-xs);
    color: var(--danger);
}

.ged-field__hint[b-4wrblphvlw] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
}

.ged-field__input--sm[b-4wrblphvlw] {
    padding: var(--space-1) var(--space-2);
    font-size: var(--text-sm);
    min-height: 36px;
}

/* ── Radio cards provider ── */
.ged-radio-cards[b-4wrblphvlw] {
    display: flex;
    gap: var(--space-3);
    flex-wrap: wrap;
}

.ged-radio-card[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-md);
    cursor: pointer;
    font-size: var(--text-sm);
    color: var(--ink);
    background: var(--bg);
    transition: border-color 0.15s, background 0.15s;
    min-height: 44px;
    flex: 1;
    min-width: 140px;
}

.ged-radio-card:hover[b-4wrblphvlw] {
    background: var(--surface-alt);
}

.ged-radio-card--active[b-4wrblphvlw] {
    border-color: var(--accent);
    background: var(--accent-soft);
    color: var(--accent);
}

/* ── Utilitaires ── */
.sr-only[b-4wrblphvlw] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

/* ── Explorateur de dossiers Drive ── */
.ged-folder-recents[b-4wrblphvlw] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-bottom: var(--space-3);
}

.ged-folder-recents__empty[b-4wrblphvlw] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    margin: 0 0 var(--space-3);
}

.ged-folder-chip[b-4wrblphvlw] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-pill);
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--ink);
    font-size: var(--text-sm);
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}

.ged-folder-chip:hover[b-4wrblphvlw] {
    border-color: var(--accent);
    background: var(--accent-soft);
}

.ged-folder-chip--active[b-4wrblphvlw] {
    border-color: var(--accent);
    background: var(--accent-soft);
    color: var(--accent);
}

.ged-folder-toggle[b-4wrblphvlw] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--accent);
    background: none;
    border: none;
    padding: var(--space-1) 0;
    cursor: pointer;
    font-weight: 500;
    margin-bottom: var(--space-2);
    font-family: var(--font-body);
}

.ged-folder-toggle:hover[b-4wrblphvlw] { text-decoration: underline; }

.ged-folder-toggle__chevron[b-4wrblphvlw] {
    transition: transform 0.2s;
}

.ged-folder-toggle__chevron--open[b-4wrblphvlw] {
    transform: rotate(180deg);
}

.ged-explorer[b-4wrblphvlw] {
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--bg);
    overflow: hidden;
    margin-bottom: var(--space-3);
}

.ged-explorer__breadcrumb[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-2) var(--space-3);
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    flex-wrap: wrap;
}

.ged-explorer__crumb[b-4wrblphvlw] {
    background: none;
    border: none;
    font-size: var(--text-xs);
    color: var(--accent);
    cursor: pointer;
    padding: 0;
    font-weight: 500;
    font-family: var(--font-body);
}

.ged-explorer__crumb:hover[b-4wrblphvlw] { text-decoration: underline; }

.ged-explorer__skeleton[b-4wrblphvlw] {
    padding: var(--space-3);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.ged-skeleton--row[b-4wrblphvlw] {
    height: 32px;
    border-radius: var(--radius-sm);
    background: linear-gradient(90deg, var(--surface) 25%, var(--border) 50%, var(--surface) 75%);
    background-size: 200% 100%;
    animation: ged-shimmer-b-4wrblphvlw 1.4s infinite;
}

@keyframes ged-shimmer-b-4wrblphvlw {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.ged-explorer__empty[b-4wrblphvlw] {
    padding: var(--space-3);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    margin: 0;
}

.ged-explorer__list[b-4wrblphvlw] {
    list-style: none;
    margin: 0;
    padding: var(--space-1) 0;
}

.ged-explorer__item[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    border-left: 3px solid transparent;
    transition: border-color 0.15s, background 0.15s;
}

.ged-explorer__item:hover[b-4wrblphvlw] {
    background: var(--surface);
}

.ged-explorer__item--selected[b-4wrblphvlw] {
    border-left-color: var(--accent);
    background: var(--accent-soft);
}

.ged-explorer__item-select[b-4wrblphvlw] {
    flex: 1;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    background: none;
    border: none;
    font-size: var(--text-sm);
    color: var(--ink);
    cursor: pointer;
    text-align: left;
    min-height: 44px;
    font-family: var(--font-body);
}

.ged-explorer__item-enter[b-4wrblphvlw] {
    padding: var(--space-2) var(--space-3);
    background: none;
    border: none;
    color: var(--ink-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    min-height: 44px;
}

.ged-explorer__item-enter:hover[b-4wrblphvlw] { color: var(--accent); }

.ged-explorer__new-btn[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    width: 100%;
    padding: var(--space-2) var(--space-3);
    background: none;
    border: none;
    border-top: 1px solid var(--border);
    font-size: var(--text-sm);
    color: var(--accent);
    cursor: pointer;
    min-height: 44px;
    font-family: var(--font-body);
}

.ged-explorer__new-btn:hover[b-4wrblphvlw] { background: var(--surface); }

.ged-explorer__new-form[b-4wrblphvlw] {
    display: flex;
    gap: var(--space-2);
    align-items: center;
    padding: var(--space-2) var(--space-3);
    border-top: 1px solid var(--border);
    flex-wrap: wrap;
}

.ged-folder-selection[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--ink);
    margin-top: var(--space-2);
    min-height: 24px;
}

.ged-folder-selection__nom[b-4wrblphvlw] {
    font-weight: 500;
    color: var(--accent);
}

.ged-folder-selection__hint[b-4wrblphvlw] {
    color: var(--ink-muted);
    font-style: italic;
}

.ged-folder-selection__clear[b-4wrblphvlw] {
    background: none;
    border: none;
    font-size: var(--text-xs);
    color: var(--ink-muted);
    cursor: pointer;
    padding: 0;
    margin-left: auto;
    text-decoration: underline;
    font-family: var(--font-body);
}

.ged-folder-selection__clear:hover[b-4wrblphvlw] { color: var(--danger); }

/* ── Tags dans le drawer upload ── */
.ged-upload-tags[b-4wrblphvlw] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    max-height: 200px;
    overflow-y: auto;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: var(--space-2) var(--space-3);
    background: var(--bg);
}

.ged-upload-tag-row[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--ink);
    cursor: pointer;
    min-height: 32px;
    user-select: none;
}

.ged-upload-tag-row input[type="checkbox"][b-4wrblphvlw] {
    accent-color: var(--accent);
    width: 15px;
    height: 15px;
    cursor: pointer;
}

/* ── Modale suppression ── */
.ged-modal-overlay[b-4wrblphvlw] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 1000;
}

.ged-modal[b-4wrblphvlw] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1001;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-modal);
    width: min(480px, calc(100vw - 2rem));
    display: flex;
    flex-direction: column;
    gap: 0;
    overflow: hidden;
}

.ged-modal__header[b-4wrblphvlw] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-5) var(--space-5) var(--space-4);
    border-bottom: 1px solid var(--border);
    color: var(--danger);
}

.ged-modal__title[b-4wrblphvlw] {
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.ged-modal__body[b-4wrblphvlw] {
    padding: var(--space-4) var(--space-5);
}

.ged-modal__footer[b-4wrblphvlw] {
    display: flex;
    gap: var(--space-3);
    justify-content: flex-end;
    padding: var(--space-4) var(--space-5);
    border-top: 1px solid var(--border);
    flex-wrap: wrap;
}

.ged-btn--outline[b-4wrblphvlw] {
    background: transparent;
    border: 1px solid var(--border);
    color: var(--ink);
    padding: var(--space-2) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 500;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 44px;
    transition: border-color 0.15s, color 0.15s;
    font-family: var(--font-body);
}

.ged-btn--outline:hover[b-4wrblphvlw] {
    border-color: var(--accent);
    color: var(--accent);
}

.ged-btn--outline:disabled[b-4wrblphvlw] {
    opacity: 0.5;
    cursor: not-allowed;
}

.ged-btn--danger[b-4wrblphvlw] {
    background: var(--danger);
    border: 1px solid transparent;
    color: var(--surface);
    padding: var(--space-2) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 500;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 44px;
    transition: opacity 0.15s;
    font-family: var(--font-body);
}

.ged-btn--danger:hover[b-4wrblphvlw] { opacity: 0.88; }
.ged-btn--danger:disabled[b-4wrblphvlw] { opacity: 0.5; cursor: not-allowed; }

.ged-alert--info[b-4wrblphvlw] {
    background: var(--accent-soft);
    color: var(--ink);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: var(--space-3);
    display: flex;
    gap: var(--space-2);
    align-items: flex-start;
    font-size: var(--text-sm);
}
/* _content/HémiolePro.Web/Components/Pages/GED/MesContenus.razor.rz.scp.css */
/* MesContenus.razor.css */

.mc-page[b-je9t3v6bfm] {
    max-width: 1000px;
}

.mc-page__header[b-je9t3v6bfm] {
    margin-bottom: var(--space-8);
}

.mc-page__kicker[b-je9t3v6bfm] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.mc-page__title[b-je9t3v6bfm] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: var(--space-2) 0 var(--space-2);
}

.mc-page__desc[b-je9t3v6bfm] {
    font-size: var(--text-md);
    color: var(--ink-subtle);
    margin: 0;
}

.mc-loading[b-je9t3v6bfm] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    color: var(--ink-subtle);
    padding: var(--space-10);
    justify-content: center;
}

.mc-spinner[b-je9t3v6bfm] {
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 2px solid var(--surface-alt);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: mc-spin-b-je9t3v6bfm 0.7s linear infinite;
}

@keyframes mc-spin-b-je9t3v6bfm {
    to { transform: rotate(360deg); }
}

.mc-alert[b-je9t3v6bfm] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    margin-bottom: var(--space-4);
}

.mc-alert--error[b-je9t3v6bfm] {
    background: var(--danger-soft);
    color: var(--danger);
    border: 1px solid var(--danger-border);
}

.mc-empty[b-je9t3v6bfm] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-16) var(--space-6);
    text-align: center;
    color: var(--ink-muted);
}

.mc-empty p[b-je9t3v6bfm] {
    margin: 0;
    font-size: var(--text-md);
    color: var(--ink-subtle);
}

/* ── Grille cards ── */
.mc-grid[b-je9t3v6bfm] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: var(--space-5);
}

@media (max-width: 600px) {
    .mc-grid[b-je9t3v6bfm] {
        grid-template-columns: 1fr;
    }
}

.mc-card[b-je9t3v6bfm] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: box-shadow 0.15s, transform 0.15s;
}

.mc-card:hover:not(.mc-card--expire)[b-je9t3v6bfm] {
    box-shadow: 0 4px 16px var(--border);
    transform: translateY(-1px);
}

.mc-card--expire[b-je9t3v6bfm] {
    opacity: 0.6;
}

/* Miniature document */
.mc-card__thumb[b-je9t3v6bfm] {
    width: 100%;
    height: 120px;
    background: var(--surface-alt);
    border-bottom: 1px dashed var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
    flex-shrink: 0;
}

.mc-card__thumb-lines[b-je9t3v6bfm] {
    position: absolute;
    inset: 0;
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    justify-content: center;
}

.mc-card__thumb-line[b-je9t3v6bfm] {
    height: 3px;
    border-radius: 2px;
    background: var(--border-strong);
    opacity: 0.5;
}

.mc-card__thumb-icon[b-je9t3v6bfm] {
    color: var(--ink-subtle);
    opacity: 0.3;
    position: absolute;
    bottom: var(--space-2);
    right: var(--space-2);
}

.mc-card__body[b-je9t3v6bfm] {
    flex: 1;
    padding: var(--space-4) var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.mc-card__meta[b-je9t3v6bfm] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.mc-card__title[b-je9t3v6bfm] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
    line-height: 1.3;
}

.mc-card__expiration[b-je9t3v6bfm] {
    font-size: var(--text-sm);
    color: var(--ink-subtle);
    display: flex;
    align-items: baseline;
    gap: var(--space-1);
    flex-wrap: wrap;
}

.mc-card__countdown[b-je9t3v6bfm] {
    font-family: var(--font-mono);
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--exercice);
    letter-spacing: 0.05em;
}

.mc-card__expiration-label[b-je9t3v6bfm] {
    font-size: var(--text-sm);
    color: var(--ink-subtle);
}

.mc-card__expiration-date[b-je9t3v6bfm] {
    color: var(--ink-subtle);
}

.mc-card__footer[b-je9t3v6bfm] {
    padding: var(--space-3) var(--space-5);
    border-top: 1px solid var(--border);
    display: flex;
    justify-content: flex-end;
}

/* Bouton */
.mc-btn[b-je9t3v6bfm] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 500;
    cursor: pointer;
    border: none;
    min-height: 44px;
    transition: background 0.15s;
    font-family: var(--font-body);
}

.mc-btn--primary[b-je9t3v6bfm] {
    background: var(--accent);
    color: var(--surface);
}

.mc-btn--primary:hover:not(:disabled)[b-je9t3v6bfm] {
    background: var(--accent-dark);
}

.mc-btn--primary:disabled[b-je9t3v6bfm] {
    opacity: 0.4;
    cursor: not-allowed;
    background: var(--surface-alt);
    color: var(--ink-muted);
}

/* ── Modale prévisualisation ── */
.mc-modal-overlay[b-je9t3v6bfm] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.6);
    z-index: 300;
}

.mc-modal[b-je9t3v6bfm] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(900px, 96vw);
    height: min(700px, 92vh);
    background: var(--surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-modal);
    z-index: 301;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.mc-modal__header[b-je9t3v6bfm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-4) var(--space-6);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.mc-modal__title[b-je9t3v6bfm] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mc-modal__close[b-je9t3v6bfm] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: none;
    background: transparent;
    color: var(--ink-subtle);
    cursor: pointer;
    border-radius: var(--radius-md);
    transition: background 0.15s;
    flex-shrink: 0;
}

.mc-modal__close:hover[b-je9t3v6bfm] {
    background: var(--surface-alt);
}

.mc-modal__body[b-je9t3v6bfm] {
    flex: 1;
    overflow: hidden;
}

.mc-modal__iframe[b-je9t3v6bfm] {
    width: 100%;
    height: 100%;
    border: none;
    display: block;
}
/* _content/HémiolePro.Web/Components/Pages/Home.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════
   Home.razor — Landing page publique
   Tokens CSS uniquement · Pas de valeur hex en dur
   ═══════════════════════════════════════════════════════════════ */

/* ── Helpers de section ─────────────────────────────────────── */
.section-inner[b-dnghws072k] {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--space-6);
}

.section-kicker[b-dnghws072k] {
    font-size: var(--text-sm);
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--accent);
    margin: 0 0 var(--space-3);
}

.section-title[b-dnghws072k] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 700;
    line-height: 1.2;
    color: var(--ink);
    margin: 0 0 var(--space-4);
    letter-spacing: -0.02em;
}

.section-subtitle[b-dnghws072k] {
    font-size: var(--text-lg);
    color: var(--ink-muted);
    margin: 0 0 var(--space-12);
    max-width: 560px;
}

/* ── Hero ───────────────────────────────────────────────────── */
.hero[b-dnghws072k] {
    min-height: calc(100vh - 64px);
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: var(--space-16);
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--space-16) var(--space-6);
}

.hero__badge[b-dnghws072k] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--accent);
    background: var(--accent-soft);
    border: 1px solid var(--accent-border);
    border-radius: var(--radius-pill);
    padding: var(--space-1-5) var(--space-3-5);
    margin-bottom: var(--space-6);
}

.hero__title[b-dnghws072k] {
    font-family: var(--font-display);
    font-size: clamp(32px, 5vw, 56px);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.025em;
    color: var(--ink);
    margin: 0 0 var(--space-6);
}

.hero__title-accent[b-dnghws072k] {
    color: var(--accent);
}

.hero__subtitle[b-dnghws072k] {
    font-size: var(--text-lg);
    line-height: 1.6;
    color: var(--ink-muted);
    margin: 0 0 var(--space-10);
    max-width: 480px;
}

.hero__cta-group[b-dnghws072k] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    flex-wrap: wrap;
}

.hero__cta-primary[b-dnghws072k] {
    display: inline-flex;
    align-items: center;
    padding: 0 var(--space-7);
    height: 52px;
    min-height: 44px;
    background: var(--accent);
    color: var(--surface);
    font-size: var(--text-md);
    font-weight: 600;
    text-decoration: none;
    border-radius: var(--radius-md);
    transition: opacity var(--transition), box-shadow var(--transition);
}

.hero__cta-primary:hover[b-dnghws072k] {
    opacity: 0.88;
    box-shadow: var(--shadow-glow);
}

.hero__cta-secondary[b-dnghws072k] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: 0 var(--space-5);
    height: 52px;
    min-height: 44px;
    color: var(--ink-muted);
    font-size: var(--text-md);
    font-weight: 500;
    text-decoration: none;
    border-radius: var(--radius-md);
    transition: color var(--transition);
}

.hero__cta-secondary:hover[b-dnghws072k] {
    color: var(--accent);
}

/* Illustration hero */
.hero__visual[b-dnghws072k] {
    display: flex;
    justify-content: center;
    align-items: center;
}

.hero__card-preview[b-dnghws072k] {
    width: 100%;
    max-width: 380px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-screen);
    padding: var(--space-8);
}

.hero__card-inner[b-dnghws072k] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.hero__card-row[b-dnghws072k] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
}

.hero__card-dot[b-dnghws072k] {
    width: 12px;
    height: 12px;
    border-radius: var(--radius-pill);
    flex-shrink: 0;
}

.hero__card-dot--accent[b-dnghws072k]    { background: var(--accent); }
.hero__card-dot--exercice[b-dnghws072k]  { background: var(--exercice); }
.hero__card-dot--libre[b-dnghws072k]     { background: var(--libre); }
.hero__card-dot--notion[b-dnghws072k]    { background: var(--notion); }

.hero__card-line[b-dnghws072k] {
    height: 10px;
    border-radius: var(--radius-pill);
    background: var(--border);
    flex: 1;
}

.hero__card-line--wide[b-dnghws072k]   { max-width: 280px; }
.hero__card-line--medium[b-dnghws072k] { max-width: 200px; }
.hero__card-line--short[b-dnghws072k]  { max-width: 140px; }

/* ── Profils ─────────────────────────────────────────────────── */
.profiles[b-dnghws072k] {
    padding: var(--space-16) 0;
    background: var(--surface-alt);
}

.profiles__grid[b-dnghws072k] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-6);
    margin-top: var(--space-12);
}

.profile-card[b-dnghws072k] {
    position: relative;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    padding: var(--space-8);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    transition: box-shadow var(--transition), border-color var(--transition);
}

.profile-card:hover[b-dnghws072k] {
    box-shadow: var(--shadow-elev);
    border-color: var(--accent-border);
}

.profile-card--featured[b-dnghws072k] {
    border-color: var(--accent-border);
    background: var(--accent-soft);
}

.profile-card__badge[b-dnghws072k] {
    position: absolute;
    top: calc(-1 * var(--space-3));
    left: var(--space-6);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--surface);
    background: var(--accent);
    border-radius: var(--radius-pill);
    padding: var(--space-1) var(--space-3);
}

.profile-card__icon[b-dnghws072k] {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-lg);
    background: var(--accent-soft);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent);
}

.profile-card__icon--featured[b-dnghws072k] {
    background: var(--accent);
    color: var(--surface);
}

.profile-card__title[b-dnghws072k] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--ink);
    margin: 0;
}

.profile-card__desc[b-dnghws072k] {
    font-size: var(--text-md);
    color: var(--ink-muted);
    line-height: 1.6;
    margin: 0;
    flex: 1;
}

.profile-card__link[b-dnghws072k] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-md);
    font-weight: 500;
    color: var(--accent);
    text-decoration: none;
    margin-top: auto;
    min-height: 44px;
    transition: gap var(--transition);
}

.profile-card__link:hover[b-dnghws072k] {
    gap: var(--space-3);
}

/* ── Fonctionnalités ─────────────────────────────────────────── */
.features[b-dnghws072k] {
    padding: var(--space-16) 0;
}

.features__grid[b-dnghws072k] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-6);
    margin-top: var(--space-12);
}

.feature-item[b-dnghws072k] {
    padding: var(--space-6);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--surface);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    transition: box-shadow var(--transition);
}

.feature-item:hover[b-dnghws072k] {
    box-shadow: var(--shadow-card);
}

.feature-item__icon[b-dnghws072k] {
    width: 44px;
    height: 44px;
    border-radius: var(--radius-md);
    background: var(--accent-soft);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent);
    flex-shrink: 0;
}

.feature-item__title[b-dnghws072k] {
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 700;
    color: var(--ink);
    margin: 0;
}

.feature-item__desc[b-dnghws072k] {
    font-size: var(--text-md);
    color: var(--ink-muted);
    line-height: 1.6;
    margin: 0;
}

/* ── Tarifs ──────────────────────────────────────────────────── */
.pricing[b-dnghws072k] {
    padding: var(--space-16) 0;
    background: var(--surface-alt);
}

.pricing__grid[b-dnghws072k] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-6);
    margin-top: var(--space-12);
    align-items: start;
}

.pricing-card[b-dnghws072k] {
    position: relative;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    padding: var(--space-8);
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

.pricing-card--featured[b-dnghws072k] {
    border-color: var(--accent-border);
    box-shadow: var(--shadow-elev);
}

.pricing-card__badge[b-dnghws072k] {
    position: absolute;
    top: calc(-1 * var(--space-3));
    left: var(--space-6);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--surface);
    background: var(--accent);
    border-radius: var(--radius-pill);
    padding: var(--space-1) var(--space-3);
}

.pricing-card__header[b-dnghws072k] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.pricing-card__title[b-dnghws072k] {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--ink);
    margin: 0;
}

.pricing-card__desc[b-dnghws072k] {
    font-size: var(--text-md);
    color: var(--ink-muted);
    margin: 0;
}

.pricing-card__price-group[b-dnghws072k] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.pricing-card__price[b-dnghws072k] {
    display: flex;
    align-items: baseline;
    gap: var(--space-1);
}

.pricing-card__amount[b-dnghws072k] {
    font-family: var(--font-mono);
    font-size: var(--text-3xl);
    font-weight: 700;
    color: var(--ink);
    line-height: 1;
}

.pricing-card__currency[b-dnghws072k] {
    font-family: var(--font-mono);
    font-size: var(--text-xl);
    color: var(--ink-muted);
}

.pricing-card__period[b-dnghws072k] {
    font-size: var(--text-md);
    color: var(--ink-subtle);
}

.pricing-card__alt[b-dnghws072k] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    margin: 0;
}

/* Paliers tarifaires conservatoire */
.pricing-card__tiers[b-dnghws072k] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    background: var(--surface-alt);
    border-radius: var(--radius-lg);
    padding: var(--space-5);
}

.pricing-tier[b-dnghws072k] {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2) 0;
    border-bottom: 1px solid var(--border);
}

.pricing-tier:last-child[b-dnghws072k] {
    border-bottom: none;
    padding-bottom: 0;
}

.pricing-tier__label[b-dnghws072k] {
    font-size: var(--text-md);
    color: var(--ink-muted);
}

.pricing-tier__price[b-dnghws072k] {
    font-family: var(--font-mono);
    font-size: var(--text-md);
    font-weight: 700;
    color: var(--ink);
}

.pricing-tier__monthly[b-dnghws072k] {
    font-size: var(--text-sm);
    color: var(--ink-subtle);
}

.pricing-tier--devis .pricing-tier__label[b-dnghws072k] {
    color: var(--ink);
    font-weight: 500;
}

.pricing-card__features[b-dnghws072k] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.pricing-card__feature[b-dnghws072k] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: var(--text-md);
    color: var(--ink-muted);
}

.pricing-card__feature svg[b-dnghws072k] {
    color: var(--success);
    flex-shrink: 0;
}

.pricing-card__cta[b-dnghws072k] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 52px;
    min-height: 44px;
    border-radius: var(--radius-md);
    font-size: var(--text-md);
    font-weight: 600;
    text-decoration: none;
    transition: opacity var(--transition), box-shadow var(--transition);
}

.pricing-card__cta--primary[b-dnghws072k] {
    background: var(--accent);
    color: var(--surface);
}

.pricing-card__cta--primary:hover[b-dnghws072k] {
    opacity: 0.88;
    box-shadow: var(--shadow-glow);
}

.pricing-card__cta--secondary[b-dnghws072k] {
    background: var(--accent-soft);
    color: var(--accent);
    border: 1px solid var(--accent-border);
}

.pricing-card__cta--secondary:hover[b-dnghws072k] {
    opacity: 0.80;
}

/* ── CTA final ───────────────────────────────────────────────── */
.cta-final[b-dnghws072k] {
    padding: var(--space-16) var(--space-6);
    background: var(--accent);
}

.cta-final__inner[b-dnghws072k] {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-6);
}

.cta-final__title[b-dnghws072k] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: var(--surface);
    margin: 0;
}

.cta-final__subtitle[b-dnghws072k] {
    font-size: var(--text-lg);
    color: rgba(255, 255, 255, 0.80);
    margin: 0;
    max-width: 480px;
    line-height: 1.6;
}

.cta-final__btn[b-dnghws072k] {
    display: inline-flex;
    align-items: center;
    padding: 0 var(--space-10);
    height: 56px;
    min-height: 44px;
    background: var(--surface);
    color: var(--accent);
    font-size: var(--text-md);
    font-weight: 700;
    text-decoration: none;
    border-radius: var(--radius-md);
    transition: opacity var(--transition);
}

.cta-final__btn:hover[b-dnghws072k] {
    opacity: 0.90;
}

.cta-final__note[b-dnghws072k] {
    font-size: var(--text-sm);
    color: rgba(255, 255, 255, 0.65);
    margin: 0;
}

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 1024px) {
    .profiles__grid[b-dnghws072k],
    .features__grid[b-dnghws072k] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .hero[b-dnghws072k] {
        grid-template-columns: 1fr;
        min-height: auto;
        padding: var(--space-12) var(--space-5);
        gap: var(--space-10);
    }

    .hero__visual[b-dnghws072k] {
        order: -1;
    }

    .hero__card-preview[b-dnghws072k] {
        max-width: 100%;
    }

    .hero__title[b-dnghws072k] {
        font-size: var(--text-2xl);
    }

    .section-title[b-dnghws072k] {
        font-size: var(--text-xl);
    }

    .profiles__grid[b-dnghws072k],
    .features__grid[b-dnghws072k],
    .pricing__grid[b-dnghws072k] {
        grid-template-columns: 1fr;
    }

    .pricing-tier[b-dnghws072k] {
        grid-template-columns: 1fr auto;
    }

    .pricing-tier__monthly[b-dnghws072k] {
        display: none;
    }

    .cta-final__title[b-dnghws072k] {
        font-size: var(--text-xl);
    }
}

@media (max-width: 480px) {
    .section-inner[b-dnghws072k] {
        padding: 0 var(--space-5);
    }

    .hero__cta-group[b-dnghws072k] {
        flex-direction: column;
        align-items: stretch;
    }

    .hero__cta-primary[b-dnghws072k],
    .hero__cta-secondary[b-dnghws072k] {
        justify-content: center;
    }
}
/* _content/HémiolePro.Web/Components/Pages/IA/ChatIA.razor.rz.scp.css */
/* ── Mise en page split ───────────────────────────────────────────────────── */

.chat-layout[b-vin141ji15] {
    display: flex;
    height: calc(100vh - 60px);
    overflow: hidden;
}

/* ── Sidebar historique ──────────────────────────────────────────────────── */

.chat-sidebar[b-vin141ji15] {
    width: 260px;
    min-width: 260px;
    display: flex;
    flex-direction: column;
    border-right: 1px solid var(--border);
    background: var(--surface);
    overflow: hidden;
}

.chat-sidebar__head[b-vin141ji15] {
    padding: var(--space-4);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.chat-sidebar__new-btn[b-vin141ji15] {
    width: 100%;
    justify-content: center;
    gap: var(--space-2);
}

.chat-sidebar__list[b-vin141ji15] {
    flex: 1;
    overflow-y: auto;
    padding: var(--space-2) var(--space-2);
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.chat-sidebar__empty[b-vin141ji15] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    text-align: center;
    padding: var(--space-6) var(--space-3);
    margin: 0;
    line-height: 1.5;
}

.chat-sidebar__item[b-vin141ji15] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2-5);
    padding: var(--space-2-5) var(--space-3);
    border-radius: var(--radius-md);
    border: none;
    background: transparent;
    cursor: pointer;
    width: 100%;
    text-align: left;
    transition: background var(--transition);
    min-height: 44px;
}

.chat-sidebar__item:hover[b-vin141ji15] {
    background: var(--surface-alt);
}

.chat-sidebar__item--active[b-vin141ji15] {
    background: var(--accent-soft);
}

.chat-sidebar__item--active .chat-sidebar__item-title[b-vin141ji15] {
    color: var(--accent);
}

.chat-sidebar__item-icon[b-vin141ji15] {
    color: var(--ink-subtle);
    flex-shrink: 0;
    margin-top: 2px;
}

.chat-sidebar__item--active .chat-sidebar__item-icon[b-vin141ji15] {
    color: var(--accent);
}

.chat-sidebar__item-body[b-vin141ji15] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex: 1;
}

.chat-sidebar__item-title[b-vin141ji15] {
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.4;
}

.chat-sidebar__item-date[b-vin141ji15] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    font-family: var(--font-mono);
}

/* ── Zone principale ─────────────────────────────────────────────────────── */

.chat-main[b-vin141ji15] {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
}

/* ── En-tête ────────────────────────────────────────────────────────────── */

.chat-header[b-vin141ji15] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-6);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
    background: var(--bg);
}

.chat-header__left[b-vin141ji15] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.chat-header__icon-wrap[b-vin141ji15] {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-md);
    background: var(--accent-soft);
    color: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.chat-header__title[b-vin141ji15] {
    font-family: var(--font-display);
    font-size: var(--text-base);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: 0;
    line-height: 1.3;
}

.chat-header__model[b-vin141ji15] {
    display: inline-flex;
    align-items: center;
    font-size: var(--text-xs);
    color: var(--ink-muted);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    padding: 2px var(--space-2-5);
    font-family: var(--font-mono);
    margin-top: 2px;
}

/* ── Zone de messages ───────────────────────────────────────────────────── */

.chat-messages[b-vin141ji15] {
    flex: 1;
    overflow-y: auto;
    padding: var(--space-6) var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    scroll-behavior: smooth;
}

/* ── État d'accueil ─────────────────────────────────────────────────────── */

.chat-welcome[b-vin141ji15] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
    padding: var(--space-10) var(--space-6);
    text-align: center;
    flex: 1;
    max-width: 520px;
    margin: 0 auto;
    width: 100%;
}

.chat-welcome__icon-wrap[b-vin141ji15] {
    width: 60px;
    height: 60px;
    border-radius: var(--radius-xl);
    background: var(--accent-soft);
    color: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--space-2);
}

.chat-welcome__title[b-vin141ji15] {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: 0;
}

.chat-welcome__text[b-vin141ji15] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    max-width: 380px;
    line-height: 1.6;
    margin: 0;
}

/* ── Chips de suggestion ─────────────────────────────────────────────────── */

.chat-suggestions[b-vin141ji15] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    width: 100%;
    margin-top: var(--space-2);
}

.chat-suggestion-chip[b-vin141ji15] {
    display: block;
    width: 100%;
    padding: var(--space-3) var(--space-4);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink);
    cursor: pointer;
    text-align: left;
    transition: border-color var(--transition), background var(--transition);
    min-height: 44px;
    line-height: 1.5;
}

.chat-suggestion-chip:hover:not(:disabled)[b-vin141ji15] {
    border-color: var(--accent);
    background: var(--accent-soft);
    color: var(--accent);
}

.chat-suggestion-chip:disabled[b-vin141ji15] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ── IA non configurée ──────────────────────────────────────────────────── */

.chat-unconfigured[b-vin141ji15] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
    padding: var(--space-16) var(--space-6);
    text-align: center;
    flex: 1;
}

.chat-unconfigured__icon-wrap[b-vin141ji15] {
    width: 64px;
    height: 64px;
    border-radius: var(--radius-xl);
    background: var(--surface-alt);
    color: var(--ink-subtle);
    display: flex;
    align-items: center;
    justify-content: center;
}

.chat-unconfigured__title[b-vin141ji15] {
    font-family: var(--font-display);
    font-size: var(--text-base);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.chat-unconfigured__desc[b-vin141ji15] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    line-height: 1.6;
    margin: 0;
}

/* ── Bulles de message ──────────────────────────────────────────────────── */

.chat-bubble-wrap[b-vin141ji15] {
    display: flex;
    align-items: flex-end;
    gap: var(--space-2);
    max-width: 72%;
}

.chat-bubble-wrap--user[b-vin141ji15] {
    align-self: flex-end;
    flex-direction: row-reverse;
}

.chat-bubble-wrap--ia[b-vin141ji15] {
    align-self: flex-start;
}

.chat-bubble-avatar[b-vin141ji15] {
    width: 28px;
    height: 28px;
    min-width: 28px;
    border-radius: 50%;
    background: var(--accent-soft);
    color: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 1px solid var(--border);
}

.chat-bubble[b-vin141ji15] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-lg);
    max-width: 100%;
    word-break: break-word;
}

.chat-bubble--user[b-vin141ji15] {
    background: var(--accent);
    color: #fff;
    border-bottom-right-radius: var(--radius-sm);
}

.chat-bubble--ia[b-vin141ji15] {
    background: var(--surface);
    color: var(--ink);
    border: 1px solid var(--border);
    border-bottom-left-radius: var(--radius-sm);
}

[data-theme="dark"] .chat-bubble--ia[b-vin141ji15] {
    background: var(--surface-alt);
}

.chat-bubble__text[b-vin141ji15] {
    font-size: var(--text-sm);
    line-height: 1.65;
    white-space: pre-wrap;
    margin: 0;
}

.chat-bubble--user .chat-bubble__text[b-vin141ji15] {
    color: #fff;
}

.chat-bubble__time[b-vin141ji15] {
    font-size: 11px;
    font-family: var(--font-mono);
    opacity: 0.6;
    align-self: flex-end;
}

/* ── Indicateur "réfléchit" ─────────────────────────────────────────────── */

.chat-thinking[b-vin141ji15] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    display: flex;
    align-items: center;
    gap: var(--space-2-5);
}

.chat-thinking__dots[b-vin141ji15] {
    display: flex;
    gap: 4px;
}

.chat-thinking__dots span[b-vin141ji15] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--accent);
    animation: chat-dot-bounce-b-vin141ji15 1.2s ease-in-out infinite;
}

.chat-thinking__dots span:nth-child(2)[b-vin141ji15] {
    animation-delay: 0.2s;
}

.chat-thinking__dots span:nth-child(3)[b-vin141ji15] {
    animation-delay: 0.4s;
}

@keyframes chat-dot-bounce-b-vin141ji15 {
    0%, 80%, 100% { transform: translateY(0); opacity: 0.4; }
    40%            { transform: translateY(-5px); opacity: 1; }
}

/* ── Skeleton chargement ────────────────────────────────────────────────── */

.chat-skeleton[b-vin141ji15] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    padding: var(--space-5) 0;
}

.chat-skeleton__bubble[b-vin141ji15] {
    height: 52px;
    border-radius: var(--radius-lg);
    background: var(--border);
    animation: chat-skeleton-pulse-b-vin141ji15 1.4s ease-in-out infinite;
}

.chat-skeleton__bubble--ia[b-vin141ji15] {
    width: 55%;
    align-self: flex-start;
}

.chat-skeleton__bubble--user[b-vin141ji15] {
    width: 40%;
    align-self: flex-end;
    animation-delay: 0.3s;
}

@keyframes chat-skeleton-pulse-b-vin141ji15 {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.45; }
}

/* ── Erreur ─────────────────────────────────────────────────────────────── */

.chat-error[b-vin141ji15] {
    flex-shrink: 0;
    margin: 0 var(--space-6) var(--space-2);
}

/* ── Barre de saisie (sticky bottom) ────────────────────────────────────── */

.chat-input-bar[b-vin141ji15] {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-6) var(--space-4);
    border-top: 1px solid var(--border);
    background: var(--bg);
}

.chat-input__textarea[b-vin141ji15] {
    width: 100%;
    padding: var(--space-3) var(--space-4);
    background: var(--surface-alt);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink);
    resize: none;
    min-height: 68px;
    max-height: 180px;
    transition: border-color var(--transition), box-shadow var(--transition);
    box-sizing: border-box;
    line-height: 1.6;
    overflow-y: auto;
}

.chat-input__textarea[b-vin141ji15]::placeholder {
    color: var(--ink-subtle);
}

.chat-input__textarea:focus[b-vin141ji15] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.chat-input__textarea:disabled[b-vin141ji15] {
    opacity: 0.55;
    cursor: not-allowed;
}

.chat-input__actions[b-vin141ji15] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-3);
}

.chat-input__hint[b-vin141ji15] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
}

/* ── Dark mode ──────────────────────────────────────────────────────────── */

[data-theme="dark"] .chat-sidebar[b-vin141ji15] {
    background: var(--surface);
}

[data-theme="dark"] .chat-input-bar[b-vin141ji15] {
    background: var(--bg);
}

[data-theme="dark"] .chat-bubble--user[b-vin141ji15] {
    background: var(--accent);
}

[data-theme="dark"] .chat-header[b-vin141ji15] {
    background: var(--bg);
}

/* ── Responsive ─────────────────────────────────────────────────────────── */

@media (max-width: 768px) {
    .chat-sidebar[b-vin141ji15] {
        display: none;
    }

    .chat-bubble-wrap[b-vin141ji15] {
        max-width: 90%;
    }

    .chat-messages[b-vin141ji15] {
        padding: var(--space-4) var(--space-4);
    }

    .chat-input-bar[b-vin141ji15] {
        padding: var(--space-3) var(--space-4) var(--space-4);
    }

    .chat-header[b-vin141ji15] {
        padding: var(--space-3) var(--space-4);
    }

    .chat-input__hint[b-vin141ji15] {
        display: none;
    }
}
/* _content/HémiolePro.Web/Components/Pages/NotFound.razor.rz.scp.css */
.error-page[b-4j9rnh8cyo] {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-6);
    background: var(--bg);
}

.error-card[b-4j9rnh8cyo] {
    width: 100%;
    max-width: 480px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    padding: var(--space-10) var(--space-8);
    box-shadow: var(--shadow-screen);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-4);
    text-align: center;
}

.error-card__logo[b-4j9rnh8cyo] {
    margin-bottom: var(--space-2);
}

.error-card__code[b-4j9rnh8cyo] {
    font-family: var(--font-mono);
    font-size: var(--text-3xl);
    font-weight: 700;
    color: var(--accent);
    line-height: 1;
    letter-spacing: -0.02em;
}

.error-card__title[b-4j9rnh8cyo] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--ink);
    margin: 0;
    line-height: 1.2;
}

.error-card__message[b-4j9rnh8cyo] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    line-height: 1.6;
    margin: 0;
    max-width: 360px;
}

.error-card__btn-primary[b-4j9rnh8cyo] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    min-width: 44px;
    padding: 0 var(--space-6);
    margin-top: var(--space-2);
    background: var(--accent);
    color: #fff;
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 600;
    border-radius: var(--radius-md);
    text-decoration: none;
    transition: opacity 150ms ease;
    width: 100%;
}

.error-card__btn-primary:hover[b-4j9rnh8cyo] {
    opacity: 0.88;
}

.error-card__btn-primary:focus-visible[b-4j9rnh8cyo] {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
}
/* _content/HémiolePro.Web/Components/Pages/Planning/GroupesEleves.razor.rz.scp.css */
/* GroupesEleves.razor.css */

.groupes-page[b-kup8vv1ot1] {
    max-width: 1100px;
}

.groupes-page__header[b-kup8vv1ot1] {
    margin-bottom: var(--space-8);
}

.groupes-page__kicker[b-kup8vv1ot1] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.groupes-page__title[b-kup8vv1ot1] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: var(--space-2) 0 var(--space-2);
}

.groupes-page__desc[b-kup8vv1ot1] {
    font-size: var(--text-md);
    color: var(--ink-muted);
    margin: 0;
}

/* ── Chargement ── */
.groupes-loading[b-kup8vv1ot1] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    color: var(--ink-muted);
    font-size: var(--text-sm);
    padding: var(--space-6) 0;
}

.groupes-loading--sm[b-kup8vv1ot1] {
    padding: var(--space-4);
}

.groupes-spinner[b-kup8vv1ot1] {
    width: 18px;
    height: 18px;
    border: 2px solid var(--border-strong);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: groupes-spin-b-kup8vv1ot1 700ms linear infinite;
    flex-shrink: 0;
}

@keyframes groupes-spin-b-kup8vv1ot1 {
    to { transform: rotate(360deg); }
}

/* ── Alertes ── */
.groupes-alert[b-kup8vv1ot1] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 500;
    margin-bottom: var(--space-5);
}

.groupes-alert--error[b-kup8vv1ot1] {
    background: var(--danger-soft);
    color: var(--danger);
    border: 1px solid var(--danger-border);
}

.groupes-alert--success[b-kup8vv1ot1] {
    background: var(--success-soft);
    color: var(--success);
    border: 1px solid var(--success-border);
}

/* ── Sélecteur session ── */
.groupes-session-selector[b-kup8vv1ot1] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-6);
    flex-wrap: wrap;
}

.groupes-session-selector__label[b-kup8vv1ot1] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
    white-space: nowrap;
}

.groupes-session-selector__select[b-kup8vv1ot1] {
    padding: var(--space-2) var(--space-3);
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink);
    min-height: 44px;
    min-width: 260px;
    cursor: pointer;
    transition: border-color var(--transition);
}

.groupes-session-selector__select:focus[b-kup8vv1ot1] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

/* ── Layout ── */
.groupes-layout[b-kup8vv1ot1] {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: var(--space-6);
    align-items: start;
}

@media (max-width: 768px) {
    .groupes-layout[b-kup8vv1ot1] { grid-template-columns: 1fr; }
}

/* ── Carte ── */
.groupes-card[b-kup8vv1ot1] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.groupes-card__head[b-kup8vv1ot1] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--border);
    gap: var(--space-3);
}

.groupes-card__title[b-kup8vv1ot1] {
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

/* ── Liste groupes ── */
.groupes-list[b-kup8vv1ot1] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.groupes-list__item[b-kup8vv1ot1] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-3) var(--space-5);
    border-bottom: 1px solid var(--border);
    min-height: 56px;
    gap: var(--space-3);
    transition: background var(--transition);
}

.groupes-list__item:last-child[b-kup8vv1ot1] {
    border-bottom: none;
}

.groupes-list__item:hover[b-kup8vv1ot1] {
    background: var(--surface-alt);
}

.groupes-list__item--selected[b-kup8vv1ot1] {
    background: var(--accent-soft);
}

.groupes-list__item--inactif[b-kup8vv1ot1] {
    opacity: 0.55;
}

.groupes-list__name-btn[b-kup8vv1ot1] {
    all: unset;
    cursor: pointer;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
    overflow: hidden;
}

.groupes-list__name-btn:focus-visible[b-kup8vv1ot1] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.groupes-list__name[b-kup8vv1ot1] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.groupes-list__discipline[b-kup8vv1ot1] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
}

.groupes-list__meta[b-kup8vv1ot1] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-shrink: 0;
}

.groupes-list__count[b-kup8vv1ot1] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    white-space: nowrap;
}

/* ── Toggle ── */
.groupes-toggle[b-kup8vv1ot1] {
    all: unset;
    cursor: pointer;
    width: 36px;
    height: 20px;
    border-radius: var(--radius-pill);
    background: var(--border-strong);
    position: relative;
    transition: background var(--transition);
    flex-shrink: 0;
}

.groupes-toggle:focus-visible[b-kup8vv1ot1] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.groupes-toggle:disabled[b-kup8vv1ot1] {
    opacity: 0.5;
    cursor: not-allowed;
}

.groupes-toggle--active[b-kup8vv1ot1] { background: var(--accent); }

.groupes-toggle__knob[b-kup8vv1ot1] {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--surface);
    transition: transform var(--transition);
    box-shadow: var(--shadow-card);
}

.groupes-toggle--active .groupes-toggle__knob[b-kup8vv1ot1] {
    transform: translateX(16px);
}

/* ── Formulaire création ── */
.groupes-create-form[b-kup8vv1ot1] {
    padding: var(--space-5);
    border-top: 1px solid var(--border);
    background: var(--surface-alt);
}

.groupes-create-form__title[b-kup8vv1ot1] {
    font-family: var(--font-display);
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
    margin: 0 0 var(--space-4);
}

.groupes-create-form__actions[b-kup8vv1ot1] {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-2);
    margin-top: var(--space-4);
}

/* ── Détail groupe ── */
.groupes-detail__discipline[b-kup8vv1ot1] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
}

/* ── Ajout membre ── */
.groupes-membre-add[b-kup8vv1ot1] {
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--border);
    position: relative;
}

.groupes-membre-add__row[b-kup8vv1ot1] {
    display: flex;
    gap: var(--space-2);
}

/* ── Suggestions ── */
.groupes-eleve-suggestions[b-kup8vv1ot1] {
    position: absolute;
    top: 100%;
    left: var(--space-5);
    right: var(--space-5);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-elev);
    list-style: none;
    margin: 2px 0 0;
    padding: var(--space-1) 0;
    z-index: 30;
}

.groupes-eleve-suggestion[b-kup8vv1ot1] {
    all: unset;
    display: block;
    width: 100%;
    padding: var(--space-2) var(--space-3);
    font-size: var(--text-sm);
    color: var(--ink);
    cursor: pointer;
    box-sizing: border-box;
    transition: background var(--transition);
}

.groupes-eleve-suggestion:hover[b-kup8vv1ot1] {
    background: var(--accent-soft);
    color: var(--accent);
}

.groupes-eleve-suggestion:focus-visible[b-kup8vv1ot1] {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}

/* ── Membres ── */
.groupes-membres-list[b-kup8vv1ot1] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.groupes-membres-list__item[b-kup8vv1ot1] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-5);
    border-bottom: 1px solid var(--border);
    min-height: 52px;
}

.groupes-membres-list__item:last-child[b-kup8vv1ot1] {
    border-bottom: none;
}

.groupes-membres-list__name[b-kup8vv1ot1] {
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ink);
    flex: 1;
}

.groupes-membres-list__email[b-kup8vv1ot1] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
    flex-shrink: 0;
}

/* ── Champs ── */
.groupes-field[b-kup8vv1ot1] {
    margin-bottom: var(--space-4);
}

.groupes-field__label[b-kup8vv1ot1] {
    display: block;
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
    margin-bottom: var(--space-1);
}

.groupes-field__required[b-kup8vv1ot1] {
    color: var(--danger);
    margin-left: var(--space-1);
}

.groupes-field__input[b-kup8vv1ot1] {
    width: 100%;
    padding: var(--space-2) var(--space-3);
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink);
    min-height: 44px;
    box-sizing: border-box;
    transition: border-color var(--transition), box-shadow var(--transition);
}

.groupes-field__input:focus[b-kup8vv1ot1] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.groupes-field__error[b-kup8vv1ot1] {
    display: block;
    font-size: var(--text-xs);
    color: var(--danger);
    margin-top: var(--space-1);
}

/* ── Vide ── */
.groupes-empty[b-kup8vv1ot1] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    padding: var(--space-5);
    text-align: center;
    margin: 0;
}

.groupes-empty-state[b-kup8vv1ot1] {
    padding: var(--space-8) 0;
    text-align: center;
    color: var(--ink-muted);
    font-size: var(--text-sm);
}

/* ── Boutons ── */
.groupes-btn[b-kup8vv1ot1] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-family: var(--font-body);
    font-weight: 600;
    font-size: var(--text-sm);
    padding: 0 var(--space-4);
    height: 44px;
    border-radius: var(--radius-md);
    transition: background var(--transition), opacity var(--transition);
    white-space: nowrap;
}

.groupes-btn--sm[b-kup8vv1ot1] { height: 36px; font-size: var(--text-xs); padding: 0 var(--space-3); }
.groupes-btn--xs[b-kup8vv1ot1] { height: 32px; font-size: var(--text-xs); padding: 0 var(--space-2); }

.groupes-btn:focus-visible[b-kup8vv1ot1] { outline: 2px solid var(--accent); outline-offset: 2px; }
.groupes-btn:disabled[b-kup8vv1ot1] { opacity: 0.5; cursor: not-allowed; }

.groupes-btn--primary[b-kup8vv1ot1] { background: var(--accent); color: var(--surface); }
.groupes-btn--primary:hover:not(:disabled)[b-kup8vv1ot1] { opacity: 0.88; }

.groupes-btn--secondary[b-kup8vv1ot1] { background: var(--accent-soft); color: var(--accent); }
.groupes-btn--secondary:hover:not(:disabled)[b-kup8vv1ot1] { opacity: 0.88; }

.groupes-btn--ghost[b-kup8vv1ot1] {
    background: transparent;
    color: var(--ink-muted);
    border: 1px solid var(--border-strong);
}

.groupes-btn--ghost:hover:not(:disabled)[b-kup8vv1ot1] {
    background: var(--surface-alt);
    color: var(--ink);
}

.groupes-btn--danger-hover:hover:not(:disabled)[b-kup8vv1ot1] {
    background: var(--danger-soft);
    color: var(--danger);
    border-color: var(--danger-border);
}

.groupes-btn__spinner[b-kup8vv1ot1] {
    width: 13px;
    height: 13px;
    border: 2px solid rgba(255,255,255,0.35);
    border-top-color: var(--surface);
    border-radius: 50%;
    animation: groupes-spin-b-kup8vv1ot1 600ms linear infinite;
}
/* _content/HémiolePro.Web/Components/Pages/Planning/MonPlanning.razor.rz.scp.css */
/* MonPlanning.razor.css */

.mon-planning-page[b-sawubvyats] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.mon-planning-page__header[b-sawubvyats] {
    margin-bottom: var(--space-4);
}

.mon-planning-page__title[b-sawubvyats] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: 0 0 var(--space-2);
}

.mon-planning-page__desc[b-sawubvyats] {
    font-size: var(--text-md);
    color: var(--ink-muted);
    margin: 0;
}

.mon-planning-loading[b-sawubvyats] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    color: var(--ink-muted);
    font-size: var(--text-sm);
    padding: var(--space-8) 0;
}

.mon-planning-spinner[b-sawubvyats] {
    width: 20px;
    height: 20px;
    border: 2px solid var(--border-strong);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: mon-planning-spin-b-sawubvyats 700ms linear infinite;
    flex-shrink: 0;
}

@keyframes mon-planning-spin-b-sawubvyats {
    to { transform: rotate(360deg); }
}

.mon-planning-alert[b-sawubvyats] {
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 500;
}

.mon-planning-alert--error[b-sawubvyats] {
    background: var(--danger-soft);
    color: var(--danger);
    border: 1px solid var(--danger-border);
}

.mon-planning-empty[b-sawubvyats] {
    padding: var(--space-8) 0;
    text-align: center;
    color: var(--ink-muted);
    font-size: var(--text-sm);
}
/* _content/HémiolePro.Web/Components/Pages/Planning/Objectifs.razor.rz.scp.css */
/* Objectifs.razor.css — styles scopés page objectifs de cours */

.obj-page[b-ezak5c0cru] {
    max-width: 1100px;
}

.obj-page__header[b-ezak5c0cru] {
    margin-bottom: var(--space-8);
}

.obj-page__header-inner[b-ezak5c0cru] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--space-6);
    flex-wrap: wrap;
}

.obj-page__kicker[b-ezak5c0cru] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.obj-page__title[b-ezak5c0cru] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: var(--space-2) 0 var(--space-2);
}

.obj-page__desc[b-ezak5c0cru] {
    font-size: var(--text-md);
    color: var(--ink-subtle);
    margin: 0;
}

/* ── Sélecteur session ── */
.obj-session-selector[b-ezak5c0cru] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.obj-session-selector__label[b-ezak5c0cru] {
    font-size: var(--text-xs);
    font-weight: 600;
    color: var(--ink-subtle);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.obj-session-selector__select[b-ezak5c0cru] {
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: var(--text-sm);
    min-height: 44px;
    cursor: pointer;
}

/* ── Loading / Alert ── */
.obj-page__loading[b-ezak5c0cru] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    color: var(--ink-subtle);
    padding: var(--space-6);
}

.obj-spinner[b-ezak5c0cru] {
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 2px solid var(--surface-subtle);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: obj-spin-b-ezak5c0cru 0.7s linear infinite;
}

@keyframes obj-spin-b-ezak5c0cru {
    to { transform: rotate(360deg); }
}

.obj-alert[b-ezak5c0cru] {
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    margin-bottom: var(--space-4);
}

.obj-alert--error[b-ezak5c0cru] {
    background: var(--danger-subtle);
    color: var(--danger);
    border: 1px solid var(--danger-border);
}

.obj-alert--success[b-ezak5c0cru] {
    background: var(--success-subtle);
    color: var(--success);
    border: 1px solid var(--success-border);
}

/* ── KPIs ── */
.obj-kpis[b-ezak5c0cru] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-4);
    margin-bottom: var(--space-6);
}

@media (max-width: 768px) {
    .obj-kpis[b-ezak5c0cru] {
        grid-template-columns: repeat(2, 1fr);
    }
}

.obj-kpi-tile[b-ezak5c0cru] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-4) var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.obj-kpi-tile--warn[b-ezak5c0cru] {
    border-color: var(--warning-border);
    background: var(--warning-subtle);
}

.obj-kpi-tile--success[b-ezak5c0cru] {
    border-color: var(--success-border);
    background: var(--success-subtle);
}

.obj-kpi-tile__label[b-ezak5c0cru] {
    font-size: var(--text-xs);
    font-weight: 600;
    color: var(--ink-subtle);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.obj-kpi-tile__value[b-ezak5c0cru] {
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.02em;
}

.obj-kpi-tile__value--mono[b-ezak5c0cru] {
    font-family: var(--font-mono);
}

.obj-kpi-tile--warn .obj-kpi-tile__value[b-ezak5c0cru] {
    color: var(--warning);
}

.obj-kpi-tile--success .obj-kpi-tile__value[b-ezak5c0cru] {
    color: var(--success);
}

/* ── Toolbar ── */
.obj-toolbar[b-ezak5c0cru] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: var(--space-6);
    flex-wrap: wrap;
}

.obj-toolbar__filters[b-ezak5c0cru] {
    display: flex;
    gap: var(--space-3);
    flex-wrap: wrap;
}

.obj-filter-select[b-ezak5c0cru] {
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: var(--text-sm);
    min-height: 44px;
    cursor: pointer;
}

.obj-toolbar__actions[b-ezak5c0cru] {
    display: flex;
    gap: var(--space-2);
    flex-wrap: wrap;
}

/* ── Section site ── */
.obj-site-section[b-ezak5c0cru] {
    margin-bottom: var(--space-8);
}

.obj-site-header[b-ezak5c0cru] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-3);
    border-bottom: 2px solid var(--border);
}

.obj-site-header__left[b-ezak5c0cru] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--ink-subtle);
}

.obj-site-header__nom[b-ezak5c0cru] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.obj-site-badge[b-ezak5c0cru] {
    background: var(--surface-subtle);
    color: var(--ink-subtle);
    font-size: var(--text-xs);
    font-weight: 600;
    padding: var(--space-1) var(--space-2);
    border-radius: var(--radius-sm);
}

.obj-site-empty[b-ezak5c0cru] {
    color: var(--ink-muted);
    font-size: var(--text-sm);
    font-style: italic;
    padding: var(--space-3) 0;
}

/* ── Grille de cards ── */
.obj-cards-grid[b-ezak5c0cru] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-4);
}

@media (max-width: 1024px) {
    .obj-cards-grid[b-ezak5c0cru] {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .obj-cards-grid[b-ezak5c0cru] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .obj-cards-grid[b-ezak5c0cru] {
        grid-template-columns: 1fr;
    }
}

/* ── Card objectif ── */
.obj-card[b-ezak5c0cru] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.obj-card--atteint[b-ezak5c0cru] {
    border-color: var(--success-border);
}

.obj-card__head[b-ezak5c0cru] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.obj-card__pastille[b-ezak5c0cru] {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    flex-shrink: 0;
    border: 1px solid rgba(0,0,0,0.1);
}

.obj-card__nom[b-ezak5c0cru] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.obj-card__statut-badge[b-ezak5c0cru] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: var(--text-xs);
    font-weight: 600;
    padding: 2px 6px;
    border-radius: var(--radius-sm);
    white-space: nowrap;
}

.obj-badge--atteint[b-ezak5c0cru] {
    background: var(--success-subtle);
    color: var(--success);
}

.obj-badge--encours[b-ezak5c0cru] {
    background: var(--warning-subtle);
    color: var(--warning);
}

.obj-card__compteur[b-ezak5c0cru] {
    display: flex;
    align-items: baseline;
    gap: 4px;
}

.obj-card__compteur-reel[b-ezak5c0cru] {
    font-family: var(--font-mono);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--accent);
}

.obj-card__compteur-sep[b-ezak5c0cru] {
    color: var(--ink-muted);
    font-size: var(--text-md);
}

.obj-card__compteur-objectif[b-ezak5c0cru] {
    font-family: var(--font-mono);
    font-size: var(--text-md);
    color: var(--ink-subtle);
}

/* ── Barre de progression ── */
.obj-card__progress-track[b-ezak5c0cru] {
    height: 6px;
    background: var(--surface-subtle);
    border-radius: 3px;
    overflow: hidden;
}

.obj-card__progress-fill[b-ezak5c0cru] {
    height: 100%;
    border-radius: 3px;
    transition: width 0.4s ease;
}

.obj-card__progress-fill--atteint[b-ezak5c0cru] {
    background: var(--success);
}

.obj-card__progress-fill--encours[b-ezak5c0cru] {
    background: var(--warning);
}

/* ── Actions card ── */
.obj-card__actions[b-ezak5c0cru] {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-1);
    margin-top: auto;
}

/* ── Empty state ── */
.obj-empty-state[b-ezak5c0cru] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-12) var(--space-6);
    text-align: center;
}

.obj-empty-state__icon[b-ezak5c0cru] {
    color: var(--ink-muted);
}

.obj-empty-state__msg[b-ezak5c0cru] {
    color: var(--ink-subtle);
    font-size: var(--text-md);
    margin: 0;
}

/* ── Boutons ── */
.obj-btn[b-ezak5c0cru] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 500;
    cursor: pointer;
    border: none;
    min-height: 44px;
    transition: background 0.15s, color 0.15s;
    white-space: nowrap;
}

.obj-btn--primary[b-ezak5c0cru] { background: var(--accent); color: #fff; }
.obj-btn--primary:hover:not(:disabled)[b-ezak5c0cru] { background: var(--accent-hover); }
.obj-btn--ghost[b-ezak5c0cru] { background: transparent; color: var(--ink); border: 1px solid var(--border); }
.obj-btn--ghost:hover:not(:disabled)[b-ezak5c0cru] { background: var(--surface-hover); }
.obj-btn--sm[b-ezak5c0cru] { padding: var(--space-1) var(--space-3); min-height: 36px; font-size: var(--text-xs); }
.obj-btn:disabled[b-ezak5c0cru] { opacity: 0.5; cursor: not-allowed; }
.obj-btn__spinner[b-ezak5c0cru] {
    display: inline-block;
    width: 14px; height: 14px;
    border: 2px solid rgba(255,255,255,0.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: obj-spin-b-ezak5c0cru 0.7s linear infinite;
}

.obj-btn-icon[b-ezak5c0cru] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px; height: 32px; min-width: 32px;
    border-radius: var(--radius-md);
    border: none;
    background: transparent;
    color: var(--ink-subtle);
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
    padding: 0;
}
.obj-btn-icon:hover:not(:disabled)[b-ezak5c0cru] { background: var(--surface-hover); color: var(--ink); }
.obj-btn-icon--danger:hover:not(:disabled)[b-ezak5c0cru] { background: var(--danger-subtle); color: var(--danger); }

/* ── Drawer ── */
.obj-drawer-overlay[b-ezak5c0cru] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.35);
    z-index: 200;
}

.obj-drawer[b-ezak5c0cru] {
    position: fixed;
    top: 0; right: 0; bottom: 0;
    width: min(440px, 95vw);
    background: var(--surface);
    border-left: 1px solid var(--border);
    z-index: 201;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.obj-drawer__header[b-ezak5c0cru] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-5) var(--space-6);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.obj-drawer__title[b-ezak5c0cru] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.obj-drawer__close[b-ezak5c0cru] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px; height: 44px;
    border: none;
    background: transparent;
    color: var(--ink-subtle);
    cursor: pointer;
    border-radius: var(--radius-md);
    transition: background 0.15s;
}
.obj-drawer__close:hover[b-ezak5c0cru] { background: var(--surface-hover); }

.obj-drawer__form[b-ezak5c0cru] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    padding: var(--space-6);
    overflow-y: auto;
    flex: 1;
}

.obj-drawer__footer[b-ezak5c0cru] {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-3);
    padding-top: var(--space-4);
    border-top: 1px solid var(--border);
    margin-top: auto;
}

/* ── Champs ── */
.obj-field[b-ezak5c0cru] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}
.obj-field__label[b-ezak5c0cru] {
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ink);
}
.obj-field__required[b-ezak5c0cru] { color: var(--danger); margin-left: 2px; }
.obj-field__input[b-ezak5c0cru] {
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--bg);
    color: var(--ink);
    font-size: var(--text-sm);
    min-height: 44px;
    width: 100%;
    transition: border-color 0.15s;
}
.obj-field__input:focus[b-ezak5c0cru] { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-subtle); }
.obj-field__input--short[b-ezak5c0cru] { width: 120px; }
.obj-field__input--select[b-ezak5c0cru] { cursor: pointer; appearance: auto; }
.obj-field__input--mono[b-ezak5c0cru] { font-family: var(--font-mono); }
.obj-field__error[b-ezak5c0cru] { font-size: var(--text-xs); color: var(--danger); }

/* ── Modal copie ── */
.obj-modal[b-ezak5c0cru] {
    position: fixed;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: min(480px, 90vw);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    z-index: 201;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: var(--shadow-xl);
}

.obj-modal__header[b-ezak5c0cru] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-5) var(--space-6);
    border-bottom: 1px solid var(--border);
}

.obj-modal__title[b-ezak5c0cru] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.obj-modal__body[b-ezak5c0cru] {
    padding: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.obj-modal__desc[b-ezak5c0cru] {
    font-size: var(--text-sm);
    color: var(--ink-subtle);
    margin: 0;
}

.obj-modal__footer[b-ezak5c0cru] {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-6);
    border-top: 1px solid var(--border);
}
/* _content/HémiolePro.Web/Components/Pages/Planning/Planning.razor.rz.scp.css */
/* Planning.razor.css */

.planning-page[b-89ujzg3srn] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.planning-page__header[b-89ujzg3srn] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-4);
}

.planning-page__header-inner[b-89ujzg3srn] {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    flex-wrap: wrap;
    flex: 1;
}

.planning-page__title[b-89ujzg3srn] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: 0;
}

/* ── Filtres ── */
.planning-page__filtres[b-89ujzg3srn] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    flex-wrap: wrap;
}

.planning-filter[b-89ujzg3srn] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.planning-filter__label[b-89ujzg3srn] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink-muted);
    white-space: nowrap;
}

.planning-filter__select[b-89ujzg3srn] {
    padding: var(--space-1) var(--space-3);
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink);
    height: 40px;
    cursor: pointer;
    transition: border-color var(--transition);
}

.planning-filter__select:focus[b-89ujzg3srn] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

/* ── Chargement ── */
.planning-page__loading[b-89ujzg3srn] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    color: var(--ink-muted);
    font-size: var(--text-sm);
    padding: var(--space-8) 0;
}

.planning-spinner[b-89ujzg3srn] {
    width: 20px;
    height: 20px;
    border: 2px solid var(--border-strong);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: planning-spin-b-89ujzg3srn 700ms linear infinite;
    flex-shrink: 0;
}

.planning-spinner--sm[b-89ujzg3srn] {
    width: 14px;
    height: 14px;
    border-width: 2px;
}

@keyframes planning-spin-b-89ujzg3srn {
    to { transform: rotate(360deg); }
}

/* ── Alertes ── */
.planning-alert[b-89ujzg3srn] {
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 500;
}

.planning-alert--error[b-89ujzg3srn] {
    background: var(--danger-soft);
    color: var(--danger);
    border: 1px solid var(--danger-border);
}

/* ── État vide ── */
.planning-empty-state[b-89ujzg3srn] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
    padding: var(--space-12) 0;
    text-align: center;
}

.planning-empty-state__icon[b-89ujzg3srn] {
    color: var(--ink-subtle);
}

.planning-empty-state__msg[b-89ujzg3srn] {
    font-size: var(--text-md);
    color: var(--ink-muted);
    margin: 0;
}

/* ── Export dropdown ── */
.planning-export-dropdown[b-89ujzg3srn] {
    position: relative;
}

.planning-export-menu[b-89ujzg3srn] {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-elev);
    min-width: 140px;
    z-index: 50;
    overflow: hidden;
}

.planning-export-item[b-89ujzg3srn] {
    all: unset;
    display: block;
    width: 100%;
    padding: var(--space-3) var(--space-4);
    font-size: var(--text-sm);
    color: var(--ink);
    cursor: pointer;
    box-sizing: border-box;
    transition: background var(--transition);
}

.planning-export-item:hover[b-89ujzg3srn] {
    background: var(--surface-alt);
    color: var(--accent);
}

.planning-export-item:focus-visible[b-89ujzg3srn] {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}

/* ── Boutons ── */
.planning-btn[b-89ujzg3srn] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-family: var(--font-body);
    font-weight: 600;
    font-size: var(--text-sm);
    padding: 0 var(--space-4);
    height: 44px;
    border-radius: var(--radius-md);
    transition: background var(--transition), opacity var(--transition);
    white-space: nowrap;
    text-decoration: none;
}

.planning-btn--sm[b-89ujzg3srn] {
    height: 36px;
    font-size: var(--text-xs);
    padding: 0 var(--space-3);
}

.planning-btn:focus-visible[b-89ujzg3srn] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.planning-btn--primary[b-89ujzg3srn] {
    background: var(--accent);
    color: var(--surface);
}

.planning-btn--primary:hover[b-89ujzg3srn] { opacity: 0.88; }

.planning-btn--ghost[b-89ujzg3srn] {
    background: var(--surface);
    color: var(--ink-muted);
    border: 1px solid var(--border-strong);
}

.planning-btn--ghost:hover[b-89ujzg3srn] {
    background: var(--surface-alt);
    color: var(--ink);
}

.planning-btn--danger[b-89ujzg3srn] {
    background: var(--danger);
    color: var(--surface);
}

.planning-btn--danger:hover[b-89ujzg3srn] { opacity: 0.88; }

.planning-btn:disabled[b-89ujzg3srn] {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

/* ── Modale créneau ── */
.planning-modal-overlay[b-89ujzg3srn] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 200;
    display: flex;
    align-items: center;
    justify-content: center;
}

.planning-modal[b-89ujzg3srn] {
    background: var(--surface);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-modal);
    width: min(560px, 95vw);
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    z-index: 201;
    overflow: hidden;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.planning-modal__header[b-89ujzg3srn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-5) var(--space-6);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.planning-modal__title[b-89ujzg3srn] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.planning-modal__close[b-89ujzg3srn] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    color: var(--ink-muted);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: background var(--transition), color var(--transition);
}

.planning-modal__close:hover[b-89ujzg3srn] {
    background: var(--surface-alt);
    color: var(--ink);
}

.planning-modal__close:focus-visible[b-89ujzg3srn] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.planning-modal__body[b-89ujzg3srn] {
    padding: var(--space-6);
    overflow-y: auto;
    flex: 1;
}

.planning-modal__body form[b-89ujzg3srn] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.planning-modal__alert[b-89ujzg3srn] {
    margin-bottom: var(--space-4);
}

.planning-modal__footer[b-89ujzg3srn] {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-6);
    border-top: 1px solid var(--border);
    flex-shrink: 0;
    background: var(--surface);
}

/* ── Champs du formulaire ── */
.planning-field[b-89ujzg3srn] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.planning-field__label[b-89ujzg3srn] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
}

.planning-field__select[b-89ujzg3srn],
.planning-field__input[b-89ujzg3srn] {
    width: 100%;
    height: 44px;
    padding: 0 var(--space-3);
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink);
    box-sizing: border-box;
    transition: border-color var(--transition);
}

.planning-field__input--mono[b-89ujzg3srn] {
    font-family: var(--font-mono);
}

.planning-field__select:focus[b-89ujzg3srn],
.planning-field__input:focus[b-89ujzg3srn] {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.planning-field__toggle-group[b-89ujzg3srn] {
    all: unset;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin-bottom: var(--space-2);
}

.planning-field__toggle-group legend[b-89ujzg3srn] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
    margin-bottom: var(--space-2);
}

.planning-toggle-option[b-89ujzg3srn] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    cursor: pointer;
    min-height: 28px;
}

.planning-toggle-option input[type="radio"][b-89ujzg3srn] {
    accent-color: var(--accent);
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    cursor: pointer;
}

/* Groupe horaires côte à côte */
.planning-field-group[b-89ujzg3srn] {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: var(--space-3);
}

@media (max-width: 400px) {
    .planning-field-group[b-89ujzg3srn] {
        grid-template-columns: 1fr 1fr;
    }
}

/* ── Messages de validation ── */
.planning-field .validation-message[b-89ujzg3srn] {
    font-size: var(--text-xs);
    color: var(--danger);
    font-weight: 500;
    margin-top: 2px;
}

.planning-field__select.invalid[b-89ujzg3srn],
.planning-field__input.invalid[b-89ujzg3srn],
.planning-field__select:user-invalid[b-89ujzg3srn],
.planning-field__input:user-invalid[b-89ujzg3srn] {
    border-color: var(--danger);
    box-shadow: 0 0 0 3px var(--danger-soft);
}

/* ── Section fieldset visible dans le drawer ── */
.planning-field__toggle-group fieldset[b-89ujzg3srn] {
    border: none;
    padding: 0;
    margin: 0;
}

/* ── Fieldset type de prof ── */
.planning-prof-toggle[b-89ujzg3srn] {
    border: none;
    padding: 0;
    margin: 0 0 var(--space-2) 0;
}

.planning-prof-toggle__options[b-89ujzg3srn] {
    display: flex;
    gap: var(--space-4);
    margin-top: var(--space-2);
}

/* ── Input mono (nombres) ── */
.hp-field__input--mono[b-89ujzg3srn] {
    font-family: var(--font-mono);
}

/* ── Panneaux onglets ── */
.planning-tab-panel[b-89ujzg3srn] {
    padding-top: var(--space-5);
}

.planning-tab-table-wrapper[b-89ujzg3srn] {
    overflow-x: auto;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--surface);
}

.planning-tab-table[b-89ujzg3srn] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
    min-width: 600px;
}

.planning-tab-table thead tr[b-89ujzg3srn] {
    background: var(--surface-alt);
    border-bottom: 1px solid var(--border);
}

.planning-tab-table th[b-89ujzg3srn] {
    padding: var(--space-3) var(--space-4);
    text-align: left;
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    white-space: nowrap;
}

.planning-tab-table__center[b-89ujzg3srn] {
    text-align: center;
}

.planning-tab-table td[b-89ujzg3srn] {
    padding: var(--space-3) var(--space-4);
    color: var(--ink);
    border-bottom: 1px solid var(--border);
    vertical-align: middle;
}

.planning-tab-table tbody tr:last-child td[b-89ujzg3srn] {
    border-bottom: none;
}

.planning-tab-table tbody tr:hover[b-89ujzg3srn] {
    background: var(--surface-alt);
}

.planning-tab-table__row--alert[b-89ujzg3srn] {
    background: var(--danger-soft) !important;
}

.planning-tab-table__nom[b-89ujzg3srn] {
    font-weight: 600;
    color: var(--ink);
}

.planning-tab-table__mono[b-89ujzg3srn] {
    font-family: var(--font-mono);
}

.planning-tab-table__val--danger[b-89ujzg3srn] {
    color: var(--danger);
    font-weight: 700;
}

.planning-tab-badge[b-89ujzg3srn] {
    display: inline-flex;
    align-items: center;
    padding: 2px var(--space-2);
    background: var(--accent-soft);
    color: var(--accent);
    border-radius: var(--radius-pill);
    font-size: var(--text-xs);
    font-weight: 600;
}

.planning-inline-edit[b-89ujzg3srn] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
}

.planning-inline-edit__input[b-89ujzg3srn] {
    width: 70px;
    height: 32px;
    padding: 0 var(--space-2);
    border: 1px solid var(--accent);
    border-radius: var(--radius-sm);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    background: var(--surface);
    color: var(--ink);
    text-align: center;
}

.planning-inline-edit__input:focus[b-89ujzg3srn] {
    outline: none;
    box-shadow: 0 0 0 3px var(--accent-soft);
}

.planning-inline-edit__save[b-89ujzg3srn],
.planning-inline-edit__cancel[b-89ujzg3srn] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: var(--radius-sm);
    transition: background var(--transition);
}

.planning-inline-edit__save[b-89ujzg3srn] {
    color: var(--success);
}

.planning-inline-edit__save:hover[b-89ujzg3srn] {
    background: var(--success-soft);
}

.planning-inline-edit__cancel[b-89ujzg3srn] {
    color: var(--ink-muted);
}

.planning-inline-edit__cancel:hover[b-89ujzg3srn] {
    background: var(--surface-alt);
    color: var(--danger);
}

.planning-inline-edit__trigger[b-89ujzg3srn] {
    all: unset;
    cursor: pointer;
    font-family: var(--font-mono);
    color: var(--ink);
    padding: 2px var(--space-2);
    border-radius: var(--radius-sm);
    min-width: 40px;
    display: inline-block;
    text-align: center;
    border-bottom: 1px dashed var(--border-strong);
    transition: background var(--transition), border-color var(--transition);
}

.planning-inline-edit__trigger:hover[b-89ujzg3srn] {
    background: var(--surface-alt);
    border-color: var(--accent);
    color: var(--accent);
}

.planning-inline-edit__trigger:focus-visible[b-89ujzg3srn] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

/* ── Types de cours ── */
.planning-tab-types-grid[b-89ujzg3srn] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: var(--space-3);
    padding-top: var(--space-2);
}

.planning-tab-type-card[b-89ujzg3srn] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    transition: box-shadow var(--transition);
}

.planning-tab-type-card:hover[b-89ujzg3srn] {
    box-shadow: var(--shadow-card);
}

.planning-tab-type-pastille[b-89ujzg3srn] {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    flex-shrink: 0;
    border: 1px solid rgba(0,0,0,0.1);
}

.planning-tab-type-info[b-89ujzg3srn] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    overflow: hidden;
}

.planning-tab-type-nom[b-89ujzg3srn] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.planning-tab-type-meta[b-89ujzg3srn] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
    white-space: nowrap;
}

.planning-tab-types-footer[b-89ujzg3srn] {
    margin-top: var(--space-4);
    display: flex;
    justify-content: flex-end;
}

.planning-tab-panel__redirect-msg[b-89ujzg3srn] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    margin-bottom: var(--space-4);
}
/* _content/HémiolePro.Web/Components/Pages/RH/Rh.razor.rz.scp.css */
/* Rh.razor.css */

/* ── Page header ── */
.rh-page-head[b-6hv52vzyei] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: 18px;
    flex-wrap: wrap;
}

.rh-page-desc[b-6hv52vzyei] {
    margin: 6px 0 0;
    color: var(--ink-muted);
    font-size: 13.5px;
}

.rh-page-actions[b-6hv52vzyei] {
    display: flex;
    gap: var(--space-2);
    align-items: center;
    flex-shrink: 0;
}

/* ── KPI tiles ── */
.rh-kpi-grid[b-6hv52vzyei] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 18px;
}

@media (max-width: 900px) {
    .rh-kpi-grid[b-6hv52vzyei] { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 540px) {
    .rh-kpi-grid[b-6hv52vzyei] { grid-template-columns: 1fr 1fr; }
}

.rh-kpi[b-6hv52vzyei] {
    padding: var(--space-5);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    border-left: 4px solid transparent;
}

.rh-kpi--libre[b-6hv52vzyei]  { border-left-color: var(--libre); }
.rh-kpi--notion[b-6hv52vzyei] { border-left-color: var(--notion); }
.rh-kpi--warning[b-6hv52vzyei] { border-left-color: var(--warning); }
.rh-kpi--danger[b-6hv52vzyei] { border-left-color: var(--danger); }

.rh-kpi__label[b-6hv52vzyei] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.rh-kpi__value[b-6hv52vzyei] {
    font-family: var(--font-mono);
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}

/* ── Filter bar ── */
.rh-filters[b-6hv52vzyei] {
    display: flex;
    gap: 8px;
    margin-bottom: 14px;
    flex-wrap: wrap;
    align-items: center;
}

.rh-filters__spacer[b-6hv52vzyei] { flex: 1; }

.rh-filter-pill[b-6hv52vzyei] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 7px 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    background: transparent;
    color: var(--ink-muted);
    font-size: 12.5px;
    font-weight: 500;
    font-family: var(--font-body);
    cursor: pointer;
    transition: background 0.1s, color 0.1s, border-color 0.1s;
    min-height: 44px;
    white-space: nowrap;
}

.rh-filter-pill:hover[b-6hv52vzyei] {
    background: var(--surface);
    color: var(--ink);
}

.rh-filter-pill--active[b-6hv52vzyei] {
    border-color: color-mix(in srgb, var(--accent) 50%, transparent);
    color: var(--accent);
    background: color-mix(in srgb, var(--accent) 8%, transparent);
}

.rh-filter-search[b-6hv52vzyei] {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 7px 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    background: var(--surface);
    color: var(--ink-muted);
    min-height: 44px;
    min-width: 220px;
}

.rh-filter-search__input[b-6hv52vzyei] {
    border: none;
    background: transparent;
    color: var(--ink);
    font-size: 13px;
    font-family: var(--font-body);
    flex: 1;
    outline: none;
    min-width: 0;
}

.rh-filter-search__input[b-6hv52vzyei]::placeholder { color: var(--ink-subtle); }

/* ── Prof cards grid ── */
.rh-cards-grid[b-6hv52vzyei] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

@media (max-width: 860px) {
    .rh-cards-grid[b-6hv52vzyei] { grid-template-columns: 1fr; }
}

/* ── Prof card ── */
.rh-prof-card[b-6hv52vzyei] {
    position: relative;
    padding: 18px;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.rh-prof-card:hover[b-6hv52vzyei] {
    border-color: var(--border-strong);
    box-shadow: 0 2px 12px color-mix(in srgb, var(--ink) 6%, transparent);
}

.rh-prof-card__body[b-6hv52vzyei] {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    position: relative;
    z-index: 1;
}

.rh-prof-card__info[b-6hv52vzyei] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.rh-prof-card__name-row[b-6hv52vzyei] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.rh-prof-card__name[b-6hv52vzyei] {
    font-size: 14.5px;
    font-weight: 600;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Discipline tags */
.rh-prof-card__disciplines[b-6hv52vzyei] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.rh-disc-tag[b-6hv52vzyei] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 2px 8px;
    font-size: 11px;
    font-weight: 500;
    border-radius: var(--radius-pill);
    color: var(--accent);
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent) 20%, transparent);
}

.rh-disc-tag__dot[b-6hv52vzyei] {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--accent);
    flex-shrink: 0;
}

/* Contact */
.rh-prof-card__contact[b-6hv52vzyei] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    font-size: 11.5px;
    color: var(--ink-subtle);
}

.rh-prof-card__contact-item[b-6hv52vzyei] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.rh-prof-card__contact-item--mono[b-6hv52vzyei] {
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
}

/* Meta row */
.rh-prof-card__meta[b-6hv52vzyei] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 4px;
}

.rh-prof-card__since[b-6hv52vzyei] {
    font-size: 11px;
    color: var(--ink-muted);
}

/* 3-dot menu */
.rh-prof-card__menu[b-6hv52vzyei] {
    flex-shrink: 0;
    position: relative;
    z-index: 2;
}

.rh-prof-card__more-btn[b-6hv52vzyei] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    min-width: 44px;
    min-height: 44px;
    border: none;
    background: transparent;
    color: var(--ink-subtle);
    cursor: pointer;
    border-radius: var(--radius-md);
    transition: background 0.1s, color 0.1s;
}

.rh-prof-card__more-btn:hover[b-6hv52vzyei] {
    background: var(--surface-alt);
    color: var(--ink);
}

/* Nav button (full-card clickable area behind content) */
.rh-prof-card__nav-btn[b-6hv52vzyei] {
    position: absolute;
    inset: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    border-radius: inherit;
    font-size: 0;
    z-index: 0;
}

/* ── Drawer ── */
.hp-drawer__overlay[b-6hv52vzyei] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.35);
    z-index: 200;
    animation: rh-fade-in-b-6hv52vzyei 0.15s ease;
}

@keyframes rh-fade-in-b-6hv52vzyei { from { opacity: 0; } to { opacity: 1; } }
@keyframes rh-slide-in-b-6hv52vzyei { from { transform: translateX(100%); } to { transform: translateX(0); } }

/* ── Form helpers ── */
.rh-required[b-6hv52vzyei] { color: var(--danger); }

.rh-field-hint[b-6hv52vzyei] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
    margin: 2px 0 0;
}

.rh-textarea[b-6hv52vzyei] {
    resize: vertical;
    min-height: 80px;
}

.rh-radio-group[b-6hv52vzyei] {
    display: flex;
    gap: var(--space-4);
    flex-wrap: wrap;
}

.rh-radio-label[b-6hv52vzyei] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--ink);
    cursor: pointer;
    min-height: 44px;
}

/* ── Spinner ── */
.rh-spinner[b-6hv52vzyei] {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: rh-spin-b-6hv52vzyei 0.7s linear infinite;
}

.rh-spinner--sm[b-6hv52vzyei] { width: 14px; height: 14px; }

@keyframes rh-spin-b-6hv52vzyei { to { transform: rotate(360deg); } }
/* _content/HémiolePro.Web/Components/Pages/RH/RhDetail.razor.rz.scp.css */
/* RhDetail.razor.css */

.rh-detail[b-e69ss6800p] { max-width: 1100px; }

/* ── En-tête ── */
.rh-detail__header[b-e69ss6800p] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
    margin-bottom: var(--space-6);
    flex-wrap: wrap;
}

.rh-detail__identity[b-e69ss6800p] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    flex: 1;
}

.rh-detail__identity-info[b-e69ss6800p] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.rh-detail__name[b-e69ss6800p] {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.02em;
}

.rh-detail__header-actions[b-e69ss6800p] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.rh-detail__confirm-inline[b-e69ss6800p] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    background: var(--warning-soft);
    border: 1px solid var(--warning-border);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    color: var(--ink);
    flex-wrap: wrap;
}

/* ── Contenu onglets ── */
.rh-detail__tab-content[b-e69ss6800p] { padding-top: var(--space-6); }

.rh-detail__tab-actions[b-e69ss6800p] {
    display: flex;
    justify-content: flex-end;
    margin-bottom: var(--space-4);
}

/* ── Grille sections ── */
.rh-detail__section-grid[b-e69ss6800p] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: var(--space-6);
}

.rh-detail__section[b-e69ss6800p] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-5);
}

.rh-detail__section-title[b-e69ss6800p] {
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--ink);
    margin-bottom: var(--space-4);
}

/* ── Données sensibles ── */
.rh-detail__confidential-note[b-e69ss6800p] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    font-size: var(--text-xs);
    color: var(--ink-muted);
    background: var(--accent-soft);
    border: 1px solid var(--accent-border);
    border-radius: var(--radius-md);
    padding: var(--space-2) var(--space-3);
    margin-bottom: var(--space-4);
}

.rhd-sensitive[b-e69ss6800p] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.rhd-sensitive__masked[b-e69ss6800p] {
    font-family: var(--font-mono);
    color: var(--ink-muted);
    letter-spacing: 0.1em;
}

.rhd-sensitive__value[b-e69ss6800p] {
    font-family: var(--font-mono);
    color: var(--ink);
    font-size: var(--text-sm);
}

.rhd-btn-icon-sm[b-e69ss6800p] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--ink-muted);
    cursor: pointer;
    transition: background 0.1s;
    min-height: 44px;
    min-width: 44px;
}

.rhd-btn-icon-sm:hover[b-e69ss6800p] { background: var(--surface); color: var(--ink); }

/* ── DL ── */
.rhd-dl[b-e69ss6800p] { display: flex; flex-direction: column; gap: var(--space-3); }

.rhd-dl__item[b-e69ss6800p] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.rhd-dl__item dt[b-e69ss6800p] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.rhd-dl__item dd[b-e69ss6800p] {
    font-size: var(--text-sm);
    color: var(--ink);
}

.rhd-dl__sub[b-e69ss6800p] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
}

/* ── Contrat actif card ── */
.rh-detail__contrat-card[b-e69ss6800p] {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.rh-detail__contrat-row[b-e69ss6800p] {
    display: flex;
    justify-content: space-between;
    font-size: var(--text-sm);
    gap: var(--space-2);
}

.rh-detail__contrat-label[b-e69ss6800p] { color: var(--ink-muted); }

.rh-detail__notes[b-e69ss6800p] {
    font-size: var(--text-sm);
    color: var(--ink);
    line-height: 1.6;
    white-space: pre-wrap;
}

/* ── Tableau commun ── */
.rh-table-wrapper[b-e69ss6800p] {
    overflow-x: auto;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
}

.rh-table[b-e69ss6800p] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
}

.rh-table thead th[b-e69ss6800p] {
    padding: var(--space-3) var(--space-4);
    text-align: left;
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: var(--bg);
    border-bottom: 1px solid var(--border);
}

.rh-table__row-plain:hover[b-e69ss6800p] { background: var(--surface); }

.rh-table__cell[b-e69ss6800p] {
    padding: var(--space-3) var(--space-4);
    color: var(--ink);
    border-bottom: 1px solid var(--border);
    vertical-align: middle;
}

.rh-table__cell--mono[b-e69ss6800p] { font-family: var(--font-mono); }

.rh-table__cell--actions[b-e69ss6800p] { width: 100px; }

.rh-table__action-group[b-e69ss6800p] {
    display: flex;
    gap: var(--space-1);
    align-items: center;
}

/* ── Récap absences ── */
.rh-detail__absences-recap[b-e69ss6800p] {
    display: flex;
    gap: var(--space-3);
    flex-wrap: wrap;
    margin-bottom: var(--space-4);
}

.rh-detail__absences-recap-item[b-e69ss6800p] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
}

.rh-detail__absences-recap-type[b-e69ss6800p] { color: var(--ink-muted); }
.rh-detail__absences-recap-jours[b-e69ss6800p] { font-weight: 700; color: var(--ink); }

/* ── Documents grille ── */
.rh-detail__docs-grid[b-e69ss6800p] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: var(--space-4);
}

.rh-detail__doc-card[b-e69ss6800p] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-4);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    transition: border-color 0.1s;
}

.rh-detail__doc-card--archive[b-e69ss6800p] { opacity: 0.55; }

.rh-detail__doc-icon[b-e69ss6800p] {
    color: var(--accent);
    flex-shrink: 0;
    padding-top: 2px;
}

.rh-detail__doc-info[b-e69ss6800p] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.rh-detail__doc-nom[b-e69ss6800p] {
    font-weight: 500;
    font-size: var(--text-sm);
    color: var(--ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rh-detail__doc-meta[b-e69ss6800p] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.rh-detail__doc-date[b-e69ss6800p] { font-size: var(--text-xs); color: var(--ink-muted); }

.rh-detail__doc-archived[b-e69ss6800p] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
    font-style: italic;
}

.rh-detail__doc-actions[b-e69ss6800p] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    flex-shrink: 0;
}

/* ── Boutons ── */
.rhd-btn[b-e69ss6800p] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: 600;
    font-family: var(--font-body);
    cursor: pointer;
    border: 1px solid transparent;
    transition: opacity 0.1s, background 0.1s;
    min-height: 44px;
}

.rhd-btn--primary[b-e69ss6800p] { background: var(--accent); color: #fff; }
.rhd-btn--primary:hover[b-e69ss6800p] { opacity: 0.88; }

.rhd-btn--ghost[b-e69ss6800p] {
    background: transparent;
    border-color: var(--border);
    color: var(--ink);
}

.rhd-btn--ghost:hover[b-e69ss6800p] { background: var(--surface); }

.rhd-btn--ghost.rhd-btn--danger[b-e69ss6800p] { color: var(--danger); border-color: var(--danger-border); }

.rhd-btn--danger[b-e69ss6800p] { background: var(--danger); color: #fff; }

.rhd-btn--sm[b-e69ss6800p] { padding: var(--space-1) var(--space-3); min-height: 36px; font-size: var(--text-xs); }
.rhd-btn--xs[b-e69ss6800p] { padding: var(--space-1) var(--space-2); font-size: var(--text-xs); min-height: 32px; }

.rhd-btn-icon[b-e69ss6800p] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--ink-muted);
    cursor: pointer;
    transition: background 0.1s, color 0.1s;
    min-height: 44px;
    min-width: 44px;
}

.rhd-btn-icon:hover[b-e69ss6800p] { background: var(--surface); color: var(--ink); }
.rhd-btn-icon--danger:hover[b-e69ss6800p] { background: var(--danger-soft); color: var(--danger); }

.rhd-mono[b-e69ss6800p] { font-family: var(--font-mono); }

/* ── États ── */
.rh-detail__loading[b-e69ss6800p] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-8) 0;
    color: var(--ink-muted);
}

.rhd-empty[b-e69ss6800p] {
    padding: var(--space-8) var(--space-4);
    text-align: center;
    color: var(--ink-muted);
    font-size: var(--text-sm);
}

.rhd-alert[b-e69ss6800p] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    margin-bottom: var(--space-4);
}

.rhd-alert--error[b-e69ss6800p] {
    background: var(--danger-soft);
    color: var(--danger);
    border: 1px solid var(--danger-border);
}

/* ── Drawer (réutilise les classes rh-drawer de Rh.razor.css via globaux) ── */
.rh-drawer-overlay[b-e69ss6800p] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.35);
    z-index: 200;
    animation: rhd-fade-in-b-e69ss6800p 0.15s ease;
}

.rh-drawer[b-e69ss6800p] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(480px, 100vw);
    background: var(--bg);
    border-left: 1px solid var(--border);
    z-index: 201;
    display: flex;
    flex-direction: column;
    animation: rhd-slide-in-b-e69ss6800p 0.2s ease;
}

@keyframes rhd-fade-in-b-e69ss6800p { from { opacity: 0; } to { opacity: 1; } }
@keyframes rhd-slide-in-b-e69ss6800p { from { transform: translateX(100%); } to { transform: translateX(0); } }

.rh-drawer__header[b-e69ss6800p] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-5) var(--space-6);
    border-bottom: 1px solid var(--border);
    gap: var(--space-4);
}

.rh-drawer__title[b-e69ss6800p] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ink);
}

.rh-drawer__close[b-e69ss6800p] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: none;
    background: transparent;
    color: var(--ink-muted);
    cursor: pointer;
    border-radius: var(--radius-md);
    min-height: 44px;
    min-width: 44px;
}

.rh-drawer__close:hover[b-e69ss6800p] { background: var(--surface); color: var(--ink); }

.rh-drawer__body[b-e69ss6800p] {
    flex: 1;
    overflow-y: auto;
    padding: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.rh-drawer__footer[b-e69ss6800p] {
    padding: var(--space-4) var(--space-6);
    border-top: 1px solid var(--border);
    display: flex;
    gap: var(--space-3);
    justify-content: flex-end;
}

.rh-field[b-e69ss6800p] { display: flex; flex-direction: column; gap: var(--space-1); }
.rh-field__label[b-e69ss6800p] { font-size: var(--text-sm); font-weight: 600; color: var(--ink); }
.rh-field__required[b-e69ss6800p] { color: var(--danger); }

.rh-field__input[b-e69ss6800p],
.rh-field__select[b-e69ss6800p],
.rh-field__textarea[b-e69ss6800p] {
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
    color: var(--ink);
    font-size: var(--text-sm);
    font-family: var(--font-body);
}

.rh-field__input:focus[b-e69ss6800p],
.rh-field__select:focus[b-e69ss6800p],
.rh-field__textarea:focus[b-e69ss6800p] {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
}

.rh-field__hint[b-e69ss6800p] { font-size: var(--text-xs); color: var(--ink-muted); }
.rh-field__textarea[b-e69ss6800p] { resize: vertical; min-height: 80px; }

.rh-radio-group[b-e69ss6800p] { display: flex; gap: var(--space-4); flex-wrap: wrap; }

.rh-radio-label[b-e69ss6800p] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--ink);
    cursor: pointer;
    min-height: 44px;
}

/* ── Spinner ── */
.rh-spinner[b-e69ss6800p] {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: rhd-spin-b-e69ss6800p 0.7s linear infinite;
}

.rh-spinner--sm[b-e69ss6800p] { width: 14px; height: 14px; }
@keyframes rhd-spin-b-e69ss6800p { to { transform: rotate(360deg); } }
.rhd-spinner[b-e69ss6800p] {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: rhd-spin-b-e69ss6800p 0.7s linear infinite;
}

/* ── Toast ── */
.rh-toast[b-e69ss6800p] {
    position: fixed;
    bottom: var(--space-6);
    left: 50%;
    transform: translateX(-50%);
    background: var(--ink);
    color: var(--bg);
    padding: var(--space-3) var(--space-5);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    font-weight: 500;
    z-index: 300;
    animation: rhd-fade-in-b-e69ss6800p 0.2s ease;
}
/* _content/HémiolePro.Web/Components/Pages/Settings/ConfigurationIA.razor.rz.scp.css */
/* ConfigurationIA.razor.css — Styles scopés de la page Configuration IA */

/* ── Page container ── */
.ia-page[b-wt07mh2a5x] {
    max-width: 760px;
    padding: var(--space-8) var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

/* ── En-tête ── */
.ia-page__header[b-wt07mh2a5x] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.ia-page__kicker[b-wt07mh2a5x] {
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--ink-subtle);
}

.ia-page__title[b-wt07mh2a5x] {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--ink);
    margin: 0;
}

/* ── Bandeau informatif ── */
.ia-banner[b-wt07mh2a5x] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-5);
    background: var(--accent-soft);
    border: 1px solid var(--accent-border);
    border-radius: var(--radius-lg);
}

.ia-banner--info[b-wt07mh2a5x] {
    background: var(--info-soft);
    border-color: var(--info-border);
}

.ia-banner--info .ia-banner__icon[b-wt07mh2a5x] {
    color: var(--info);
}

.ia-banner__icon[b-wt07mh2a5x] {
    color: var(--accent);
    flex-shrink: 0;
    margin-top: 2px;
}

.ia-banner p[b-wt07mh2a5x] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    line-height: 1.6;
    margin: 0;
}

/* ── Spinner de chargement ── */
.ia-loading[b-wt07mh2a5x] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-8) 0;
    color: var(--ink-muted);
    font-size: var(--text-sm);
}

.ia-spinner[b-wt07mh2a5x] {
    width: 20px;
    height: 20px;
    border: 2px solid var(--border-strong);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: ia-spin-b-wt07mh2a5x 700ms linear infinite;
    flex-shrink: 0;
}

@keyframes ia-spin-b-wt07mh2a5x {
    to { transform: rotate(360deg); }
}

/* ── Sections ── */
.ia-sections[b-wt07mh2a5x] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.ia-section[b-wt07mh2a5x] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.ia-section > .ia-section__title[b-wt07mh2a5x],
.ia-section > .ia-section__desc[b-wt07mh2a5x] {
    padding-left: var(--space-6);
    padding-right: var(--space-6);
}

.ia-section > .ia-section__title[b-wt07mh2a5x] {
    padding-top: var(--space-5);
    padding-bottom: 0;
}

.ia-section > .ia-section__desc[b-wt07mh2a5x] {
    padding-bottom: var(--space-4);
}

.ia-section--key[b-wt07mh2a5x] {
    /* API keys section gets dividers between provider blocks */
}

.ia-section__title[b-wt07mh2a5x] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.01em;
    margin: 0;
}

.ia-section__desc[b-wt07mh2a5x] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    line-height: 1.5;
    margin: 0;
}

/* ── Provider cards (radio-style) ── */
.ia-provider-cards[b-wt07mh2a5x] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-3);
    padding: 0 var(--space-6) var(--space-6);
}

@media (max-width: 600px) {
    .ia-provider-cards[b-wt07mh2a5x] {
        grid-template-columns: 1fr;
    }
}

.ia-provider-card[b-wt07mh2a5x] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-4);
    background: var(--surface-alt);
    border: 2px solid var(--border);
    border-radius: var(--radius-lg);
    cursor: pointer;
    transition: border-color var(--transition-fast), background var(--transition-fast);
    min-height: 44px;
}

.ia-provider-card:hover[b-wt07mh2a5x] {
    border-color: var(--accent-border);
    background: var(--accent-soft);
}

.ia-provider-card--active[b-wt07mh2a5x] {
    border-color: var(--accent);
    background: var(--accent-soft);
}

.ia-provider-card__head[b-wt07mh2a5x] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
}

.ia-provider-card__logo[b-wt07mh2a5x] {
    color: var(--accent);
}

/* Badges provider */
.ia-provider-card__badge[b-wt07mh2a5x] {
    font-size: var(--text-2xs);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 2px var(--space-1-5);
    border-radius: var(--radius-pill);
    flex-shrink: 0;
}

.ia-provider-card__badge--free[b-wt07mh2a5x] {
    background: var(--success-soft);
    color: var(--success);
    border: 1px solid var(--success-border);
}

.ia-provider-card__badge--byok[b-wt07mh2a5x] {
    background: var(--warning-soft);
    color: var(--warning);
    border: 1px solid var(--warning-border);
}

.ia-provider-card__name[b-wt07mh2a5x] {
    font-weight: 600;
    font-size: var(--text-sm);
    color: var(--ink);
}

.ia-provider-card__desc[b-wt07mh2a5x] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
    line-height: 1.5;
}

/* ── API key blocks ── */
.ia-key-block[b-wt07mh2a5x] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-5) var(--space-6);
    border-bottom: 1px solid var(--border);
}

.ia-key-block:last-of-type[b-wt07mh2a5x] {
    border-bottom: none;
}

.ia-key-block__head[b-wt07mh2a5x] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
}

.ia-key-block__name[b-wt07mh2a5x] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
}

.ia-key-block__desc[b-wt07mh2a5x] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    line-height: 1.5;
    margin: 0;
}

/* Key block badges */
.ia-key-block__badge[b-wt07mh2a5x] {
    font-size: var(--text-2xs);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 2px var(--space-1-5);
    border-radius: var(--radius-pill);
    flex-shrink: 0;
}

.ia-key-block__badge--free[b-wt07mh2a5x] {
    background: var(--success-soft);
    color: var(--success);
    border: 1px solid var(--success-border);
}

.ia-key-block__badge--byok[b-wt07mh2a5x] {
    background: var(--warning-soft);
    color: var(--warning);
    border: 1px solid var(--warning-border);
}

/* ── API key field ── */
.ia-key-field[b-wt07mh2a5x] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1-5);
}

.ia-key-field__wrap[b-wt07mh2a5x] {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.ia-key-field__input[b-wt07mh2a5x] {
    padding-right: var(--space-12) !important;
    font-family: var(--font-mono);
    flex: 1;
}

.ia-key-field__toggle[b-wt07mh2a5x] {
    all: unset;
    position: absolute;
    right: calc(var(--space-10) + var(--space-3));
    cursor: pointer;
    color: var(--ink-subtle);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: var(--radius-sm);
    transition: color var(--transition-fast), background var(--transition-fast);
}

.ia-key-field__toggle:hover[b-wt07mh2a5x] {
    color: var(--ink);
    background: var(--border);
}

.ia-key-field__toggle:focus-visible[b-wt07mh2a5x] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.ia-key-field__hint[b-wt07mh2a5x] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
    line-height: 1.4;
}

.ia-key-field__hint--saved[b-wt07mh2a5x] {
    color: var(--ink-subtle);
}

/* ── Test result ── */
.ia-test-result[b-wt07mh2a5x] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1-5);
    font-size: var(--text-xs);
    font-weight: 600;
    padding: var(--space-2) var(--space-4);
    border-radius: var(--radius-md);
    margin: 0 var(--space-6) var(--space-4);
}

.ia-test-result--ok[b-wt07mh2a5x] {
    color: var(--success);
    background: var(--success-soft);
    border: 1px solid var(--success-border);
}

.ia-test-result--ko[b-wt07mh2a5x] {
    color: var(--danger);
    background: var(--danger-soft);
    border: 1px solid var(--danger-border);
}

/* ── Features list ── */
.ia-features[b-wt07mh2a5x] {
    display: flex;
    flex-direction: column;
    gap: 0;
    border-top: 1px solid var(--border);
}

.ia-feature-row[b-wt07mh2a5x] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-6);
    border-bottom: 1px solid var(--border);
    background: var(--surface);
    transition: background var(--transition-fast);
}

.ia-feature-row:last-child[b-wt07mh2a5x] {
    border-bottom: none;
}

.ia-feature-row:hover[b-wt07mh2a5x] {
    background: var(--surface-alt);
}

.ia-feature-row__info[b-wt07mh2a5x] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
}

.ia-feature-row__label[b-wt07mh2a5x] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
}

.ia-feature-row__desc[b-wt07mh2a5x] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
    line-height: 1.4;
}

/* ── Section spacing for provider + key sections ── */
.ia-section > .ia-provider-cards[b-wt07mh2a5x] {
    padding-top: var(--space-4);
}

/* ── Footer ── */
.ia-page__footer[b-wt07mh2a5x] {
    display: flex;
    justify-content: flex-end;
}

/* ── Toast ── */
.ia-toast[b-wt07mh2a5x] {
    position: fixed;
    bottom: var(--space-6);
    right: var(--space-6);
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 500;
    z-index: 500;
    box-shadow: var(--shadow-elev);
    animation: hp-fade-in var(--transition-slow) ease;
}

.ia-toast--success[b-wt07mh2a5x] {
    background: var(--success-soft);
    color: var(--success);
    border: 1px solid var(--success-border);
}

.ia-toast--error[b-wt07mh2a5x] {
    background: var(--danger-soft);
    color: var(--danger);
    border: 1px solid var(--danger-border);
}
/* _content/HémiolePro.Web/Components/Pages/Settings/DriveCallback.razor.rz.scp.css */
/* ── Callback page — centered loading / success / error ─────────────────────── */
.callback-page[b-lx7gpgez64] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 60vh;
    gap: var(--space-4);
    padding: var(--space-8);
}

/* ── Spinner ─────────────────────────────────────────────────────────────────── */
.callback-page__spinner[b-lx7gpgez64] {
    width: 44px;
    height: 44px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: callback-spin-b-lx7gpgez64 0.8s linear infinite;
}

@keyframes callback-spin-b-lx7gpgez64 {
    to { transform: rotate(360deg); }
}

/* ── Icon circle ─────────────────────────────────────────────────────────────── */
.callback-page__icon[b-lx7gpgez64] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    flex-shrink: 0;
}

.callback-page__icon--success[b-lx7gpgez64] {
    background: var(--libre-soft);
    color: var(--libre);
    border: 1px solid var(--libre-border);
}

.callback-page__icon--error[b-lx7gpgez64] {
    background: var(--danger-soft);
    color: var(--danger);
    border: 1px solid var(--danger-border);
}

/* ── Titles ──────────────────────────────────────────────────────────────────── */
.callback-page__title[b-lx7gpgez64] {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
    letter-spacing: -0.01em;
    text-align: center;
}

.callback-page__title--success[b-lx7gpgez64] {
    color: var(--libre);
}

.callback-page__title--error[b-lx7gpgez64] {
    color: var(--danger);
}

/* ── Text ────────────────────────────────────────────────────────────────────── */
.callback-page__text[b-lx7gpgez64] {
    font-family: var(--font-body);
    font-size: var(--text-md);
    color: var(--ink-muted);
    margin: 0;
    text-align: center;
    max-width: 360px;
    line-height: 1.5;
}

.callback-page__text--error[b-lx7gpgez64] {
    color: var(--danger);
    font-weight: 500;
}

.callback-page__redirect[b-lx7gpgez64] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink-subtle);
    margin: 0;
    text-align: center;
}
/* _content/HémiolePro.Web/Components/Pages/Settings/DriveSettings.razor.rz.scp.css */
/* ── Cards grid ─────────────────────────────────────────────────────────────── */
.drive-cards[b-8qer66baux] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-5);
    margin-bottom: var(--space-6);
}

@media (max-width: 680px) {
    .drive-cards[b-8qer66baux] {
        grid-template-columns: 1fr;
    }
}

/* ── Card ────────────────────────────────────────────────────────────────────── */
.drive-card[b-8qer66baux] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-5) var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    transition: box-shadow var(--transition);
}

.drive-card:hover[b-8qer66baux] {
    box-shadow: var(--shadow-card);
}

.drive-card--connected[b-8qer66baux] {
    border-color: var(--libre-border);
}

.drive-card__header[b-8qer66baux] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
}

.drive-card__icon-wrap[b-8qer66baux] {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg);
    border-radius: var(--radius-md);
    border: 1px solid var(--border);
}

.drive-card__meta[b-8qer66baux] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.drive-card__title[b-8qer66baux] {
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
    line-height: 1.3;
}

.drive-card__desc[b-8qer66baux] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    line-height: 1.55;
    margin: 0;
}

.drive-card__actions[b-8qer66baux] {
    margin-top: auto;
    padding-top: var(--space-1);
}

/* ── Connected account display ───────────────────────────────────────────────── */
.drive-account[b-8qer66baux] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.drive-account__identity[b-8qer66baux] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.drive-account__avatar[b-8qer66baux] {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--libre-soft);
    color: var(--libre);
    display: flex;
    align-items: center;
    justify-content: center;
}

.drive-account__info[b-8qer66baux] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.drive-account__email[b-8qer66baux] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.drive-account__status[b-8qer66baux] {
    font-family: var(--font-body);
    font-size: var(--text-xs);
    color: var(--ink-muted);
    display: flex;
    align-items: center;
    gap: var(--space-1-5);
    flex-wrap: wrap;
}

.drive-account__dot[b-8qer66baux] {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--libre);
    flex-shrink: 0;
}

/* ── Quota bar ───────────────────────────────────────────────────────────────── */
.drive-quota[b-8qer66baux] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.drive-quota__bar[b-8qer66baux] {
    height: 5px;
    background: var(--libre-soft);
    border-radius: var(--radius-pill);
    overflow: hidden;
}

.drive-quota__fill[b-8qer66baux] {
    height: 100%;
    background: var(--libre);
    border-radius: var(--radius-pill);
    transition: width var(--transition-slow);
}

/* ── Badges ─────────────────────────────────────────────────────────────────── */
.drive-badge[b-8qer66baux] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    font-family: var(--font-body);
    font-size: var(--text-xs);
    font-weight: 600;
    padding: 2px var(--space-2);
    border-radius: var(--radius-pill);
    letter-spacing: 0.01em;
}

.drive-badge__dot[b-8qer66baux] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
}

.drive-badge--connected[b-8qer66baux] {
    background: var(--libre-soft);
    color: var(--libre);
}

.drive-badge--connected .drive-badge__dot[b-8qer66baux] {
    background: var(--libre);
}

.drive-badge--disconnected[b-8qer66baux] {
    background: var(--bg);
    color: var(--ink-muted);
    border: 1px solid var(--border);
}

.drive-badge--disconnected .drive-badge__dot[b-8qer66baux] {
    background: var(--ink-muted);
}

/* ── Buttons ─────────────────────────────────────────────────────────────────── */
.drive-btn[b-8qer66baux] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 600;
    padding: 0 var(--space-4);
    border-radius: var(--radius-md);
    border: none;
    cursor: pointer;
    min-height: 44px;
    min-width: 44px;
    transition: opacity var(--transition), background var(--transition);
    white-space: nowrap;
}

.drive-btn:disabled[b-8qer66baux] {
    opacity: 0.55;
    cursor: not-allowed;
}

.drive-btn--primary[b-8qer66baux] {
    background: var(--accent);
    color: var(--surface);
}

.drive-btn--primary:not(:disabled):hover[b-8qer66baux] {
    opacity: 0.88;
}

.drive-btn--secondary[b-8qer66baux] {
    background: var(--bg);
    color: var(--ink);
    border: 1px solid var(--border);
}

.drive-btn--secondary:not(:disabled):hover[b-8qer66baux] {
    background: var(--surface-alt);
    border-color: var(--border-strong);
}

.drive-btn--danger[b-8qer66baux] {
    background: var(--exercice-soft);
    color: var(--exercice);
    border: 1px solid var(--exercice-border);
}

.drive-btn--danger:not(:disabled):hover[b-8qer66baux] {
    opacity: 0.88;
}

/* ── Confirmation inline ─────────────────────────────────────────────────────── */
.drive-confirm[b-8qer66baux] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    background: var(--exercice-soft);
    border: 1px solid var(--exercice-border);
    border-radius: var(--radius-md);
}

.drive-confirm__text[b-8qer66baux] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ink);
}

.drive-confirm__btns[b-8qer66baux] {
    display: flex;
    gap: var(--space-2);
    flex-wrap: wrap;
}

/* ── Info banner ─────────────────────────────────────────────────────────────── */
.drive-info-banner[b-8qer66baux] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-5);
    background: var(--notion-soft);
    border: 1px solid var(--notion-border);
    border-radius: var(--radius-lg);
    color: var(--ink-muted);
}

.drive-info-banner svg[b-8qer66baux] {
    flex-shrink: 0;
    color: var(--notion);
    margin-top: 2px;
}

.drive-info-banner p[b-8qer66baux] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    line-height: 1.55;
    margin: 0;
}

/* ── Toast ───────────────────────────────────────────────────────────────────── */
.drive-toast[b-8qer66baux] {
    position: fixed;
    top: var(--space-5);
    right: var(--space-5);
    z-index: 1000;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-lg);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 500;
    box-shadow: var(--shadow-elev);
    max-width: 380px;
    animation: drive-toast-in-b-8qer66baux var(--transition-fast) ease;
}

@keyframes drive-toast-in-b-8qer66baux {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}

.drive-toast--success[b-8qer66baux] {
    background: var(--surface);
    border: 1px solid var(--libre-border);
    color: var(--ink);
}

.drive-toast--success svg[b-8qer66baux] {
    color: var(--libre);
    flex-shrink: 0;
}

.drive-toast--error[b-8qer66baux] {
    background: var(--surface);
    border: 1px solid var(--exercice-border);
    color: var(--ink);
}

.drive-toast--error svg[b-8qer66baux] {
    color: var(--exercice);
    flex-shrink: 0;
}

.drive-toast__close[b-8qer66baux] {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--ink-muted);
    padding: 2px;
    margin-left: auto;
    display: flex;
    align-items: center;
    min-height: 44px;
    min-width: 44px;
    justify-content: center;
    border-radius: var(--radius-md);
}

.drive-toast__close:hover[b-8qer66baux] {
    background: var(--bg);
}
/* _content/HémiolePro.Web/Components/Shared/HpAIButton.razor.rz.scp.css */
/* HpAIButton.razor.css — Styles scopés du bouton IA contextuel */

.hp-ai-btn-wrap[b-rn7289dwg9] {
    display: inline-flex;
    flex-direction: column;
    gap: var(--space-1-5);
}

/* Bouton outline accent */
.hp-ai-btn[b-rn7289dwg9] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: var(--space-1-5);
    padding: var(--space-1-5) var(--space-3);
    height: 32px;
    min-height: 32px;
    border: 1.5px solid var(--accent-border);
    border-radius: var(--radius-pill);
    color: var(--accent);
    font-family: var(--font-body);
    font-size: var(--text-xs);
    font-weight: 600;
    white-space: nowrap;
    background: var(--accent-soft);
    transition: background var(--transition-fast), border-color var(--transition-fast),
                opacity var(--transition-fast);
    box-sizing: border-box;
}

.hp-ai-btn:hover:not(:disabled)[b-rn7289dwg9] {
    background: var(--accent-soft); /* fallback navigateurs sans color-mix */
    background: color-mix(in srgb, var(--accent-soft) 60%, var(--surface));
    border-color: var(--accent);
}

.hp-ai-btn:focus-visible[b-rn7289dwg9] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.hp-ai-btn:disabled[b-rn7289dwg9] {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Icône étincelle */
.hp-ai-btn__icon[b-rn7289dwg9] {
    flex-shrink: 0;
}

/* Spinner inline */
.hp-ai-btn__spinner[b-rn7289dwg9] {
    width: 13px;
    height: 13px;
    border: 1.5px solid var(--accent-border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: hp-ai-spin-b-rn7289dwg9 600ms linear infinite;
    flex-shrink: 0;
}

@keyframes hp-ai-spin-b-rn7289dwg9 {
    to { transform: rotate(360deg); }
}

/* Message d'erreur inline */
.hp-ai-btn__error[b-rn7289dwg9] {
    font-size: var(--text-xs);
    color: var(--danger);
    line-height: 1.4;
}
/* _content/HémiolePro.Web/Components/Shared/HpAvatar.razor.rz.scp.css */
/* HpAvatar.razor.css */

.hp-avatar[b-959eitot5u] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--accent), #3a1660);
    color: #fff;
    font-family: var(--font-body);
    font-weight: 700;
    flex-shrink: 0;
    overflow: hidden;
    user-select: none;
}

.hp-avatar__photo[b-959eitot5u] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.hp-avatar__initials[b-959eitot5u] {
    line-height: 1;
    letter-spacing: 0.02em;
}

/* Sizes */
.hp-avatar--sm[b-959eitot5u] {
    width: 24px;
    height: 24px;
    font-size: 10px;
}

.hp-avatar--md[b-959eitot5u] {
    width: 32px;
    height: 32px;
    font-size: 12px;
}

.hp-avatar--lg[b-959eitot5u] {
    width: 48px;
    height: 48px;
    font-size: 17px;
}

.hp-avatar--xl[b-959eitot5u] {
    width: 64px;
    height: 64px;
    font-size: var(--text-xl);
}
/* _content/HémiolePro.Web/Components/Shared/HpBulletinStatutBadge.razor.rz.scp.css */
/* HpBulletinStatutBadge.razor.css — styles scopés badge statut bulletin */
/* Ce composant est un wrapper de HpStatusPill — aucun style spécifique requis.
   La logique de couleur est intégralement gérée par HpStatusPill.razor.css. */
/* _content/HémiolePro.Web/Components/Shared/HpConfirmDialog.razor.rz.scp.css */
/* HpConfirmDialog.razor.css — styles scopés modale de confirmation */
/* Structure : hp-modal-overlay + hp-modal définis dans app.css (globals)
   Seuls les styles spécifiques à la confirmation sont scopés ici. */

/* ── Icône de variante (danger / default) ── */
.hp-confirm__icon[b-jj4s6krzup] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-md);
    flex-shrink: 0;
}

.hp-confirm__icon--danger[b-jj4s6krzup] {
    color: var(--danger);
    background: var(--danger-soft);
}

.hp-confirm__icon--default[b-jj4s6krzup] {
    color: var(--accent);
    background: var(--accent-soft);
}
/* _content/HémiolePro.Web/Components/Shared/HpDocCard.razor.rz.scp.css */
/* HpDocCard.razor.css — styles scopés carte document GED */

.hp-doc-card[b-8dbshptco1] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    transition: box-shadow var(--transition-fast), border-color var(--transition-fast);
}

.hp-doc-card:hover[b-8dbshptco1] {
    box-shadow: var(--shadow-elev);
    border-color: var(--border-strong);
}

.hp-doc-card--revoque[b-8dbshptco1] {
    border-color: var(--danger-border);
    opacity: 0.75;
}

.hp-doc-card__warning[b-8dbshptco1] {
    color: var(--warning);
    flex-shrink: 0;
    width: 18px;
    height: 18px;
}

.hp-doc-card__provider[b-8dbshptco1] {
    color: var(--ink-muted);
    flex-shrink: 0;
    width: 20px;
    height: 20px;
}

.hp-doc-card__nom[b-8dbshptco1] {
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ink);
    flex: 1;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    min-width: 0;
}

.hp-doc-card__extension[b-8dbshptco1] {
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    background: var(--surface-alt);
    color: var(--ink-muted);
    border-radius: var(--radius-pill);
    padding: 2px var(--space-2);
    flex-shrink: 0;
    text-transform: uppercase;
    border: 1px solid var(--border);
}

.hp-doc-card__footer[b-8dbshptco1] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-left: auto;
    flex-shrink: 0;
}
/* _content/HémiolePro.Web/Components/Shared/HpDocRow.razor.rz.scp.css */
/* HpDocRow.razor.css — Ligne compacte document */

.hp-doc-row[b-nodqn6371f] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    background: var(--surface);
    border: 1px solid var(--border);
    min-height: 44px;
    transition: background var(--transition-fast), border-color var(--transition-fast);
}

.hp-doc-row:hover[b-nodqn6371f] {
    background: var(--surface-alt);
    border-color: var(--border-strong);
}

.hp-doc-row__icon[b-nodqn6371f] {
    color: var(--accent);
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.hp-doc-row__info[b-nodqn6371f] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.hp-doc-row__name[b-nodqn6371f] {
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hp-doc-row__meta[b-nodqn6371f] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
}

.hp-doc-row__actions[b-nodqn6371f] {
    display: flex;
    gap: var(--space-2);
    flex-shrink: 0;
}
/* _content/HémiolePro.Web/Components/Shared/HpKpiTile.razor.rz.scp.css */
/* HpKpiTile.razor.css — Tuile KPI */

.hp-kpi-tile[b-v86m8g1kiu] {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-5) var(--space-6);
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
    transition: box-shadow var(--transition-fast);
}

.hp-kpi-tile__icon[b-v86m8g1kiu] {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--accent-soft);
    border-radius: var(--radius-md);
    color: var(--accent);
    flex-shrink: 0;
}

.hp-kpi-tile__body[b-v86m8g1kiu] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
}

.hp-kpi-tile__value[b-v86m8g1kiu] {
    font-family: var(--font-mono);
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--ink);
    line-height: 1.1;
}

.hp-kpi-tile__label[b-v86m8g1kiu] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    font-weight: 500;
}

.hp-kpi-tile__sub[b-v86m8g1kiu] {
    font-size: var(--text-xs);
    color: var(--ink-subtle);
}

.hp-kpi-tile--up .hp-kpi-tile__value[b-v86m8g1kiu] { color: var(--success); }
.hp-kpi-tile--down .hp-kpi-tile__value[b-v86m8g1kiu] { color: var(--danger); }
/* _content/HémiolePro.Web/Components/Shared/HpNoteInput.razor.rz.scp.css */
/* HpNoteInput.razor.css — styles scopés champ saisie note */

/* Layout principal : deux champs côte à côte avec séparateur "/" */
.hp-note-input__fields[b-dfphdxhj72] {
    display: flex;
    align-items: flex-end;
    gap: var(--space-2);
}

/* Champ note plus large que le champ max */
.hp-note-input__field[b-dfphdxhj72] {
    flex: 1;
}

/* Séparateur "/" entre note et note max */
.hp-note-input__sep[b-dfphdxhj72] {
    font-size: var(--text-lg);
    font-family: var(--font-mono);
    color: var(--ink-subtle);
    line-height: 1;
    padding-bottom: 10px;
    flex-shrink: 0;
}

/* Champ note : largeur identique à l'entrée max */
.hp-note-input__note[b-dfphdxhj72],
.hp-note-input__max[b-dfphdxhj72] {
    font-family: var(--font-mono);
    text-align: right;
}

/* État erreur sur le champ note */
.hp-field__input--error[b-dfphdxhj72] {
    border-color: var(--danger);
    box-shadow: 0 0 0 3px var(--danger-soft);
}
/* _content/HémiolePro.Web/Components/Shared/HpPlanningGrille.razor.rz.scp.css */
/* HpPlanningGrille.razor.css — styles scopés composant grille planning */

/* ── Bandeau objectifs ── */
.hp-grille__objectifs-bandeau[b-x3zdarttof] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-1);
    margin-bottom: var(--space-3);
}

.hp-grille__objectif-chip[b-x3zdarttof] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    border-radius: 9999px;
    font-size: var(--text-xs);
    font-weight: 500;
    border: 1px solid transparent;
}

.hp-grille__objectif-chip--atteint[b-x3zdarttof] {
    background: var(--success-subtle);
    color: var(--success);
    border-color: var(--success-border);
}

.hp-grille__objectif-chip--encours[b-x3zdarttof] {
    background: var(--warning-subtle);
    color: var(--warning);
    border-color: var(--warning-border);
}

.hp-grille__objectif-chip-dot[b-x3zdarttof] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
    border: 1px solid rgba(0,0,0,0.1);
}

/* ── Navigation semaine ── */
.hp-grille__nav[b-x3zdarttof] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
    flex-wrap: wrap;
}

.hp-grille__nav-btn[b-x3zdarttof] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: var(--radius-md);
    background: var(--surface);
    border: 1px solid var(--border-strong);
    color: var(--ink);
    transition: background var(--transition), border-color var(--transition);
    flex-shrink: 0;
}

.hp-grille__nav-btn:hover[b-x3zdarttof] {
    background: var(--surface-alt);
    border-color: var(--accent);
    color: var(--accent);
}

.hp-grille__nav-btn:focus-visible[b-x3zdarttof] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.hp-grille__semaine-label[b-x3zdarttof] {
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 600;
    color: var(--ink);
    flex: 1;
    text-align: center;
}

.hp-grille__nav-actions[b-x3zdarttof] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-left: auto;
}

/* ── Chargement / erreur ── */
.hp-grille__loading[b-x3zdarttof] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    color: var(--ink-muted);
    font-size: var(--text-sm);
    padding: var(--space-8) 0;
}

.hp-grille__spinner[b-x3zdarttof] {
    width: 20px;
    height: 20px;
    border: 2px solid var(--border-strong);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: grille-spin-b-x3zdarttof 700ms linear infinite;
    flex-shrink: 0;
}

@keyframes grille-spin-b-x3zdarttof {
    to { transform: rotate(360deg); }
}

.hp-grille__error[b-x3zdarttof] {
    padding: var(--space-4);
    background: var(--danger-soft);
    color: var(--danger);
    border: 1px solid var(--danger-border);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
}

/* ── Bandeau vacances ── */
.hp-grille__vacances-banner[b-x3zdarttof] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2-5) var(--space-4);
    background: color-mix(in srgb, var(--libre) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--libre) 30%, transparent);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    color: var(--libre);
    font-weight: 500;
    margin-bottom: var(--space-3);
}

/* ── Grille desktop ── */
/* Le wrapper visuel (border, radius, background) — PAS d'overflow pour ne pas clipper les tooltips */
.hp-grille__table-wrapper[b-x3zdarttof] {
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--surface);
    /* overflow visible : les tooltips position:absolute peuvent dépasser */
}

/* Couche de scroll séparée — ne définit que l'overflow horizontal */
.hp-grille__table-scroll[b-x3zdarttof] {
    overflow-x: auto;
    overflow-y: visible;
    border-radius: calc(var(--radius-lg) - 1px);
}

.hp-grille__table[b-x3zdarttof] {
    min-width: 700px;
    width: 100%;
}

/* En-têtes colonnes */
.hp-grille__header[b-x3zdarttof] {
    display: grid;
    grid-template-columns: 60px repeat(6, 1fr);
    border-bottom: 1px solid var(--border);
    background: var(--surface-alt);
}

.hp-grille__time-gutter[b-x3zdarttof] {
    border-right: 1px solid var(--border);
    min-height: var(--space-12);
}

.hp-grille__col-header[b-x3zdarttof] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--space-3) var(--space-2);
    border-right: 1px solid var(--border);
    min-height: var(--space-12);
    gap: 2px;
}

.hp-grille__col-header:last-child[b-x3zdarttof] {
    border-right: none;
}

.hp-grille__col-header--vacances[b-x3zdarttof] {
    background: color-mix(in srgb, var(--libre) 8%, transparent);
}

.hp-grille__col-jour[b-x3zdarttof] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.hp-grille__col-date[b-x3zdarttof] {
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    color: var(--ink-muted);
}

.hp-grille__col-vacances-label[b-x3zdarttof] {
    font-size: var(--text-2xs);
    background: var(--libre);
    color: var(--surface);
    border-radius: var(--radius-pill);
    padding: 0 var(--space-1-5);
    font-weight: 700;
}

/* Corps de grille */
.hp-grille__body[b-x3zdarttof] {
    display: grid;
    grid-template-columns: 60px repeat(6, 1fr);
    position: relative;
}

.hp-grille__time-col[b-x3zdarttof] {
    border-right: 1px solid var(--border);
    position: relative;
    min-height: 840px; /* 14h × 60px/h */
}

.hp-grille__time-cell[b-x3zdarttof] {
    position: absolute;
    left: 0;
    right: 0;
    padding: 0 var(--space-2);
    font-family: var(--font-mono);
    font-size: var(--text-2xs);
    color: var(--ink-subtle);
    border-top: 1px solid var(--border);
    line-height: 1;
    padding-top: 4px;
    transform: translateY(0);
    height: 60px;
}

/* Colonnes jours */
.hp-grille__col[b-x3zdarttof] {
    position: relative;
    border-right: 1px solid var(--border);
    /* overflow visible pour laisser les tooltips natifs dépasser */
    overflow: visible;
    /* Lignes horaires en fond via dégradé */
    background-image: repeating-linear-gradient(
        to bottom,
        transparent,
        transparent 59px,
        var(--border) 59px,
        var(--border) 60px
    );
}

.hp-grille__col:last-child[b-x3zdarttof] {
    border-right: none;
}

.hp-grille__col--vacances[b-x3zdarttof] {
    background-color: color-mix(in srgb, var(--libre) 5%, transparent);
}

.hp-grille__vacances-overlay[b-x3zdarttof] {
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        -45deg,
        transparent,
        transparent 6px,
        color-mix(in srgb, var(--libre) 10%, transparent) 6px,
        color-mix(in srgb, var(--libre) 10%, transparent) 12px
    );
    pointer-events: none;
}

/* Blocs créneaux */
.hp-grille__creneau[b-x3zdarttof] {
    all: unset;
    position: absolute;
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--creneau-color, var(--accent)) 18%, var(--surface));
    border-left: 3px solid var(--creneau-color, var(--accent));
    padding: var(--space-1) var(--space-2);
    cursor: pointer;
    overflow: visible; /* nécessaire pour le tooltip */
    transition: box-shadow var(--transition), opacity var(--transition), z-index 0s;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 1px;
    /* clip interne du contenu texte — le tooltip dépasse via position:absolute */
}

/* clip le contenu texte mais pas le tooltip */
.hp-grille__creneau > :not(.hp-grille__tooltip)[b-x3zdarttof] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}

.hp-grille__creneau:hover[b-x3zdarttof],
.hp-grille__creneau:focus-within[b-x3zdarttof] {
    box-shadow: 0 2px 12px rgba(0,0,0,0.18);
    z-index: 10;
}

.hp-grille__creneau:focus-visible[b-x3zdarttof] {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
    z-index: 11;
}

/* ── Tooltip au survol (positionné via JS en position:fixed) ── */
.hp-grille__tooltip[b-x3zdarttof] {
    display: none; /* affiché/masqué par planning.js */
    position: fixed; /* position injectée par JS — échappe aux overflow containers */
    min-width: 200px;
    max-width: 280px;
    background: var(--surface);
    color: var(--ink);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-md);
    padding: var(--space-2-5) var(--space-3);
    z-index: 9999;
    pointer-events: none;
    box-shadow: var(--shadow-modal);
}

/* Flèche vers le bas (tooltip est AU-DESSUS du créneau) */
.hp-grille__tooltip--arrow-bottom[b-x3zdarttof]::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 16px;
    border: 5px solid transparent;
    border-top-color: var(--border-strong);
}

/* Flèche vers le haut (tooltip est EN-DESSOUS du créneau) */
.hp-grille__tooltip--arrow-top[b-x3zdarttof]::before {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 16px;
    border: 5px solid transparent;
    border-bottom-color: var(--border-strong);
}

.hp-grille__tooltip-header[b-x3zdarttof] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: var(--space-2);
    padding-bottom: var(--space-2);
    border-bottom: 1px solid var(--border);
}

.hp-grille__tooltip-groupe[b-x3zdarttof] {
    font-size: var(--text-sm);
    font-weight: 700;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hp-grille__tooltip-heure[b-x3zdarttof] {
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    color: var(--ink-muted);
}

.hp-grille__tooltip-body[b-x3zdarttof] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1-5);
}

.hp-grille__tooltip-row[b-x3zdarttof] {
    display: flex;
    align-items: center;
    gap: var(--space-1-5);
    font-size: var(--text-xs);
    color: var(--ink-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hp-grille__tooltip-row svg[b-x3zdarttof] {
    flex-shrink: 0;
    opacity: 0.6;
}

.hp-grille__tooltip-row--danger[b-x3zdarttof] {
    color: var(--danger);
}

.hp-grille__tooltip-row--warning[b-x3zdarttof] {
    color: var(--warning);
}

/* Mode compact : créneau trop court (<36px) */
.hp-grille__creneau--annule[b-x3zdarttof] {
    opacity: 0.5;
    background: var(--surface-alt);
    border-left-color: var(--border-strong);
}

.hp-grille__creneau--compact[b-x3zdarttof] {
    padding: 2px var(--space-1-5);
    justify-content: center;
}

.hp-grille__creneau-heure-compact[b-x3zdarttof] {
    font-family: var(--font-mono);
    font-size: var(--text-2xs);
    color: var(--ink-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hp-grille__creneau-titre[b-x3zdarttof] {
    font-size: var(--text-xs);
    font-weight: 600;
    color: var(--ink);
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hp-grille__creneau--annule .hp-grille__creneau-titre[b-x3zdarttof] {
    text-decoration: line-through;
    color: var(--ink-muted);
}

.hp-grille__creneau-sous[b-x3zdarttof] {
    font-size: var(--text-2xs);
    color: var(--ink-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hp-grille__creneau-salle[b-x3zdarttof] {
    font-size: var(--text-2xs);
    color: var(--ink-subtle);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hp-grille__creneau-badge[b-x3zdarttof] {
    font-size: var(--text-2xs);
    font-weight: 700;
    border-radius: var(--radius-sm);
    padding: 1px 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hp-grille__creneau-badge--remplacement[b-x3zdarttof] {
    background: var(--accent-soft);
    background: color-mix(in srgb, var(--warning) 15%, transparent);
    color: var(--warning);
}

.hp-grille__creneau-badge--annule[b-x3zdarttof] {
    background: var(--danger-soft);
    color: var(--danger);
}

/* ── Vue mobile ── */
.hp-grille__mobile-list[b-x3zdarttof] {
    display: none;
    flex-direction: column;
    gap: var(--space-4);
}

@media (max-width: 640px) {
    .hp-grille__table-wrapper[b-x3zdarttof] { display: none; }
    .hp-grille__mobile-list[b-x3zdarttof] { display: flex; }
    .hp-grille__semaine-label[b-x3zdarttof] { font-size: var(--text-sm); }
}

.hp-grille__mobile-jour[b-x3zdarttof] {
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.hp-grille__mobile-jour-header[b-x3zdarttof] {
    background: var(--surface-alt);
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--border);
}

.hp-grille__mobile-jour-label[b-x3zdarttof] {
    font-size: var(--text-sm);
    font-weight: 700;
    color: var(--ink);
    text-transform: capitalize;
}

.hp-grille__mobile-vide[b-x3zdarttof] {
    font-size: var(--text-sm);
    color: var(--ink-muted);
    padding: var(--space-4);
    text-align: center;
    margin: 0;
}

.hp-grille__mobile-creneau[b-x3zdarttof] {
    all: unset;
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--border);
    cursor: pointer;
    width: 100%;
    box-sizing: border-box;
    min-height: 56px;
    border-left: 4px solid var(--creneau-color, var(--accent));
    transition: background var(--transition);
}

.hp-grille__mobile-creneau:last-child[b-x3zdarttof] {
    border-bottom: none;
}

.hp-grille__mobile-creneau:hover[b-x3zdarttof] {
    background: var(--surface-alt);
}

.hp-grille__mobile-creneau:focus-visible[b-x3zdarttof] {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}

.hp-grille__mobile-creneau--annule[b-x3zdarttof] {
    opacity: 0.5;
}

.hp-grille__mobile-creneau-heure[b-x3zdarttof] {
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    color: var(--ink-muted);
    white-space: nowrap;
    flex-shrink: 0;
    width: 80px;
}

.hp-grille__mobile-creneau-info[b-x3zdarttof] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    overflow: hidden;
}

.hp-grille__mobile-creneau-titre[b-x3zdarttof] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hp-grille__mobile-creneau-sous[b-x3zdarttof] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Panneau détail ── */
.hp-grille__detail-overlay[b-x3zdarttof] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    z-index: 200;
    cursor: pointer;
}

.hp-grille__detail-panel[b-x3zdarttof] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(380px, 100vw);
    background: var(--surface);
    border-left: 1px solid var(--border);
    z-index: 201;
    display: flex;
    flex-direction: column;
    box-shadow: var(--shadow-lg);
    animation: grille-slide-in-b-x3zdarttof 220ms ease;
}

@keyframes grille-slide-in-b-x3zdarttof {
    from { transform: translateX(100%); opacity: 0; }
    to   { transform: translateX(0); opacity: 1; }
}

.hp-grille__detail-header[b-x3zdarttof] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-5) var(--space-6);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.hp-grille__detail-titre[b-x3zdarttof] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--ink);
    margin: 0;
}

.hp-grille__detail-close[b-x3zdarttof] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: var(--radius-md);
    color: var(--ink-muted);
    transition: background var(--transition);
}

.hp-grille__detail-close:hover[b-x3zdarttof] {
    background: var(--surface-alt);
    color: var(--ink);
}

.hp-grille__detail-close:focus-visible[b-x3zdarttof] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.hp-grille__detail-body[b-x3zdarttof] {
    flex: 1;
    overflow-y: auto;
    padding: var(--space-5) var(--space-6);
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.hp-grille__detail-row[b-x3zdarttof] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.hp-grille__detail-row dt[b-x3zdarttof] {
    font-size: var(--text-xs);
    font-weight: 700;
    color: var(--ink-subtle);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.hp-grille__detail-row dd[b-x3zdarttof] {
    font-size: var(--text-sm);
    color: var(--ink);
    margin: 0;
    font-weight: 500;
}

.hp-grille__detail-mono dd[b-x3zdarttof] {
    font-family: var(--font-mono);
}

.hp-grille__detail-row--danger dt[b-x3zdarttof],
.hp-grille__detail-row--danger dd[b-x3zdarttof] { color: var(--danger); }

.hp-grille__detail-row--warning dt[b-x3zdarttof],
.hp-grille__detail-row--warning dd[b-x3zdarttof] { color: var(--warning); }

.hp-grille__detail-footer[b-x3zdarttof] {
    padding: var(--space-4) var(--space-6);
    border-top: 1px solid var(--border);
    flex-shrink: 0;
    display: flex;
    gap: var(--space-3);
}

/* ── Section élèves inscrits ── */
.hp-grille__detail-eleves[b-x3zdarttof] {
    border-top: 1px solid var(--border);
    padding: var(--space-4) var(--space-6) var(--space-5);
}

.hp-grille__detail-eleves-header[b-x3zdarttof] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-3);
}

.hp-grille__detail-section-title[b-x3zdarttof] {
    font-size: var(--text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--ink-subtle);
}

.hp-grille__detail-eleves-link[b-x3zdarttof] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--text-xs);
    color: var(--accent);
    text-decoration: none;
    font-weight: 600;
}
.hp-grille__detail-eleves-link:hover[b-x3zdarttof] { text-decoration: underline; }

.hp-grille__detail-eleves-loading[b-x3zdarttof] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--ink-muted);
    padding: var(--space-2) 0;
}

.hp-grille__detail-spinner[b-x3zdarttof] {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid var(--border-strong);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: grille-spin-b-x3zdarttof 0.7s linear infinite;
    flex-shrink: 0;
}

@keyframes grille-spin-b-x3zdarttof { to { transform: rotate(360deg); } }

.hp-grille__detail-eleves-empty[b-x3zdarttof] {
    font-size: var(--text-sm);
    color: var(--ink-subtle);
    padding: var(--space-2) 0;
    font-style: italic;
}

.hp-grille__detail-eleves-list[b-x3zdarttof] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.hp-grille__detail-eleve[b-x3zdarttof] {
    display: flex;
    align-items: center;
    gap: var(--space-2-5);
    padding: var(--space-2) var(--space-3);
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}

.hp-grille__detail-eleve-avatar[b-x3zdarttof] {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--accent-soft);
    border: 1px solid var(--accent-border);
    color: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--text-xs);
    font-weight: 700;
    flex-shrink: 0;
}

.hp-grille__detail-eleve-info[b-x3zdarttof] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.hp-grille__detail-eleve-nom[b-x3zdarttof] {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hp-grille__detail-eleve-niveau[b-x3zdarttof] {
    font-size: var(--text-xs);
    color: var(--ink-muted);
}
/* _content/HémiolePro.Web/Components/Shared/HpStatusPill.razor.rz.scp.css */
/* HpStatusPill.razor.css */

.hp-pill[b-bmnd6owdw2] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px;
    font-size: var(--text-xs);
    font-weight: 600;
    border-radius: var(--radius-pill);
    white-space: nowrap;
    border: 1px solid transparent;
    line-height: 1.4;
}

.hp-pill__dot[b-bmnd6owdw2] {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    flex-shrink: 0;
}

/* Actif / succès */
.hp-pill--active[b-bmnd6owdw2] {
    color: var(--libre);
    background: var(--libre-soft);
    border-color: var(--libre-border);
}
.hp-pill--active .hp-pill__dot[b-bmnd6owdw2] { background: var(--libre); }

/* Soumis / warning */
.hp-pill--paused[b-bmnd6owdw2] {
    color: var(--warning);
    background: var(--warning-soft);
    border-color: var(--warning-border);
}
.hp-pill--paused .hp-pill__dot[b-bmnd6owdw2] { background: var(--warning); }

/* Validé / info — token --info indépendant (pas --notion réservé aux tags) */
.hp-pill--info[b-bmnd6owdw2] {
    color: var(--info);
    background: var(--info-soft);
    border-color: var(--info-border);
}
.hp-pill--info .hp-pill__dot[b-bmnd6owdw2] { background: var(--info); }

/* Suspendu / danger */
.hp-pill--danger[b-bmnd6owdw2] {
    color: var(--danger);
    background: var(--danger-soft);
    border-color: var(--danger-border);
}
.hp-pill--danger .hp-pill__dot[b-bmnd6owdw2] { background: var(--danger); }

/* Diffusé / accent */
.hp-pill--accent[b-bmnd6owdw2] {
    color: var(--accent);
    background: var(--accent-soft);
    border-color: var(--accent-border);
}
.hp-pill--accent .hp-pill__dot[b-bmnd6owdw2] { background: var(--accent); }

/* Brouillon / neutral */
.hp-pill--neutral[b-bmnd6owdw2] {
    color: var(--ink-muted);
    background: var(--surface-alt);
    border-color: var(--border);
}
.hp-pill--neutral .hp-pill__dot[b-bmnd6owdw2] { background: var(--ink-subtle); }
/* _content/HémiolePro.Web/Components/Shared/HpSwitch.razor.rz.scp.css */
/* ── HpSwitch — Interrupteur on/off dans le thème HemiolePro ───────────────── */

.hp-switch[b-f8ijosfo1f] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2-5);
    cursor: pointer;
    user-select: none;
    vertical-align: middle;
    min-height: 44px;
}

/* Masque la checkbox native */
.hp-switch__input[b-f8ijosfo1f] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Piste */
.hp-switch__track[b-f8ijosfo1f] {
    position: relative;
    display: inline-block;
    width: 40px;
    height: 22px;
    border-radius: 11px;
    background-color: var(--border-strong);
    transition: background-color 150ms ease;
    flex-shrink: 0;
}

/* Poignée */
.hp-switch__thumb[b-f8ijosfo1f] {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: var(--surface);
    box-shadow: var(--shadow-card);
    transition: transform 150ms ease;
}

/* État ON — checkbox cochée */
.hp-switch__input:checked + .hp-switch__track[b-f8ijosfo1f] {
    background-color: var(--accent);
}

.hp-switch__input:checked + .hp-switch__track .hp-switch__thumb[b-f8ijosfo1f] {
    transform: translateX(18px);
}

/* Focus visible */
.hp-switch__input:focus-visible + .hp-switch__track[b-f8ijosfo1f] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

/* Désactivé */
.hp-switch__input:disabled + .hp-switch__track[b-f8ijosfo1f] {
    opacity: 0.45;
    cursor: not-allowed;
}

.hp-switch:has(.hp-switch__input:disabled)[b-f8ijosfo1f] {
    cursor: not-allowed;
}

/* Label */
.hp-switch__label[b-f8ijosfo1f] {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--ink);
    line-height: 1.4;
}

/* ── Dark mode ──────────────────────────────────────────────────────────────── */
[data-theme="dark"] .hp-switch__input:checked + .hp-switch__track[b-f8ijosfo1f] {
    background-color: var(--accent);
}

[data-theme="dark"] .hp-switch__thumb[b-f8ijosfo1f] {
    background-color: var(--surface);
}
/* _content/HémiolePro.Web/Components/Shared/HpTabs.razor.rz.scp.css */
/* HpTabs.razor.css — styles scopés pour le composant onglets */

.hp-tabs[b-gu0c5i1glv] {
    display: flex;
    gap: var(--space-1);
    border-bottom: 1px solid var(--border);
    padding: 0 var(--space-1);
    overflow-x: auto;
    scrollbar-width: none;
}

.hp-tabs[b-gu0c5i1glv]::-webkit-scrollbar {
    display: none;
}

.hp-tabs__btn[b-gu0c5i1glv] {
    all: unset;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--ink-muted);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-sm) var(--radius-sm) 0 0;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    white-space: nowrap;
    min-height: 44px;
    transition: color var(--transition), border-color var(--transition), background var(--transition);
}

.hp-tabs__btn:hover[b-gu0c5i1glv] {
    color: var(--ink);
    background: var(--accent-soft);
}

.hp-tabs__btn:focus-visible[b-gu0c5i1glv] {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}

.hp-tabs__btn--active[b-gu0c5i1glv] {
    color: var(--accent);
    border-bottom-color: var(--accent);
    font-weight: 600;
}

.hp-tabs__icon[b-gu0c5i1glv] {
    display: flex;
    align-items: center;
    opacity: 1;
}

.hp-tabs__btn--active .hp-tabs__icon[b-gu0c5i1glv] {
    opacity: 1;
}

.hp-tabs__badge[b-gu0c5i1glv] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 var(--space-1-5);
    border-radius: var(--radius-pill);
    background: var(--accent-soft);
    color: var(--accent);
    font-size: var(--text-2xs);
    font-weight: 700;
    font-family: var(--font-mono);
}

.hp-tabs__btn--active .hp-tabs__badge[b-gu0c5i1glv] {
    background: var(--accent);
    color: #fff;
}
/* _content/HémiolePro.Web/Components/Shared/HpTagChip.razor.rz.scp.css */
/* HpTagChip.razor.css */

.hp-tag-chip[b-879gc1kazp] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px;
    font-size: var(--text-xs);
    font-weight: 500;
    border-radius: var(--radius-pill);
    white-space: nowrap;
    border: 1px solid transparent;
    line-height: 1.4;
}

/* Taille réduite */
.hp-tag-chip--sm[b-879gc1kazp] {
    font-size: var(--text-2xs);
    padding: 2px 7px;
}

.hp-tag-chip__dot[b-879gc1kazp] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
}

/* ── Notion (bleu) ── */
.hp-tag-chip--notion[b-879gc1kazp] {
    color: var(--notion);
    background: var(--notion-soft);
    border-color: var(--notion-border);
}

.hp-tag-chip--notion .hp-tag-chip__dot[b-879gc1kazp] {
    background: var(--notion);
}

/* ── Exercice (corail) ── */
.hp-tag-chip--exercice[b-879gc1kazp] {
    color: var(--exercice);
    background: var(--exercice-soft);
    border-color: var(--exercice-border);
}

.hp-tag-chip--exercice .hp-tag-chip__dot[b-879gc1kazp] {
    background: var(--exercice);
}

/* ── Libre (vert) ── */
.hp-tag-chip--libre[b-879gc1kazp] {
    color: var(--libre);
    background: var(--libre-soft);
    border-color: var(--libre-border);
}

.hp-tag-chip--libre .hp-tag-chip__dot[b-879gc1kazp] {
    background: var(--libre);
}

/* ── Custom ── */
.hp-tag-chip--custom[b-879gc1kazp] {
    color: var(--chip-color, var(--ink-muted));
    background: var(--chip-bg, var(--surface-alt));
    border-color: var(--chip-border, var(--border));
}

.hp-tag-chip--custom .hp-tag-chip__dot[b-879gc1kazp] {
    background: var(--chip-color, var(--ink-subtle));
}
