:root{
  --navy:#0b2638;
  --navy-deep:#071c2a;
  --navy-soft:#143e56;
  --blue:#177cb0;
  --sky:#59bceb;
  --ink:#152d3b;
  --muted:#6c7d87;
  --line:#dbe5ea;
  --paper:#f5f8fa;
  --white:#fff;
  --shadow:0 28px 70px rgba(8,35,52,.14);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}
button{font:inherit}
.portal-shell{min-height:100vh;display:grid;grid-template-columns:minmax(360px,46%) 1fr}
.brand-panel{position:relative;overflow:hidden;min-height:100vh;padding:clamp(42px,6vw,82px);display:flex;align-items:center;background:linear-gradient(145deg,var(--navy-deep),var(--navy) 58%,#10364c);color:#fff}
.brand-content{position:relative;z-index:3;max-width:560px}
.eyebrow,.kicker{font-size:.74rem;font-weight:800;letter-spacing:.2em;color:var(--sky)}
.brand-panel h1{font-size:clamp(4.4rem,9vw,8.3rem);line-height:.82;letter-spacing:-.07em;margin:24px 0 34px;max-width:650px}
.intro{max-width:490px;color:#cad8df;font-size:clamp(1rem,1.45vw,1.18rem);line-height:1.65}
.brand-rule{width:72px;height:4px;background:var(--sky);margin:38px 0 18px;border-radius:10px}
.since{text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;color:#9db5c2;font-weight:700}
.grid-overlay{position:absolute;inset:0;opacity:.12;background-image:linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px);background-size:52px 52px;mask-image:linear-gradient(to right,transparent,#000)}
.decor{position:absolute;border:1px solid rgba(89,188,235,.25);border-radius:50%}
.decor-one{width:520px;height:520px;right:-220px;top:-110px}
.decor-two{width:320px;height:320px;right:-80px;bottom:-100px}
.login-panel{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px;background:linear-gradient(135deg,#fff 0%,#f4f8fa 100%)}
.login-wrap{width:min(100%,500px)}
.mobile-brand{display:none;color:var(--navy);font-size:.76rem;font-weight:900;letter-spacing:.18em;margin-bottom:18px}
.login-card{background:#fff;border:1px solid #e4ebef;border-radius:24px;padding:clamp(32px,5vw,52px);box-shadow:var(--shadow)}
.portal-mark{width:62px;height:62px;border-radius:16px;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:900;letter-spacing:-.04em;margin-bottom:34px;box-shadow:inset 0 -4px 0 var(--blue)}
.login-card h2{font-size:clamp(2rem,4vw,2.8rem);letter-spacing:-.045em;margin:9px 0 13px;color:var(--navy)}
.description{color:var(--muted);line-height:1.65;margin:0 0 30px}
.google-button{width:100%;min-height:58px;border:1px solid #ccd8de;border-radius:12px;background:#fff;color:#243943;font-weight:750;display:flex;align-items:center;justify-content:center;gap:13px;cursor:pointer;transition:.18s ease;box-shadow:0 3px 9px rgba(8,35,52,.05)}
.google-button:hover{transform:translateY(-1px);border-color:#9bb5c3;box-shadow:0 8px 20px rgba(8,35,52,.09)}
.google-button:focus-visible{outline:3px solid rgba(23,124,176,.25);outline-offset:3px}
.google-button svg{width:21px;height:21px}
.security-note{margin:24px 0 0;text-align:center;color:#84949c;font-size:.77rem}
.notice{margin-top:18px;padding:13px 15px;border-radius:10px;background:#edf7fc;border:1px solid #cce8f5;color:#2b617b;font-size:.82rem;line-height:1.5}
.powered{text-align:center;margin-top:28px;color:#7d8e97;display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;font-size:.77rem}
.powered strong{color:var(--navy);letter-spacing:.13em}
.powered small{width:100%;font-size:.66rem;letter-spacing:.06em;color:#9aa8af}
@media(max-width:820px){
  .portal-shell{display:block}
  .brand-panel{min-height:290px;padding:42px 28px;align-items:flex-end}
  .brand-panel h1{font-size:4rem;margin:18px 0 20px}
  .intro{max-width:560px}
  .brand-rule,.since{display:none}
  .login-panel{min-height:auto;padding:34px 20px 54px}
  .mobile-brand{display:block}
}
@media(max-width:480px){
  .brand-panel{min-height:245px}
  .brand-panel h1{font-size:3.25rem}
  .intro{font-size:.92rem}
  .login-card{padding:28px 22px;border-radius:18px}
}
