/* GreenOLT public website pages (features, about, contact, legal) and the sign-in page. Loaded only on public views. */
:root{--gw-brand:#12864C;--gw-brand-strong:#0B6B3A;--gw-tint:#e8f5ee;--gw-ink:#0f1f17;--gw-muted:#5b6b62;--gw-line:#e3ebe6;--gw-surface:#fff;--gw-bg:#f5f9f6}
html[data-golt-theme="dark"]{--gw-tint:#12301f;--gw-ink:#e8f3ec;--gw-muted:#9db3a6;--gw-line:#24382c;--gw-surface:#12201a;--gw-bg:#0c1712}

/* ---- Public pages ---- */
.gw-page{max-width:1120px;margin:0 auto;padding:0 20px 56px}
.gw-hero{padding:56px 0 24px;text-align:left;border-bottom:1px solid var(--gw-line);margin-bottom:28px}
.gw-hero h1{font-size:clamp(30px,4.4vw,46px);line-height:1.1;margin:10px 0 8px;letter-spacing:-.02em;color:var(--gw-ink)}
.gw-updated{color:var(--gw-muted);margin:0;font-size:14px}
.gw-layout{display:block}.gw-layout.has-aside{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:32px;align-items:start}
.gw-body{max-width:820px;color:var(--gw-ink);font-size:16px;line-height:1.7}
.gw-layout.has-aside .gw-body{max-width:none}
.gw-body h2{font-size:22px;margin:34px 0 10px;color:var(--gw-ink);letter-spacing:-.01em}.gw-body h2:first-child{margin-top:0}
.gw-body p{margin:0 0 14px}.gw-body ul{margin:0 0 16px;padding-left:22px}.gw-body li{margin:6px 0}
.gw-body a{color:var(--gw-brand-strong);text-decoration:underline;text-underline-offset:2px}
.gw-aside{background:var(--gw-surface);border:1px solid var(--gw-line);border-radius:16px;padding:22px;position:sticky;top:90px}
.gw-aside h2{font-size:18px;margin:0 0 12px}.gw-contact{list-style:none;margin:0;padding:0}.gw-contact li{padding:10px 0;border-top:1px solid var(--gw-line);font-size:15px;line-height:1.5}.gw-contact li:first-child{border-top:0;padding-top:0}
.gw-contact a{color:var(--gw-brand-strong);font-weight:600}.gw-aside-note{margin:14px 0 0;font-size:13px;color:var(--gw-muted)}
.gw-lead{font-size:19px;line-height:1.6;color:var(--gw-muted);max-width:760px;margin:0 0 8px}
.gw-h{font-size:26px;margin:42px 0 16px;letter-spacing:-.01em;color:var(--gw-ink)}
.gw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.gw-card{background:var(--gw-surface);border:1px solid var(--gw-line);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:8px;transition:transform .15s,box-shadow .15s,border-color .15s}
.gw-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(15,60,35,.10);border-color:#b9dcc8}
.gw-card h3{margin:0;font-size:17px;color:var(--gw-ink)}.gw-card p{margin:0;font-size:14.5px;line-height:1.6;color:var(--gw-muted);flex:1}
.gw-ico{width:40px;height:40px;border-radius:12px;background:var(--gw-tint);color:var(--gw-brand-strong);display:grid;place-items:center;font-size:19px;font-weight:700}
.gw-tag{align-self:flex-start;margin-top:4px;padding:3px 10px;border-radius:999px;background:var(--gw-tint);color:var(--gw-brand-strong);font-size:11.5px;font-weight:700;letter-spacing:.02em}
.gw-note{margin:30px 0 0;padding:14px 18px;border-radius:12px;background:var(--gw-tint);color:var(--gw-brand-strong);font-size:14px}
.gw-page .gs-final-cta{margin-top:44px}

/* ---- Footer ---- */
.gw-footer{display:block!important;padding:44px 20px 24px;border-top:1px solid var(--gw-line);background:var(--gw-surface)}
.gw-foot-grid{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:28px}
.gw-foot-brand p{margin:10px 0 0;color:var(--gw-muted);font-size:14px;line-height:1.6;max-width:320px}.gw-foot-brand a{color:var(--gw-brand-strong)}
.gw-footer nav{display:flex;flex-direction:column;gap:8px}.gw-footer nav h3{margin:0 0 4px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gw-muted)}
.gw-footer nav a{color:var(--gw-ink);text-decoration:none;font-size:14.5px}.gw-footer nav a:hover{color:var(--gw-brand-strong);text-decoration:underline}
.gw-foot-bottom{max-width:1120px;margin:30px auto 0;padding-top:18px;border-top:1px solid var(--gw-line);display:flex;flex-wrap:wrap;gap:8px 24px;color:var(--gw-muted);font-size:13px}

/* ---- Owner settings: Website & legal ---- */
.sw-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:8px}.sw-grid label{display:flex;flex-direction:column;gap:5px;font-weight:600;font-size:13.5px}.sw-grid .sw-wide{grid-column:1/-1}
.sw-grid small{font-weight:400;color:var(--gw-muted)}.sw-page{border:1px solid var(--gw-line);border-radius:12px;margin:10px 0;padding:0 14px;background:var(--gw-surface)}
.sw-page summary{cursor:pointer;padding:12px 0;font-weight:700;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.sw-page summary a{margin-left:auto;font-weight:500;font-size:13px}.sw-default{font-weight:500;font-size:12.5px;color:var(--gw-muted)}
.sw-page textarea{width:100%;margin:0 0 14px;font-family:ui-monospace,Menlo,monospace;font-size:13px;line-height:1.5}

/* ---- Sign-in page ---- */
body.ga-body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--gw-bg)!important;color:var(--gw-ink);font-family:inherit}
.ga-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px clamp(16px,4vw,48px)}
.ga-head a.ga-logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--gw-ink);font-weight:800;font-size:19px}.ga-head img{height:40px;width:auto;display:block}
.ga-head nav{display:flex;gap:6px;align-items:center}.ga-head nav a{padding:8px 12px;border-radius:10px;color:var(--gw-muted);text-decoration:none;font-size:14px;font-weight:600}.ga-head nav a:hover{background:var(--gw-tint);color:var(--gw-brand-strong)}
.ga-main{flex:1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,460px);gap:clamp(24px,5vw,72px);align-items:center;width:min(1180px,100%);margin:0 auto;padding:12px clamp(16px,4vw,48px) 40px}
.ga-intro{position:relative}
.ga-eyebrow{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--gw-brand-strong);background:var(--gw-tint);padding:6px 12px;border-radius:999px}
.ga-intro h1{font-size:clamp(30px,4.2vw,50px);line-height:1.08;letter-spacing:-.025em;margin:16px 0 14px;color:var(--gw-ink)}.ga-intro h1 span{color:var(--gw-brand)}
.ga-intro>p{font-size:17px;line-height:1.6;color:var(--gw-muted);max-width:540px;margin:0 0 22px}
.ga-points{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:560px}
.ga-points li{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:14px;background:var(--gw-surface);border:1px solid var(--gw-line)}
.ga-points b{display:block;font-size:14.5px;color:var(--gw-ink)}.ga-points small{display:block;font-size:12.5px;line-height:1.45;color:var(--gw-muted);margin-top:2px}
.ga-pi{flex:none;width:36px;height:36px;border-radius:10px;background:var(--gw-tint);color:var(--gw-brand-strong);display:grid;place-items:center;font-size:17px;font-weight:800}
.ga-card{background:var(--gw-surface);border:1px solid var(--gw-line);border-radius:22px;padding:clamp(22px,3vw,34px);box-shadow:0 24px 60px rgba(15,60,35,.12)}
.ga-card h2{font-size:26px;margin:0 0 6px;letter-spacing:-.01em;color:var(--gw-ink)}.ga-card>p{margin:0 0 20px;color:var(--gw-muted);font-size:15px}
.ga-card label{display:block;font-size:13px;font-weight:700;color:var(--gw-ink);margin:14px 0 6px}
.ga-card input[type=text],.ga-card input[type=password],.ga-card input[type=email]{width:100%;height:46px;padding:0 14px;border:1px solid #c9d8cf;border-radius:12px;background:var(--gw-surface);color:var(--gw-ink);font-size:15px;outline:none;transition:border-color .15s,box-shadow .15s}
html[data-golt-theme="dark"] .ga-card input[type=text],html[data-golt-theme="dark"] .ga-card input[type=password]{border-color:#2f4a3a;background:#0c1712;color:#e8f3ec}
.ga-card input:focus{border-color:var(--gw-brand);box-shadow:0 0 0 4px rgba(18,134,76,.16)}
.ga-pw{position:relative}.ga-pw input{padding-right:84px}.ga-show{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--gw-brand-strong);font-weight:700;font-size:13px;padding:8px 10px;border-radius:8px;cursor:pointer}.ga-show:hover{background:var(--gw-tint)}
.ga-caps{display:none;margin:6px 0 0;font-size:12.5px;color:#9a5b00}.ga-caps.is-on{display:block}
.ga-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 4px;font-size:13.5px}.ga-row label{display:flex;align-items:center;gap:8px;margin:0;font-weight:500;color:var(--gw-muted)}.ga-row input{width:auto;height:auto}
.ga-btn{width:100%;height:48px;margin-top:16px;border:0;border-radius:12px;background:linear-gradient(135deg,var(--gw-brand),var(--gw-brand-strong));color:#fff;font-size:16px;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:transform .1s,box-shadow .15s}
.ga-btn:hover{box-shadow:0 10px 24px rgba(18,134,76,.32)}.ga-btn:active{transform:translateY(1px)}.ga-btn[disabled]{opacity:.7;cursor:progress}
.ga-btn.is-loading::after{content:"";width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;animation:ga-spin .7s linear infinite}@keyframes ga-spin{to{transform:rotate(360deg)}}
.ga-err{margin:0 0 14px;padding:11px 14px;border-radius:12px;background:#fdecec;color:#a31f14;font-size:14px;border:1px solid #f6caca}
.ga-sec{margin-top:18px;padding-top:16px;border-top:1px solid var(--gw-line);display:flex;flex-direction:column;gap:8px;font-size:13.5px;color:var(--gw-muted)}.ga-sec a{color:var(--gw-brand-strong);font-weight:700;text-decoration:none}.ga-sec a:hover{text-decoration:underline}
.ga-note{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;color:var(--gw-muted)}
.ga-otp-cancel{margin-top:10px}.ga-otp-cancel button{border:0;background:transparent;color:var(--gw-brand-strong);font-weight:700;cursor:pointer;padding:6px 0}
.ga-setup{padding:14px;border-radius:12px;background:#fff7e6;border:1px solid #fde3b0;font-size:14px}.ga-setup code{display:block;margin:8px 0;padding:8px 10px;background:#fff;border-radius:8px}
.ga-foot{display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:center;padding:18px clamp(16px,4vw,48px) 26px;color:var(--gw-muted);font-size:13px}.ga-foot a{color:var(--gw-muted);text-decoration:none}.ga-foot a:hover{color:var(--gw-brand-strong);text-decoration:underline}



@media (prefers-reduced-motion:reduce){.gw-card,.ga-btn{transition:none}.ga-btn.is-loading::after{animation:none}}

/* Sign-in: beat the app-wide link / heading rules (they use html[data-golt-theme] body.…) */
html body.ga-body .ga-card h2,html[data-golt-theme] body.ga-body .ga-card h2{font-size:26px;font-weight:800;letter-spacing:-.01em;line-height:1.2;color:var(--gw-ink);margin:0 0 6px}
html body.ga-body .ga-card>p,html[data-golt-theme] body.ga-body .ga-card>p{font-size:15px;color:var(--gw-muted)}
html body.ga-body .ga-card label,html[data-golt-theme] body.ga-body .ga-card label{font-size:13px;font-weight:700;color:var(--gw-ink)}
html body.ga-body .ga-row label,html[data-golt-theme] body.ga-body .ga-row label{font-weight:500;color:var(--gw-muted)}
html body.ga-body .ga-sec a,html[data-golt-theme] body.ga-body .ga-sec a{color:var(--gw-brand-strong);font-weight:700;text-decoration:none}
html body.ga-body .ga-foot a,html[data-golt-theme] body.ga-body .ga-foot a{color:var(--gw-muted);text-decoration:none}
html body.ga-body .ga-head nav a,html[data-golt-theme] body.ga-body .ga-head nav a{color:var(--gw-muted);font-weight:600;text-decoration:none}
html body.ga-body .ga-head nav a:hover,html[data-golt-theme] body.ga-body .ga-head nav a:hover,html body.ga-body .ga-foot a:hover{color:var(--gw-brand-strong);background:var(--gw-tint)}
html body.ga-body .ga-btn,html[data-golt-theme] body.ga-body .ga-card button.ga-btn{background:linear-gradient(135deg,var(--gw-brand),var(--gw-brand-strong));color:#fff;border:0;height:48px;font-size:16px;font-weight:800;border-radius:12px;width:100%}
html body.ga-body .ga-show,html[data-golt-theme] body.ga-body .ga-card button.ga-show{background:transparent;color:var(--gw-brand-strong);width:auto;height:auto;border:0;font-size:13px;font-weight:700;padding:8px 10px}
html body.ga-body .ga-otp-cancel button,html[data-golt-theme] body.ga-body .ga-otp-cancel button{background:transparent;color:var(--gw-brand-strong);border:0;height:auto;width:auto;font-weight:700}
html body.ga-body .ga-intro h1{color:var(--gw-ink)}html body.ga-body .ga-intro h1 span{color:var(--gw-brand)}
html body.ga-body .ga-intro>p{color:var(--gw-muted);font-size:17px}html body.ga-body .ga-points b{color:var(--gw-ink);font-size:14.5px}html body.ga-body .ga-points small{color:var(--gw-muted)}
.gw-layout.is-wide .gw-body{max-width:none}
.gw-page{width:100%}
.gs-public-nav .gs-platform-logo{height:44px;width:auto;max-width:200px;object-fit:contain}
.gw-hero,.gw-layout{max-width:1080px;margin-left:auto;margin-right:auto}

/* ---- Sign-in background: OLT → splitter → ONUs, with the ACS (TR-069) cloud ---- */
body.ga-body{position:relative;overflow-x:hidden;isolation:isolate}
.ga-bg{position:absolute;left:0;right:0;bottom:44px;height:min(40vh,340px);z-index:-1;pointer-events:none;color:var(--gw-brand)}
.ga-bg svg{width:100%;height:100%;display:block}
.ga-net .ga-fill{fill:var(--gw-surface)}.ga-net .ga-stroke{stroke:var(--gw-brand);stroke-width:2;opacity:1}
.ga-net .ga-slot{fill:var(--gw-tint)}
.ga-net .ga-t{font:700 12px/1 system-ui,sans-serif;letter-spacing:.06em;fill:var(--gw-brand-strong);text-transform:uppercase}
.ga-line path{fill:none;stroke:var(--gw-brand);stroke-width:2.4;stroke-linecap:round;opacity:.35}
.ga-line.ga-dash path{stroke-dasharray:3 9;opacity:.5;animation:ga-dash 3s linear infinite}
.ga-line.ga-flow path{stroke:#4ade80;stroke-width:3;opacity:.95;stroke-dasharray:10 46;animation:ga-flow 2.2s linear infinite;filter:drop-shadow(0 0 4px rgba(74,222,128,.9))}
.ga-line.ga-slow path{animation-duration:3.1s;animation-delay:-1s}
.ga-line-s{fill:none;stroke:var(--gw-brand);stroke-width:2.4;stroke-linecap:round}
.ga-wifi{fill:none;stroke:var(--gw-brand);stroke-width:2.4;stroke-linecap:round}
.ga-led{fill:#4ade80;animation:ga-blink 2.6s ease-in-out infinite}.ga-led.l2{animation-delay:-.9s}.ga-led.l3{animation-delay:-1.7s}
.ga-cloud{animation:ga-float 7s ease-in-out infinite}.ga-cloud .ga-fill{stroke:var(--gw-brand);stroke-width:2}
.ga-onu{animation:ga-rise .8s cubic-bezier(.2,.8,.2,1) both}.ga-onu:nth-of-type(2){animation-delay:.1s}.ga-onu:nth-of-type(3){animation-delay:.2s}
@keyframes ga-flow{to{stroke-dashoffset:-112}}@keyframes ga-dash{to{stroke-dashoffset:-48}}
@keyframes ga-blink{0%,100%{opacity:1}50%{opacity:.25}}@keyframes ga-float{0%,100%{transform:translate(560px,8px)}50%{transform:translate(560px,0)}}
@keyframes ga-rise{from{opacity:0}to{opacity:1}}
html[data-golt-theme="dark"] .ga-bg{color:#4ade80}html[data-golt-theme="dark"] .ga-net .ga-stroke{stroke:#2f7d52}html[data-golt-theme="dark"] .ga-net .ga-t{fill:#9fd8b6}
html[data-golt-theme="dark"] body.ga-body .ga-card,html[data-golt-theme="dark"] .ga-points li{background:#12201a}
/* entrance */
.ga-card{animation:ga-in .6s cubic-bezier(.2,.8,.2,1) both}.ga-intro>*{animation:ga-in .6s cubic-bezier(.2,.8,.2,1) both}.ga-intro>*:nth-child(2){animation-delay:.06s}.ga-intro>*:nth-child(3){animation-delay:.12s}.ga-intro>*:nth-child(4){animation-delay:.18s}
@keyframes ga-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.ga-points li{backdrop-filter:blur(6px);background:rgba(255,255,255,.82)}html[data-golt-theme="dark"] .ga-points li{background:rgba(18,32,26,.82)}
.ga-card{backdrop-filter:blur(10px);background:rgba(255,255,255,.95)}html[data-golt-theme="dark"] .ga-card{background:rgba(18,32,26,.95)}.ga-foot{position:relative;z-index:1}
.ga-eyebrow::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#22c55e;margin-right:8px;box-shadow:0 0 0 0 rgba(34,197,94,.6);animation:ga-pulse 2s infinite}@keyframes ga-pulse{70%{box-shadow:0 0 0 8px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
html body.ga-body .ga-theme{width:38px;height:38px;border-radius:10px;border:1px solid var(--gw-line);background:var(--gw-surface);color:var(--gw-brand-strong);font-size:17px;cursor:pointer;display:grid;place-items:center;margin-left:6px;padding:0}
html body.ga-body .ga-theme:hover{background:var(--gw-tint)}

@media (prefers-reduced-motion:reduce){.ga-line.ga-flow path,.ga-line.ga-dash path,.ga-led,.ga-cloud,.ga-onu,.ga-card,.ga-intro>*,.ga-eyebrow::before{animation:none!important}.ga-line.ga-flow path{stroke-dasharray:none;opacity:.6}}

/* Sign-in v3: the OLT / ACS topology is part of the content, not a faded background */
.ga-bg{height:100%;bottom:0;background:radial-gradient(60% 50% at 18% 100%,rgba(18,134,76,.12),transparent 70%),radial-gradient(40% 40% at 90% 0%,rgba(18,134,76,.08),transparent 70%),radial-gradient(circle at 2px 2px,rgba(18,134,76,.22) 1.2px,transparent 1.4px) 0 0/28px 28px;-webkit-mask:linear-gradient(#000 30%,transparent);mask:linear-gradient(#000 30%,transparent);opacity:.8}
.ga-tag{margin-left:auto;margin-right:14px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gw-brand-strong);padding:6px 12px;border-radius:999px;background:var(--gw-tint)}
.ga-two{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:620px;margin:0 0 14px}
.ga-cap{padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.88);border:1px solid var(--gw-line);backdrop-filter:blur(6px)}html[data-golt-theme="dark"] .ga-cap{background:rgba(18,32,26,.88)}
.ga-cap h3{display:flex;align-items:center;gap:10px;margin:0 0 8px;font-size:15px;font-weight:800;color:var(--gw-ink)}
.ga-cap ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}.ga-cap li{position:relative;padding-left:18px;font-size:12.8px;line-height:1.4;color:var(--gw-muted)}.ga-cap li::before{content:"✓";position:absolute;left:0;top:0;color:var(--gw-brand);font-weight:800}
.ga-topo{margin:0;max-width:620px;border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(232,245,238,.8));border:1px solid var(--gw-line);padding:12px 12px 8px;box-shadow:0 18px 44px rgba(15,60,35,.10)}
html[data-golt-theme="dark"] .ga-topo{background:linear-gradient(180deg,rgba(18,32,26,.94),rgba(14,40,28,.85))}
.ga-topo svg{width:100%;height:auto;display:block;color:var(--gw-brand)}.ga-topo figcaption{margin:4px 4px 2px;font-size:11.5px;color:var(--gw-muted)}
.ga-topo .ga-ct{font:600 10.5px/1 system-ui,sans-serif;fill:var(--gw-ink)}.ga-topo .ga-chip{animation:ga-rise .8s both}.ga-topo .ga-chip.c2{animation-delay:.25s}.ga-topo .ga-chip.c3{animation-delay:.5s}.ga-topo .ga-chip.c4{animation-delay:.75s}
.ga-cloud2{animation:ga-float2 6s ease-in-out infinite}@keyframes ga-float2{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.ga-topo .ga-line path{stroke-width:2.6}.ga-topo .ga-line.ga-flow path{stroke-dasharray:12 40}


@media (prefers-reduced-motion:reduce){.ga-cloud2,.ga-topo .ga-chip{animation:none!important}}

/* Sign-in v4: the OLT / ACS diagram fills the whole page behind the content */
.ga-bg{position:fixed!important;top:0;left:0;right:0;bottom:0!important;height:100%!important;-webkit-mask:none!important;mask:none!important;opacity:1!important;background:radial-gradient(circle at 2px 2px,rgba(18,134,76,.16) 1.2px,transparent 1.4px) 0 0/28px 28px;color:var(--gw-brand)}
.ga-bg svg{position:absolute;inset:0;width:100%;height:100%;opacity:.55}
.ga-bg .ga-ct{font:600 10.5px/1 system-ui,sans-serif;fill:var(--gw-ink)}
.ga-bg .ga-chip{animation:ga-rise .8s both}.ga-bg .ga-chip.c2{animation-delay:.25s}.ga-bg .ga-chip.c3{animation-delay:.5s}.ga-bg .ga-chip.c4{animation-delay:.75s}
.ga-bg .ga-line path{stroke-width:2.6}.ga-bg .ga-line.ga-flow path{stroke-dasharray:12 40}
.ga-bg .ga-t{font-size:12px}
html[data-golt-theme="dark"] .ga-bg svg{opacity:.7}
body.ga-body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,var(--gw-bg) 0,rgba(245,249,246,.78) 34%,transparent 62%)}
html[data-golt-theme="dark"] body.ga-body::before{background:linear-gradient(90deg,var(--gw-bg) 0,rgba(12,23,18,.78) 34%,transparent 62%)}


.ga-bg svg{inset:auto;left:1%;right:1%;top:50%;transform:translateY(-52%);width:98%;height:auto;max-height:92%;opacity:.5}
html[data-golt-theme="dark"] .ga-bg svg{opacity:.6}


/* Sign-in v5: the OLT / ACS diagram is a band at the foot of the page, below the content and footer, so nothing overlaps */
body.ga-body::before{display:none!important}
.ga-bg svg{display:none}
.ga-band{margin-top:6px;line-height:0;color:var(--gw-brand)}
.ga-band svg{width:100%;height:auto;display:block;max-height:340px}
.ga-band .ga-ct{font:600 12px/1 system-ui,sans-serif;fill:var(--gw-ink)}.ga-band .ga-t{font-size:13px}
.ga-band .ga-chip{animation:ga-rise .8s both}.ga-band .ga-chip.c2{animation-delay:.25s}.ga-band .ga-chip.c3{animation-delay:.5s}.ga-band .ga-chip.c4{animation-delay:.75s}
.ga-band .ga-line path{stroke-width:2.8}.ga-band .ga-line.ga-flow path{stroke-dasharray:14 44}

@media (prefers-reduced-motion:reduce){.ga-band .ga-chip{animation:none!important}}

.ga-main{padding-top:0!important;padding-bottom:6px!important}
.ga-head{padding-top:10px;padding-bottom:6px}
.ga-foot{padding:6px 16px 4px!important}
.ga-intro h1{font-size:clamp(28px,3.4vw,42px)!important;margin:12px 0 10px!important}
.ga-intro>p{margin-bottom:14px!important;font-size:16px!important}
.ga-band svg{max-height:min(300px,34vh)}

/* Sign-in v6: the diagram is the page background — it fills all the space below the content (never under it) */
body.ga-body{display:flex!important;flex-direction:column!important;min-height:100vh;min-height:100dvh}
.ga-main{flex:0 0 auto!important}
.ga-band{flex:1 1 auto;position:relative;min-height:230px;margin-top:14px;line-height:0;-webkit-mask:linear-gradient(180deg,transparent 0,#000 16%);mask:linear-gradient(180deg,transparent 0,#000 16%)}
.ga-band svg.ga-band-svg{position:absolute;left:0;right:0;bottom:0;width:100%;height:100%;max-height:none!important;opacity:.85}
.ga-legal{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:14px;padding-top:12px;border-top:1px solid var(--gw-line);font-size:12px}
html body.ga-body .ga-legal a{color:var(--gw-muted);text-decoration:none}html body.ga-body .ga-legal a:hover{color:var(--gw-brand-strong);text-decoration:underline}
.ga-legal span{margin-left:auto;color:var(--gw-muted)}


/* Alert dialog (same as the portal) */
:root{--gx-surface:#fff;--gx-ink:#0f1f17;--gx-muted:#5b6b62;--gx-line:#e3ebe6;--gx-sunken:#f1f5f9;--gx-brand:#12864C;--gx-brand-strong:#0B6B3A}html[data-golt-theme="dark"]{--gx-surface:#12201a;--gx-ink:#e8f3ec;--gx-muted:#9db3a6;--gx-line:#24382c;--gx-sunken:#0c1712}
/* SECTION P18 — SweetAlert-style confirmation (all confirmations) and the LAN port toggle. */
.gsw-back{position:fixed;inset:0;z-index:2147483600;display:grid;place-items:center;padding:16px;background:rgba(15,23,42,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:gswFade .15s ease both}
.gsw-back.is-out{animation:gswFadeOut .15s ease both}
.gsw{width:min(420px,100%);padding:26px 24px 20px;border-radius:20px;background:var(--gx-surface,#fff);color:var(--gx-ink,#0f172a);text-align:center;box-shadow:0 30px 80px rgba(15,23,42,.35);animation:gswPop .28s cubic-bezier(.2,1.3,.4,1) both}
.gsw-ico{width:72px;height:72px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;border:4px solid #93c5fd;background:#eff6ff;color:#2563eb;font-size:36px;font-weight:800;line-height:1}
.gsw.is-danger .gsw-ico{border-color:#fcd34d;background:#fffbeb;color:#d97706}
.gsw-ico span{display:block;animation:gswPulse .9s ease .2s both}
.gsw h3{margin:0 0 6px;font-size:19px;font-weight:750;letter-spacing:-.01em;color:var(--gx-ink,#0f172a)}
.gsw p{margin:0 0 4px;font-size:14px;line-height:1.5;color:var(--gx-muted,#64748b);white-space:pre-line}
.gsw-btns{display:flex;gap:10px;justify-content:center;margin-top:18px}
.gsw-btns button{min-width:120px;min-height:42px;padding:8px 18px;border-radius:12px;font-size:14px;font-weight:700;cursor:pointer;border:1px solid transparent;transition:filter .15s,transform .12s}
.gsw-btns button:hover{transform:translateY(-1px)}
.gsw-no{background:var(--gx-sunken,#f1f5f9);color:var(--gx-ink,#0f172a);border-color:var(--gx-line,#e2e8f0)!important}
.gsw-yes{background:linear-gradient(135deg,var(--gx-brand,#12864C),var(--gx-brand-strong,#0B6B3A));color:#fff;box-shadow:0 8px 18px rgba(18,134,76,.28)}
.gsw.is-danger .gsw-yes{background:linear-gradient(135deg,#ef4444,#b91c1c);box-shadow:0 8px 18px rgba(185,28,28,.28)}
.gsw-btns button:focus-visible{outline:3px solid rgba(37,99,235,.35);outline-offset:2px}
html[data-golt-theme="dark"] .gsw-ico{background:rgba(37,99,235,.15)}html[data-golt-theme="dark"] .gsw.is-danger .gsw-ico{background:rgba(217,119,6,.15)}
@keyframes gswFade{from{opacity:0}to{opacity:1}}@keyframes gswFadeOut{to{opacity:0}}
@keyframes gswPop{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}
@keyframes gswPulse{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.15);opacity:1}100%{transform:none}}
@media (prefers-reduced-motion:reduce){.gsw,.gsw-back,.gsw-ico span{animation:none}}

/* Sign-in v7: clean card, one small Forgot link, two equal cards, footer at the bottom */
.ga-band,.ga-legal,.ga-sec{display:none!important}
.ga-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
html body.ga-body .ga-forgot,html[data-golt-theme] body.ga-body .ga-forgot{font-size:12.5px;font-weight:700;color:var(--gw-brand-strong);text-decoration:none;white-space:nowrap}
html body.ga-body .ga-forgot:hover{text-decoration:underline}
.ga-foot{margin-top:auto;display:flex;flex-wrap:wrap;gap:6px 22px;justify-content:center;align-items:center;padding:14px clamp(16px,4vw,48px) 18px;font-size:12.5px;color:var(--gw-muted);border-top:1px solid var(--gw-line);background:transparent}
html body.ga-body .ga-foot a{color:var(--gw-muted);text-decoration:none}html body.ga-body .ga-foot a:hover{color:var(--gw-brand-strong);text-decoration:underline}
.ga-main{flex:1 0 auto!important;align-items:center}
.ga-two{align-items:stretch;justify-content:center;margin:0 auto 4px!important;width:100%;max-width:620px}
.ga-cap{height:100%;display:flex;flex-direction:column;align-items:center;text-align:center}
.ga-cap h3{justify-content:center;flex-direction:column;gap:8px}
.ga-cap ul{text-align:left;width:100%}
.ga-intro{display:flex;flex-direction:column;align-items:flex-start}

/* one-line headline */
.ga-intro h1{white-space:nowrap}

