/* ==========================================================================
   OSA Catalogue 2026 — Thème « Glass » (V2.6)
   Mode sombre immersif, verre (backdrop-blur), accent cyan électrique réservé
   aux éléments clés, titres en serif éditoriale (Playfair Display), données en
   Inter. Emblème augustinien (cœur enflammé transpercé sur le Livre) en filigrane.
   Activé par la classe body.theme-glass sur TOUTES les pages (admin et publiques).
   Toutes les règles sont préfixées par body.theme-glass pour primer sur main.css,
   components.css, admin-modern.css et les styles inline de certains templates.
   ========================================================================== */

body.theme-glass {
    /* Tokens du thème */
    --g-bg: #09090B;
    --g-glass: rgba(255, 255, 255, .04);
    --g-glass-2: rgba(255, 255, 255, .065);
    --g-line: rgba(255, 255, 255, .07);
    --g-line-2: rgba(255, 255, 255, .12);
    --g-text: #F4F4F5;
    --g-text-2: #A1A1AA;
    --g-text-3: #71717A;
    --g-accent: #22D3EE;
    --g-accent-2: #06B6D4;
    --g-accent-soft: rgba(34, 211, 238, .35);
    --g-accent-bg: rgba(34, 211, 238, .10);
    --g-ok: #34D399;
    --g-warn: #FBBF24;
    --g-danger: #F87171;
    --g-r: 14px;
    --g-r-lg: 16px;
    --g-shadow: 0 24px 60px -24px rgba(0, 0, 0, .75), 0 1px 0 rgba(255, 255, 255, .035) inset;
    --g-glow: 0 0 0 1px rgba(34, 211, 238, .12), 0 22px 44px -20px rgba(34, 211, 238, .45);
    --font-display: "Playfair Display", Georgia, "Times New Roman", serif;
    --font-ui: Inter, "Segoe UI", system-ui, sans-serif;

    /* Re-mappage des tokens OSA utilisés par components.css / main.css */
    --osa-surface: var(--g-glass);
    --osa-surface-subtle: var(--g-glass-2);
    --osa-text: var(--g-text);
    --osa-muted: var(--g-text-2);
    --osa-border: var(--g-line);
    --osa-navy: var(--g-text);
    --osa-navy-soft: var(--g-glass-2);
    --osa-focus: var(--g-accent);
    --osa-success: var(--g-ok);
    --osa-success-soft: rgba(52, 211, 153, .12);
    --osa-warning: var(--g-warn);
    --osa-warning-soft: rgba(251, 191, 36, .12);
    --osa-danger: var(--g-danger);
    --osa-danger-soft: rgba(248, 113, 113, .12);
    --osa-info: var(--g-accent);
    --osa-info-soft: var(--g-accent-bg);
    --osa-cream: var(--g-bg);
    --osa-light: var(--g-glass);
    --osa-brown: var(--g-accent);
    --osa-blue: var(--g-accent);
    --osa-sand: var(--g-text-2);
    --osa-error: var(--g-danger);
    --shadow-sm: none;
    --shadow-md: var(--g-shadow);
    --shadow: none;
    --radius-sm: 10px;
    --radius-md: 12px;
    --radius-lg: var(--g-r-lg);
    --radius: 12px;

    color-scheme: dark;
    background: var(--g-bg);
    color: var(--g-text);
    font-family: var(--font-ui);
    font-size: 16px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

/* ---- Fond : halos lumineux + emblème OSA en filigrane (pseudo-éléments, aucun balisage requis) ---- */
body.theme-glass::before {
    content: ""; position: fixed; z-index: -1; inset: -20%; pointer-events: none;
    background:
        radial-gradient(900px 600px at 10% -10%, rgba(34, 211, 238, .22), transparent 60%),
        radial-gradient(700px 500px at 95% 15%, rgba(59, 130, 246, .16), rgba(139, 92, 246, .06) 50%, transparent 72%);
    filter: blur(60px);
}
body.theme-glass::after {
    content: ""; position: fixed; z-index: -1; right: -120px; bottom: -140px; width: 720px; height: 1000px; pointer-events: none;
    background: url("/assets/img/logo-symbol.png") no-repeat center / contain;
    opacity: .05; transform: rotate(-8deg); filter: saturate(1.3);
}
@media (max-width: 860px) { body.theme-glass::after { width: 440px; height: 610px; right: -140px; bottom: -100px; } }

/* ---- En-tête / navigation admin --------------------------------------- */
body.theme-glass .admin-header {
    background: rgba(9, 9, 11, .72); border-bottom: 1px solid var(--g-line);
    backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
}
body.theme-glass .admin-brand { color: var(--g-text); }
body.theme-glass .admin-brand img { width: 2.1rem; height: 2.1rem; filter: drop-shadow(0 0 10px rgba(34, 211, 238, .35)); }
body.theme-glass .admin-brand strong { font-family: var(--font-display); font-weight: 700; letter-spacing: .01em; }
body.theme-glass .admin-nav > a:not(.admin-brand) { color: var(--g-text-2); border-radius: 10px; font-size: .8rem; font-weight: 500; }
body.theme-glass .admin-nav > a:hover { color: var(--g-text); background: var(--g-glass-2); }
body.theme-glass .admin-nav > a.active { color: var(--g-accent); background: var(--g-accent-bg); box-shadow: 0 0 18px -8px rgba(34, 211, 238, .8); }
body.theme-glass .locale-switcher { border: 1px solid var(--g-line-2); background: var(--g-glass); }
body.theme-glass .locale-btn { color: var(--g-text-2); }
body.theme-glass .locale-btn:hover { color: var(--g-text); background: var(--g-glass-2); }
body.theme-glass .locale-btn.is-active { background: var(--g-accent); color: #06131A; box-shadow: 0 0 18px -6px rgba(34, 211, 238, .9); }
body.theme-glass .admin-footer { background: transparent; border-top: 1px solid var(--g-line); color: var(--g-text-3); }

/* ---- Titres ------------------------------------------------------------- */
body.theme-glass h1, body.theme-glass .page-header h1, body.theme-glass .panel h2, body.theme-glass .card h2 {
    font-family: var(--font-display); color: var(--g-text); text-wrap: balance;
}
body.theme-glass h1 { font-size: 2rem; font-weight: 700; letter-spacing: -.01em; text-shadow: 0 0 40px rgba(34, 211, 238, .18); }
body.theme-glass .eyebrow, body.theme-glass p.eyebrow {
    font-family: var(--font-display); color: rgba(165, 243, 252, .75); letter-spacing: .22em; font-size: .72rem; font-weight: 600;
}
body.theme-glass .page-header > p { color: var(--g-text-2); }

/* ---- Surfaces en verre -------------------------------------------------- */
body.theme-glass .panel, body.theme-glass .card, body.theme-glass .stat-card, body.theme-glass .maintenance-section,
body.theme-glass .invitation-section, body.theme-glass .media-card, body.theme-glass .locale-panel, body.theme-glass .preview-frame,
body.theme-glass .list-item, body.theme-glass .empty-state, body.theme-glass .callout, body.theme-glass .stat-item {
    background: var(--g-glass); border: 1px solid var(--g-line); border-radius: var(--g-r-lg);
    backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: var(--g-shadow);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
body.theme-glass .stat-card, body.theme-glass .stat-item {
    border-top: 1px solid var(--g-line); border-radius: var(--g-r); padding: 1rem 1.15rem; text-align: left;
    background: linear-gradient(160deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .025));
}
body.theme-glass .stat-card:hover, body.theme-glass .stat-item:hover, body.theme-glass .card:hover, body.theme-glass .media-card:hover {
    border-color: var(--g-accent-soft); box-shadow: var(--g-glow); transform: translateY(-2px);
}
body.theme-glass .stat-card .number, body.theme-glass .stat-num { color: var(--g-text); font: 700 1.75rem/1.1 var(--font-ui); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
body.theme-glass .stat-card .label, body.theme-glass .stat-lbl { color: var(--g-text-3); font-size: .7rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
body.theme-glass .stat-bar { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .75rem; margin-bottom: 1.5rem; }
body.theme-glass .callout { border-left: 3px solid var(--g-accent); }
body.theme-glass .content-block { background: var(--g-glass); border-left-color: var(--g-accent); color: var(--g-text); }
body.theme-glass .content-block h2 { color: var(--g-text); }

/* ---- Boutons ------------------------------------------------------------ */
body.theme-glass .btn, body.theme-glass .btn-add, body.theme-glass .btn-link, body.theme-glass .btn-show, body.theme-glass .btn-tog, body.theme-glass .btn-del {
    border-radius: 12px; font: 600 .9rem/1.2 var(--font-ui); border: 1px solid var(--g-line-2);
    background: var(--g-glass); color: var(--g-text); cursor: pointer;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease, filter .15s ease;
}
body.theme-glass .btn-secondary, body.theme-glass .btn-link, body.theme-glass .btn-show, body.theme-glass .btn-tog { background: var(--g-glass); color: var(--g-text-2); }
body.theme-glass .btn-secondary:hover, body.theme-glass .btn-link:hover, body.theme-glass .btn-show:hover, body.theme-glass .btn-tog:hover {
    color: var(--g-accent); background: var(--g-accent-bg); border-color: var(--g-accent-soft); transform: translateY(-1px); box-shadow: 0 0 20px -6px rgba(34, 211, 238, .75);
}
body.theme-glass .btn-primary, body.theme-glass .btn-add, body.theme-glass .btn-success {
    color: #06131A; background: linear-gradient(180deg, #5EEAFF, var(--g-accent)); border-color: rgba(34, 211, 238, .6);
    box-shadow: 0 10px 30px -12px rgba(34, 211, 238, .85), 0 1px 0 rgba(255, 255, 255, .35) inset;
}
body.theme-glass .btn-primary:hover, body.theme-glass .btn-add:hover, body.theme-glass .btn-success:hover {
    background: linear-gradient(180deg, #5EEAFF, var(--g-accent)); color: #06131A; filter: brightness(1.05); transform: translateY(-1px);
    box-shadow: 0 16px 36px -12px rgba(34, 211, 238, 1), 0 1px 0 rgba(255, 255, 255, .35) inset;
}
body.theme-glass .btn-danger, body.theme-glass .btn-del { color: #FECACA; background: rgba(248, 113, 113, .12); border-color: rgba(248, 113, 113, .35); }
body.theme-glass .btn-danger:hover, body.theme-glass .btn-del:hover { background: rgba(248, 113, 113, .22); box-shadow: 0 0 20px -6px rgba(248, 113, 113, .7); }
body.theme-glass .btn-sm { min-height: 2rem; padding: .4rem .75rem; font-size: .8rem; }
body.theme-glass a.btn[style] { background: var(--g-glass) !important; color: var(--g-text-2) !important; border-color: var(--g-line-2) !important; }
body.theme-glass a.btn-primary[style] { background: linear-gradient(180deg, #5EEAFF, var(--g-accent)) !important; color: #06131A !important; }

/* ---- Champs ------------------------------------------------------------- */
body.theme-glass input[type="text"], body.theme-glass input[type="email"], body.theme-glass input[type="password"], body.theme-glass input[type="url"],
body.theme-glass input[type="tel"], body.theme-glass input[type="date"], body.theme-glass input[type="datetime-local"], body.theme-glass input[type="number"],
body.theme-glass input[type="search"], body.theme-glass input:not([type]), body.theme-glass input[type="file"], body.theme-glass select, body.theme-glass textarea {
    background: rgba(255, 255, 255, .05); border: 1px solid var(--g-line-2); border-radius: 12px; color: var(--g-text);
    min-height: 2.7rem; padding: .6rem .85rem; font: 1rem/1.4 var(--font-ui);
}
body.theme-glass input::placeholder, body.theme-glass textarea::placeholder { color: var(--g-text-3); }
body.theme-glass input:focus, body.theme-glass select:focus, body.theme-glass textarea:focus {
    border-color: rgba(34, 211, 238, .5); box-shadow: 0 0 0 3px rgba(34, 211, 238, .12), 0 0 24px -8px rgba(34, 211, 238, .6); outline: none;
}
body.theme-glass select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%278%27%3E%3Cpath d=%27M0 0l6 8 6-8z%27 fill=%27%23A1A1AA%27/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .8rem center; padding-right: 2.5rem; }
body.theme-glass select option { background: #18181B; color: var(--g-text); }
body.theme-glass .form-group label, body.theme-glass fieldset legend, body.theme-glass label { color: var(--g-text-2); font-weight: 500; }
body.theme-glass .form-group label .req { color: var(--g-danger); }
body.theme-glass .form-group label .opt { color: var(--g-text-3); }
body.theme-glass input[type="checkbox"], body.theme-glass input[type="radio"] { accent-color: var(--g-accent); }
body.theme-glass .checkbox-group label { color: var(--g-text); }
body.theme-glass *:focus-visible { outline: 2px solid var(--g-accent); outline-offset: 2px; }

/* ---- Tableaux ----------------------------------------------------------- */
body.theme-glass .table-wrapper { border: 1px solid var(--g-line); border-radius: var(--g-r-lg); background: var(--g-glass); backdrop-filter: blur(10px); }
body.theme-glass .card > .table-wrapper { border: 0; background: transparent; }
body.theme-glass table { color: var(--g-text); }
body.theme-glass th { background: transparent; color: var(--g-text-3); font-size: .68rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; border-bottom: 1px solid var(--g-line); padding: .8rem .75rem; }
body.theme-glass td { border-bottom: 1px solid var(--g-line); padding: .85rem .75rem; vertical-align: middle; color: var(--g-text); }
body.theme-glass tbody tr { transition: background .18s ease, box-shadow .18s ease; }
body.theme-glass tbody tr:hover td { background: var(--g-glass-2); }
body.theme-glass tbody tr:hover { box-shadow: inset 3px 0 0 var(--g-accent), 0 0 30px -14px rgba(34, 211, 238, .5); }
body.theme-glass td strong { color: var(--g-text); font-weight: 600; }
body.theme-glass td small, body.theme-glass td[style*="muted"] { color: var(--g-text-2); }
body.theme-glass .thumb { border-radius: 12px; border: 1px solid var(--g-line-2); }
body.theme-glass td .btn-sm { opacity: .55; }
body.theme-glass tbody tr:hover .btn-sm, body.theme-glass tbody tr:focus-within .btn-sm { opacity: 1; }
body.theme-glass td span[style*="background:var(--osa-cream)"] { background: var(--g-glass-2) !important; border-color: var(--g-line-2) !important; color: var(--g-text-3) !important; border-radius: 12px !important; }

/* ---- Badges de statut --------------------------------------------------- */
body.theme-glass .badge, body.theme-glass .badge-active, body.theme-glass .badge-inactive {
    display: inline-flex; align-items: center; gap: 6px; min-height: 1.5rem; padding: .2rem .6rem; border-radius: 999px;
    font: 600 .72rem/1 var(--font-ui); letter-spacing: .02em; border: 1px solid var(--g-line-2); background: var(--g-glass); color: var(--g-text-2);
}
body.theme-glass .badge::before, body.theme-glass .badge-active::before, body.theme-glass .badge-inactive::before {
    content: ""; width: 6px; height: 6px; border-radius: 999px; background: currentColor; box-shadow: 0 0 10px currentColor;
}
body.theme-glass .badge-approved, body.theme-glass .badge-published, body.theme-glass .badge-active { color: var(--g-ok); background: rgba(52, 211, 153, .10); border-color: rgba(52, 211, 153, .30); }
body.theme-glass .badge-submitted, body.theme-glass .badge-draft { color: var(--g-warn); background: rgba(251, 191, 36, .10); border-color: rgba(251, 191, 36, .30); }
body.theme-glass .badge-reviewed { color: var(--g-accent); background: var(--g-accent-bg); border-color: var(--g-accent-soft); }
body.theme-glass .badge-archived, body.theme-glass .badge-inactive { color: var(--g-text-2); background: rgba(255, 255, 255, .04); border-color: var(--g-line-2); }
body.theme-glass .badge-archived::before, body.theme-glass .badge-inactive::before { box-shadow: none; }

/* ---- Alertes / flash ---------------------------------------------------- */
body.theme-glass .alert, body.theme-glass .flash-ok, body.theme-glass .flash-err, body.theme-glass .flash-link {
    border-radius: 12px; border: 1px solid var(--g-line-2); background: var(--g-glass); color: var(--g-text); backdrop-filter: blur(10px); padding: .9rem 1rem; margin-bottom: 1rem;
}
body.theme-glass .alert-success, body.theme-glass .flash-ok { color: var(--g-ok); border-color: rgba(52, 211, 153, .35); background: rgba(52, 211, 153, .08); }
body.theme-glass .alert-error, body.theme-glass .flash-err { color: #FECACA; border-color: rgba(248, 113, 113, .35); background: rgba(248, 113, 113, .08); }
body.theme-glass .alert-info, body.theme-glass .flash-link { color: var(--g-text); border-color: var(--g-accent-soft); background: var(--g-accent-bg); }
body.theme-glass #idle-lock { box-shadow: 0 20px 40px -18px rgba(34, 211, 238, .5); }
body.theme-glass .field-error { color: #FCA5A5; }
body.theme-glass .input-error { border-color: var(--g-danger) !important; box-shadow: 0 0 0 3px rgba(248, 113, 113, .15); }

/* ---- Filtres / barres d'outils / page Accès ---------------------------- */
body.theme-glass .filters.card { padding: .75rem !important; border-radius: var(--g-r-lg); }
body.theme-glass .filters input, body.theme-glass .filters select { min-height: 2.6rem; }
body.theme-glass .maintenance-row, body.theme-glass .campaign-row, body.theme-glass .revision-row { border-color: var(--g-line); }
body.theme-glass .irow input, body.theme-glass .irow select, body.theme-glass .irow textarea { background: rgba(255, 255, 255, .05); }
body.theme-glass .container[style*="max-width:900px"] h2[style] { color: var(--g-text) !important; font-family: var(--font-display); }
body.theme-glass .access-table th { background: transparent; color: var(--g-text-3); }
body.theme-glass .access-table td { border-color: var(--g-line); }

/* ==========================================================================
   Pages publiques — accueil, portail /access, formulaire de recensement,
   confirmation, refus, vérification email, login.
   ========================================================================== */
body.theme-glass .site-header { background: rgba(9, 9, 11, .55); color: var(--g-text); border-bottom: 1px solid var(--g-line); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
body.theme-glass .site-header .logo { filter: drop-shadow(0 0 16px rgba(34, 211, 238, .45)); }
body.theme-glass .site-header h1 { font-family: var(--font-display); font-weight: 700; font-size: 1.9rem; letter-spacing: 0; text-shadow: 0 0 40px rgba(34, 211, 238, .18); }
body.theme-glass .site-header p { color: var(--g-text-2); opacity: 1; }
body.theme-glass .public-topbar { background: rgba(9, 9, 11, .72); border-bottom: 1px solid var(--g-line); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
body.theme-glass .public-brand { color: var(--g-text); font-family: var(--font-display); }
body.theme-glass .public-brand img { filter: drop-shadow(0 0 10px rgba(34, 211, 238, .35)); }

/* Accueil */
body.theme-glass .lang-picker h2 { font-family: var(--font-display); color: var(--g-text); font-size: 1.7rem; }
body.theme-glass .lang-picker .subtitle { color: var(--g-text-2); }
body.theme-glass .lang-btn, body.theme-glass .lang-btn.nl, body.theme-glass .lang-btn.en {
    background: var(--g-glass); color: var(--g-text); border: 1px solid var(--g-line-2); border-radius: 12px; font-weight: 600;
    backdrop-filter: blur(10px); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease;
}
body.theme-glass .lang-btn:hover, body.theme-glass .lang-btn.nl:hover, body.theme-glass .lang-btn.en:hover {
    background: var(--g-accent-bg); color: var(--g-accent); border-color: var(--g-accent-soft); transform: translateY(-1px); box-shadow: 0 0 22px -6px rgba(34, 211, 238, .8);
}
body.theme-glass .info-box { background: var(--g-glass); border-left: 3px solid var(--g-accent); border-radius: 0 12px 12px 0; color: var(--g-text); }
body.theme-glass .info-box a { color: var(--g-accent); }
body.theme-glass .deadline { color: var(--g-warn); }
body.theme-glass .card[style*="color:#666"] { color: var(--g-text-2) !important; }
body.theme-glass .decorative-watermark { opacity: .08; }

/* Portail /access et login */
body.theme-glass .gate-intro { border-left-color: var(--g-accent); }
body.theme-glass .gate-intro h1, body.theme-glass .gate-card h2, body.theme-glass .login-panel__heading h1 { font-family: var(--font-display); color: var(--g-text); }
body.theme-glass .gate-intro p, body.theme-glass .gate-card__subtitle, body.theme-glass .privacy-note, body.theme-glass .login-panel__heading p { color: var(--g-text-2); }
body.theme-glass .gate-symbol { background: linear-gradient(180deg, #5EEAFF, var(--g-accent)); color: #06131A; box-shadow: 0 10px 30px -12px rgba(34, 211, 238, .85); }
body.theme-glass .gate-card { border-top: 1px solid var(--g-line); }
body.theme-glass .gate-hero-image { border: 1px solid var(--g-line-2); }
body.theme-glass .privacy-note { border-top-color: var(--g-line); }
body.theme-glass .login-panel__heading img { filter: drop-shadow(0 0 18px rgba(34, 211, 238, .4)); }

/* Formulaire de recensement */
body.theme-glass .form-header .lang-switcher a { border: 1px solid var(--g-line-2); border-radius: 999px; color: var(--g-text-2); background: var(--g-glass); font-weight: 600; letter-spacing: .04em; }
body.theme-glass .form-header .lang-switcher a.active, body.theme-glass .form-header .lang-switcher a:hover { background: var(--g-accent); color: #06131A; border-color: var(--g-accent); }
body.theme-glass .form-section h3 { font-family: var(--font-display); font-weight: 700; font-size: 1.25rem; color: var(--g-text); border-bottom: 1px solid var(--g-line-2); letter-spacing: 0; }
body.theme-glass .photo-upload-area { border: 2px dashed var(--g-line-2); background: var(--g-glass); color: var(--g-text-2); border-radius: 14px; }
body.theme-glass .photo-upload-area:hover, body.theme-glass .photo-upload-area.dragover { border-color: var(--g-accent-soft); background: var(--g-accent-bg); color: var(--g-text); }
body.theme-glass .photo-preview img { border: 1px solid var(--g-line-2); border-radius: 12px; }
body.theme-glass .photo-info { color: var(--g-text-2); }
body.theme-glass .form-actions { border-top-color: var(--g-line); }

/* Confirmation, refus, vérification */
body.theme-glass .success-page h2 { color: var(--g-ok); font-family: var(--font-display); }
body.theme-glass .success-ref { background: var(--g-glass); border: 1px solid var(--g-line-2); color: var(--g-text); }
body.theme-glass .site-footer { border-top-color: var(--g-line); color: var(--g-text-3); }
body.theme-glass main h1, body.theme-glass main h2 { color: var(--g-text); }

/* ---- Divers ------------------------------------------------------------- */
body.theme-glass a { color: var(--g-accent); }
body.theme-glass a.btn, body.theme-glass .admin-nav a, body.theme-glass .list-item, body.theme-glass a.lang-btn, body.theme-glass .public-brand { color: inherit; }
body.theme-glass a.btn-primary, body.theme-glass a.btn-add { color: #06131A; }
body.theme-glass hr { border-color: var(--g-line); }
body.theme-glass code, body.theme-glass pre { background: rgba(255, 255, 255, .06); color: var(--g-text); border-radius: 8px; }
body.theme-glass ::-webkit-scrollbar { height: 10px; width: 10px; }
body.theme-glass ::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, .12); border-radius: 999px; }
@media (prefers-reduced-motion: reduce) { body.theme-glass *, body.theme-glass *::before, body.theme-glass *::after { transition: none !important; animation: none !important; } }

/* ---- Page Accès (gabarit autonome à styles inline) ---------------------- */
body.theme-glass > header[style] { background: rgba(9, 9, 11, .72) !important; border-bottom: 1px solid var(--g-line); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
body.theme-glass > header[style] span[style] { color: var(--g-text) !important; font-family: var(--font-display); font-size: 1.05rem !important; }
body.theme-glass > header[style] a[style] { color: var(--g-accent) !important; }
body.theme-glass .access-table { background: transparent; border: 1px solid var(--g-line); border-radius: var(--g-r-lg); }
body.theme-glass .access-table th { background: transparent; color: var(--g-text-3); font-weight: 600; letter-spacing: .12em; }
body.theme-glass .access-table td { border-color: var(--g-line); color: var(--g-text); }
body.theme-glass .panel h3 { color: var(--g-text); font-family: var(--font-display); font-size: 1.05rem; }
body.theme-glass .irow input, body.theme-glass .irow textarea, body.theme-glass .irow select { border: 1px solid var(--g-line-2); color: var(--g-text); background: rgba(255, 255, 255, .05); }
body.theme-glass .stat-item { text-align: left; }
