/* SO' lesson — thèmes globaux, composants, contrôles accessibles */
:root{--so-bg:#0d0f13;--so-surface:#1c2026;--so-surface2:#262b33;--so-text:#f3f5f9;--so-muted:#b1b9c6;--so-border:#3c434e;--so-action:#d4dae4;--so-on-action:#15171a;--so-nav:#101216;--so-accent:#a9b1bf;color-scheme:dark}
html[data-theme="pastel"]{--so-bg:#fff3fb;--so-surface:#fffaff;--so-surface2:#f7e9f8;--so-text:#503b67;--so-muted:#806888;--so-border:#e6cce7;--so-action:#a95fba;--so-on-action:#fff;--so-nav:#f1ddf3;--so-accent:#a95fba;color-scheme:light}
html[data-theme="solanin"]{--so-bg:#effbf8;--so-surface:#fff;--so-surface2:#e6f6f2;--so-text:#234d57;--so-muted:#557d80;--so-border:#c2dfe0;--so-action:#2f849f;--so-on-action:#fff;--so-nav:#e2f5f3;--so-accent:#2f849f;color-scheme:light}
html[data-theme="custom"]{--so-bg:var(--page,#0d0f13);--so-surface:var(--panel,#1c2026);--so-surface2:var(--panel-soft,#262b33);--so-text:var(--text,#f3f5f9);--so-muted:var(--subtext,#b1b9c6);--so-border:var(--border,#3c434e);--so-action:var(--primary,#d4dae4);--so-on-action:var(--primary-text,#15171a);--so-nav:var(--header,#101216);--so-accent:var(--primary,#a9b1bf)}
html:not([data-page="home"]) body{background:var(--so-bg)!important;color:var(--so-text)!important;font-family:Inter,ui-sans-serif,system-ui,"Segoe UI",Arial,sans-serif!important;min-height:100vh;line-height:1.5}
html:not([data-page="home"]) body::before{content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;background:linear-gradient(125deg,color-mix(in srgb,var(--so-accent) 7%,transparent),transparent 55%)}
html:not([data-page="home"]) nav,html:not([data-page="home"]) .nav{background:var(--so-nav)!important;color:var(--so-text)!important;border-bottom:1px solid var(--so-border)!important}
html:not([data-page="home"]) .panel,html:not([data-page="home"]) .card,html:not([data-page="home"]) article,html:not([data-page="home"]) section:not(#chat):not(#profile):not(#admin):not(#cosmos){background-color:var(--so-surface)!important;color:var(--so-text)!important;border-color:var(--so-border)!important}
html:not([data-page="home"]) .small,html:not([data-page="home"]) .muted{color:var(--so-muted)!important}
html:not([data-page="home"]) a,html:not([data-page="home"]) a:visited{color:var(--so-text)!important;text-decoration-color:var(--so-muted)}
html:not([data-page="home"]) a:hover{color:var(--so-accent)!important}
html:not([data-page="home"]) input,html:not([data-page="home"]) textarea,html:not([data-page="home"]) select{background:var(--so-surface2)!important;color:var(--so-text)!important;border:1px solid var(--so-border)!important;border-radius:12px!important}
html:not([data-page="home"]) button,html:not([data-page="home"]) .btn,html:not([data-page="home"]) input[type=submit]{background:var(--so-action)!important;color:var(--so-on-action)!important;border:1px solid transparent!important;border-radius:12px!important;padding:10px 16px!important;font-weight:650!important;box-shadow:0 2px 5px #0002!important;transition:transform .15s ease,filter .15s ease,background .15s ease!important}
html:not([data-page="home"]) button:hover,html:not([data-page="home"]) .btn:hover{filter:brightness(1.07);transform:translateY(-1px)}
html:not([data-page="home"]) button:focus-visible,html:not([data-page="home"]) a:focus-visible,html:not([data-page="home"]) input:focus-visible{outline:3px solid var(--so-accent)!important;outline-offset:3px}
html:not([data-page="home"]) button:disabled{opacity:.46;transform:none;cursor:not-allowed}
html:not([data-page="home"]) .room-sidebar{background:var(--so-surface2)!important;border-color:var(--so-border)!important}
html:not([data-page="home"]) .community-shell{background:var(--so-surface)!important;border-color:var(--so-border)!important}
html:not([data-page="home"]) .room-tab{background:transparent!important;color:var(--so-text)!important;box-shadow:none!important;border:1px solid transparent!important;text-align:left!important}
html:not([data-page="home"]) .room-tab.active{background:color-mix(in srgb,var(--so-accent) 20%,var(--so-surface))!important;border-left:3px solid var(--so-accent)!important}
html:not([data-page="home"]) .chat-compose,html:not([data-page="home"]) .chat-room-header,html:not([data-page="home"]) .chat-help{background:var(--so-surface2)!important;color:var(--so-text)!important;border-color:var(--so-border)!important}
html:not([data-page="home"]) .chat-controls button,html:not([data-page="home"]) .emoji-picks button,html:not([data-page="home"]) .studio-actions button:not([type=submit]){background:var(--so-surface2)!important;color:var(--so-text)!important;border:1px solid var(--so-border)!important;box-shadow:none!important}
html:not([data-page="home"]) .studio-tile,html:not([data-page="home"]) .admin-box{background:var(--so-surface2)!important;border-color:var(--so-border)!important}
html:not([data-page="home"]) .profile-preview{--profile-a:#8993a8;--profile-b:#353b46;--profile-angle:125deg;background:var(--so-surface)!important;color:var(--so-text)!important;border-color:var(--accent,var(--so-accent))!important}
html:not([data-page="home"]) .profile-preview.profile-gradient{background:linear-gradient(var(--profile-angle),var(--profile-a),var(--profile-b))!important}
html:not([data-page="home"]) .profile-preview.profile-gradient .profile-banner.overlay{background:linear-gradient(var(--profile-angle),var(--profile-b),var(--profile-a))!important}
html:not([data-page="home"]) .profile-preview .profile-preview-content{background:transparent!important}
html:not([data-page="home"]) .profile-preview .profile-avatar-big{border-color:var(--so-surface)!important}
html:not([data-page="home"]) .profile-badge{background:var(--so-surface2)!important;color:var(--so-text)!important;border-color:var(--so-border)!important}
html:not([data-page="home"]) .profile-status{color:var(--so-muted)!important}
html:not([data-page="home"]) .so-theme-picker{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--so-text);white-space:nowrap;margin:0 6px}
html:not([data-page="home"]) .so-theme-picker select{min-width:125px;width:auto!important;padding:8px 12px!important;cursor:pointer}
html:not([data-page="home"]) .studio-options input[type=color]{width:100%;height:44px;cursor:pointer;padding:4px}
html:not([data-page="home"]) .profile-preview.border-glow{box-shadow:0 0 0 2px var(--so-accent),0 0 24px color-mix(in srgb,var(--so-accent),transparent 65%)!important}
html:not([data-page="home"]) .profile-preview.border-dashed{border-style:dashed!important}
html:not([data-page="home"]) .modal-box{background:var(--so-surface)!important;color:var(--so-text)!important;border-color:var(--so-border)!important}
@media(max-width:700px){.so-theme-picker{order:5}html:not([data-page="home"]) nav{gap:8px!important}html:not([data-page="home"]) main{margin:20px auto!important}}
@media(prefers-reduced-motion:reduce){button{transition:none!important}}

html[data-theme="dark"]{--page:#0c0d12;--panel:#191b24;--panel-soft:#242732;--text:#f8f8fa;--subtext:#b2b5c2;--border:#3f4351;--primary:#e5e5ec;--primary-text:#101116;--header:#050507;--header-text:#ffffff;--header-accent:#dadbe5;--so-bg:var(--page);--so-surface:var(--panel);--so-surface2:var(--panel-soft);--so-text:var(--text);--so-muted:var(--subtext);--so-border:var(--border);--so-action:var(--primary);--so-on-action:var(--primary-text);--so-nav:var(--header);--so-accent:var(--header-accent);}
html[data-theme="pastel"]{--page:#fff4fb;--panel:#fffaff;--panel-soft:#f9eafa;--text:#503b67;--subtext:#856b90;--border:#e9cee9;--primary:#b875c3;--primary-text:#ffffff;--header:#f0d6ef;--header-text:#583c69;--header-accent:#955ab0;--so-bg:var(--page);--so-surface:var(--panel);--so-surface2:var(--panel-soft);--so-text:var(--text);--so-muted:var(--subtext);--so-border:var(--border);--so-action:var(--primary);--so-on-action:var(--primary-text);--so-nav:var(--header);--so-accent:var(--header-accent);}
html[data-theme="solanin"]{--page:#f1fbf8;--panel:#ffffff;--panel-soft:#e7f8f3;--text:#234d57;--subtext:#587f82;--border:#c5e6e5;--primary:#3a91b2;--primary-text:#ffffff;--header:#e5f7f5;--header-text:#25526b;--header-accent:#4cbea6;--so-bg:var(--page);--so-surface:var(--panel);--so-surface2:var(--panel-soft);--so-text:var(--text);--so-muted:var(--subtext);--so-border:var(--border);--so-action:var(--primary);--so-on-action:var(--primary-text);--so-nav:var(--header);--so-accent:var(--header-accent);}
/* All custom themes use the exact values saved by the home theme studio. */
html[data-theme="custom"]{--so-bg:var(--page);--so-surface:var(--panel);--so-surface2:var(--panel-soft);--so-text:var(--text);--so-muted:var(--subtext);--so-border:var(--border);--so-action:var(--primary);--so-on-action:var(--primary-text);--so-nav:var(--header);--so-accent:var(--primary)}
html[data-theme="solanin"]:not([data-page="home"]) body{background-image:radial-gradient(circle at 11% 18%,#b5e9e260 0,transparent 25%),radial-gradient(circle at 88% 31%,#c1e0ff88 0,transparent 24%),radial-gradient(circle at 45% 85%,#d5f5d988 0,transparent 25%)!important;background-attachment:fixed!important}
html[data-theme="solanin"]:not([data-page="home"]) nav{background:linear-gradient(120deg,#e2f6fa,#daf9e7,#fcffff)!important;border-bottom:2px solid #b5deda!important}
html:not([data-page="home"]) .so-theme-picker{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--so-border);border-radius:13px;padding:4px 9px;background:var(--so-surface)}
html:not([data-page="home"]) .so-theme-picker select{border:0!important;min-width:155px;border-radius:9px!important;background:var(--so-surface)!important;appearance:auto}
html:not([data-page="home"]) nav a{font-weight:600;text-decoration:none!important;white-space:nowrap;padding:6px 9px;border-radius:10px}
html:not([data-page="home"]) nav a:hover{background:var(--so-surface2);color:var(--so-text)!important}
@media(max-width:760px){html:not([data-page="home"]) nav{flex-wrap:wrap}}

/* VRAIE SOURCE VISUELLE : accueil index.html, thème SO lesson/Solanin/Femboy. */
html[data-theme="dark"]{--page:#101114;--panel:#1c1e23;--panel-soft:#262930;--text:#f3f4f7;--subtext:#bbc0c9;--border:#444952;--primary:#e1e3e8;--primary-text:#14161a;--header:#0b0d10;--header-text:#ffffff;--header-accent:#dbdbdb;color-scheme:dark}
html[data-theme="solanin"]{--page:#071b2b;--panel:#112c3a;--panel-soft:#183c46;--text:#edf9ff;--subtext:#b7d7d7;--border:#386671;--primary:#79b8ba;--primary-text:#092432;--header:#091c32;--header-text:#f3fbff;--header-accent:#9be3cb;color-scheme:dark}
html[data-theme="pastel"]{--page:#fff4fb;--panel:#fffaff;--panel-soft:#f9eafa;--text:#503b67;--subtext:#856b90;--border:#e9cee9;--primary:#b875c3;--primary-text:#ffffff;--header:#f0d6ef;--header-text:#583c69;--header-accent:#955ab0;color-scheme:light}
html[data-theme="custom"]{color-scheme:normal}
/* Valeurs communes héritées de la palette d'accueil, plutôt que trois palettes parallèles. */
html:not([data-page="home"]){--so-bg:var(--page);--so-surface:var(--panel);--so-surface2:var(--panel-soft);--so-text:var(--text);--so-muted:var(--subtext);--so-border:var(--border);--so-action:var(--primary);--so-on-action:var(--primary-text);--so-nav:var(--header);--so-accent:var(--header-accent,var(--primary))}
/* Mêmes images, overlays, position, taille et attachement que la page d'accueil. */
html[data-theme="dark"]:not([data-page="home"]) body{
 background-color:#111114!important;
 background-image:linear-gradient(180deg,rgba(8,8,9,.40),rgba(8,8,9,.70) 55%,rgba(8,8,9,.90)),url('assets/so-lesson-cover.png')!important;
 background-size:cover,cover!important;background-position:center center,center center!important;
 background-repeat:no-repeat,no-repeat!important;background-attachment:fixed,fixed!important;
}
html[data-theme="solanin"]:not([data-page="home"]) body{
 background-color:#071b2b!important;
 background-image:linear-gradient(180deg,rgba(5,18,31,.48),rgba(4,25,29,.89) 55%,#071b2b),url('assets/solanin-cover.png')!important;
 background-size:cover,cover!important;background-position:center top,center top!important;
 background-repeat:no-repeat,no-repeat!important;background-attachment:fixed,fixed!important;
}
html[data-theme="pastel"]:not([data-page="home"]) body{
 background-color:var(--page)!important;
 background-image:radial-gradient(circle at 8% 12%,#ffd5ed90 0,transparent 25%),radial-gradient(circle at 93% 29%,#d8eaff90 0,transparent 24%),radial-gradient(circle at 30% 85%,#e8ddff77 0,transparent 28%)!important;
 background-size:auto!important;background-attachment:fixed!important;background-position:center!important;
}
html[data-theme="custom"]:not([data-page="home"]) body{background-color:var(--page)!important;background-image:none!important}
/* Retirer le calque non présent à l'accueil qui changeait le contraste des covers. */
html:not([data-page="home"]) body::before{content:none!important}
html[data-theme="solanin"]:not([data-page="home"]) nav,html[data-theme="solanin"]:not([data-page="home"]) .nav{background:linear-gradient(110deg,rgba(8,24,53,.97),rgba(6,54,58,.93))!important;border-bottom:1px solid #62acb7!important}
html[data-theme="pastel"]:not([data-page="home"]) nav,html[data-theme="pastel"]:not([data-page="home"]) .nav{background:linear-gradient(105deg,#f6d9ef,#e1d8fa,#d7edff)!important;border-bottom:2px solid #e7bde0!important}
html[data-theme="dark"]:not([data-page="home"]) nav,html[data-theme="dark"]:not([data-page="home"]) .nav{background:var(--header)!important}
/* Les styles de profil restent prioritaires sur les fonds de carte, la couleur ne doit pas écraser les images déposées. */
html:not([data-page="home"]) .profile-preview.profile-gradient{background:linear-gradient(var(--profile-angle),var(--profile-a),var(--profile-b))!important}
html:not([data-page="home"]) .profile-preview .profile-banner[style*="background-image"]{background-size:cover!important;background-position:center!important}
@media(max-width:650px){html[data-theme="dark"]:not([data-page="home"]) body{background-attachment:scroll,scroll!important;background-size:cover,auto 100vh!important;background-position:center center,center center!important}}
