/*
  WLOVos virtual source file
  Namespace: dbfile:portal_files[path='css/lw-auth.css']
  Purpose: Unified Client Access presentation for login, access request, and recovery.
*/

body.auth-login,body.auth-flow{
  --auth-bg:#ffffff;
  --auth-surface:#ffffff;
  --auth-soft:#f2f4f5;
  --auth-text:#101820;
  --auth-muted:#56616a;
  --auth-faint:#7b858d;
  --auth-line:#b9c0c5;
  --auth-line-strong:#101820;
  --auth-inverse:#101820;
  --auth-inverse-text:#ffffff;
  --auth-focus:#101820;
  --auth-width:1240px;
  margin:0;
  background:var(--auth-bg);
  color:var(--auth-text);
  font-family:var(--lw-font,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);
  font-size:16px;
  line-height:1.6;
}

html[data-theme="dark"] body.auth-login,html[data-theme="dark"] body.auth-flow{
  --auth-bg:#0a0a0a;
  --auth-surface:#141414;
  --auth-soft:#1a1a1a;
  --auth-text:#ffffff;
  --auth-muted:#d4d4d4;
  --auth-faint:#a3a3a3;
  --auth-line:#404040;
  --auth-line-strong:#ffffff;
  --auth-inverse:#141414;
  --auth-inverse-text:#ffffff;
  --auth-focus:#ffffff;
}

body.auth-login *,body.auth-login *::before,body.auth-login *::after,body.auth-flow *,body.auth-flow *::before,body.auth-flow *::after{box-sizing:border-box}
body.auth-login,body.auth-flow{forced-color-adjust:auto}
body.auth-login h1,body.auth-login h2,body.auth-login h3,body.auth-login p,body.auth-login label,body.auth-login a,body.auth-login button,body.auth-flow h1,body.auth-flow h2,body.auth-flow h3,body.auth-flow p,body.auth-flow label,body.auth-flow a,body.auth-flow button{overflow-wrap:anywhere;word-break:break-word}
body.auth-login a,body.auth-flow a{color:inherit}
body.auth-login :focus-visible,body.auth-flow :focus-visible{outline:3px solid var(--auth-focus);outline-offset:4px;border-radius:0}
body.auth-login .skip,body.auth-flow .skip{position:fixed;top:12px;left:12px;z-index:9999;transform:translateY(-180%);padding:10px 14px;border:1px solid var(--auth-line-strong);border-radius:0;background:var(--auth-text);color:var(--auth-bg);box-shadow:none;font-weight:800;text-decoration:none}
body.auth-login .skip:focus,body.auth-flow .skip:focus{transform:translateY(0)}

body.auth-login .page,body.auth-flow .page{display:flex;flex-direction:column;min-height:100vh;width:min(calc(100% - 40px),var(--auth-width));margin:0 auto;padding:0 0 34px}

/* Header */
body.auth-login .nav,body.auth-flow .nav{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:88px;padding:14px 0;border-bottom:1px solid var(--auth-line-strong)}
body.auth-login .brand,body.auth-flow .brand{display:block;line-height:0}
body.auth-login .brand img,body.auth-flow .brand img{display:block;width:clamp(224px,20vw,286px);height:auto}
body.auth-login .brand .theme-logo-light,body.auth-flow .brand .theme-logo-light{display:block}
body.auth-login .brand .theme-logo-dark,body.auth-flow .brand .theme-logo-dark{display:none}
html[data-theme="dark"] body.auth-login .brand .theme-logo-light,html[data-theme="dark"] body.auth-flow .brand .theme-logo-light{display:none}
html[data-theme="dark"] body.auth-login .brand .theme-logo-dark,html[data-theme="dark"] body.auth-flow .brand .theme-logo-dark{display:block}
body.auth-login .navActions,body.auth-flow .navActions{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0}
body.auth-login .navlinks,body.auth-flow .navlinks{display:flex;align-items:center;justify-content:flex-end;gap:4px}
body.auth-login .navlinks a,body.auth-flow .navlinks a{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 12px;color:var(--auth-text);font-size:.88rem;font-weight:750;text-decoration:none;white-space:nowrap}
body.auth-login .navlinks a::after,body.auth-flow .navlinks a::after{content:"";position:absolute;right:12px;bottom:5px;left:12px;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 150ms ease}
body.auth-login .navlinks a:hover::after,body.auth-login .navlinks a[aria-current="page"]::after,body.auth-flow .navlinks a:hover::after,body.auth-flow .navlinks a[aria-current="page"]::after{transform:scaleX(1)}
body.auth-login .navlinks a[href*="contact.php"],body.auth-flow .navlinks a[href*="contact.php"]{margin-left:4px;padding-inline:16px;border:1px solid var(--auth-text);background:var(--auth-text);color:var(--auth-bg)}
body.auth-login .navlinks a[href*="contact.php"]::after,body.auth-flow .navlinks a[href*="contact.php"]::after{display:none}
body.auth-login .navlinks a[href*="contact.php"]:hover,body.auth-flow .navlinks a[href*="contact.php"]:hover{background:var(--auth-bg);color:var(--auth-text)}
body.auth-login .themeToggle,body.auth-flow .themeToggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:44px;min-height:44px;padding:0 11px;border:1px solid var(--auth-line);border-radius:0;background:var(--auth-bg);color:var(--auth-text);box-shadow:none;transform:none;font-weight:750;cursor:pointer}
body.auth-login .themeToggle:hover,body.auth-flow .themeToggle:hover{border-color:var(--auth-line-strong);background:var(--auth-soft);box-shadow:none;transform:none}
body.auth-login .themeToggleIcon,body.auth-flow .themeToggleIcon{position:relative;display:block;width:15px;height:15px;border:1px solid currentColor;border-radius:0;background:transparent;box-shadow:none}
body.auth-login .themeToggleIcon::after,body.auth-flow .themeToggleIcon::after{content:"";position:absolute;top:2px;right:2px;bottom:2px;width:5px;background:currentColor}
body.auth-login [data-theme-label],body.auth-flow [data-theme-label]{font-size:.78rem;letter-spacing:.02em}

