/* =========================================
   DEEPLEX LOGIN — standalone auth page styles
   Self-contained: own :root + .lq-* copy (NOT linked to
   liquid_style.css). Extracted 1:1 from registration/login.html
   inline <style> (W8). Do not merge with liquid_style.css —
   strict byte-identical extraction.
   ========================================= */

:root {
    --bg-start: #f8faff;
    --bg-mid: #eef2ff;
    --bg-end: #f1f5f9;
    --accent: #6c5ce7;
    --accent-dark: #4834d4;
    --text-main: #1a1a2e;
    --text-muted: #64748b;
    --glass-bg: rgba(255, 255, 255, 0.6);
    --glass-border: rgba(255, 255, 255, 0.8);
    --glass-highlight: rgba(255, 255, 255, 0.9);
    --font-display: 'Outfit', sans-serif;
    --font-body: 'Inter', sans-serif;
}

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

body {
    font-family: var(--font-body);
    background: radial-gradient(circle at top right, var(--bg-start) 0%, var(--bg-mid) 50%, var(--bg-end) 100%);
    color: var(--text-main);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    line-height: 1.6;
}

a { text-decoration: none; color: inherit; }

.lq-navbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.5rem 2rem;
    z-index: 10;
}

.lq-brand { display: flex; align-items: center; gap: 0.75rem; }
.lq-brand-icon {
    width: 40px; height: 40px; background: var(--accent);
    border-radius: 14px; display: flex; align-items: center; justify-content: center;
    color: white; box-shadow: 0 10px 20px rgba(108, 92, 231, 0.3);
}
.lq-brand-text { display: flex; flex-direction: column; }
.lq-brand-name {
    font-family: var(--font-display); font-size: 1.25rem; font-weight: 900;
    letter-spacing: -0.05em; line-height: 1;
}
.lq-brand-edition {
    font-size: 0.55rem; font-weight: 900; color: var(--accent);
    text-transform: uppercase; letter-spacing: 0.3em; margin-top: 2px;
}

.lq-btn {
    display: inline-flex; align-items: center; justify-content: center;
    gap: 0.5rem; padding: 1rem 2rem;
    font-family: var(--font-display); font-weight: 800;
    text-transform: uppercase; letter-spacing: 0.15em; font-size: 0.75rem;
    border-radius: 20px; border: none; cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.lq-btn-primary {
    background: linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);
    color: white; box-shadow: 0 10px 25px -5px rgba(108, 92, 231, 0.4), inset 0 1px 1px rgba(255,255,255,0.3);
}
.lq-btn-primary:hover { transform: translateY(-2px); box-shadow: 0 15px 35px -5px rgba(108, 92, 231, 0.5); filter: brightness(1.1); }
.lq-btn-glass {
    background: var(--glass-bg); border: 1px solid var(--glass-border); color: var(--text-main);
}
.lq-btn-glass:hover { background: var(--glass-highlight); transform: translateY(-2px); box-shadow: 0 10px 25px rgba(0,0,0,0.05); }

.lq-panel {
    background: var(--glass-bg); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px);
    border: 1px solid var(--glass-border); border-radius: 32px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02), 0 20px 40px -10px rgba(108,92,231,0.08), inset 0 1px 1px rgba(255,255,255,0.5);
    padding: 3.5rem; position: relative;
}

.lq-form-group { margin-bottom: 1.5rem; }
.lq-label { display: flex; justify-content: space-between; align-items: center; font-family: var(--font-display); font-size: 0.65rem; font-weight: 900; text-transform: uppercase; letter-spacing: 0.15em; color: var(--text-muted); margin-bottom: 0.5rem; margin-left: 0.25rem; }
.lq-input { width: 100%; background: rgba(255, 255, 255, 0.6); border: 2px solid var(--glass-border); padding: 1.15rem 1.25rem; border-radius: 16px; font-family: var(--font-body); font-size: 0.95rem; font-weight: 500; color: var(--text-main); transition: all 0.3s ease; box-shadow: inset 0 2px 4px rgba(0,0,0,0.02); }
.lq-input:focus { outline: none; background: var(--glass-highlight); border-color: var(--accent); box-shadow: 0 0 0 4px rgba(108, 92, 231, 0.15); }

.login-tag { position: absolute; top: -12px; right: 40px; background: var(--text-main); color: white; padding: 0.35rem 1rem; border-radius: 999px; font-size: 0.55rem; font-weight: 900; text-transform: uppercase; letter-spacing: 0.2em; box-shadow: 0 10px 20px rgba(0,0,0,0.1); }
.login-header { text-align: center; margin-bottom: 2.5rem; }
.login-header h2 { font-size: 2rem; margin-bottom: 0.5rem; font-family: var(--font-display); font-weight: 900; letter-spacing: -0.03em;}
.login-header p { font-size: 1rem; color: var(--text-muted); font-weight: 500; }
.lq-alert-error { background: rgba(239, 68, 68, 0.1); border: 1px solid rgba(239, 68, 68, 0.2); border-radius: 16px; padding: 1rem; display: flex; gap: 0.75rem; margin-bottom: 1.5rem; color: #991b1b; font-size: 0.8rem; font-weight: 500; }

.lq-blob { position: absolute; border-radius: 50%; filter: blur(80px); z-index: 1; opacity: 0.5; pointer-events: none; }
.blob-1 { background: rgba(165, 180, 252, 0.4); width: 600px; height: 600px; top: -100px; left: -100px; }
.blob-2 { background: rgba(191, 219, 254, 0.3); width: 500px; height: 500px; top: 40%; right: -50px; }

.main-wrapper { flex: 1; display: flex; align-items: center; justify-content: center; padding: 2rem; z-index: 10; position: relative; }
.login-container { width: 100%; max-width: 480px; }

/* Passkey login block (.pk-*) styles moved to accounts/passkey_block.css
   (single source of truth) — the partial now ships its own <link> so it can
   render on any Liquid Glass surface. Do not re-add them here. */
