/* core/static/css/pages/login.css
   Extracted from the inline <style> block that used to live directly in
   auth/login.html. */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'DM Sans', system-ui, sans-serif; background: #F0F4FA; min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 20px; }
.wrap { display: grid; grid-template-columns: 1fr 1fr; max-width: 960px; width: 100%; background: #fff; border-radius: 18px; box-shadow: 0 24px 80px rgba(0, 0, 0, .12), 0 4px 16px rgba(0, 0, 0, .05); overflow: hidden; min-height: 560px; }
.left { background: linear-gradient(150deg, #0F172A 0%, #1E3A5F 50%, #0D2137 100%); padding: 52px 46px; display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; }
.left::before { content: ''; position: absolute; top: -80px; right: -80px; width: 320px; height: 320px; border-radius: 50%; background: rgba(59, 130, 246, .1); pointer-events: none; }
.left::after { content: ''; position: absolute; bottom: -60px; left: -30px; width: 220px; height: 220px; border-radius: 50%; background: rgba(14, 165, 233, .08); pointer-events: none; }
.brand { display: flex; align-items: center; gap: 14px; }
.logo { width: 44px; height: 44px; background: linear-gradient(135deg, #3B82F6, #2563EB); border-radius: 12px; display: flex; align-items: center; justify-content: center; color: white; font-weight: 800; font-size: 16px; letter-spacing: -.5px; flex-shrink: 0; }
.brand-text h1 { color: white; font-size: 17px; font-weight: 700; letter-spacing: -.3px; }
.brand-text p { color: rgba(255, 255, 255, .45); font-size: 12px; margin-top: 2px; }
.hero h2 { font-size: 34px; font-weight: 800; color: white; line-height: 1.2; letter-spacing: -.8px; margin-bottom: 16px; }
.hero p { color: rgba(255, 255, 255, .55); font-size: 14px; line-height: 1.65; max-width: 340px; }
.pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.pill { background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .15); border-radius: 999px; padding: 5px 13px; font-size: 12px; color: rgba(255, 255, 255, .7); font-weight: 500; }
.footer-note { color: rgba(255, 255, 255, .25); font-size: 11px; }
.right { padding: 52px 46px; display: flex; flex-direction: column; justify-content: center; }
.right h3 { font-size: 24px; font-weight: 800; color: #111827; letter-spacing: -.4px; margin-bottom: 6px; }
.right p { font-size: 13px; color: #6B7280; margin-bottom: 32px; }
.fg { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.lbl { font-size: 12px; font-weight: 600; color: #374151; }
.inp { width: 100%; background: #F9FAFB; border: 1.5px solid #E5E7EB; border-radius: 9px; padding: 11px 14px; font-size: 14px; font-family: 'DM Sans', sans-serif; color: #111827; outline: none; transition: all .15s; }
.inp:focus { border-color: #3B82F6; background: white; box-shadow: 0 0 0 3px rgba(59, 130, 246, .1); }
.chk { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #6B7280; cursor: pointer; }
.btn { width: 100%; background: #1E293B; color: white; border: none; border-radius: 9px; padding: 12px; font-size: 14px; font-weight: 700; font-family: 'DM Sans', sans-serif; cursor: pointer; transition: background .15s; margin-top: 10px; letter-spacing: -.2px; }
.btn:hover { background: #0F172A; }
.err { background: #FEF2F2; color: #DC2626; border: 1px solid #FECACA; border-radius: 8px; padding: 10px 14px; font-size: 13px; font-weight: 500; margin-bottom: 16px; }
@media (max-width: 620px) { .wrap { grid-template-columns: 1fr; } .left { display: none; } .right { padding: 32px 24px; } }