/* Access frame */
body.auth-login .frame,body.auth-flow .frame{width:100%;margin-top:36px;border:1px solid var(--auth-line-strong);border-radius:0;background:var(--auth-surface);box-shadow:none;overflow:hidden}
body.auth-login .frame::before,body.auth-flow .frame::before{display:none}
body.auth-login .grid,body.auth-flow .grid{display:grid;grid-template-columns:minmax(0,.88fr) minmax(470px,1.12fr);min-height:680px}
body.auth-login .authHero,body.auth-flow .hero{display:flex;flex-direction:column;justify-content:space-between;min-width:0;padding:clamp(34px,5vw,64px);border-right:1px solid var(--auth-line-strong);background:var(--auth-inverse);color:var(--auth-inverse-text)}
body.auth-login .kicker,body.auth-flow .kicker{display:flex;align-items:center;gap:12px;margin:0 0 20px;color:var(--auth-inverse-text);font-size:.75rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase}
body.auth-login .kicker::before,body.auth-flow .kicker::before{content:"";display:block;width:34px;height:1px;background:currentColor}
body.auth-login .hero h1,body.auth-flow .hero h1{max-width:11ch;margin:0;color:var(--auth-inverse-text);font-size:clamp(3.15rem,5.5vw,5.35rem);font-weight:800;letter-spacing:-.055em;line-height:.94}
body.auth-login .lead,body.auth-flow .lead{max-width:610px;margin:24px 0 0;color:var(--auth-inverse-text);font-size:1.06rem;line-height:1.7;opacity:.78}
body.auth-login .proof,body.auth-flow .proof{display:grid;grid-template-columns:1fr;margin-top:42px;border-top:1px solid currentColor}
body.auth-login .proof div,body.auth-flow .proof div{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:15px 0;border-bottom:1px solid currentColor;background:transparent;border-radius:0;box-shadow:none}
body.auth-login .proof b,body.auth-flow .proof b{color:var(--auth-inverse-text);font-family:var(--lw-mono,"SFMono-Regular",Consolas,monospace);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
body.auth-login .proof span,body.auth-flow .proof span{color:var(--auth-inverse-text);font-size:.9rem;line-height:1.45;opacity:.76}

/* Form panel */
body.auth-login .panelWrap,body.auth-flow .panelWrap{display:flex;align-items:center;min-width:0;padding:clamp(28px,4.7vw,58px);background:var(--auth-surface)}
body.auth-login .panel,body.auth-flow .panel{width:100%;max-width:650px;margin:0 auto;padding:0;border:0;border-radius:0;background:transparent;color:var(--auth-text);box-shadow:none;backdrop-filter:none}
body.auth-login .accessModes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 34px;border-top:1px solid var(--auth-line-strong);border-left:1px solid var(--auth-line-strong)}
body.auth-login .accessModes a{display:flex;align-items:center;justify-content:center;min-height:50px;padding:9px 10px;border-right:1px solid var(--auth-line-strong);border-bottom:1px solid var(--auth-line-strong);color:var(--auth-text);font-size:.82rem;font-weight:850;text-align:center;text-decoration:none}
body.auth-login .accessModes a:hover,body.auth-login .accessModes a[aria-selected="true"]{background:var(--auth-text);color:var(--auth-bg)}
body.auth-login .modePanel h2,body.auth-flow .panel h2{margin:0;color:var(--auth-text);font-size:clamp(2.1rem,3.4vw,3.35rem);font-weight:800;letter-spacing:-.04em;line-height:1}
body.auth-login .modePanel > p,body.auth-flow .panel > p{max-width:590px;margin:14px 0 28px;color:var(--auth-muted);line-height:1.65}
body.auth-login .modePanel[hidden]{display:none!important}

