.login-view{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--color-bg)}
.login-card{width:min(100%,420px);padding:36px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-surface)}
.login-card h1{margin:12px 0 8px}
.login-card form{display:grid;gap:12px;margin-top:24px}
.login-card input{width:100%;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-sm)}
.login-card input:focus{border-color:var(--color-primary)}
.button{min-height:40px;padding:8px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer}
.button:hover{background:var(--color-surface-muted)}
.button:disabled{cursor:wait;opacity:.6}
.button-primary{border-color:var(--color-primary);background:var(--color-primary);color:#fff}
.button-primary:hover{background:var(--color-primary-hover)}
.form-error{margin:0;color:var(--color-danger)}
.environment-badge{padding:6px 9px;border-radius:999px;background:var(--color-surface-muted);color:var(--color-text-muted);font-size:.8rem}
.status-banner{margin:20px 0;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}
.status-banner[data-tone="success"]{border-color:#b7dfcd;background:#f2fbf6;color:var(--color-success)}
.status-banner[data-tone="warning"]{border-color:#f0d3a8;background:#fff9ef;color:var(--color-warning)}
.status-banner[data-tone="danger"]{border-color:#f0bbb7;background:#fff5f4;color:var(--color-danger)}
