@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

/* Nico Auth Tool — Auth Pages (White Theme) */
:root {
  --bg-base:#f7f8fc; --bg-card:#ffffff; --bg-surface:#f1f2fa;
  --border:#e6e9f4; --border-glow:#c9b8f0;
  --primary:#6d28d9; --primary-dark:#5b21b6;
  --accent:#0891b2;
  --gradient:linear-gradient(135deg,#6d28d9,#4f46e5);
  --gradient-btn:linear-gradient(135deg,#6d28d9,#4f46e5);
  --text-primary:#12142b; --text-secondary:#5d647e; --text-muted:#9aa1bd;
  --success:#059669; --danger:#dc2626; --warning:#d97706;
  --radius:10px; --radius-lg:16px;
  --shadow:0 8px 30px rgba(18,20,43,.08), 0 2px 8px rgba(18,20,43,.05);
  --glow:0 0 40px rgba(109,40,217,.06);
}

* { margin:0; padding:0; box-sizing:border-box; }

body {
  font-family:'Inter',system-ui,sans-serif;
  background: var(--bg-base);
  color: var(--text-primary);
  min-height: 100vh;
}

/* Soft aurora background */
body::before {
  content:''; position:fixed; inset:0; z-index:0;
  background: radial-gradient(ellipse 80% 50% at 20% 20%, rgba(109,40,217,.05) 0%, transparent 60%),
              radial-gradient(ellipse 60% 40% at 80% 80%, rgba(8,145,178,.04) 0%, transparent 60%);
  pointer-events:none;
}

.auth-wrapper {
  position:relative; z-index:1;
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  padding:20px;
}

.auth-box {
  width:100%; max-width:420px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 40px 36px;
  box-shadow: var(--shadow), var(--glow);
  position:relative; overflow:hidden;
}

.auth-box::before {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background: var(--gradient);
}

.auth-logo { text-align:center; margin-bottom:28px; }
.auth-logo img { height:60px; filter:drop-shadow(0 8px 20px rgba(109,40,217,.25)); }
.auth-logo .brand { margin-top:8px; font-size:18px; font-weight:700; color:var(--text-primary); }
.auth-logo .brand span { background:var(--gradient); -webkit-background-clip:text; -webkit-text-fill-color:transparent; }

.auth-title { font-size:22px; font-weight:700; color:var(--text-primary); margin-bottom:4px; }
.auth-subtitle { font-size:14px; color:var(--text-muted); margin-bottom:28px; }

.form-label { display:block; font-size:11px; font-weight:600; color:var(--text-secondary); text-transform:uppercase; letter-spacing:.8px; margin-bottom:6px; }

.form-input {
  width:100%; background:var(--bg-base); border:1px solid var(--border);
  color:var(--text-primary); border-radius:var(--radius); padding:12px 14px;
  font-size:14px; font-family:inherit; outline:none; transition:all .2s;
}
.form-input:focus { border-color:var(--primary); box-shadow:0 0 0 3px rgba(109,40,217,.12); background:#fff; }
.form-input::placeholder { color:var(--text-muted); }

.form-group { margin-bottom:18px; }

.btn-primary {
  width:100%; padding:13px; border:none; border-radius:var(--radius);
  background:var(--gradient-btn); color:#fff;
  font-size:15px; font-weight:600; font-family:inherit;
  cursor:pointer; letter-spacing:.3px;
  transition:opacity .2s, transform .1s;
  box-shadow:0 4px 16px rgba(109,40,217,.30);
}
.btn-primary:hover { opacity:.92; transform:translateY(-1px); }
.btn-primary:active { transform:translateY(0); }

.btn-secondary {
  width:100%; padding:12px; border:1px solid var(--border);
  border-radius:var(--radius); background:var(--bg-surface);
  color:var(--text-secondary); font-size:14px; font-weight:500;
  font-family:inherit; cursor:pointer; transition:all .2s;
}
.btn-secondary:hover { border-color:var(--primary); color:var(--primary); background:#fff; }

.auth-divider { text-align:center; color:var(--text-muted); font-size:13px; margin:16px 0; position:relative; }
.auth-divider::before { content:''; position:absolute; top:50%; left:0; right:0; height:1px; background:var(--border); z-index:0; }
.auth-divider span { background:var(--bg-card); padding:0 12px; position:relative; z-index:1; }

.auth-footer { text-align:center; margin-top:20px; font-size:13px; color:var(--text-muted); }
.auth-footer a { color:var(--primary); text-decoration:none; font-weight:500; }
.auth-footer a:hover { color:var(--accent); }

.alert { padding:12px 14px; border-radius:var(--radius); margin-bottom:18px; font-size:13px; font-weight:500; }
.alert-success { background:rgba(5,150,105,.08);  border:1px solid rgba(5,150,105,.25);  color:#047857; }
.alert-danger  { background:rgba(220,38,38,.07);  border:1px solid rgba(220,38,38,.25);  color:#b91c1c; }
.alert-warning { background:rgba(217,119,6,.08);  border:1px solid rgba(217,119,6,.25);  color:#b45309; }

.input-icon-wrap { position:relative; }
.input-icon-wrap .form-input { padding-left:40px; }
.input-icon-wrap .icon { position:absolute; left:13px; top:50%; transform:translateY(-50%); color:var(--text-muted); font-size:15px; }

/* Banned / Rate limit pages */
.error-page { min-height:100vh; display:flex; align-items:center; justify-content:center; text-align:center; flex-direction:column; }
.error-icon { font-size:64px; margin-bottom:20px; }
.error-title { font-size:28px; font-weight:700; color:var(--danger); margin-bottom:8px; }
.error-msg { font-size:15px; color:var(--text-secondary); max-width:400px; margin:0 auto; }
