/* Login page styles */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:#f1f5f9;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 16px;-webkit-font-smoothing:antialiased;}

/* Wrapper */
.wrapper{width:100%;max-width:420px;animation:up .3s ease both;}
@media(min-width:960px){
  .wrapper{max-width:900px;display:grid;grid-template-columns:1fr 1fr;border-radius:22px;overflow:hidden;box-shadow:0 8px 40px rgba(0,0,0,.12);}
}
@keyframes up{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}

/* Left panel (desktop only) */
.left-panel{display:none;}
@media(min-width:960px){
  .left-panel{
    display:flex;flex-direction:column;justify-content:space-between;
    background:#0d1b4b;padding:48px 40px;position:relative;overflow:hidden;
  }
  .left-panel::before{
    content:'';position:absolute;width:320px;height:320px;border-radius:50%;
    background:rgba(255,255,255,.04);top:-80px;right:-80px;
  }
  .left-panel::after{
    content:'';position:absolute;width:200px;height:200px;border-radius:50%;
    background:rgba(255,255,255,.04);bottom:-60px;left:-40px;
  }
}
.lp-logo{display:flex;align-items:center;gap:12px;position:relative;z-index:1;}
.lp-logo img{width:46px;height:46px;border-radius:50%;object-fit:contain;}
.lp-logo-name{font-size:1rem;font-weight:700;color:#fff;line-height:1.2;}
.lp-logo-sub{font-size:.75rem;color:rgba(255,255,255,.55);}
.lp-body{position:relative;z-index:1;}
.lp-title{font-size:1.85rem;font-weight:800;color:#fff;line-height:1.2;margin-bottom:12px;}
.lp-desc{font-size:.85rem;color:rgba(255,255,255,.6);line-height:1.6;margin-bottom:32px;}
.lp-features{display:flex;flex-direction:column;gap:14px;}
.lp-feat{display:flex;align-items:center;gap:12px;}
.lp-feat-icon{width:34px;height:34px;border-radius:9px;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.lp-feat-icon i{color:rgba(255,255,255,.7);font-size:.82rem;}
.lp-feat-text{font-size:.82rem;color:rgba(255,255,255,.6);}
.lp-footer{font-size:.7rem;color:rgba(255,255,255,.3);position:relative;z-index:1;}

/* Right panel / card */
.card{background:#fff;border-radius:20px;box-shadow:0 4px 24px rgba(0,0,0,.08);}
@media(min-width:960px){.card{border-radius:0;box-shadow:none;}}

/* Mobile header (hidden on desktop) */
.mob-header{padding:28px 28px 20px;text-align:center;border-bottom:1px solid #f1f5f9;}
@media(min-width:960px){.mob-header{display:none;}}

/* Enrollment banner */
.enroll-banner{background:#eff6ff;border:1.5px solid #bfdbfe;border-radius:12px;padding:12px 14px;display:flex;align-items:flex-start;gap:10px;}
.enroll-close{background:none;border:none;cursor:pointer;color:#93c5fd;font-size:.9rem;margin-left:auto;flex-shrink:0;padding:0;transition:color .15s;}
.enroll-close:hover{color:#1e3a8a;}
.banner-days{font-size:.78rem;font-weight:600;color:#1d4ed8;margin-top:4px;}

/* Alerts */
.alert{border-radius:10px;padding:11px 14px;display:flex;align-items:flex-start;gap:10px;font-size:.85rem;}
.alert-error{background:#fef2f2;border:1.5px solid #fecaca;color:#991b1b;}
.alert-success{background:#f0fdf4;border:1.5px solid #bbf7d0;color:#166534;}

/* Fields */
.field-label{display:block;font-size:.78rem;font-weight:600;color:#374151;margin-bottom:6px;}
.field-wrap{position:relative;}
.field-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#9ca3af;font-size:.82rem;pointer-events:none;}
.field-input{width:100%;padding:11px 14px 11px 38px;border:1.5px solid #e5e7eb;border-radius:10px;font-size:.9rem;color:#1e293b;background:#f9fafb;outline:none;transition:border-color .15s,box-shadow .15s;}
.field-input:focus{border-color:#0d1b4b;box-shadow:0 0 0 3px rgba(13,27,75,.1);background:#fff;}
.field-input.has-right{padding-right:42px;}
.pw-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#9ca3af;padding:0;font-size:.9rem;transition:color .15s;}
.pw-toggle:hover{color:#374151;}

/* Button */
.btn-primary{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;background:#0d1b4b;color:#fff;border:none;border-radius:10px;font-size:.92rem;font-weight:600;cursor:pointer;transition:background .15s,box-shadow .15s,transform .1s;}
.btn-primary:hover{background:#1a2e72;box-shadow:0 4px 16px rgba(13,27,75,.28);}
.btn-primary:active{transform:scale(.98);}
.btn-primary:disabled{opacity:.65;cursor:not-allowed;}

/* Link */
a.link{color:#0d1b4b;font-weight:600;text-decoration:none;transition:opacity .15s;}
a.link:hover{opacity:.7;text-decoration:underline;}

/* ── Layout / heading utilities ── */
.mob-logo{width:52px;height:52px;border-radius:50%;object-fit:contain;margin:0 auto 10px;display:block;}
.mob-name{font-size:1rem;font-weight:700;color:#0d1b4b;}
.mob-sub{font-size:.78rem;color:#94a3b8;margin-top:2px;}
.form-area{padding:36px 32px;display:flex;flex-direction:column;gap:18px;}
.welcome-title{font-size:1.3rem;font-weight:700;color:#0f172a;margin-bottom:3px;}
.welcome-sub{font-size:.82rem;color:#94a3b8;}
.form-col{display:flex;flex-direction:column;gap:14px;}
.forgot-row{text-align:right;margin-top:7px;}
.forgot-link{font-size:.76rem;}
.signin-btn{margin-top:4px;}
.signup-row{text-align:center;font-size:.81rem;color:#94a3b8;}
.signup-closed{color:#cbd5e1;}
.mobile-footer{margin-top:20px;font-size:.7rem;color:#cbd5e1;text-align:center;}

/* Enrollment banner extras */
.banner-icon{color:#3b82f6;font-size:.85rem;margin-top:2px;flex-shrink:0;}
.banner-inner{min-width:0;}
.banner-title{font-size:.78rem;font-weight:700;color:#1e3a8a;}
.banner-dates{font-size:.76rem;color:#3b82f6;margin-top:1px;}
.banner-clock{margin-right:4px;}
.dev-note{opacity:.6;}

/* Toast */
.toast-wrap{position:fixed;top:1.25rem;left:50%;transform:translateX(-50%);z-index:9999;display:flex;flex-direction:column;gap:.5rem;pointer-events:none;align-items:center;}
.toast{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;border-radius:.625rem;font-size:.875rem;font-weight:500;min-width:280px;max-width:380px;box-shadow:0 8px 24px rgba(0,0,0,.12);transform:translateY(-120%);opacity:0;transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .35s;pointer-events:auto;white-space:nowrap;}
.toast.show{transform:translateY(0);opacity:1;}
.toast.hide{transform:translateY(-120%);opacity:0;}
.toast-success{background:#fff;border-left:4px solid #16a34a;color:#15803d;}
.toast-error{background:#fff;border-left:4px solid #dc2626;color:#b91c1c;}
.toast-icon{font-size:1.05rem;flex-shrink:0;}
.toast-close{margin-left:auto;cursor:pointer;opacity:.6;background:none;border:none;font-size:1rem;color:inherit;flex-shrink:0;padding:0;}
.toast-close:hover{opacity:1;}
