/* Scoped authentication presentation; deliberately independent of document/profile typography. */
#auth-view { --auth-navy:#0F2D46; --auth-blue:#243C51; --auth-green:#1D8A63; --auth-accent:#55D98A; --auth-text:#102A43; --auth-muted:#66788A; --auth-border:#DCE4EC; --auth-bg:#F7F9FC; color:var(--auth-text); background:var(--auth-bg); min-height:100svh; padding:40px 28px; font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
#auth-view *, #auth-view *::before, #auth-view *::after { box-sizing:border-box; }
#auth-view .auth-panel { width:min(1360px,100%); min-height:790px; grid-template-columns:52% 48%; border:0; border-radius:28px; box-shadow:0 20px 65px #0f2d4612; align-items:stretch; }
#auth-view .auth-brand-panel { isolation:isolate; padding:48px 52px 36px; justify-content:flex-start; background:linear-gradient(145deg,#092640 0%,#103D5B 60%,#176B60 100%); }
#auth-view .auth-brand-panel::after { inset:auto 0 0; width:100%; height:45%; border:0; border-radius:0; z-index:-1; background:linear-gradient(180deg,#103d5b 0%,#0f2d4655 55%,#09264099 100%),url('assets/auth-infrastructure.jpg') center bottom/cover; opacity:.8; }
#auth-view .auth-brand { display:flex; align-items:center; gap:14px; color:white; font-size:30px; font-weight:700; letter-spacing:-1px; }
#auth-view .auth-brand b { color:var(--auth-accent); }
#auth-view .auth-brand small { display:block; margin-top:4px; color:#d6e5ed; font-size:9px; letter-spacing:1.4px; font-weight:500; }
#auth-view .auth-logo { display:grid; flex:0 0 49px; width:49px; height:49px; margin:0; border:1px solid #ffffff50; border-radius:12px; color:white; background:#ffffff0c; box-shadow:none; font-size:23px; letter-spacing:-2px; }
#auth-view h1 { max-width:none; margin:45px 0 0; color:white; font-size:clamp(38px,3.6vw,52px); letter-spacing:-1.8px; line-height:1.13; font-weight:700; }
#auth-view h1 em { color:var(--auth-accent); font-style:normal; }
#auth-view .auth-mobile-title { display:none; }
#auth-view .auth-brand-description { max-width:455px; margin:22px 0 0; color:#d9e5ee; font-size:17px; line-height:1.55; }
#auth-view .auth-benefits { display:grid; gap:20px; margin:30px 0 40px; }
#auth-view .auth-benefits li { gap:14px; font-size:16px; font-weight:400; }
#auth-view .auth-benefits li::before { display:none; }
#auth-view .auth-benefits strong { display:block; color:#fff; font-weight:600; }
#auth-view .auth-benefits small { display:block; color:#d9e5ee; margin-top:4px; font-size:14px; line-height:1.4; }
#auth-view .auth-benefit-icon { display:grid; place-items:center; width:42px; height:42px; flex:0 0 42px; border-radius:50%; background:#ffffff14; }
#auth-view .auth-benefit-icon svg { width:21px; height:21px; color:#c5f3dd; }
#auth-view .auth-brand-motto { margin:auto 0 0; padding-top:40px; font-size:12px; font-weight:600; letter-spacing:3px; line-height:1.7; color:#fff; }
#auth-view .auth-brand-motto::before { display:block; content:''; width:34px; height:3px; margin-bottom:12px; background:var(--auth-accent); }
#auth-view .auth-form-panel { padding:44px 64px 48px; min-width:0; background:#fff; }
#auth-view .auth-tabs { margin:0 0 44px; border-color:var(--auth-border); }
#auth-view .auth-tab { min-height:52px; font-size:15px; font-weight:600; border-bottom:3px solid transparent; color:var(--auth-muted); }
#auth-view .auth-tab.active { color:#167452; border-bottom-color:var(--auth-green); }
#auth-view button { transition:background-color .18s,border-color .18s,box-shadow .18s; }
#auth-view button:hover { transform:none; }
#auth-view .auth-form { gap:22px; }
#auth-view .auth-form > div:first-child h2 { font-size:40px; line-height:1.15; letter-spacing:-1.2px; color:var(--auth-text); }
#auth-view .auth-form > div:first-child p { font-size:16px; line-height:1.5; color:var(--auth-muted); margin-top:10px; }
#auth-view .auth-form label { font-size:14px; font-weight:600; color:var(--auth-blue); }
#auth-view .auth-field { min-width:0; }
#auth-view .auth-field > label { display:block; margin-bottom:8px; }
#auth-view .auth-input-wrap { position:relative; }
#auth-view .auth-form input:not([type=checkbox]) { width:100%; height:54px; min-height:54px; border:1px solid var(--auth-border); border-radius:11px; padding:12px 15px; background:var(--auth-bg); color:var(--auth-text); font:inherit; font-size:16px; box-shadow:none; transition:border-color .18s,box-shadow .18s; }
#auth-view .auth-input-wrap.has-icon input { padding-left:46px; }
#auth-view .auth-input-wrap.has-toggle input { padding-right:52px; }
#auth-view .auth-input-icon { position:absolute; width:20px; height:20px; left:15px; top:17px; color:var(--auth-muted); pointer-events:none; }
#auth-view .auth-form input:hover { border-color:#BCCBD8; }
#auth-view .auth-form input:focus { outline:none; border-color:var(--auth-green); box-shadow:0 0 0 3px #1d8a631f; }
#auth-view .auth-form input[aria-invalid=true] { border-color:#c75959; }
#auth-view .auth-field-error { display:block; color:#ab3030; font-size:14px; margin-top:6px; }
#auth-view .auth-field-error:empty { display:none; }
#auth-view .auth-password-toggle { position:absolute; right:3px; top:5px; display:grid; place-items:center; width:44px; min-width:44px; height:44px; padding:10px; background:transparent; color:var(--auth-muted); border:0; box-shadow:none; }
#auth-view .auth-password-toggle svg { width:20px; height:20px; }
#auth-view .login-options { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:4px 12px; }
#auth-view .remember-session { display:flex; align-items:center; gap:9px; min-height:44px; font-size:14px; font-weight:400; }
#auth-view input[type=checkbox] { appearance:auto; accent-color:var(--auth-green); width:20px; height:20px; min-width:20px; }
#auth-view .auth-link-button, #auth-view .auth-switch-copy button { min-height:44px; color:#167452; font-size:14px; font-weight:600; }
#auth-view .auth-link-button:hover, #auth-view .auth-switch-copy button:hover { color:#105c40; text-decoration:underline; }
#auth-view .auth-form > button[type=submit] { height:auto; min-height:54px; display:flex; justify-content:center; align-items:center; gap:12px; border:0; border-radius:11px; padding:14px 16px; background:var(--auth-green); color:#fff; font-size:16px; font-weight:600; box-shadow:0 4px 12px #1d8a6314; }
#auth-view .auth-form > button[type=submit]:hover { background:#167452; }
/* Bold large text meets AA against the requested #1D8A63 brand green. */
#auth-view .auth-form > button[type=submit] { font-size:19px; font-weight:700; }
#auth-view .auth-form > button[type=submit]:disabled { opacity:.8; cursor:wait; }
#auth-view .auth-form .secondary-button { min-height:52px; }
#auth-view .auth-submit-spinner { width:18px; height:18px; border:2px solid #ffffff60; border-top-color:white; border-radius:50%; animation:auth-spin .7s linear infinite; }
#auth-view .auth-submit-arrow { font-size:23px; line-height:18px; font-weight:400; }
#auth-view .form-message:empty { display:none; }
#auth-view .form-message { color:#ab3030; font-size:14px; line-height:1.5; }
#auth-view .form-message.success, #auth-view form[aria-busy=true] .form-message { color:#167452; }
#auth-view .auth-divider { display:flex; align-items:center; gap:18px; color:var(--auth-muted); font-size:14px; margin:3px 0 0; }
#auth-view .auth-divider::before, #auth-view .auth-divider::after { content:''; flex:1; height:1px; background:var(--auth-border); }
#auth-view .auth-switch-copy { color:var(--auth-muted); font-size:14px; }
#auth-view .auth-grid { gap:16px; }
#auth-view .marketing-consent { display:flex; align-items:flex-start; gap:10px; font-size:14px; }
#auth-view .marketing-consent small, #auth-view .privacy-copy { color:var(--auth-muted); font-size:13px; line-height:1.5; }
#auth-view :is(button,a,input):focus-visible { outline:3px solid #1d8a6380; outline-offset:3px; }
#auth-view .auth-form:not([hidden]) { animation:auth-enter .18s ease-out; }
@keyframes auth-spin { to { transform:rotate(360deg); } }
@keyframes auth-enter { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
@media (min-width:768px) and (max-width:1023px) {
  #auth-view { padding:24px 18px; }
  #auth-view .auth-panel { grid-template-columns:43% 57%; min-height:760px; }
  #auth-view .auth-brand-panel { padding:36px 28px; }
  #auth-view h1 { font-size:36px; letter-spacing:-1px; }
  #auth-view .auth-brand { font-size:25px; gap:10px; }
  #auth-view .auth-form-panel { padding:36px 30px; }
  #auth-view .auth-brand-description { font-size:16px; }
}
@media (max-width:767px) {
  #auth-view { display:block; padding:0; }
  #auth-view .auth-panel { display:block; width:100%; min-height:100svh; border-radius:0; box-shadow:none; }
  #auth-view .auth-brand-panel { min-height:350px; padding:25px 24px 48px; }
  #auth-view .auth-brand { font-size:25px; }
  #auth-view .auth-logo { width:40px; height:40px; flex-basis:40px; font-size:20px; }
  #auth-view .auth-brand small { font-size:8px; }
  #auth-view .auth-desktop-title { display:none; }
  #auth-view .auth-mobile-title { display:inline; }
  #auth-view h1 { margin-top:24px; max-width:490px; font-size:36px; letter-spacing:-1.1px; line-height:1.13; }
  #auth-view .auth-brand-description, #auth-view .auth-brand-motto { display:none; }
  #auth-view .auth-brand-panel::after { height:60%; opacity:.45; }
  #auth-view .auth-benefits { display:flex; flex-wrap:wrap; gap:8px 15px; margin:18px 0 0; }
  #auth-view .auth-benefits li { font-size:13px; gap:6px; }
  #auth-view .auth-benefits li:last-child, #auth-view .auth-benefits small { display:none; }
  #auth-view .auth-benefit-icon { width:24px; height:24px; flex-basis:24px; }
  #auth-view .auth-benefit-icon svg { width:15px; height:15px; }
  #auth-view .auth-form-panel { position:relative; margin-top:-26px; border-radius:28px 28px 0 0; padding:18px 24px calc(32px + env(safe-area-inset-bottom)); }
  #auth-view .auth-tabs { margin-bottom:25px; }
  #auth-view .auth-tab { min-height:52px; font-size:15px; }
  #auth-view .auth-form { gap:18px; }
  #auth-view .auth-form > div:first-child h2 { font-size:36px; }
  #auth-view .auth-form > div:first-child p { font-size:15px; }
  #auth-view .auth-grid { grid-template-columns:1fr; }
  #auth-view .auth-link-button, #auth-view .auth-switch-copy button { min-height:52px; }
}
@media (prefers-reduced-motion:reduce) { #auth-view *, #auth-view *::before, #auth-view *::after { animation:none!important; transition:none!important; } }
