/* Authentication only: the existing application styles remain unchanged. */
body.auth-locked{overflow:hidden!important}
body.auth-locked #nostra-app{visibility:hidden;pointer-events:none}
#nostra-app{display:contents}
body:not([data-role="ADMIN"]) [data-admin]{display:none!important}
.auth-overlay{position:fixed;inset:0;z-index:2147483646;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 18% 12%,#263b38 0,transparent 55%),radial-gradient(ellipse at 90% 90%,#31343b 0,transparent 55%),#111619;overflow:auto}
.auth-overlay[hidden]{display:none}
.auth-card{box-sizing:border-box;width:min(100%,460px);padding:36px;border:1px solid #ffffff20;border-radius:24px;background:#1a2226;box-shadow:0 25px 100px #0006;color:#edf2ef}
.auth-brand{font-size:27px;font-weight:750;letter-spacing:-1px;margin-bottom:28px}.auth-brand span{color:#ffcf45}
.auth-card h1{font-size:30px;margin:0 0 10px}.auth-intro{color:#aebcb6;font-size:15px;line-height:1.5;margin:0 0 24px}
.auth-card label{display:block;font-size:14px;color:#dbe6e0;margin:14px 0 7px}
.auth-card input{box-sizing:border-box;display:block;width:100%;min-height:48px;border:1px solid #53615c;border-radius:10px;background:#10191b;color:#fff;padding:12px;font-size:16px}
.auth-card input:focus{outline:2px solid #ffcf45;outline-offset:2px}
.auth-card button{min-height:46px}.auth-card button:focus-visible,.account-bar button:focus-visible{outline:3px solid #ffcf45;outline-offset:3px}
.auth-submit{width:100%;margin-top:20px;background:#ffcf45!important;color:#152017!important;font-weight:700;border-radius:10px}
.auth-switch{display:block;width:100%;margin-top:16px;background:transparent;border:0;color:#ffcf45;font-size:14px;white-space:normal}
.auth-error{color:#ffb7ae;font-size:14px;line-height:1.5;margin:12px 0 0;min-height:20px}
.account-bar{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin:0 0 18px;color:#aebcb6;font-size:13px}.account-bar span{overflow-wrap:anywhere}.account-bar button{font-size:13px;padding:8px 12px}
#account-dialog{width:min(440px,calc(100vw - 32px));box-sizing:border-box}#account-dialog dd{margin:5px 0 20px;overflow-wrap:anywhere}#account-dialog dt{color:#aebcb6;font-size:13px}
@media(max-width:600px){.auth-overlay{padding:16px}.auth-card{padding:25px 22px;border-radius:20px}.auth-card h1{font-size:27px}.auth-brand{margin-bottom:22px}.account-bar{justify-content:flex-start}}
@media(max-height:650px){.auth-overlay{align-items:start}.auth-card{margin:auto}.auth-card label{margin-top:10px}.auth-brand{margin-bottom:14px}}
/* NostraTV welcome screen — presentation only. */
.auth-overlay{padding:0;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);align-items:stretch;background:#141619;color:#faf8f2}
.auth-story{position:relative;min-height:100dvh;overflow:hidden;background:#272a2f;display:flex;flex-direction:column;justify-content:center;padding:100px 9% 90px;isolation:isolate}
.nostra-wordmark{position:absolute;top:40px;left:9%;display:flex;align-items:center;font-size:29px;font-weight:800;letter-spacing:-1.4px;z-index:2}.nostra-wordmark svg{width:37px;height:37px;margin-right:12px;color:#ffcf45}.nostra-wordmark span{color:#ffcf45}
.auth-art{position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 80% 20%,#8d816466,transparent 70%),linear-gradient(145deg,#2a2d34,#645a40)}
.auth-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#16171aed,transparent 85%),linear-gradient(90deg,#1b1d224d,transparent)}
.auth-moon{position:absolute;width:250px;height:250px;border-radius:50%;background:linear-gradient(135deg,#ffe0c4,#ffcd45);top:19%;right:-30px;box-shadow:0 0 90px #ffcd4530}
.auth-orbit{position:absolute;width:480px;height:480px;border:1px solid #ffcd4525;border-radius:50%;top:calc(19% - 115px);right:-145px;box-shadow:0 0 0 75px #ffcd4508,0 0 0 150px #ffcd4505}
.auth-mountain{position:absolute;inset:40% -5% 0;clip-path:polygon(0 48%,26% 10%,43% 35%,72% 0,100% 35%,100% 100%,0 100%);background:#807760}.auth-mountain.front{inset:54% -10% 0;background:#353940;clip-path:polygon(0 30%,30% 0,60% 45%,80% 15%,100% 50%,100% 100%,0 100%)}
.auth-story-copy{position:relative;margin-top:110px;max-width:530px}.auth-kicker{font-size:10px;font-weight:600;letter-spacing:2.2px;color:#ffcd45}.auth-story h2{font-size:clamp(40px,4.5vw,70px);letter-spacing:-3px;line-height:1.07;margin:24px 0}.auth-story h2 em{font-style:normal;color:#ede6d5}.auth-story-copy p{font-size:15px;line-height:1.8;color:#ccc9c1}.auth-genres{display:flex;gap:8px;flex-wrap:wrap;margin-top:28px}.auth-genres span{border:1px solid #ffffff25;border-radius:30px;padding:8px 12px;font-size:11px;color:#ffcd45;background:#ffffff06}.auth-story-footer{position:absolute;bottom:30px;left:9%;font-size:11px;color:#aea89b}
.auth-form-side{display:flex;align-items:center;justify-content:center;padding:45px 30px;background:radial-gradient(ellipse at 100% 0,#292c3255,transparent 60%),#141619}.auth-card{background:transparent;border:0;box-shadow:none;padding:20px;max-width:430px;border-radius:0}.auth-brand{font-size:10px;letter-spacing:2px;color:#bcb8ae;display:flex;align-items:center;gap:9px;margin-bottom:32px}.auth-dot{width:6px;height:6px;background:#ffcf45;border-radius:50%;box-shadow:0 0 12px #ffcf4577}.auth-card h1{font-size:32px;letter-spacing:-1.1px}.auth-intro{color:#a59f91;font-size:14px;line-height:1.7;margin-bottom:29px}.auth-card label{color:#d0cdc5;font-size:12px;margin-top:19px}.auth-card input{background:#1f2125;border:1px solid #353941;border-radius:11px;padding:15px;min-height:52px;color:#faf8f2}.auth-card input:focus{outline:2px solid #ffcf45;outline-offset:2px;border-color:transparent}.auth-submit{background:linear-gradient(100deg,#ffdc70,#ffcf45)!important;color:#22252a!important;border:0;min-height:52px!important;border-radius:11px;box-shadow:0 8px 30px #ffcd451c;font-size:14px;transition:filter .2s}.auth-submit:hover{filter:brightness(1.08)}.auth-switch{color:#ffcd45;font-size:12px}.auth-error:empty{min-height:0;margin:0}.auth-bottom-note{border-top:1px solid #ffffff0d;padding-top:25px;margin:23px 0 0;color:#8b8575;text-align:center;font-size:11px}.auth-card button:focus-visible{outline-color:#ffcf45}
aside .brand{font-size:32px;letter-spacing:-1.5px}aside .brand span{color:#ffcf45;background:transparent;vertical-align:baseline;font-size:inherit;margin:0;padding:0;transform:none}
@media(max-width:850px){.auth-overlay{display:block}.auth-story{min-height:0;padding:105px 28px 28px}.nostra-wordmark{top:25px;left:28px;font-size:25px}.nostra-wordmark svg{width:31px;height:31px}.auth-story-copy{margin:0}.auth-story h2{font-size:34px;letter-spacing:-1.4px;margin:13px 0 0}.auth-story h2 br{display:none}.auth-story h2 em:before{content:' '}.auth-story-copy p,.auth-genres,.auth-story-footer{display:none}.auth-kicker{font-size:8px;letter-spacing:1.3px}.auth-moon{width:160px;height:160px;right:-25px;top:-25px}.auth-form-side{padding:26px 18px 35px}.auth-card{padding:5px 10px;max-width:460px;width:100%}.auth-brand{display:none}.auth-card h1{font-size:27px}.auth-intro{margin-bottom:22px}.auth-bottom-note{margin-top:14px;padding-top:18px}aside .brand{font-size:27px!important}aside .brand span{font-size:inherit!important;margin:0!important}}
@media(max-width:380px){.auth-story h2{font-size:29px}.auth-story{padding-left:22px;padding-right:22px}.auth-form-side{padding:22px 12px}.auth-card h1{font-size:25px}}
@media(prefers-reduced-motion:reduce){.auth-submit{transition:none}}
.auth-overlay{place-items:stretch}.auth-story,.auth-form-side{box-sizing:border-box;min-width:0}
.auth-error.success{color:#bfe9b1;background:#203025;border:1px solid #3e6545;border-radius:10px;padding:10px 12px}
.auth-forgot{margin-top:13px!important;color:#f0eadc!important}.auth-forgot+.auth-switch{margin-top:7px}
.auth-forgot[hidden]{display:none!important}
