/* views/auth/login.php
   Colours now read from the same --bg/--card/--text/--primary/... tokens
   app.css defines for every authenticated page (loaded just before this
   file — see login.php's <head>), so this page follows whatever light/
   dark + accent-colour choice was last saved on this browser instead of
   always showing a fixed palette. Most plain Bootstrap classes used below
   (.card, .form-control, .btn-outline-secondary, .alert-danger, ...)
   already get their dark-mode treatment for free from app.css's own
   [data-theme="dark"] rules -- only this page's own custom classes need
   explicit var()s here. */
:root{font-family:'Plus Jakarta Sans',sans-serif}
*{box-sizing:border-box}
body{min-height:100vh;background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary) 50%,var(--primary-dark) 100%);
  display:flex;align-items:center;justify-content:center;padding:20px;margin:0}
[data-theme="dark"] body{background:linear-gradient(160deg,#05070d 0%,var(--bg) 55%,var(--card-2) 100%)}
.wrap{width:100%;max-width:440px}
.card{background:var(--card);border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.3);overflow:hidden}
.card-top{background:linear-gradient(135deg,var(--primary),var(--primary-light));padding:32px;text-align:center;color:#fff;position:relative}
.school-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.2);border-radius:24px;padding:5px 14px 5px 10px;
  font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin-bottom:16px}
.school-badge .dot{width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 6px #10b981}
.logo{width:64px;height:64px;background:#e67e22;border-radius:16px;display:flex;align-items:center;
  justify-content:center;font-size:22px;font-weight:800;margin:0 auto 14px;color:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.2);letter-spacing:-1px}
.card-top h2{font-size:19px;font-weight:800;margin:0 0 5px;line-height:1.3}
.card-top p{opacity:.65;font-size:12px;margin:0}
.change-school{position:absolute;top:14px;left:14px;background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:6px 10px;
  color:rgba(255,255,255,.8);font-size:11px;font-weight:600;text-decoration:none;
  display:flex;align-items:center;gap:5px;transition:background .2s}
.change-school:hover{background:rgba(255,255,255,.2);color:#fff}
.card-body{padding:28px 32px 32px}
.form-label{font-size:13px;font-weight:600;color:var(--label-color, #444);margin-bottom:6px}
.form-control{border-radius:10px;border:1.5px solid var(--border-strong, #e0e0e0);padding:11px 14px;font-size:14px;
  font-family:'Plus Jakarta Sans',sans-serif;transition:border .2s;width:100%;background:var(--card);color:var(--text)}
.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--brand-500-rgb, 37,99,235),.12);outline:none}
.input-group .form-control{border-right:none;border-radius:10px 0 0 10px}
.input-group .btn-outline-secondary{border-left:none;border-radius:0 10px 10px 0;
  border:1.5px solid var(--border-strong, #e0e0e0);border-left:none;padding:0 14px}
.btn-login{background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;border:none;
  border-radius:10px;padding:13px;font-size:15px;font-weight:700;width:100%;
  font-family:'Plus Jakarta Sans',sans-serif;cursor:pointer;transition:opacity .2s;
  display:flex;align-items:center;justify-content:center;gap:8px}
.btn-login:hover{opacity:.9}
.alert{border-radius:10px;font-size:13px;padding:11px 14px;margin-bottom:20px;
  display:flex;align-items:center;gap:8px}
.alert-danger{background:#fff2f2;border:1px solid #fcc;color:#ef4444}
.divider{text-align:center;position:relative;margin:18px 0;color:var(--muted, #ccc);font-size:12px}
.divider::before,.divider::after{content:'';position:absolute;top:50%;width:42%;height:1px;background:var(--border, #eee)}
.divider::before{left:0}.divider::after{right:0}
.spinner-border-sm{width:.9rem;height:.9rem;border-width:.18em}
