/* Arkiba — styles partagés des pages d'authentification (login / register) */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* Tactile : coupe le double-tap-to-zoom sur les éléments interactifs, sans
   toucher au pinch-to-zoom (voir app.html pour le détail du raisonnement). */
a, button, input, select, summary,
.btn-submit, .ms-trigger, .ms-opt, .ms-chip-x, .auth-back {
  touch-action: manipulation;
}

/* Thème clair, aligné sur l'application (light mode par défaut) */
:root {
  --bg:        #F2F6FA;
  --bg-card:   #FFFFFF;
  --bg-card2:  #F8FAFD;
  --border:    #E2E9F1;
  --border2:   #CDD9E5;
  --text:      #16232F;
  --text-muted:#54687C;
  --text-dim:  #64778A;
  --accent:    #0284C7;
  --accent-contrast: #FFFFFF;
  --accent-dim:rgba(2,132,199,0.08);
  --accent-glow:rgba(2,132,199,0.22);
  --danger:    #DC2626;
  --danger-dim:rgba(220,38,38,0.08);
  --success:   #15803D;
}

body {
  background: var(--bg);
  color: var(--text);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 16px; line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
  display: flex; align-items: center; justify-content: center;
  padding: 40px 20px; position: relative; overflow-x: hidden;
}

/* Décor : grille + halo, repris de la landing */
.bg-grid {
  position: fixed; inset: 0; z-index: 0;
  background-image:
    linear-gradient(rgba(2,132,199,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(2,132,199,.05) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(ellipse 80% 70% at 50% 40%, black 20%, transparent 100%);
}
.bg-glow {
  position: fixed; z-index: 0; width: 700px; height: 420px;
  top: 38%; left: 50%; transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, rgba(2,132,199,.10) 0%, transparent 70%);
  pointer-events: none;
}

.auth-card {
  position: relative; z-index: 1;
  width: 100%; max-width: 440px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 40px 38px;
  box-shadow: 0 18px 48px rgba(22,35,47,.10), 0 2px 6px rgba(22,35,47,.05);
  animation: rise .5s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

.auth-logo {
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 28px; letter-spacing: -.02em; text-align: center;
  text-decoration: none; color: var(--text); display: block; margin-bottom: 6px;
}
.auth-logo span { color: var(--accent); }
.auth-title {
  font-size: 15px; color: var(--text-muted); text-align: center;
  font-weight: 300; margin-bottom: 30px;
}

.field { margin-bottom: 16px; }
.field label {
  display: block; font-size: 12px; font-weight: 500;
  letter-spacing: .03em; color: var(--text-muted); margin-bottom: 7px;
}
.row { display: flex; gap: 12px; }
.row .field { flex: 1; }
.input, .select {
  width: 100%; background: var(--bg-card2);
  border: 1px solid var(--border2); border-radius: 9px;
  padding: 12px 14px; font-size: 14px; color: var(--text);
  outline: none; font-family: inherit; transition: border-color .18s, box-shadow .18s;
}
.input::placeholder { color: var(--text-dim); }
.input:hover:not(:focus), .select:hover:not(:focus) { border-color: var(--text-dim); }
.input:focus, .select:focus {
  border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-dim); outline: none;
}
.select {
  -webkit-appearance: none; appearance: none; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%236B8299' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; padding-right: 38px;
}
.hint { font-size: 11.5px; color: var(--text-dim); margin-top: 6px; }

/* ── Sélecteur multi-spécialités (menu déroulant animé) ── */
.ms { position: relative; }
.ms-trigger {
  width: 100%; display: flex; align-items: center; gap: 10px;
  background: var(--bg-card2); border: 1px solid var(--border2);
  border-radius: 8px; padding: 9px 14px; min-height: 46px;
  font-family: inherit; font-size: 14px; color: var(--text);
  cursor: pointer; transition: border-color .2s, box-shadow .2s, background .2s;
}
.ms-trigger:hover { border-color: var(--border); }
.ms.open .ms-trigger,
.ms-trigger:focus-visible {
  border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-dim); outline: none;
}
.ms-value { flex: 1; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; min-width: 0; }
.ms-placeholder { color: var(--text-dim); }
.ms-chip {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--accent-dim); border: 1px solid rgba(2,132,199,.30);
  color: var(--accent); border-radius: 999px;
  padding: 3px 5px 3px 11px; font-size: 12.5px; line-height: 1.4;
  animation: chip-in .2s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes chip-in { from { opacity: 0; transform: scale(.8); } to { opacity: 1; transform: none; } }
