/* Porchlight sign-in screens v3 (Pylogix, 2026-09-26): login, sign up, password and activation views.
   Linked at the end of those views, so it loads after the app's own theme. Light on purpose: the same logo file serves the dashboard. */
body { font-family: 'Plus Jakarta Sans', 'Segoe UI', Arial, sans-serif !important; background: #e8edff !important; color: #0b1026; -webkit-font-smoothing: antialiased; }
body::before { content: ''; position: fixed; right: -140px; bottom: -120px; width: 460px; height: 340px; border-radius: 120px 120px 120px 24px; background: rgba(61, 99, 255, .1); transform: rotate(-8deg); pointer-events: none; z-index: 0; }
body::after { content: ''; position: fixed; left: -90px; top: 90px; width: 240px; height: 180px; border-radius: 80px 80px 16px 80px; background: rgba(255, 176, 124, .25); transform: rotate(6deg); pointer-events: none; z-index: 0; }
section, .container, #app { position: relative; z-index: 1; }
.login-brand img { width: auto !important; max-width: 280px; height: 34px; object-fit: contain; }
.card, .card.card-primary { border: 2px solid #0b1026 !important; border-top: 2px solid #0b1026 !important; border-radius: 26px !important; box-shadow: 8px 8px 0 0 #3d63ff !important; overflow: hidden; }
.card .card-header { border-bottom: 1px solid #e6e9f2 !important; padding: 22px 26px !important; }
.card .card-header h4, .card .card-header { color: #0b1026 !important; font-family: 'Syne', 'Plus Jakarta Sans', sans-serif !important; font-weight: 800 !important; font-size: 22px !important; letter-spacing: -.02em; }
.card .card-header h4 i, .card .card-header i { color: #3d63ff; }
.card .card-body { padding: 26px !important; }
label, .d-block { font-weight: 700 !important; color: #0b1026 !important; }
.form-control { border: 1.5px solid #d6defa !important; border-radius: 12px !important; min-height: 48px; background: #fff !important; font-size: 15px !important; }
.form-control:focus { border-color: #3d63ff !important; box-shadow: 0 0 0 3px rgba(61, 99, 255, .18) !important; }
.input-group-text { border-radius: 12px 0 0 12px !important; border: 1.5px solid #d6defa !important; background: #f4f6fc !important; }
.btn-primary { background: #3d63ff !important; border-color: #3d63ff !important; border-radius: 999px !important; font-weight: 800 !important; padding: 13px 20px !important; box-shadow: none !important; transition: transform .2s, box-shadow .2s; }
.btn-primary:hover { transform: translate(-2px, -2px); box-shadow: 3px 3px 0 0 #0b1026 !important; }
.btn { border-radius: 999px !important; }
a { color: #3d63ff; font-weight: 700; }
.text-muted { color: #5a6280 !important; }
.custom-control-input:checked ~ .custom-control-label::before { background-color: #3d63ff !important; border-color: #3d63ff !important; }
.alert { border-radius: 14px !important; }
