/* T-LES entrance: presentation only, scoped away from the working application. */
.reference-login.home-login {
  color:#203d2e;
  background:linear-gradient(100deg,#09251e45,#09251e82),url('forest-login.png') 26% center/cover fixed no-repeat #183c2c;
  font-size:16px;
  line-height:1.6;
}
.home-login .auth-layout {
  max-width:1560px;
  min-height:100svh;
  margin:0 auto;
  padding:32px;
  gap:24px;
  grid-template-columns:minmax(240px,.72fr) minmax(610px,1.6fr);
  align-items:stretch;
}
.home-login .auth-story {
  padding:30px;
  min-height:calc(100svh - 64px);
  border-radius:26px;
  background:linear-gradient(180deg,#102e24b3 0%,#102e2420 34%,#102e24ed 100%);
  border:1px solid #ffffff24;
}
.home-login .auth-brand { align-self:flex-start; padding:12px 15px; background:#12382be8; border:1px solid #dbe9d339; border-radius:17px; }
.home-login .auth-brand .brand-mark { width:43px; height:48px; background:#e1edc6; color:#214631; }
.home-login .auth-brand .brand-copy b { color:#fff; font-size:31px; }
.home-login .auth-brand .brand-copy small { color:#e6efdc; font-size:11px; letter-spacing:.03em; }
.home-login .auth-story-copy { padding:25px 21px; margin:70px -8px 0; max-width:390px; border:1px solid #e5efdc30; border-radius:19px; background:#102e24ed; }
.home-login .auth-kicker { display:inline-block; font-size:11px; line-height:1.6; letter-spacing:.12em; padding:7px 10px; border:1px solid #e1edc64d; border-radius:7px; background:#143d2ee6; color:#edf6dc; }
.home-login .auth-story h1 { color:#fff; font-size:clamp(36px,3.2vw,52px); font-weight:650; letter-spacing:-1.8px; line-height:1.12; margin:24px 0 18px; text-shadow:0 2px 20px #071c1580; }
.home-login .auth-story-copy p { display:block; color:#edf5e9; font-size:15px; line-height:1.8; margin:0; }
.home-login .auth-story-line { display:flex; gap:12px; margin-top:30px; padding-top:23px; color:#e4efdb; font-size:10px; letter-spacing:.12em; }
.home-login .auth-story-line i { background:#d8c693; }
.reference-login.home-login .auth-main {
  max-width:none;
  padding:30px;
  border:1px solid #ffffffbf;
  border-radius:28px;
  background:#f5f7f1fa;
  box-shadow:0 24px 70px #071e2652;
  justify-content:center;
}
.home-login .auth-welcome { margin:0 0 26px; }
.home-login .auth-welcome .eyebrow { display:flex; align-items:center; gap:10px; color:#4b6543; font-size:11px; font-weight:750; letter-spacing:.13em; }
.home-login .auth-welcome .eyebrow::before { content:""; width:22px; height:2px; background:#718e51; }
.home-login .auth-welcome h2 { color:#1e3d2d; font-size:clamp(29px,2.8vw,41px); font-weight:650; line-height:1.14; letter-spacing:-1.2px; margin:12px 0; }
.home-login .auth-welcome p { color:#4d6251; font-size:15px; line-height:1.7; }
.home-login .reference-login-options { gap:20px; align-items:stretch; grid-template-columns:repeat(2,minmax(0,1fr)); }
.home-login .reference-login-card {
  display:flex;
  flex-direction:column;
  min-width:0;
  margin:0;
  padding:0;
  background:#fff;
  border:1px solid #d1ddcd;
  border-radius:22px;
  box-shadow:0 8px 24px -14px #193d2e66;
  overflow:hidden;
  scroll-margin-top:24px;
  transition:border-color .18s,box-shadow .18s;
}
.home-login .reference-login-card:focus-within { border-color:#547a50; box-shadow:0 0 0 3px #75965b30,0 12px 30px -15px #193d2e66; }
.home-login .auth-card-top { position:relative; isolation:isolate; overflow:hidden; padding:23px; min-height:219px; color:#fff; background:#1b4732; border-bottom:4px solid #adc78d; }
.home-login .auth-card-top::before { content:""; position:absolute; inset:0; z-index:-2; background:linear-gradient(115deg,#153f30f5,#153f30de),url('forest-login.png') 17% 65%/cover; }
.home-login .auth-card-top::after { content:""; position:absolute; z-index:-1; right:-95px; top:-95px; width:230px; height:230px; border:1px solid #ffffff18; border-radius:50%; box-shadow:0 0 0 28px #ffffff06,0 0 0 56px #ffffff04; pointer-events:none; }
.home-login .admin .auth-card-top { background:#2c3931; border-bottom-color:#d9c492; }
.home-login .admin .auth-card-top::before { background:linear-gradient(115deg,#27382ffa,#27382fe8),url('forest-login.png') 80% 45%/cover; }
.home-login .auth-card-heading { display:flex; align-items:center; gap:10px; justify-content:space-between; }
.home-login .login-emblem { width:44px; height:44px; border-radius:13px; background:#e2edcd; color:#24452f; border:1px solid #f3f8e6a1; box-shadow:0 4px 12px #081f2326; flex-shrink:0; }
.home-login .login-emblem .icon { width:24px; height:24px; stroke-width:1.6; }
.home-login .admin .login-emblem { background:#ecdfbd; color:#394a34; border-color:#f5ebd0; }
.home-login .auth-role-label { color:#edf5e6; font-size:10px; font-weight:650; letter-spacing:.07em; padding:6px 8px; border:1px solid #e6efda30; border-radius:6px; background:#ffffff0a; text-align:right; }
.home-login .admin .auth-role-label { color:#f5ebd2; border-color:#e5d5ad4d; }
.home-login .reference-login-card h2 { color:#fff; font-size:30px; line-height:1.15; font-weight:650; letter-spacing:-.8px; margin:19px 0 10px; }
.home-login .auth-card-description { color:#edf4e8; min-height:0; font-size:14px; line-height:1.65; margin:0; }
.home-login .admin .auth-card-description { color:#f0efe4; }
.home-login .auth-card-body { flex:1; display:flex; flex-direction:column; padding:24px; }
.home-login .login-fields { gap:18px; }
.home-login .login-recovery { display:inline-flex; align-items:center; min-height:40px; color:#275c3b; font-size:14px; font-weight:650; text-underline-offset:3px; }
.home-login .login-fields .field { color:#314b38; font-size:13px; font-weight:650; gap:7px; }
.home-login .login-fields input { background:#f9fbf6; color:#203b2c; font-size:16px; font-weight:450; min-height:50px; height:50px; border:1px solid #becfba; border-radius:10px; padding:12px 13px; width:100%; min-width:0; }
.home-login .login-fields input::placeholder { color:#5f725f; opacity:1; font-size:14px; font-weight:400; }
.home-login .login-fields input:hover { border-color:#7f9b75; }
.home-login .login-fields input:focus { outline:2px solid #3d7755; outline-offset:2px; border-color:#3d7755; background:#fff; }
.home-login .login-fields .password-field input { padding-right:77px; }
.home-login .login-fields .password-toggle { right:7px; bottom:8px; min-height:34px; height:34px; padding:5px 7px; font-size:11px; color:#355b3c; background:#e9f0e2; border:0; border-radius:6px; }
.home-login .login-fields .password-toggle:hover { background:#dce8d1; }
.home-login .login-submit { margin-top:3px; min-height:52px; padding:13px 16px; border:1px solid #1d5238; border-radius:11px; background:linear-gradient(110deg,#245e3c,#1b4933); color:#fff; font-size:15px; font-weight:650; box-shadow:0 5px 12px #214a2521; white-space:normal; }
.home-login .login-submit:hover { background:#173c2a; box-shadow:0 6px 15px #214a2530; }
.home-login .admin .login-submit { color:#fff; background:#334638; border-color:#334638; }
.home-login .admin .login-submit:hover { background:#23362a; }
.home-login .login-submit .icon { width:20px; height:20px; }
.home-login .auth-access-features { display:flex; flex-wrap:wrap; gap:8px 13px; padding:18px 0 0; margin:21px 0 0; border-top:1px solid #e4ebdf; list-style:none; }
.home-login .auth-access-features li { display:flex; align-items:center; gap:5px; color:#52674b; font-size:12px; line-height:1.5; }
.home-login .auth-access-features .icon { width:15px; height:15px; }
.home-login .auth-bottom { gap:12px; margin-top:24px; padding-top:19px; border-top:1px solid #d8e1cf; }
.home-login .auth-bottom>span { font-size:11px; color:#4e6449; }
.home-login .subcontractor-login-link a { color:#355436; font-size:12px; line-height:1.6; min-height:36px; }
.home-login .subcontractor-login-link .icon { width:16px; height:16px; }
.home-login .auth-role-jump { display:none; }
.home-login a:focus-visible,.home-login button:focus-visible { outline:3px solid #2c76a1; outline-offset:3px; }
.home-login .notice { padding:15px 18px; font-size:14px; line-height:1.7; }
@media(min-width:1600px) {
  .home-login .auth-layout { padding-top:48px; padding-bottom:48px; }
  .home-login .auth-story { min-height:calc(100svh - 96px); }
  .reference-login.home-login .auth-main { padding:38px; }
  .home-login .auth-card-top { padding:27px; min-height:225px; }
  .home-login .auth-card-body { padding:27px; }
}
@media(max-width:1100px) and (min-width:1001px) {
  .home-login .auth-layout { padding:22px; gap:18px; grid-template-columns:minmax(220px,.6fr) minmax(610px,1.6fr); }
  .home-login .auth-story { padding:22px; min-height:calc(100svh - 44px); }
  .home-login .auth-story h1 { font-size:36px; }
  .reference-login.home-login .auth-main { padding:24px; }
  .home-login .auth-card-top,.home-login .auth-card-body { padding:20px; }
}
@media(max-width:1000px) {
  .reference-login.home-login { background-attachment:scroll; background-position:20% top; }
  .home-login .auth-layout { grid-template-columns:minmax(0,1fr); padding:22px; gap:18px; max-width:860px; }
  .home-login .auth-story { min-height:300px; padding:25px 30px; background:linear-gradient(100deg,#102e24c4,#102e2470),url('forest-login.png') 22% 48%/cover; border-radius:23px; }
  .home-login .auth-brand { padding:8px 12px; }
  .home-login .auth-brand .brand-copy b { font-size:27px; }
  .home-login .auth-brand .brand-mark { width:37px; height:40px; }
  .home-login .auth-story-copy { padding:20px; margin:24px 0 0; max-width:480px; }
  .home-login .auth-story h1 { font-size:39px; margin:14px 0 12px; }
  .home-login .auth-story h1 br { display:none; }
  .home-login .auth-story-copy p { font-size:14px; }
  .home-login .auth-story-copy p br { display:none; }
  .home-login .auth-story-line { display:none; }
  .reference-login.home-login .auth-main { padding:28px; border-radius:24px; }
  .home-login .auth-welcome h2 { font-size:33px; }
  .home-login .auth-welcome h2 br { display:none; }
}
@media(max-width:620px) {
  .home-login .auth-layout { padding:12px; gap:12px; }
  .home-login .auth-story { padding:22px; min-height:280px; }
  .home-login .auth-story-copy { padding:18px; margin-top:22px; }
  .home-login .auth-story h1 { font-size:35px; line-height:1.14; letter-spacing:-1px; }
  .home-login .auth-story h1 br { display:block; }
  .home-login .auth-kicker { font-size:10px; }
  .reference-login.home-login .auth-main { padding:23px 16px 18px; border-radius:22px; }
  .home-login .auth-welcome { margin-bottom:20px; padding:0 5px; }
  .home-login .auth-welcome h2 { font-size:30px; line-height:1.2; }
  .home-login .auth-welcome h2 br { display:block; }
  .home-login .auth-welcome p { font-size:14px; }
  .home-login .reference-login-options { grid-template-columns:minmax(0,1fr); gap:24px; }
  .home-login .reference-login-card { border-radius:19px; scroll-margin-top:16px; }
  .home-login .auth-card-top { min-height:0; padding:23px; }
  .home-login .reference-login-card h2 { font-size:31px; margin-top:18px; }
  .home-login .auth-card-body { padding:23px; }
  .home-login .login-fields .field { font-size:14px; }
  .home-login .login-fields input { min-height:52px; height:52px; }
  .home-login .login-submit { min-height:54px; }
  .home-login .auth-role-jump { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:6px; margin:0 0 20px; border:1px solid #d5e0ca; border-radius:12px; background:#e7eedd; }
  .home-login .auth-role-jump a { display:flex; align-items:center; justify-content:center; gap:6px; min-height:44px; padding:8px; font-size:13px; font-weight:650; color:#25452f; background:#fff; border:1px solid #d5e0ca; border-radius:8px; text-decoration:none; }
  .home-login .auth-role-jump a:hover { background:#f5f8ed; border-color:#8ba377; }
  .home-login .auth-role-jump .icon { width:17px; height:17px; }
  .home-login .auth-bottom { flex-direction:column; align-items:flex-start; padding:17px 5px 0; gap:5px; }
}
@media(max-width:360px) {
  .home-login .auth-layout { padding:8px; }
  .reference-login.home-login .auth-main { padding:21px 12px 17px; }
  .home-login .auth-card-top,.home-login .auth-card-body { padding:20px 17px; }
  .home-login .reference-login-card h2 { font-size:29px; }
  .home-login .auth-role-label { font-size:9px; padding:6px; }
  .home-login .auth-access-features { gap:8px; }
}
@media(prefers-reduced-motion:reduce) {
  html:has(.home-login) { scroll-behavior:auto; }
  .home-login .reference-login-card,.home-login .login-submit { transition:none; }
}
@media print {
  .reference-login.home-login,.home-login .auth-story { background:#fff; }
  .home-login .auth-layout { display:block; padding:0; }
  .home-login .auth-story { display:none; }
  .home-login .auth-main { box-shadow:none; }
  .home-login .auth-card-top { background:#fff; color:#203d2e; }
  .home-login .auth-card-top::before,.home-login .auth-card-top::after { display:none; }
  .home-login .reference-login-card h2,.home-login .auth-card-description,.home-login .auth-role-label { color:#203d2e; }
}
