/* ============================================================
   SILENTVOICE — ESPACE MEMBRE
   Direction artistique volontairement alignée sur le site public.
   ============================================================ */
:root{--ink:#0c1b2d;--muted:#66758a;--blue:#168cff;--green:#66c84f;--line:#dce6f1;--soft:#f4f8fc;--card:#fff;--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:linear-gradient(180deg,#f9fbfe,#eef6ff);min-height:100vh}
a{color:inherit}.member-shell{width:min(calc(100% - 32px),var(--max));margin:auto}.member-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0}.member-brand{display:flex;align-items:center;gap:12px;text-decoration:none}.member-brand img:first-child{width:52px;height:52px;object-fit:contain}.member-brand img:last-child{width:190px;max-width:42vw}.member-back{font-weight:800;text-decoration:none}.member-hero{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:32px;padding:clamp(30px,6vw,72px);background:rgba(255,255,255,.88);box-shadow:0 24px 80px rgba(25,72,118,.09)}.member-hero:before{content:"";position:absolute;width:320px;height:320px;border-radius:50%;background:linear-gradient(135deg,rgba(22,140,255,.16),rgba(102,200,79,.18));right:-110px;top:-140px;filter:blur(4px)}.eyebrow{display:inline-flex;padding:8px 12px;border:1px solid #bfe0ff;border-radius:999px;color:#087eea;font-weight:850;background:#fff}.member-hero h1{font-size:clamp(2.2rem,6vw,5rem);line-height:.98;letter-spacing:-.055em;margin:20px 0}.member-hero h1 em{font-style:normal;background:linear-gradient(90deg,#168cff,#66c84f);-webkit-background-clip:text;color:transparent}.lead{font-size:clamp(1.05rem,2vw,1.3rem);line-height:1.7;color:var(--muted);max-width:760px}.auth-card{width:min(100%,560px);margin:40px auto;padding:32px;border:1px solid var(--line);border-radius:26px;background:#fff;box-shadow:0 20px 60px rgba(25,72,118,.08)}label{display:grid;gap:8px;font-weight:800;margin:18px 0}input,select,textarea{width:100%;border:1px solid #cbd9e7;border-radius:13px;padding:14px 15px;font:inherit;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:3px solid rgba(22,140,255,.18);border-color:var(--blue)}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:14px;padding:14px 18px;font:inherit;font-weight:850;color:#fff;text-decoration:none;cursor:pointer;background:linear-gradient(90deg,#168cff,#66c84f);box-shadow:0 12px 30px rgba(22,140,255,.18)}.btn.secondary{background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:none}.form-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.notice{padding:14px 16px;border-radius:14px;background:#eef7ff;border:1px solid #cce7ff;margin:18px 0}.notice.error{background:#fff1f1;border-color:#ffd0d0}.dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:28px 0 60px}.dash-card{position:relative;overflow:hidden;min-height:210px;padding:24px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 16px 45px rgba(25,72,118,.06);transition:transform .25s ease,box-shadow .25s ease}.dash-card:hover{transform:translateY(-4px);box-shadow:0 24px 60px rgba(25,72,118,.11)}.dash-card h2{font-size:1.35rem;margin:12px 0}.dash-card p{color:var(--muted);line-height:1.65}.dash-icon{font-size:1.8rem}.tag{display:inline-flex;padding:6px 9px;border-radius:999px;background:#edf6ff;color:#087eea;font-size:.78rem;font-weight:900;text-transform:uppercase}.locked{opacity:.62}.locked:after{content:"Compte adhérent requis";position:absolute;right:14px;top:14px;padding:6px 8px;border-radius:999px;background:#0c1b2d;color:#fff;font-size:.7rem;font-weight:850}.member-status{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0;padding:18px 20px;border:1px solid var(--line);border-radius:18px;background:#fff}.progress{height:9px;background:#eaf0f6;border-radius:999px;overflow:hidden;margin-top:14px}.progress span{display:block;height:100%;background:linear-gradient(90deg,#168cff,#66c84f)}.footer-note{padding:26px 0 40px;color:var(--muted);font-size:.92rem}
@media(max-width:850px){.dashboard-grid{grid-template-columns:1fr 1fr}.member-status{align-items:flex-start;flex-direction:column}}
@media(max-width:580px){.dashboard-grid{grid-template-columns:1fr}.member-top{align-items:flex-start}.member-brand img:last-child{width:145px}.auth-card{padding:22px}.member-hero{border-radius:24px}.form-actions .btn{width:100%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}


/* ============================================================
   ESPACE MEMBRE — PANNEAUX FONCTIONNELS
   Ajouts isolés : les cartes du dashboard deviennent des liens.
   ============================================================ */
.dash-link{display:block;color:inherit;text-decoration:none}
.dash-link:focus-visible{outline:4px solid #ffbf47;outline-offset:4px}
.dash-arrow{position:absolute;right:22px;bottom:18px;font-size:1.25rem;font-weight:900;color:var(--blue);transition:transform .2s ease}
.dash-link:hover .dash-arrow{transform:translateX(4px)}
.page-actions{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0}
.content-panel{margin:26px 0;padding:26px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 16px 45px rgba(25,72,118,.06)}
.content-panel h2{margin-top:0}
.content-panel p{color:var(--muted);line-height:1.7}
.item-list{display:grid;gap:14px;margin:20px 0}
.item-row{padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--soft)}
.item-row h3{margin:0 0 8px}
.meta{font-size:.82rem;color:var(--muted);font-weight:700}
.member-form{display:grid;gap:16px}
.member-form textarea{min-height:150px;resize:vertical}
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}
.choice{display:flex;gap:10px;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.choice input{width:auto;margin-top:4px}
.empty-state{padding:30px;text-align:center;border:1px dashed var(--line);border-radius:18px;color:var(--muted);background:var(--soft)}
.project-detail{display:grid;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.project-detail strong{font-size:.9rem}
.access-level{display:inline-flex;margin-top:10px;padding:6px 9px;border-radius:999px;background:#eef7ff;color:#087eea;font-size:.76rem;font-weight:900}
@media(max-width:650px){.choice-grid{grid-template-columns:1fr}.content-panel{padding:20px}}
html.a-dark .content-panel,
html.a-dark .item-row,
html.a-dark .choice{background:#101d2d!important;color:#f5f8fc!important;border-color:#2b3d52!important}
html.a-dark .content-panel p,
html.a-dark .meta,
html.a-dark .empty-state{color:#c1ccda!important}
html.a-dark .empty-state{background:#0c1827!important;border-color:#31465f!important}
html.a-dark .access-level{background:#102b47;color:#9bd4ff}
html.a-contrast .content-panel,
html.a-contrast .item-row,
html.a-contrast .choice,
html.a-contrast .empty-state{background:#fff!important;color:#000!important;border:2px solid #000!important}


/* ============================================================
   CORRECTIF MODE SOMBRE — FONDS ESPACE MEMBRE
   Garantit un fond sombre derrière les textes clairs, y compris
   les blocs et informations situés en bas des pages membres.
   ============================================================ */
html.a-dark body {
  background: #081321 !important;
  color: #f5f8fc !important;
}

html.a-dark main,
html.a-dark .member-shell {
  background: transparent !important;
  color: #f5f8fc !important;
}

html.a-dark .content-panel,
html.a-dark .item-row,
html.a-dark .empty-state,
html.a-dark .dash-card,
html.a-dark .member-status,
html.a-dark .auth-card,
html.a-dark .choice {
  background: #101d2d !important;
  color: #f5f8fc !important;
  border-color: #2b3d52 !important;
}

html.a-dark .content-panel p,
html.a-dark .item-row p,
html.a-dark .empty-state,
html.a-dark .dash-card p,
html.a-dark .member-status,
html.a-dark .footer-note,
html.a-dark .meta {
  color: #cbd6e3 !important;
}

html.a-dark .footer-note {
  background: transparent !important;
  color: #cbd6e3 !important;
}

html.a-dark .notice {
  background: #10283e !important;
  color: #f5f8fc !important;
  border-color: #31506c !important;
}

html.a-dark .notice a {
  color: #8dccff !important;
}


/* ============================================================
   SILENTVOICE — RÔLES / ADMINISTRATION
   Ajouts isolés afin de ne pas modifier le reste de l'espace membre.
   ============================================================ */
.role-tag{border:1px solid transparent}
.role-free{background:#eef3f8!important;color:#526275!important}
.role-member{background:#edf7ff!important;color:#087eea!important}
.role-partner{background:#eff9ea!important;color:#4c8d2c!important}
.role-admin{background:#f3edff!important;color:#6f42c1!important}
.role-special{border-color:rgba(22,140,255,.18)}
.admin-card{background:linear-gradient(145deg,#fff,#faf7ff)}
.admin-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}
.admin-search{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.admin-search label{margin:0;min-width:min(320px,70vw)}
.admin-users{display:grid;gap:14px}
.admin-user{display:grid;grid-template-columns:minmax(220px,1fr) minmax(420px,1.6fr);gap:22px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--soft)}
.admin-user-id{display:grid;gap:5px;min-width:0}
.admin-user-id strong,.admin-user-id span{overflow-wrap:anywhere}
.admin-user-id span{color:var(--muted)}
.admin-user-id small{color:var(--muted)}
.admin-role-form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}
.admin-role-form label{margin:0}
.admin-role-form select{min-width:0}
.admin-save{white-space:nowrap}
.role-explainer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.role-explainer>div{padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--soft)}
.role-explainer p{margin:9px 0 0}
.role-pill{display:inline-flex;padding:6px 10px;border-radius:999px;font-weight:900;font-size:.78rem}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

html.a-dark .admin-card,
html.a-dark .admin-user,
html.a-dark .role-explainer>div{
  background:#101d2d!important;
  color:#f5f8fc!important;
  border-color:#2b3d52!important;
}
html.a-dark .admin-user-id span,
html.a-dark .admin-user-id small{color:#cbd6e3!important}
html.a-dark .role-free{background:#203047!important;color:#dce7f3!important}
html.a-dark .role-member{background:#102f4b!important;color:#9dd2ff!important}
html.a-dark .role-partner{background:#20351e!important;color:#b5e394!important}
html.a-dark .role-admin{background:#30254a!important;color:#d4bbff!important}

@media(max-width:900px){
  .admin-user{grid-template-columns:1fr}
  .admin-role-form{grid-template-columns:1fr 1fr}
  .admin-save{grid-column:1/-1}
}
@media(max-width:650px){
  .admin-heading{align-items:stretch;flex-direction:column}
  .admin-search,.admin-search label,.admin-search .btn{width:100%}
  .admin-role-form{grid-template-columns:1fr}
  .admin-save{grid-column:auto}
  .role-explainer{grid-template-columns:1fr}
}


/* ============================================================
   SILENTVOICE CMS — PANNEAU ADMINISTRATION
   Styles isolés pour ne pas modifier les composants existants.
   ============================================================ */
.admin-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.admin-module{display:grid;gap:7px;padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--soft);color:inherit;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.admin-module:hover{transform:translateY(-3px);border-color:#a9d4ff;box-shadow:0 16px 35px rgba(25,72,118,.08)}
.admin-module>span{font-size:1.8rem}.admin-module>b{font-size:1.08rem}.admin-module small{color:var(--muted);line-height:1.5}
.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.admin-large-editor{min-height:280px}
.admin-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center!important;gap:10px}.admin-check input{width:auto}
.admin-content-list{display:grid;gap:12px}
.admin-content-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--soft)}
.admin-content-row h3{margin:7px 0}.admin-content-row p{margin:4px 0;color:var(--muted)}
.admin-row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-row-actions form{margin:0}
.admin-danger{background:#8f2633!important;box-shadow:none!important}
.admin-inline-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.admin-inline-form select{min-width:170px}
.media-library{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.media-admin-card{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--soft)}
.media-admin-card small{display:block;color:var(--muted);margin-top:4px}
.media-admin-preview{width:100%;height:160px;object-fit:contain;border-radius:12px;background:#fff}
.cms-card-media,.cms-project-media,.cms-playtest-media,.cms-article-media{display:block;width:100%;max-height:440px;object-fit:contain;border-radius:18px;background:#f4f7fb;margin-bottom:18px}
.cms-news-card{overflow:hidden}.cms-article-body{font-size:1.05rem;line-height:1.8}.cms-facts{display:flex;gap:10px 18px;flex-wrap:wrap;margin:15px 0;color:var(--muted);font-weight:750}
.cms-resource-media{display:block;max-width:100%;max-height:280px;object-fit:contain;border-radius:14px;margin:12px 0}
.cms-partner-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.cms-partner-card{padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--soft);text-align:center}
.cms-partner-logo{display:block;width:100%;height:90px;object-fit:contain;margin:0 auto 12px}
html.a-dark .admin-module,html.a-dark .admin-content-row,html.a-dark .media-admin-card,html.a-dark .cms-partner-card{background:#101d2d!important;color:#f5f8fc!important;border-color:#2b3d52!important}
html.a-dark .admin-module small,html.a-dark .admin-content-row p,html.a-dark .media-admin-card small,html.a-dark .cms-facts{color:#cbd6e3!important}
html.a-dark .media-admin-preview,html.a-dark .cms-card-media,html.a-dark .cms-project-media,html.a-dark .cms-playtest-media,html.a-dark .cms-article-media{background:#0c1827}
@media(max-width:900px){.admin-module-grid,.media-library,.cms-partner-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.admin-module-grid,.media-library,.cms-partner-grid,.admin-form-grid{grid-template-columns:1fr}.admin-content-row{align-items:stretch;flex-direction:column}.admin-row-actions,.admin-row-actions>*{width:100%}.admin-row-actions .btn{width:100%}}
