/* =====================================================================
   Pages organisateur (anciennes classes) — habillées par la charte Urnéo :
   toutes les valeurs viennent de docs/charte/tokens.css (thèmes clair et
   sombre). Les alias --mf-* restent pour les styles des pages existantes.
   ===================================================================== */
:root {
  --mf-red: var(--primary); --mf-red-rgb: 138,79,94; --mf-gold: var(--accent);
  --mf-gold-soft: var(--border); --mf-burgundy: var(--text); --mf-cream: var(--surface-sunken);
  --mf-ink: var(--text); --mf-side: var(--ink); --radius: var(--radius-lg);
  --shadow: none;
  --shadow-lg: var(--shadow-overlay);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body {
  font-family: var(--font-sans);
  color: var(--mf-ink); min-height: 100vh; display: flex; flex-direction: column;
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3 { font-family: var(--font-sans); font-weight: 700; }
a { color: var(--mf-burgundy); text-decoration: none; }
a:hover { text-decoration: underline; }

.org-topbar {
  background: var(--mf-side); color: var(--on-ink);
  padding: .8rem 1.2rem; display: flex; align-items: center; justify-content: space-between;
  box-shadow: 0 2px 10px rgba(0,0,0,.28); position: sticky; top: 0; z-index: 50;
}
.org-topbar .brand {
  font-family: var(--font-sans); font-weight: 800; font-size: 1.15rem;
  letter-spacing: .04em; display: flex; align-items: center; gap: .6rem;
}
.org-topbar .brand i { color: var(--mf-gold); }
.org-topbar .user { font-size: .82rem; color: var(--on-ink); display: flex; align-items: center; gap: .8rem; }
.org-topbar .user a { color: var(--on-ink); background: rgba(255,255,255,.08); border-radius: 10px; padding: .45rem .7rem; }
.org-topbar .user a:hover { background: rgba(255,255,255,.16); text-decoration: none; }

.org-center { flex: 1; display: flex; align-items: center; justify-content: center; padding: 2rem 1.2rem; }
.org-card {
  background: var(--surface); border-radius: var(--radius); box-shadow: var(--shadow-lg);
  padding: 2.2rem 1.8rem; width: 100%; max-width: 420px;
  border: 1px solid var(--border);
}
.org-card h1 {
  font-size: 1.7rem; margin: 0 0 .3rem; color: var(--mf-burgundy);
  display: flex; align-items: center; gap: .6rem;
}
.org-card h1 i { color: var(--mf-gold); }
.org-card .sub { color: var(--text-muted); font-size: .9rem; margin-bottom: 1.5rem; }
.org-field { margin-bottom: 1rem; }
.org-field label {
  display: block; font-size: .88rem; font-weight: 600; color: var(--mf-ink); margin-bottom: .4rem;
}
.org-field input {
  width: 100%; padding: .7rem .85rem; border: 1px solid var(--mf-gold-soft);
  border-radius: 10px; font: inherit; font-size: .95rem; background: var(--surface); color: var(--mf-ink); transition: border-color .15s;
}
.org-field input:focus { outline: 2px solid var(--mf-red); outline-offset: 1px; border-color: var(--mf-red); }
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  width: 100%; padding: .8rem 1.1rem; border: none; border-radius: 12px; cursor: pointer;
  font: inherit; font-weight: 700; font-size: 1rem; font-family: var(--font-sans);
  background: var(--primary); color: var(--on-primary); transition: background .12s ease;
}
.btn:hover { background: var(--primary-hover); }
.btn:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.btn-block { margin-top: .4rem; }

.org-links { margin-top: 1.2rem; text-align: center; font-size: .85rem; color: var(--text-muted); }
.org-links a { margin: 0 .4rem; font-weight: 600; }

.org-alert {
  padding: .8rem .95rem; border-radius: 10px; font-size: .85rem; font-weight: 500;
  margin-bottom: 1.2rem; display: none; align-items: flex-start; gap: .6rem; line-height: 1.5;
}
.org-alert.error { background: var(--danger-soft); color: var(--danger); border: 1px solid var(--danger); display: flex; }
.org-alert.success { background: var(--success-soft); color: var(--success); border: 1px solid var(--success); display: flex; }
.org-alert.info { background: var(--info-soft); color: var(--info); border: 1px solid var(--info); display: flex; }
.org-alert i { margin-top: .15rem; }
.org-alert:has(> span:empty) { display: none; }

/* Dashboard */
.org-dash { flex: 1; padding: 2rem; max-width: 900px; margin: 0 auto; width: 100%; }
.org-dash h2 { font-size: 1.7rem; margin: 0 0 .2rem; color: var(--mf-burgundy); }
.org-dash .sub { color: var(--text-muted); font-size: .9rem; margin-bottom: 1.6rem; }
.org-empty { text-align: center; color: var(--text-muted); padding: 3rem 0; font-size: .9rem; font-style: italic; }
.org-empty i { font-size: 2.4rem; display: block; margin-bottom: .8rem; color: var(--mf-gold); }

/* Cards empilées (mobile sans scroll horizontal) */
.org-cards { display: flex; flex-direction: column; gap: .8rem; }
.org-card-row {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 1.1rem 1.2rem;
  display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
}
.org-card-row .ctx { flex: 1; min-width: 200px; }
.org-card-row .ctx .nom { font-weight: 600; font-size: .95rem; color: var(--mf-ink); }
.org-card-row .ctx .meta { color: var(--text-muted); font-size: .8rem; margin-top: .2rem; }
/* Statut d'élection : composant Badge de la charte (docs/charte/components.css). */

@media (max-width: 480px) {
  .org-card { padding: 1.6rem 1.3rem; }
  .org-card-row { padding: .95rem 1rem; }
  .org-dash { padding: 1.2rem; }
}
/* Pages dans le cadre commun (menu latéral) : le cadre gère marges et largeur.
   Le cadre prend la hauteur de son contenu (pas celle de la fenêtre), sinon
   le menu « collant » repart avec la page au lieu de rester en place. */
.ur-shell { flex: 1 0 auto; width: 100%; }
.ur-main .org-dash, .ur-main .el-wrap, .ur-main .help-wrap, .ur-main .ur-content { padding: 0; margin: 0 auto; width: 100%; max-width: var(--layout-content); }