body.auth-login .formGrid,body.auth-flow .formGrid{display:grid;grid-template-columns:1fr;gap:18px}
body.auth-login .formGrid.two,body.auth-flow .formGrid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
body.auth-login .field,body.auth-flow .field{min-width:0;margin:0 0 18px}
body.auth-login .formGrid .field,body.auth-flow .formGrid .field{margin:0}
body.auth-login .field.full,body.auth-flow .field.full{grid-column:1/-1}
body.auth-login label,body.auth-flow label{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 8px;color:var(--auth-text);font-size:.9rem;font-weight:800}
body.auth-login .optional,body.auth-flow .optional{color:var(--auth-faint);font-size:.74rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}
body.auth-login input:not([type="checkbox"]):not([type="radio"]),body.auth-login select,body.auth-login textarea,body.auth-flow input:not([type="checkbox"]):not([type="radio"]),body.auth-flow select,body.auth-flow textarea{width:100%;min-height:50px;padding:11px 13px;border:1px solid var(--auth-line);border-radius:0;background:var(--auth-bg);color:var(--auth-text);box-shadow:none;font:inherit;font-size:16px}
body.auth-login input:not([type="checkbox"]):not([type="radio"]),body.auth-login textarea,body.auth-flow input:not([type="checkbox"]):not([type="radio"]),body.auth-flow textarea{-webkit-appearance:none;appearance:none}
body.auth-login textarea,body.auth-flow textarea{min-height:128px;resize:vertical}
body.auth-login input:focus,body.auth-login select:focus,body.auth-login textarea:focus,body.auth-flow input:focus,body.auth-flow select:focus,body.auth-flow textarea:focus{outline:3px solid var(--auth-focus);outline-offset:2px;border-color:var(--auth-line-strong)}
body.auth-login input:-webkit-autofill,body.auth-login input:-webkit-autofill:hover,body.auth-login input:-webkit-autofill:focus,body.auth-flow input:-webkit-autofill,body.auth-flow input:-webkit-autofill:hover,body.auth-flow input:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--auth-text);
  caret-color:var(--auth-text);
  -webkit-box-shadow:0 0 0 1000px var(--auth-bg) inset!important;
  box-shadow:0 0 0 1000px var(--auth-bg) inset!important;
  transition:background-color 9999s ease-out 0s;
}
body.auth-login [aria-invalid="true"],body.auth-flow [aria-invalid="true"]{border-width:2px;border-style:dashed}
body.auth-login .formError,body.auth-flow .formError{margin:7px 0 0;color:var(--auth-text);font-size:.86rem;font-weight:800}
body.auth-login .button,body.auth-login button.button,body.auth-flow .button,body.auth-flow button.button{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:52px;margin-top:22px;padding:0 18px;border:1px solid var(--auth-text);border-radius:0;background:var(--auth-text);color:var(--auth-bg);box-shadow:none;transform:none;font-weight:850;cursor:pointer}
body.auth-login .button:hover,body.auth-login button.button:hover,body.auth-flow .button:hover,body.auth-flow button.button:hover{background:var(--auth-bg);color:var(--auth-text);box-shadow:none;transform:none}
body.auth-login .alert,body.auth-flow .alert{display:grid;gap:5px;margin:0 0 22px;padding:17px;border-radius:0;box-shadow:none}
body.auth-login .alert strong,body.auth-flow .alert strong{font-family:var(--lw-mono,"SFMono-Regular",Consolas,monospace);font-size:.78rem;letter-spacing:.1em}
body.auth-login .alertSuccess,body.auth-flow .alertSuccess{border:1px solid var(--auth-text);background:var(--auth-text);color:var(--auth-bg)}
body.auth-login .alertError,body.auth-flow .alertError{border:3px double var(--auth-text);background:var(--auth-bg);color:var(--auth-text)}
body.auth-login .support,body.auth-flow .support{margin-top:30px;padding-top:20px;border-top:1px solid var(--auth-line);color:var(--auth-muted);font-size:.9rem}
body.auth-login .support a,body.auth-flow .support a{color:var(--auth-text);font-weight:800;text-decoration:underline;text-underline-offset:4px}
body.auth-login .formTrap,body.auth-flow .formTrap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

