/* ── Identification : barre supérieure, boutons, formulaires, blocs réservés ── */

.topbar {
  display:flex; align-items:center; justify-content:space-between; gap:0.75rem;
  margin-bottom:0.75rem;
}
@media(min-width:640px){ .topbar { margin-bottom:1rem; } }
.topbar-brand {
  display:flex; align-items:center; gap:0.5rem;
  font-size:var(--font-size-base); font-weight:700; letter-spacing:0.02em;
  color:var(--color-text); text-decoration:none;
}
.topbar-brand i { color:var(--color-accent); }
.topbar-auth { display:flex; align-items:center; gap:0.5rem; }
.user-menu { display:flex; align-items:center; gap:0.5rem; }
.user-name {
  display:inline-flex; align-items:center; gap:0.375rem;
  font-size:var(--font-size-sm); color:var(--color-text-muted);
}
.user-name i { color:var(--color-text-faint); }

/* Boutons */
.btn {
  display:inline-flex; align-items:center; gap:0.375rem;
  padding:0.4rem 0.75rem; border-radius:var(--radius-sm);
  border:1px solid var(--color-border); background:var(--color-surface);
  color:var(--color-text); font:inherit; font-size:var(--font-size-sm); line-height:1.2;
  cursor:pointer; text-decoration:none; white-space:nowrap;
  transition:border-color 0.15s ease, background 0.15s ease, opacity 0.15s ease;
}
.btn:hover { border-color:var(--color-border-hover); }
.btn-primary { background:var(--color-accent); border-color:var(--color-accent); color:#fff; }
.btn-primary:hover { border-color:var(--color-accent); filter:brightness(1.08); }
.btn-danger { color:var(--color-danger); }
.btn-danger:hover { border-color:var(--color-danger); }
.btn-sm { padding:0.3rem 0.6rem; font-size:var(--font-size-xs); }
.btn[disabled] { opacity:0.55; cursor:default; pointer-events:none; }

/* Champs de formulaire */
.field {
  display:flex; flex-direction:column; gap:0.3rem; margin-bottom:0.75rem;
  font-size:var(--font-size-xs); font-weight:600; letter-spacing:0.04em; text-transform:uppercase;
  color:var(--color-text-muted);
}
.field input, .field select {
  padding:0.55rem 0.65rem; border-radius:var(--radius-sm);
  border:1px solid var(--color-border); background:rgba(255,255,255,0.04);
  color:var(--color-text); font:inherit; font-size:var(--font-size-base);
  font-weight:400; letter-spacing:0; text-transform:none;
}
.field input:focus, .field select:focus { outline:none; border-color:var(--color-accent); }
.field select option { color:#111; }
body.theme-light .field input, body.theme-light .field select { background:#fff; }
.field-check {
  display:flex; align-items:center; gap:0.5rem; text-transform:none; letter-spacing:0; font-weight:500;
  font-size:var(--font-size-sm);
}
.field-check input { width:1rem; height:1rem; margin:0; }
.form-error {
  color:var(--color-danger); font-size:var(--font-size-sm); margin-bottom:0.75rem;
  padding:0.5rem 0.65rem; border:1px solid rgba(209,105,126,0.35); border-radius:var(--radius-sm);
  background:rgba(209,105,126,0.08);
}
.form-actions { display:flex; gap:0.5rem; justify-content:flex-end; flex-wrap:wrap; }
.form-hint { font-size:var(--font-size-xs); color:var(--color-text-faint); font-weight:400; letter-spacing:0; text-transform:none; }

/* Modale de connexion */
.auth-modal { max-width:22rem; }
.auth-modal .modal-title i { color:var(--color-accent); }
.auth-modal form { margin-top:0.25rem; }
.auth-modal .form-actions { margin-top:0.25rem; }

/* Blocs réservés aux utilisateurs identifiés */
.auth-locked { display:none !important; }
@media(min-width:1024px){
  body.is-guest .ephemeris-left { grid-row:2 / span 3; }
  body.is-guest .quote-right   { grid-row:2; }
  body.is-guest .uv-right      { grid-row:3; }
  body.is-guest .dette-right   { grid-row:4; }
}