.ms-chip-x {
  display: inline-flex; align-items: center; justify-content: center;
  width: 16px; height: 16px; border-radius: 50%; border: none;
  background: var(--accent-glow); color: var(--accent);
  font-size: 13px; line-height: 1; cursor: pointer; padding: 0;
  transition: background .15s, transform .15s;
}
.ms-chip-x:hover { background: var(--accent); color: var(--accent-contrast); transform: scale(1.12); }
.ms-caret { flex: none; color: var(--text-muted); transition: transform .28s cubic-bezier(.2,.7,.2,1); }
.ms.open .ms-caret { transform: rotate(180deg); color: var(--accent); }
.ms-panel {
  position: absolute; z-index: 40; top: calc(100% + 7px); left: 0; right: 0;
  background: var(--bg-card); border: 1px solid var(--border2);
  border-radius: 11px; padding: 6px; max-height: 282px; overflow-y: auto;
  box-shadow: 0 22px 48px rgba(22,35,47,.16);
  opacity: 0; transform: translateY(-10px) scale(.985); transform-origin: top center;
  visibility: hidden; pointer-events: none;
  transition: opacity .22s ease, transform .22s cubic-bezier(.2,.7,.2,1), visibility .22s;
}
.ms.open .ms-panel { opacity: 1; transform: none; visibility: visible; pointer-events: auto; }
.ms-opt {
  display: flex; align-items: center; gap: 11px;
  padding: 10px 11px; border-radius: 7px; cursor: pointer;
  font-size: 13.5px; color: var(--text); user-select: none;
  transition: background .15s;
}
.ms-opt:hover { background: var(--accent-dim); }
.ms-opt input { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.ms-check {
  flex: none; width: 19px; height: 19px; border-radius: 6px;
  border: 1.5px solid var(--border2); background: var(--bg-card2);
  display: flex; align-items: center; justify-content: center;
  transition: background .18s, border-color .18s;
}
.ms-check svg { width: 11px; height: 11px; stroke: var(--accent-contrast); opacity: 0; transform: scale(.4); transition: opacity .18s, transform .18s cubic-bezier(.2,.7,.2,1); }
.ms-opt input:checked + .ms-check { background: var(--accent); border-color: var(--accent); }
.ms-opt input:checked + .ms-check svg { opacity: 1; transform: none; }
.ms-opt input:focus-visible + .ms-check { box-shadow: 0 0 0 3px var(--accent-dim); }
.ms-panel::-webkit-scrollbar { width: 8px; }
.ms-panel::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 8px; }

.btn-submit {
  width: 100%; background: var(--accent); color: var(--accent-contrast);
  border: none; border-radius: 8px; padding: 14px;
  font-size: 15px; font-weight: 600; cursor: pointer;
  font-family: inherit; margin-top: 8px;
  display: flex; align-items: center; justify-content: center; gap: 9px;
  transition: opacity .2s, box-shadow .2s;
}
.btn-submit:hover { opacity: .9; box-shadow: 0 6px 28px var(--accent-glow); }
.btn-submit:disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }

.spinner {
  width: 15px; height: 15px; border-radius: 50%;
  border: 2px solid var(--accent-glow); border-top-color: var(--accent-contrast);
  animation: spin .7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

.alert {
  display: none; margin-bottom: 18px; padding: 12px 16px;
  border-radius: 8px; font-size: 13.5px; line-height: 1.5;
}
.alert.show { display: block; }
.alert-error   { background: var(--danger-dim); border: 1px solid rgba(220,38,38,.30); color: var(--danger); }
.alert-success { background: rgba(21,128,61,.08); border: 1px solid rgba(21,128,61,.28); color: var(--success); }

.auth-foot {
  text-align: center; font-size: 13.5px; color: var(--text-muted); margin-top: 24px;
}
.auth-foot a { color: var(--accent); text-decoration: none; }
.auth-foot a:hover { text-decoration: underline; }
.auth-back {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  margin-top: 18px;
  font-size: 12.5px; color: var(--text-dim); text-decoration: none;
}
.auth-back:hover { color: var(--text-muted); }
.auth-back svg { width: 14px; height: 14px; transition: transform 0.2s ease; flex-shrink: 0; }
.auth-back:hover svg { transform: translateX(-3px); }

@media (max-width: 480px) {
  .auth-card { padding: 32px 24px; }
  .row { flex-direction: column; gap: 0; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition-duration: 0ms !important; }
}
