    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    :root {
      --bg: #0d0f14; --surface: #13161e; --border: #1e2230;
      --accent: #ff2c55; --danger: #f87171;
      --text: #e2e8f0; --text-dim: #94a3b8;
      --mono: 'JetBrains Mono', monospace;
      --sans: 'Syne', sans-serif;
    }
    body {
      background: var(--bg); color: var(--text);
      font-family: var(--sans);
      min-height: 100vh;
      display: flex; align-items: center; justify-content: center;
    }
    .card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: 14px;
      padding: 2.5rem 2rem;
      width: 100%; max-width: 380px;
    }
    .logo {
      font-size: 1.4rem;
      font-weight: 800;
      letter-spacing: -.03em;
      color: var(--accent);
      margin-bottom: .25rem;
    }
    .logo span { color: var(--text-dim); font-weight: 400; }
    .subtitle {
      font-size: .8rem;
      color: var(--text-dim);
      font-family: var(--mono);
      margin-bottom: 2rem;
    }
    label {
      display: block;
      font-size: .72rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .1em;
      color: var(--text-dim);
      margin-bottom: .4rem;
    }
    input {
      width: 100%;
      background: var(--bg);
      border: 1px solid var(--border);
      border-radius: 7px;
      color: var(--text);
      font-family: var(--mono);
      font-size: .88rem;
      padding: .65rem .9rem;
      outline: none;
      transition: border-color .15s;
      margin-bottom: 1.1rem;
    }
    input:focus { border-color: var(--accent); }
    button {
      width: 100%;
      background: var(--accent);
      color: #0d2b1a;
      border: none;
      border-radius: 7px;
      font-family: var(--sans);
      font-size: .9rem;
      font-weight: 800;
      padding: .75rem;
      cursor: pointer;
      transition: opacity .15s;
      margin-top: .25rem;
    }
    button:hover { opacity: .88; }
    .error {
      background: #2b0d0d;
      border: 1px solid var(--danger);
      border-radius: 7px;
      color: var(--danger);
      font-family: var(--mono);
      font-size: .8rem;
      padding: .65rem .9rem;
      margin-bottom: 1rem;
    }

    /* Style du conteneur de formulaire pour le rôle */
    .select-role {
        appearance: none; /* Supprime le style par défaut (la flèche système) */
        -webkit-appearance: none;
        -moz-appearance: none;
        
        background-color: var(--bg);
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2394a3b8' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right 0.75rem center; /* Positionne la flèche personnalisée */
        
        border: 1px solid var(--border);
        border-radius: 6px;
        color: var(--text);
        font-family: var(--mono);
        font-size: 0.8rem;
        padding: 0.4rem 2rem 0.4rem 0.75rem;
        cursor: pointer;
        transition: all 0.2s ease;
        outline: none;
        min-width: 120px;
    }

    /* État au survol et focus */
    .select-role:hover {
        border-color: var(--text-dim);
    }

    .select-role:focus {
        border-color: var(--accent);
        box-shadow: 0 0 0 2px rgba(255, 44, 85, 0.1);
    }

    /* Style des options (Le support varie selon le navigateur) */
    .select-role option {
        background-color: var(--surface);
        color: var(--text);
        padding: 10px;
    }

    /* Petit ajustement pour le formulaire en ligne dans le tableau */
    form.confirm-action {
        display: inline-block;
        margin: 0;
    }