/* aidev — auth/system pages (login, access-denied). Wears the Nexus token
   system (public/css/nexus/app.css) so sign-in matches the Tuning / AI servers.
   No inline CSS lives in the views. */

body.login-body {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background:
        radial-gradient(1100px 560px at 50% -12%, rgba(6, 182, 212, 0.08), transparent 60%),
        var(--bg-primary);
}

.login-wrap { width: 100%; max-width: 400px; }

.login-brand { text-align: center; margin-bottom: 26px; }
.login-mark {
    display: inline-flex; align-items: center; gap: 10px;
    font-size: 20px; font-weight: 700; letter-spacing: 0.14em; color: var(--text-primary);
}
.login-mark .dot {
    width: 9px; height: 9px; border-radius: 50%;
    background: var(--accent); box-shadow: 0 0 0 4px rgba(6, 182, 212, 0.15);
}
.login-sub { margin-top: 8px; color: var(--text-muted); font-size: 12.5px; letter-spacing: 0.02em; }

.login-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 28px 26px;
    box-shadow: 0 24px 60px -24px rgba(0, 0, 0, 0.7);
}

.login-field { margin-bottom: 16px; }
.login-field label { display: block; font-size: 12px; color: var(--text-secondary); margin-bottom: 6px; }
.login-input {
    width: 100%; background: var(--bg-primary); border: 1px solid var(--border);
    border-radius: var(--radius-sm); padding: 11px 12px; color: var(--text-primary);
    font-size: 14px; font-family: inherit; transition: border-color 0.15s, box-shadow 0.15s;
}
.login-input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(6, 182, 212, 0.12); }
.login-input.code { text-align: center; letter-spacing: 0.5em; font-family: var(--font-mono); font-size: 22px; }

.login-pass-wrap { position: relative; }
.login-eye {
    position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
    background: none; border: none; color: var(--text-muted); cursor: pointer; padding: 4px;
}
.login-eye:hover { color: var(--text-secondary); }
.login-eye svg { display: block; }

.login-row { display: flex; align-items: center; justify-content: space-between; margin: 6px 0 18px; }
.login-check { display: inline-flex; align-items: center; gap: 8px; color: var(--text-muted); font-size: 12.5px; cursor: pointer; }
.login-check input { accent-color: var(--accent); }

.login-btn {
    width: 100%; padding: 11px; border: 1px solid var(--accent); border-radius: var(--radius-sm);
    background: var(--accent); color: #06121a; font-weight: 600; font-size: 14px; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px; transition: background 0.15s, border-color 0.15s;
    text-decoration: none;
}
.login-btn:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.login-btn.secondary { background: transparent; color: var(--text-primary); border-color: var(--border); }
.login-btn.secondary:hover { background: var(--bg-hover); border-color: var(--accent); color: var(--accent); }

.login-alert { display: flex; align-items: flex-start; gap: 10px; padding: 11px 13px; border-radius: var(--radius-sm); font-size: 13px; margin-bottom: 18px; }
.login-alert.err { background: var(--red-bg); border: 1px solid rgba(239, 68, 68, 0.35); color: #fca5a5; }
.login-alert.ok { background: var(--green-bg); border: 1px solid rgba(34, 197, 94, 0.35); color: #86efac; }

.login-back { display: inline-flex; align-items: center; gap: 6px; color: var(--text-muted); font-size: 12.5px; text-decoration: none; margin-bottom: 16px; }
.login-back:hover { color: var(--accent); }
.login-foot { text-align: center; margin-top: 18px; color: var(--text-muted); font-size: 11.5px; }

/* Access-denied specifics (reuses .login-wrap/.login-card) */
.login-icon {
    width: 66px; height: 66px; margin: 0 auto 18px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: var(--red-bg); border: 1px solid rgba(239, 68, 68, 0.35);
}
.login-icon svg { stroke: #fca5a5; }
.login-title { text-align: center; color: var(--text-primary); font-size: 19px; font-weight: 600; margin-bottom: 6px; }
.login-code { text-align: center; color: var(--text-muted); font-size: 12.5px; margin-bottom: 16px; }
.login-msg { text-align: center; color: var(--text-secondary); font-size: 13.5px; line-height: 1.6; margin-bottom: 22px; }
.login-actions { display: flex; gap: 10px; justify-content: center; }
.login-actions .login-btn { width: auto; padding: 10px 18px; }
.login-user { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--border-soft); text-align: center; color: var(--text-muted); font-size: 12px; }

.hidden { display: none; }
