html{background:#f6fafb}#root{min-height:100vh}:root{color:#211d1a;font-synthesis:none;text-rendering:optimizelegibility;background:#f6fafb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{touch-action:manipulation}.page-shell{isolation:isolate;place-items:center;min-height:100vh;padding:40px 20px 28px;display:grid;position:relative;overflow:hidden}.page-shell:before,.page-shell:after{z-index:-2;content:"";border:1px solid #473f3617;border-radius:50%;position:absolute}.page-shell:before{width:620px;height:620px;top:-370px;left:-230px}.page-shell:after{width:440px;height:440px;bottom:-250px;right:-280px}.sun{z-index:-1;background:#c9473d;border-radius:50%;width:170px;height:170px;position:absolute;top:8%;right:11%;box-shadow:0 28px 80px #8a2d2638}.auth-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffdf8ed;border:1px solid #362f2821;border-radius:28px;width:min(100%,510px);overflow:hidden;box-shadow:0 30px 90px #3d302629}.brand{border-bottom:1px solid #362f281a;padding:38px 42px 29px}.eyebrow,.step{color:#ad3c34;letter-spacing:.17em;text-transform:uppercase;font-size:.72rem;font-weight:800}.brand h1{letter-spacing:-.055em;margin:9px 0 4px;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,8vw,3.15rem);font-weight:500}.brand p,.form-heading p,.ready-copy,.loading p{color:#746b63;margin:0;line-height:1.55}.auth-form,.ready-panel,.offline-panel,.loading{padding:32px 42px 39px}.form-heading{margin-bottom:24px}.form-heading h2,.ready-panel h2,.offline-panel h2{margin:7px 0 8px;font-size:1.35rem}.auth-form>label:not(.show-password){color:#4e4741;gap:8px;margin-top:17px;font-size:.86rem;font-weight:700;display:grid}.auth-form input[type=password],.auth-form input[type=text]{color:#211d1a;background:#fff;border:1px solid #d8d0c6;border-radius:13px;outline:none;width:100%;height:49px;padding:0 15px;transition:border-color .16s,box-shadow .16s}.auth-form input:focus{border-color:#b1433b;box-shadow:0 0 0 4px #b1433b1f}.show-password{color:#665e57;cursor:pointer;align-items:center;gap:9px;width:fit-content;margin:15px 0 0;font-size:.84rem;display:flex}.show-password input{accent-color:#ad3c34;width:17px;height:17px}.primary-button,.secondary-button{cursor:pointer;border-radius:13px;width:100%;min-height:49px;font-weight:800;transition:transform .15s,opacity .15s,background .15s}.primary-button{color:#fff;background:#b74139;border:1px solid #a63831;margin-top:24px;box-shadow:0 12px 28px #92312b33}.primary-button:hover:not(:disabled){background:#a63b34;transform:translateY(-1px)}.secondary-button{color:#574f48;background:0 0;border:1px solid #d4ccc1;margin-top:25px}.secondary-button+.secondary-button,.secondary-button.compact{margin-top:10px}.secondary-button:hover:not(:disabled){background:#f5f0e8}button:disabled{cursor:wait;opacity:.62}.error{color:#9e3028;background:#fff0ed;border-radius:10px;margin:16px 0 0;padding:11px 13px;font-size:.85rem;line-height:1.45}.loading{text-align:center;justify-items:center;gap:16px;display:grid}.loader{border:3px solid #e2d9ce;border-top-color:#b74139;border-radius:50%;width:30px;height:30px;animation:.8s linear infinite spin}.ready-panel,.offline-panel{text-align:center}.offline-panel>p{color:#746b63;margin:0;line-height:1.55}.offline-mark{color:#6d6258;background:#eee8dd;border-radius:50%;place-items:center;width:50px;height:50px;margin:0 auto 18px;font-size:1.35rem;font-weight:900;display:grid}.ready-mark{color:#4e7132;background:#e8f1df;border-radius:50%;place-items:center;width:50px;height:50px;margin:0 auto 18px;font-size:1.35rem;font-weight:900;display:grid}.stats{border:1px solid #ded6cc;border-radius:16px;grid-template-columns:1fr 1fr;margin-top:26px;display:grid;overflow:hidden}.stats div{gap:3px;padding:18px 12px;display:grid}.stats div+div{border-left:1px solid #ded6cc}.stats strong{font-family:Georgia,Times New Roman,serif;font-size:1.7rem;font-weight:500}.stats span{color:#7b7169;font-size:.76rem}.install-card{text-align:left;background:#f8f4ed;border:1px solid #ded6cc;border-radius:16px;grid-template-columns:auto 1fr;gap:12px;margin-top:18px;padding:15px;display:grid}.install-icon{color:#fff;background:#b74139;border-radius:12px;place-items:center;width:42px;height:42px;font-family:Georgia,Times New Roman,serif;font-size:1.25rem;display:grid}.install-card h3{margin:1px 0 4px;font-size:.91rem}.install-card p{color:#776e66;margin:0;font-size:.76rem;line-height:1.45}.install-button{color:#a63831;cursor:pointer;background:#fff;border:1px solid #b74139;border-radius:11px;grid-column:1/-1;min-height:42px;font-weight:800}.install-button:hover{background:#fff7f5}.page-shell>footer{color:#776e66;gap:8px;font-size:.72rem;display:flex;position:absolute;bottom:12px}.status-online:before,.status-offline:before{content:"";vertical-align:1px;background:#5b7f3b;border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.status-offline:before{background:#a16435}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=580px){.page-shell{align-items:start;padding:22px 14px 48px}.sun{width:145px;height:145px;top:-45px;right:-45px}.auth-card{border-radius:22px}.brand,.auth-form,.ready-panel,.offline-panel,.loading{padding-left:24px;padding-right:24px}.brand{padding-top:31px}.page-shell>footer{flex-wrap:wrap;justify-content:center;max-width:calc(100% - 30px);bottom:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}html.roadlan-status-active,html.roadlan-status-active body{overscroll-behavior-y:none;background:#f6fafb}.roadlan-status-screen{min-height:100dvh;padding:max(32px, env(safe-area-inset-top,0px)) max(24px, env(safe-area-inset-right,0px)) max(32px, env(safe-area-inset-bottom,0px)) max(24px, env(safe-area-inset-left,0px));color:#102f3a;background:linear-gradient(#f6fafb 0%,#f6fafbeb 36%,#f6fafba8 100%),url(/roadlan-auth-hero.jpg) 50%/cover;place-items:center;display:grid}.roadlan-status-content{text-align:center;width:min(100%,480px)}.roadlan-status-content>img{width:min(100%,320px);height:auto;margin:0 auto 48px;display:block}.roadlan-status-content h1{letter-spacing:-.035em;text-wrap:balance;margin:0 0 14px;font-size:clamp(26px,5vw,34px);font-weight:650;line-height:1.2}.roadlan-status-content p{color:#526e78;text-wrap:pretty;margin:0;font-size:16px;line-height:1.6}.roadlan-status-content progress{accent-color:#087f7d;width:96px;height:4px;margin:28px auto 0;display:block}.roadlan-status-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px;display:flex}.roadlan-status-actions button{color:#fff;cursor:pointer;background:#087f7d;border:1px solid #087f7d;border-radius:12px;min-height:44px;padding:12px 18px}.roadlan-status-actions .roadlan-status-back{color:#315c66;background:0 0;border-color:#0000}.roadlan-status-actions button:focus-visible{outline-offset:4px;outline:3px solid #087f7d}.roadlan-status-actions button:active{transform:scale(.98)}@media (hover:hover) and (pointer:fine){.roadlan-status-actions button:hover{background:#076c6a}.roadlan-status-actions .roadlan-status-back:hover{background:#087f7d14}}@media (prefers-reduced-motion:reduce){.roadlan-status-content progress{visibility:hidden}.roadlan-status-actions button:active{transform:none}}
