/* ============================================================
   TRILINK – assets/css/auth.css
   ============================================================ */
:root {
  --navy:#1A2B5E;--navy-dark:#0F1A3A;--green:#2E7D32;--green-bright:#43A047;
  --green-accent:#00C853;--green-light:#E8F5E9;--white:#fff;
  --gray-50:#F8F9FA;--gray-100:#F1F3F4;--gray-200:#E8EAED;
  --gray-500:#9AA0A6;--gray-900:#202124;--red:#D32F2F;
  --font-display:'Plus Jakarta Sans',sans-serif;--font-body:'Inter',sans-serif;
  --radius-md:14px;--radius-lg:20px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;}
body{font-family:var(--font-body);background:linear-gradient(160deg,var(--navy-dark) 0%,var(--navy) 50%,var(--green) 100%);min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:0;}
button{cursor:pointer;border:none;font-family:inherit;}
a{text-decoration:none;color:inherit;}
input,textarea{font-family:inherit;outline:none;}

.auth-app{width:100%;max-width:480px;min-height:100vh;display:flex;flex-direction:column;padding:40px 0 30px;}

.auth-header{text-align:center;margin-bottom:28px;padding:0 24px;}
.auth-logo{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:8px;}
.logo-mark{width:56px;height:56px;border-radius:16px;background:rgba(255,255,255,0.15);border:2px solid rgba(255,255,255,0.3);display:flex;align-items:center;justify-content:center;font-size:24px;color:#fff;}
.logo-name{font-family:var(--font-display);font-size:38px;font-weight:800;}
.logo-name .tri{color:#fff;}.logo-name .link{color:var(--green-accent);}
.auth-tagline{color:rgba(255,255,255,0.7);font-size:13px;letter-spacing:2.5px;text-transform:uppercase;}

.auth-card{background:#fff;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:28px 24px 24px;flex:1;}
.auth-title{font-family:var(--font-display);font-size:24px;font-weight:800;color:var(--navy);margin-bottom:4px;}
.auth-sub{color:var(--gray-500);font-size:14px;margin-bottom:22px;}

.alert{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:10px;font-size:13px;margin-bottom:16px;line-height:1.5;}
.alert i{margin-top:1px;font-size:15px;}
.alert-error{background:#FFEBEE;color:var(--red);}
.alert-success{background:var(--green-light);color:var(--green);}

.field-group{margin-bottom:18px;}
.field-label{font-size:13px;font-weight:700;color:var(--gray-900);display:block;margin-bottom:8px;}
.field-label-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.optional{font-weight:400;color:var(--gray-500);}
.forgot-link{font-size:12px;color:var(--green);font-weight:600;}

.input-wrap{display:flex;align-items:center;background:var(--gray-50);border-radius:12px;border:1.5px solid var(--gray-200);overflow:hidden;transition:border-color 0.2s;}
.input-wrap:focus-within{border-color:var(--navy);background:#fff;}
.input-icon{padding:0 12px;color:var(--gray-500);font-size:16px;}
.input-prefix{padding:0 10px 0 14px;color:var(--navy);font-weight:700;font-size:15px;border-right:1.5px solid var(--gray-200);}
.field-input{flex:1;padding:14px 14px;font-size:15px;background:transparent;border:none;color:var(--gray-900);}
.field-input-prefix{padding:14px 14px;}
.field-hint{font-size:11px;color:var(--gray-500);margin-top:5px;display:block;}

/* PIN Boxes */
.pin-row{display:flex;gap:10px;justify-content:space-between;}
.pin-box{width:calc((100% - 50px)/6);aspect-ratio:1;text-align:center;font-size:22px;font-weight:800;border:2px solid var(--gray-200);border-radius:12px;background:var(--gray-50);color:var(--navy);transition:all 0.15s;-webkit-text-security:disc;}
.pin-box:focus{border-color:var(--navy);background:#fff;box-shadow:0 0 0 3px rgba(26,43,94,0.1);}
.pin-box.filled{border-color:var(--green);background:var(--green-light);}

.btn-primary{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:16px;background:linear-gradient(135deg,var(--green),var(--green-bright));color:#fff;font-weight:700;font-size:16px;border-radius:14px;border:none;cursor:pointer;margin-top:8px;box-shadow:0 4px 16px rgba(46,125,50,0.35);transition:all 0.2s;}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(46,125,50,0.45);}
.btn-primary:disabled{opacity:0.7;transform:none;}

.divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--gray-500);font-size:13px;}
.divider::before,.divider::after{content:'';flex:1;height:1px;background:var(--gray-200);}

.auth-footer-link{text-align:center;font-size:14px;color:var(--gray-600);}
.auth-footer-link a{color:var(--green);font-weight:700;}
.auth-terms{text-align:center;font-size:11px;color:rgba(255,255,255,0.6);padding:16px 24px;}
.auth-terms a{color:rgba(255,255,255,0.9);text-decoration:underline;}

.portal-links{display:flex;gap:10px;padding:16px 24px 0;}
.portal-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:rgba(255,255,255,0.12);border:1px solid rgba(255,255,255,0.25);border-radius:12px;color:#fff;font-size:13px;font-weight:700;}
