/* ── Auth container ── */
#auth-container {
  display:none; min-height:100vh;
  align-items:center; justify-content:center; padding:24px;
  background:var(--bg);
  background-image:
    radial-gradient(ellipse 80% 50% at 50% -10%, rgba(43,127,255,0.06) 0%, transparent 60%),
    radial-gradient(ellipse 40% 30% at 90% 80%, rgba(74,158,255,0.04) 0%, transparent 50%);
}
#auth-container.visible { display:flex; }

.auth-card {
  width:100%; max-width:420px;
  background:var(--surface); border:1px solid var(--border);
  border-radius:14px; padding:32px 28px;
}
.auth-logo {
  font-family:'Playfair Display',serif; font-size:26px; font-weight:700;
  text-align:center; margin-bottom:24px;
}
.auth-logo span { color:var(--accent); }

/* Tabs */
.auth-tabs { display:flex; gap:4px; margin-bottom:20px; background:var(--surface2); border-radius:8px; padding:3px; }
.auth-tab {
  flex:1; padding:8px; text-align:center; font-size:13px; font-weight:600;
  border:none; border-radius:6px; background:transparent;
  color:var(--muted2); cursor:pointer; font-family:inherit; transition:all .15s;
}
.auth-tab.active { background:var(--accent); color:#FFFFFF; }

/* Form */
.auth-field { margin-bottom:14px; }
.auth-label { display:block; font-size:11px; font-weight:600; color:var(--muted2); margin-bottom:5px; letter-spacing:.04em; }
.auth-input {
  width:100%; padding:10px 12px; font-size:14px; font-family:inherit;
  background:var(--surface2); border:1px solid var(--border2); border-radius:8px;
  color:var(--text); outline:none; transition:border-color .15s;
}
.auth-input:focus { border-color:var(--accent); }
.auth-input.error { border-color:var(--error); }

.auth-hint { font-size:11px; color:var(--muted); margin-top:4px; }
.auth-error { font-size:11px; color:var(--error); margin-top:4px; display:none; }
.auth-error.visible { display:block; }
.auth-success { font-size:11px; color:var(--success); margin-top:4px; display:none; }
.auth-success.visible { display:block; }

/* Password strength */
.pwd-strength { display:flex; gap:4px; margin-top:6px; }
.pwd-bar { height:4px; flex:1; border-radius:2px; background:var(--border2); transition:background .2s; }
.pwd-bar.red { background:#f05252; }
.pwd-bar.orange { background:#f59e0b; }
.pwd-bar.yellow { background:#eab308; }
.pwd-bar.green { background:#3dd68c; }

/* Checkbox */
.auth-check { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--muted2); margin-bottom:14px; cursor:pointer; }
.auth-check input { accent-color:var(--accent); width:16px; height:16px; flex-shrink:0; }
.auth-check a { color:var(--accent2); text-decoration:underline; }

/* Buttons */
.auth-btn {
  width:100%; padding:11px; font-size:14px; font-weight:700; font-family:inherit;
  border:none; border-radius:8px; cursor:pointer; transition:all .15s;
  background:var(--accent); color:#FFFFFF;
}
.auth-btn:hover { filter:brightness(1.1); }
.auth-btn:disabled { opacity:.4; cursor:not-allowed; }
.auth-btn-outline {
  width:100%; padding:10px; font-size:13px; font-weight:600; font-family:inherit;
  border:1px solid var(--border2); border-radius:8px; cursor:pointer;
  background:transparent; color:var(--muted2); transition:all .15s; margin-top:8px;
}
.auth-btn-outline:hover { border-color:var(--accent2); color:var(--accent2); }

.auth-link { font-size:12px; color:var(--accent2); cursor:pointer; background:none; border:none; font-family:inherit; margin-top:10px; display:inline-block; }
.auth-link:hover { text-decoration:underline; }

/* TOTP screen */
.totp-input {
  width:180px; text-align:center; font-size:24px; font-family:'JetBrains Mono',monospace;
  letter-spacing:.3em; padding:12px; margin:16px auto; display:block;
  background:var(--surface2); border:1px solid var(--border2); border-radius:8px;
  color:var(--text); outline:none;
}
.totp-input:focus { border-color:var(--accent); }

/* ── Account page ── */
.account-section {
  padding:20px 0; border-bottom:1px solid var(--border);
}
.account-section:last-child { border-bottom:none; }
.account-title { font-size:15px; font-weight:700; margin-bottom:14px; color:var(--text); }

.session-card {
  display:flex; align-items:center; gap:12px; padding:10px 14px;
  background:var(--surface2); border:1px solid var(--border); border-radius:8px;
  margin-bottom:8px; font-size:12px;
}
.session-card .session-info { flex:1; }
.session-card .session-loc { color:var(--muted); font-size:11px; }
.session-badge {
  font-size:10px; font-weight:700; padding:2px 8px; border-radius:10px;
  background:rgba(61,214,140,0.12); color:var(--success);
}
.session-revoke {
  background:none; border:1px solid rgba(240,82,82,0.3); color:var(--error);
  font-size:11px; padding:4px 10px; border-radius:6px; cursor:pointer; font-family:inherit;
}
.session-revoke:hover { background:rgba(240,82,82,0.08); }

.account-toggle {
  display:flex; align-items:center; gap:10px; font-size:13px; color:var(--text); margin-bottom:8px;
}
.account-toggle input[type=checkbox] { accent-color:var(--accent); width:16px; height:16px; }

.btn-danger {
  padding:10px 20px; font-size:13px; font-weight:700; font-family:inherit;
  border:1px solid var(--error); border-radius:8px; cursor:pointer;
  background:rgba(240,82,82,0.08); color:var(--error); transition:all .15s;
}
.btn-danger:hover { background:rgba(240,82,82,0.18); }

.qr-container { text-align:center; margin:16px 0; }
.qr-container img { border-radius:8px; background:#fff; padding:8px; }

/* Header user zone */
.header-user {
  display:flex; align-items:center; gap:8px; margin-left:auto; padding-right:8px;
}
.header-user-email { font-size:11px; color:var(--muted2); max-width:140px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.header-user-btn {
  background:none; border:1px solid var(--border2); color:var(--muted2); font-size:12px;
  padding:4px 10px; border-radius:6px; cursor:pointer; font-family:inherit; transition:all .15s;
}
.header-user-btn:hover { border-color:var(--accent); color:var(--accent); }
.header-admin-btn {
  background:none; border:none; color:var(--muted); cursor:pointer;
  font-size:16px; padding:2px 6px; border-radius:6px; transition:all .15s;
}
.header-admin-btn:hover { color:var(--accent); background:var(--surface2); }

/* ── Responsive tablette ── */
@media(max-width:768px) {
  .auth-card { padding:28px 22px; }
  .auth-input { font-size:16px; padding:12px 14px; }
  .auth-btn { padding:14px; font-size:15px; min-height:48px; }
  .auth-btn-outline { padding:12px; font-size:14px; min-height:44px; }
  .auth-tab { padding:10px; font-size:14px; min-height:44px; }
  .auth-label { font-size:12px; }
  .auth-check { font-size:13px; gap:10px; min-height:44px; }
  .auth-check input { width:20px; height:20px; }
  .auth-link { font-size:13px; padding:8px 0; min-height:44px; display:inline-flex; align-items:center; }
  .auth-error, .auth-success, .auth-hint { font-size:12px; }
  .totp-input { width:220px; font-size:28px; padding:14px; }
  .session-card { padding:12px 16px; font-size:13px; }
  .session-revoke { padding:6px 14px; font-size:12px; min-height:36px; }
  .header-user-btn { padding:6px 14px; font-size:13px; min-height:36px; }
}

/* ── Responsive mobile ── */
@media(max-width:500px) {
  .auth-card { padding:24px 16px; max-width:100%; }
  .auth-logo { font-size:24px; margin-bottom:20px; }
  .auth-tabs { margin-bottom:16px; }
  .auth-input { font-size:16px; padding:14px; border-radius:10px; }
  .auth-btn { padding:16px; font-size:16px; border-radius:10px; min-height:52px; }
  .auth-tab { padding:12px 8px; font-size:14px; }
  .header-user-email { display:none; }
  .account-section { padding:16px 0; }
  .account-title { font-size:16px; }
  .btn-danger { min-height:48px; font-size:14px; width:100%; }
}
