:root {
    --bg: #090d18;
    --panel: #111827;
    --panel-soft: #151d2e;
    --border: rgba(255,255,255,0.09);
    --text: #f5f7fb;
    --secondary: #9ba7bd;
    --muted: #657188;
    --accent: #56d6aa;
    --accent-light: #79ecc5;
    --danger: #e07171;
}

* { box-sizing: border-box; }

html, body { margin: 0; min-height: 100%; }

body {
    min-height: 100vh;
    background:
        radial-gradient(circle at 75% 0%, rgba(86,214,170,0.08), transparent 32%),
        var(--bg);
    color: var(--text);
    font-family: "Segoe UI", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;
}

button, input { font: inherit; }

.auth-shell {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 24px;
}

.auth-card {
    width: min(470px, 100%);
    padding: 30px;
    border: 1px solid var(--border);
    border-radius: 22px;
    background: linear-gradient(145deg, rgba(18,27,44,0.98), rgba(13,20,34,0.98));
    box-shadow: 0 28px 90px rgba(0,0,0,0.42);
}

.brand-row { display: flex; align-items: center; gap: 12px; margin-bottom: 32px; }
.brand-mark {
    width: 48px; height: 48px; display: grid; place-items: center;
    border-radius: 14px; background: linear-gradient(145deg, var(--accent-light), #3aa485);
    color: #07120f; font-weight: 800; letter-spacing: .5px;
}
.brand-name { font-size: 19px; font-weight: 750; letter-spacing: 1.5px; }
.brand-subtitle { margin-top: 3px; color: var(--muted); font-size: 9px; font-weight: 650; letter-spacing: 1.7px; }

.auth-eyebrow { color: var(--accent); font-size: 10px; font-weight: 750; letter-spacing: 1.7px; margin-bottom: 8px; }
h1 { margin: 0; font-size: 27px; line-height: 1.25; }
.auth-description { margin: 10px 0 24px; color: var(--secondary); font-size: 13px; line-height: 1.75; }

.auth-form { display: flex; flex-direction: column; gap: 12px; }
.auth-form label { color: var(--secondary); font-size: 11px; font-weight: 650; }
.auth-form input {
    width: 100%; min-height: 48px; border: 1px solid var(--border); border-radius: 11px;
    padding: 0 14px; outline: 0; background: rgba(255,255,255,0.025); color: var(--text);
}
.auth-form input:focus { border-color: rgba(86,214,170,0.62); box-shadow: 0 0 0 4px rgba(86,214,170,0.07); }
.password-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }

.ghost-button, .primary-button {
    border-radius: 10px; cursor: pointer; min-height: 48px;
}
.ghost-button {
    padding: 0 14px; border: 1px solid var(--border); background: rgba(255,255,255,0.03); color: var(--secondary);
}
.primary-button {
    margin-top: 4px; border: 1px solid transparent; background: var(--accent); color: #07120f; font-weight: 800;
}
.primary-button:disabled, .ghost-button:disabled { opacity: .5; cursor: default; }

.password-note { color: var(--muted); font-size: 10px; line-height: 1.6; }
.auth-error {
    padding: 10px 12px; border: 1px solid rgba(224,113,113,.28); border-radius: 10px;
    background: rgba(224,113,113,.08); color: #f2a5a5; font-size: 11px; line-height: 1.55;
}
.security-note {
    margin-top: 22px; padding: 13px; display: flex; flex-direction: column; gap: 5px;
    border: 1px solid rgba(86,214,170,.17); border-radius: 11px; background: rgba(86,214,170,.055);
}
.security-note strong { color: var(--accent-light); font-size: 9px; letter-spacing: 1.2px; }
.security-note span { color: var(--muted); font-size: 10px; line-height: 1.55; }
footer { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--border); color: var(--muted); font-size: 9px; text-align: center; }

@media (max-width: 520px) {
    .auth-shell { padding: 14px; }
    .auth-card { padding: 24px 20px; border-radius: 18px; }
    h1 { font-size: 24px; }
}