body.auth-login .footer,body.auth-flow .footer{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-top:28px;padding-top:22px;border-top:1px solid var(--auth-line-strong);color:var(--auth-faint);font-size:.8rem}

@media(max-width:1060px){
  body.auth-login .nav,body.auth-flow .nav{align-items:flex-start}
  body.auth-login .navActions,body.auth-flow .navActions{align-items:flex-end;flex-direction:column}
  body.auth-login .grid,body.auth-flow .grid{grid-template-columns:1fr}
  body.auth-login .authHero,body.auth-flow .hero{border-right:0;border-bottom:1px solid var(--auth-line-strong)}
  body.auth-login .proof,body.auth-flow .proof{grid-template-columns:repeat(3,minmax(0,1fr));border-left:1px solid currentColor}
  body.auth-login .proof div,body.auth-flow .proof div{display:block;padding:16px;border-right:1px solid currentColor}
  body.auth-login .proof span,body.auth-flow .proof span{display:block;margin-top:6px}
  body.auth-login .panel,body.auth-flow .panel{max-width:760px}
}

@media(max-width:760px){
  body.auth-login .page,body.auth-flow .page{width:calc(100% - 32px);padding-bottom:28px}
  body.auth-login .nav,body.auth-flow .nav{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 12px;min-height:0;padding:14px 0 12px}
  body.auth-login .brand,body.auth-flow .brand{grid-column:1;grid-row:1;align-self:center}
  body.auth-login .brand img,body.auth-flow .brand img{width:min(218px,62vw)}
  body.auth-login .navActions,body.auth-flow .navActions{display:contents}
  body.auth-login .themeToggle,body.auth-flow .themeToggle{grid-column:2;grid-row:1;align-self:center;padding:0 9px}
  body.auth-login [data-theme-label],body.auth-flow [data-theme-label]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  body.auth-login .navlinks,body.auth-flow .navlinks{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--auth-line);border-left:1px solid var(--auth-line)}
  body.auth-login .navlinks a,body.auth-flow .navlinks a{min-height:42px;padding:0 10px;border-right:1px solid var(--auth-line);border-bottom:1px solid var(--auth-line);font-size:.8rem}
  body.auth-login .navlinks a::after,body.auth-flow .navlinks a::after{display:none}
  body.auth-login .navlinks a:hover,body.auth-login .navlinks a[aria-current="page"],body.auth-flow .navlinks a:hover,body.auth-flow .navlinks a[aria-current="page"]{background:var(--auth-soft)}
  body.auth-login .navlinks a[href*="contact.php"],body.auth-flow .navlinks a[href*="contact.php"]{margin:0;border:0;border-right:1px solid var(--auth-line);border-bottom:1px solid var(--auth-line);background:var(--auth-text);color:var(--auth-bg)}
  body.auth-login .frame,body.auth-flow .frame{margin-top:22px}
  body.auth-login .authHero,body.auth-flow .hero{padding:34px 24px}
  body.auth-login .hero h1,body.auth-flow .hero h1{font-size:clamp(2.75rem,13vw,4.1rem)}
  body.auth-login .proof,body.auth-flow .proof{grid-template-columns:1fr;border-left:0}
  body.auth-login .proof div,body.auth-flow .proof div{display:grid;grid-template-columns:92px 1fr;padding:14px 0;border-right:0}
  body.auth-login .proof span,body.auth-flow .proof span{margin:0}
  body.auth-login .panelWrap,body.auth-flow .panelWrap{padding:30px 20px}
  body.auth-login .accessModes{grid-template-columns:1fr}
  body.auth-login .formGrid.two,body.auth-flow .formGrid.two{grid-template-columns:1fr}
  body.auth-login .field.full,body.auth-flow .field.full{grid-column:auto}
  body.auth-login .footer,body.auth-flow .footer{display:block}
  body.auth-login .footer span,body.auth-flow .footer span{display:block}
  body.auth-login .footer span+span,body.auth-flow .footer span+span{margin-top:7px}
}

@media(prefers-reduced-motion:reduce){
  body.auth-login *,body.auth-login *::before,body.auth-login *::after,body.auth-flow *,body.auth-flow *::before,body.auth-flow *::after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}
}
