/* ==========================================================================
   MODALES — création / édition / suppression / couleurs
   ========================================================================== */
#modal-overlay{position:fixed;inset:0;background:var(--backdrop);z-index:49;opacity:0;pointer-events:none;transition:opacity .25s ease;display:flex;align-items:flex-end;justify-content:center;}
#modal-overlay.open{opacity:1;pointer-events:auto;}
#modal{
  width:100%;max-width:480px;max-height:88vh;overflow-y:auto;
  background:var(--surface);border-radius:20px 20px 0 0;border:1px solid var(--line);border-bottom:none;
  padding:18px 18px calc(env(safe-area-inset-bottom,0px) + 22px);
  transform:translateY(100%);transition:transform .3s cubic-bezier(.2,.8,.2,1);
}
#modal-overlay.open #modal{transform:translateY(0);}
@media (min-width:640px){
  #modal-overlay{align-items:center;}
  #modal{border-radius:18px;border-bottom:1px solid var(--line);transform:translateY(18px) scale(.98);max-height:82vh;}
  #modal-overlay.open #modal{transform:translateY(0) scale(1);}
}
.modal-head{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.modal-head h3{font-family:'Space Grotesk',sans-serif;font-size:17px;margin:0;flex:1;font-weight:600;}
.form-group{margin-bottom:13px;}
/* Case à cocher explicative : l'intitulé seul ne dirait pas ce que le choix
   change, et ce choix déplace la structure d'un niveau dans l'organigramme. */
.form-case{
  display:flex;align-items:flex-start;gap:10px;margin:0 0 15px;padding:11px 12px;
  background:var(--surface2);border:1px solid var(--line);border-radius:11px;cursor:pointer;
}
.form-case:hover{border-color:var(--line-strong);}
.form-case input{width:auto;margin:2px 0 0;flex:0 0 auto;}
.form-case span{display:flex;flex-direction:column;gap:2px;min-width:0;}
.form-case strong{font-size:13px;font-weight:600;}
.form-case small{font-size:11.5px;color:var(--mist);line-height:1.4;}
.form-aide{font-size:11.5px;color:var(--mist);margin:6px 0 10px;line-height:1.5;}
.form-group label{display:block;font-size:11.5px;color:var(--mist);margin-bottom:6px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;}
.form-group input, .form-group select{
  width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--line-strong);
  background:var(--surface2);color:var(--ink);font-size:14.5px;
}
.form-group input:focus, .form-group select:focus{border-color:var(--ember);}
.form-group input[type="file"]{padding:9px 10px;font-size:13px;}
.form-row{display:flex;gap:10px;}
.form-row .form-group{flex:1;min-width:0;}
.form-hint{font-size:11.5px;color:var(--mist);margin-top:10px;line-height:1.5;}
.form-error{font-size:12.5px;color:var(--danger);margin-top:10px;line-height:1.4;}
fieldset{border:none;padding:0;margin:0 0 4px;}
.radio-group{display:flex;gap:8px;}
.radio-pill{flex:1;position:relative;}
.radio-pill input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer;}
.radio-pill span{
  display:block;text-align:center;padding:10px 8px;border-radius:10px;border:1px solid var(--line-strong);
  background:var(--surface2);font-size:13px;font-weight:600;color:var(--mist);
}
.radio-pill input:checked + span{border-color:var(--ember);color:var(--ink);background:color-mix(in srgb, var(--ember) 14%, var(--surface2));}

.theme-mode-toggle{display:flex;gap:8px;margin-top:14px;}
.theme-mode-toggle button{
  flex:1;display:flex;align-items:center;justify-content:center;gap:7px;
  padding:11px 8px;border-radius:11px;border:1px solid var(--line-strong);
  background:var(--surface2);color:var(--mist);font-size:13px;font-weight:600;
  transition:background .15s,color .15s,border-color .15s;
}
.theme-mode-toggle button svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.theme-mode-toggle button.active{border-color:var(--ember);color:var(--ink);background:color-mix(in srgb, var(--ember) 14%, var(--surface2));}

.color-row{display:flex;align-items:center;justify-content:space-between;padding:10px 2px;border-bottom:1px solid var(--line);}
.color-row:last-child{border-bottom:none;}
.color-row-label{font-size:14px;font-weight:500;}
.color-swatch{
  position:relative;width:38px;height:38px;border-radius:11px;border:1px solid var(--line-strong);
  overflow:hidden;flex-shrink:0;box-shadow:0 2px 6px rgba(0,0,0,.15);
}
.color-swatch input[type="color"]{
  position:absolute;inset:-4px;width:calc(100% + 8px);height:calc(100% + 8px);
  border:none;padding:0;cursor:pointer;opacity:0;
}
.gradient-presets{display:flex;flex-direction:column;gap:8px;}
.gradient-swatch{
  height:44px;border-radius:11px;border:1px solid var(--line-strong);
  display:flex;align-items:center;padding:0 14px;position:relative;overflow:hidden;
}
.gradient-swatch span{
  background:rgba(0,0,0,.4);color:#fff;font-size:12.5px;font-weight:600;
  padding:4px 9px;border-radius:7px;backdrop-filter:blur(2px);
}
.gradient-swatch.active{box-shadow:0 0 0 2px var(--ember) inset;}

.account-avatar-row{display:flex;align-items:center;gap:14px;margin-bottom:18px;}
.account-avatar{
  width:56px;height:56px;border-radius:50%;flex-shrink:0;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  background:var(--surface3);color:var(--mist);border:1px solid var(--line);
}
.account-avatar svg{width:28px;height:28px;}
.account-avatar img{width:100%;height:100%;object-fit:cover;}
.account-avatar-actions{display:flex;flex-wrap:wrap;gap:8px;}
.account-avatar-actions label{cursor:pointer;position:relative;}

.api-token-status{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:10px 0;}
.api-token-reveal{
  display:flex;align-items:center;gap:8px;margin-top:8px;
  background:var(--surface2);border:1px solid var(--line-strong);border-radius:10px;padding:9px 10px;
}
.api-token-value{
  flex:1;min-width:0;font-family:'IBM Plex Mono',monospace;font-size:12px;
  overflow-x:auto;white-space:nowrap;color:var(--ink);
}

/* Étiquette « Bêta » — pour une partie de l'interface encore en réglage.
   Alignée à droite, discrète : elle informe sans réclamer l'attention.
   Le texte étant visible, l'infobulle est posée à la main dans le HTML
   (tooltip.js ne s'occupe que des commandes sans libellé). */
.beta-ligne{display:flex;justify-content:flex-end;margin:-6px 0 8px}
.beta-etiquette{
  font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);
  border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);
  border-radius:999px;padding:3px 10px;cursor:help;
}
