.login-screen{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:linear-gradient(145deg,#eaf3f6,#f8fbfc)}
body.auth-pending .login-screen{display:none!important}
.login-card{width:min(390px,100%);padding:28px!important;border:1px solid #d7e5eb;border-radius:20px;background:#fff;box-shadow:0 24px 70px rgba(18,55,76,.18)}
.login-mark{display:grid;place-items:center;width:52px;height:52px;margin-bottom:18px;border-radius:15px;background:linear-gradient(145deg,#268db8,#176d98);color:#fff;font-size:18px;font-weight:900;box-shadow:0 10px 24px rgba(23,109,152,.25)}
.login-card h1{margin:5px 0 7px;font-size:24px}.login-card p{margin-bottom:18px;color:#688092;font-size:12px}.login-card label{font-size:11px}.login-card input{height:44px}.login-card>button{width:100%;min-height:44px;margin-top:8px}.login-error{min-height:18px;margin-top:8px;color:#bd3333;font-size:11px;font-weight:700}
body.authenticated .login-screen{display:none}.account-badge{display:inline-flex;align-items:center;min-height:36px;padding:7px 10px;border:1px solid #d7e5eb;border-radius:10px;background:#f3f8fa;color:#365c70;font-size:10px;font-weight:800;white-space:nowrap}
body.viewer #editTopology,body.viewer #addLocation,body.viewer #addCable,body.viewer [data-edit-cable],body.viewer [data-core-edit],body.viewer .core-edit,body.viewer .edit,body.viewer .delete-cable,body.viewer .cable-move,body.viewer [data-delete-location],body.viewer #deleteLocation,body.viewer #editTopologyCable,body.viewer .location-edit-button{display:none!important}
body.viewer .splice-row{cursor:default!important}body.viewer .splice-arrow{pointer-events:none!important}
@media(max-width:650px){.login-card{padding:23px!important}.account-badge{grid-column:1/3;justify-content:center}.header-actions #logoutButton{grid-column:3}.header-actions{grid-template-columns:repeat(3,minmax(0,1fr))!important}}

/* Modern fiber-network login */
.login-screen{overflow:hidden;isolation:isolate;background:#061a2a;color:#102f42}
.login-screen::before{content:"";position:absolute;inset:0;z-index:-3;background:#061a2a url('/assets/fiber-road-login.png') center/cover no-repeat;filter:saturate(.92) contrast(1.04);animation:fiberLoginDrift 18s ease-in-out infinite alternate;will-change:transform}
.login-screen::after{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(circle at 73% 47%,rgba(20,174,225,.16),transparent 25%),linear-gradient(90deg,rgba(2,18,31,.72) 0%,rgba(4,25,40,.36) 48%,rgba(2,16,29,.68) 100%);animation:fiberLoginPulse 5s ease-in-out infinite;pointer-events:none}
.login-card{position:relative;overflow:hidden;width:min(430px,100%);padding:34px!important;border:1px solid rgba(255,255,255,.4);border-radius:26px;background:linear-gradient(145deg,rgba(255,255,255,.43),rgba(205,235,246,.24));box-shadow:0 30px 90px rgba(0,12,25,.5),inset 0 1px 0 rgba(255,255,255,.58);backdrop-filter:blur(13px) saturate(1.16);-webkit-backdrop-filter:blur(13px) saturate(1.16)}
.login-card::before{content:"JARINGAN TERHUBUNG";display:inline-flex;align-items:center;gap:7px;float:right;margin:7px 0 0;padding:7px 10px;border:1px solid #bfe8d7;border-radius:999px;background:#e9f9f2;color:#13805d;font-size:9px;font-weight:900;letter-spacing:.08em}
.login-card::after{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,#137ba6,#21bddb,#45d6af);background-size:200% 100%;animation:fiberLoginFlow 2.6s linear infinite}
.login-mark{width:58px;height:58px;margin-bottom:22px;border:1px solid rgba(255,255,255,.75);border-radius:18px;background:linear-gradient(145deg,#168ab8,#075578);font-size:19px;box-shadow:0 13px 30px rgba(10,112,155,.32),inset 0 1px 0 rgba(255,255,255,.35)}
.login-card .eyebrow{color:#32728f;letter-spacing:.2em}.login-card h1{clear:both;margin:11px 0 8px;font-size:28px;letter-spacing:-.035em}.login-card p{max-width:330px;margin-bottom:24px;color:#627d8e;font-size:12px;line-height:1.65}
.login-card label{color:#173e53;font-size:10px;font-weight:900;letter-spacing:.04em}.login-card input{height:50px;margin-top:7px;padding:0 16px;border:1px solid rgba(255,255,255,.5);border-radius:13px;background:rgba(245,251,253,.43);font-size:14px;box-shadow:inset 0 1px 2px rgba(18,58,79,.08),0 1px 0 rgba(255,255,255,.32);transition:.2s ease}.login-card input:focus{border-color:rgba(22,136,181,.7);outline:3px solid rgba(22,136,181,.14);background:rgba(255,255,255,.7)}
.login-card>button{min-height:50px;margin-top:10px;border-radius:13px;background:linear-gradient(135deg,#168db9,#08709d);font-size:13px;font-weight:900;box-shadow:0 11px 25px rgba(10,116,158,.28);transition:transform .2s ease,box-shadow .2s ease}.login-card>button:hover{transform:translateY(-1px);box-shadow:0 15px 30px rgba(10,116,158,.34)}
.login-error{margin-bottom:2px}.login-error:not(:empty){padding:9px 11px;border-radius:10px;background:#fff0f0}
.sky-character{position:absolute;z-index:-1;left:-230px;aspect-ratio:3/2;background-position:center;background-size:contain;background-repeat:no-repeat;filter:drop-shadow(0 12px 14px rgba(0,12,25,.34));pointer-events:none;will-change:transform;animation:doraemonTiredFlight 28s linear infinite}
.sky-doraemon{top:7%;width:clamp(105px,11vw,175px);background-image:url('/assets/doraemon-tired.png');opacity:.94;animation-delay:-9s}
.sky-nobita{top:13%;width:clamp(95px,10vw,158px);background-image:url('/assets/nobita-dizzy.png');opacity:.9;animation-delay:-6s}
.sky-giant{top:19%;width:clamp(105px,11.5vw,182px);background-image:url('/assets/giant-angry.png');opacity:.87;animation-delay:-3s}
@keyframes fiberLoginDrift{from{transform:scale(1)}to{transform:scale(1.025) translate3d(.35%,-.2%,0)}}
@keyframes fiberLoginPulse{0%,100%{opacity:.88}50%{opacity:1}}
@keyframes fiberLoginFlow{to{background-position:200% 0}}
@keyframes doraemonTiredFlight{0%{transform:translate3d(0,8px,0) rotate(-2deg)}18%{transform:translate3d(23vw,-3px,0) rotate(1deg)}38%{transform:translate3d(46vw,12px,0) rotate(-3deg)}58%{transform:translate3d(69vw,0,0) rotate(1deg)}78%{transform:translate3d(92vw,14px,0) rotate(-2deg)}100%{transform:translate3d(calc(100vw + 280px),5px,0) rotate(1deg)}}
@media(max-width:650px){.login-screen{align-items:end;padding:14px 14px 18px}.login-screen::before{inset:0;background-image:url('/assets/fiber-road-login-mobile.png');background-position:center center;background-size:cover;animation-duration:16s}.login-screen::after{background:linear-gradient(180deg,rgba(2,18,31,.05) 0%,rgba(2,18,31,.18) 34%,rgba(2,18,31,.5) 66%,rgba(2,18,31,.76) 100%)}.sky-character{left:-105px;animation-duration:20s}.sky-doraemon{top:7%;width:82px;animation-delay:-7s}.sky-nobita{top:12%;width:72px;animation-delay:-4.7s}.sky-giant{top:17%;width:82px;animation-delay:-2.4s}.login-card{width:100%;max-width:430px;padding:23px!important;border-radius:23px;background:linear-gradient(145deg,rgba(255,255,255,.5),rgba(205,235,246,.3));backdrop-filter:blur(11px) saturate(1.15);-webkit-backdrop-filter:blur(11px) saturate(1.15)}.login-mark{width:48px;height:48px;margin-bottom:14px;border-radius:14px}.login-card::before{margin-top:4px;font-size:8px}.login-card h1{font-size:23px}.login-card p{margin-bottom:15px}.login-card input,.login-card>button{height:47px;min-height:47px}}
@media(prefers-reduced-motion:reduce){.login-screen::before,.login-screen::after,.login-card::after,.sky-character{animation:none!important}.sky-doraemon{left:28%;transform:none}.sky-nobita{left:14%;transform:none}.sky-giant{left:2%;transform:none}}
