:root{color-scheme:dark;--navy:#020916;--panel:#031126;--blue:#1682ff;--gold:#ffc83d;--text:#f8faff;--muted:#c8d0e2}
.field-help{margin:-8px 4px 20px;color:var(--muted);font-size:12px;line-height:1.5}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:#010610}
body{font-family:Arial,Helvetica,sans-serif;color:var(--text);display:flex;justify-content:center}
button,input{font:inherit}a{color:inherit}
.auth-app{position:relative;width:100%;max-width:588px;min-height:100vh;overflow:hidden;background:#020916 url('/public/assets/img/auth-hero.png') center 70px/100% auto no-repeat;box-shadow:0 0 70px #00194a}
.auth-app:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(1,6,16,.14) 0,rgba(1,7,19,.04) 27%,#020916 52%,rgba(2,9,22,.31) 84%,rgba(1,6,16,.04) 100%)}
.topbar{height:92px;padding:17px 27px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:3;background:linear-gradient(180deg,rgba(1,7,18,.96),rgba(1,8,21,.75));border-bottom:1px solid rgba(40,112,230,.28)}
.brand{display:flex;align-items:center;text-decoration:none;min-width:0}.brand img{width:64px;height:52px;object-fit:contain;filter:drop-shadow(0 0 9px rgba(255,190,32,.38))}.brand>span{font-size:31px;line-height:1;font-weight:800;letter-spacing:-1.6px;margin-left:3px;white-space:nowrap}.brand>span span{background:linear-gradient(180deg,#fff29b,#e5a711);color:transparent;background-clip:text}
.language-picker{position:relative;margin-left:auto}.language{height:45px;min-width:116px;padding:0 16px;border-radius:24px;border:1px solid #2059ab;background:rgba(2,10,26,.82);color:#fff;display:flex;align-items:center;justify-content:center;gap:11px;cursor:pointer}.language svg{width:24px;fill:none;stroke:currentColor;stroke-width:1.8}.language b{font-size:17px;font-weight:500}.chevron{width:9px;height:9px;border-right:2px solid #dce4f3;border-bottom:2px solid #dce4f3;transform:rotate(45deg) translateY(-2px);transition:transform .18s}.language-picker.open .chevron{transform:rotate(225deg) translate(-2px,-2px)}.language-menu{display:none;position:absolute;right:0;top:53px;width:166px;padding:7px;border:1px solid #1a69ce;border-radius:14px;background:rgba(2,14,33,.98);box-shadow:0 12px 30px rgba(0,0,0,.55),0 0 18px rgba(0,84,210,.25)}.language-picker.open .language-menu{display:grid}.language-menu a{padding:10px 12px;border-radius:9px;color:#e9edf6;text-decoration:none;font-size:14px}.language-menu a:hover,.language-menu a.active{background:#0d65c8;color:#fff}
.hero{height:333px;position:relative;z-index:1;padding:28px 27px;background:linear-gradient(90deg,rgba(1,6,17,.92) 0,rgba(1,7,18,.62) 38%,rgba(1,7,18,0) 67%)}.hero-copy{width:51%;position:relative;z-index:2}.eyebrow{margin:0 0 8px;color:#f8ce58;font-size:12px;font-weight:700;letter-spacing:3px}.hero h1{margin:0;font-size:42px;line-height:.99;letter-spacing:-1.2px;font-weight:800;text-shadow:0 2px 9px #000}.hero h1 span{color:#ffca3e;display:block}.hero-text{width:90%;margin:17px 0 0;color:#e0e5f1;font-size:14px;line-height:1.25;text-shadow:0 2px 5px #000}
.auth-card{position:relative;z-index:2;margin:-1px 30px 0;padding:30px 32px 23px;min-height:0;border:1.5px solid #1678ec;border-radius:21px;background:linear-gradient(155deg,rgba(4,20,43,.98),rgba(1,12,29,.98));box-shadow:0 0 20px rgba(0,91,255,.28),inset 0 0 34px rgba(0,44,103,.18)}
.card-heading{display:flex;align-items:flex-start;gap:13px;margin-bottom:28px}.card-heading>svg{width:43px;height:43px;flex:0 0 43px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.card-heading h2{font-size:36px;line-height:1;margin:1px 0 10px;letter-spacing:-.7px}.card-heading p{margin:0;color:#c6cde0;font-size:19px}.notice{margin:-5px 0 10px;padding:8px 12px;border-radius:9px;font-size:12px}.notice.error{background:#421526;border:1px solid #b54162}
.field{height:61px;margin-bottom:19px;border:1px solid #1c6ee0;border-radius:12px;background:rgba(1,10,27,.7);display:flex;align-items:center;padding:0 18px;box-shadow:inset 0 0 12px rgba(0,62,153,.16)}.field.invalid{border-color:#e64d69}.field>svg{width:25px;height:25px;flex:0 0 25px;margin-right:20px;fill:none;stroke:#d9e3fa;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.field input{height:100%;min-width:0;flex:1;border:0;outline:0;background:transparent;color:#fff;font-size:16px}.field input::placeholder{color:#c8cfe1;opacity:1}.password-toggle{width:36px;height:40px;border:0;background:transparent;padding:7px;color:#cbd6ed}.password-toggle svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7}form small{display:block;color:#ff8297;font-size:12px;margin:-13px 4px 9px}
.check{display:flex;align-items:center;gap:10px;color:#e6e9f1;cursor:pointer}.check input{position:absolute;opacity:0}.check>span{width:25px;height:25px;flex:0 0 25px;border:1px solid #1d79ef;border-radius:5px;background:#0d75e8;position:relative}.check input:checked+span:after{content:"";position:absolute;left:7px;top:3px;width:6px;height:12px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(42deg)}.terms{margin:3px 0 24px;font-size:13px}.terms em{font-style:normal}.terms a{color:#45a1ff;text-decoration:none}
.primary-button{height:64px;width:100%;border:0;border-radius:12px;color:#090909;background:linear-gradient(180deg,#ffda5a,#f2ad17);font-size:21px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:14px;box-shadow:inset 0 1px 2px #fff7bb,0 0 23px rgba(255,180,24,.5);cursor:pointer}.primary-button b{font-size:28px;line-height:1;font-weight:400}.separator{height:45px;display:flex;align-items:center;gap:16px;color:#e7eaf2;font-size:13px}.separator i{height:1px;flex:1;background:#8795ac}.secondary-button{height:53px;width:100%;border:1px solid #1679ee;border-radius:12px;background:rgba(2,13,31,.42);color:#fff;display:flex;align-items:center;justify-content:center;gap:20px;font-size:15px;font-weight:600}.google{width:28px;height:28px;flex:0 0 28px}.switch-line{margin:28px 0 0;text-align:center;color:#d4d8e4;font-size:14px}.switch-line a{color:#f4cf51;text-decoration:none;margin-left:5px}.switch-line b{font-size:17px;margin-left:6px}
.page-footer{position:relative;z-index:2;height:auto;padding:17px 20px 0;text-align:center}.footer-brand{display:flex;align-items:center;justify-content:center}.footer-brand img{width:45px;height:38px}.footer-brand b{font-size:20px}.footer-brand b span{color:#f2c64c}.page-footer p{font-size:8px;letter-spacing:2.5px;color:#d7dce8;margin:3px 0 0}
@media(max-width:520px){.topbar{height:82px;padding:12px 18px}.brand img{width:51px}.brand>span{font-size:25px}.language{min-width:93px;height:40px;padding:0 11px;gap:7px}.language svg{width:21px}.language-menu{top:48px}.hero{height:326px;padding:23px 20px}.hero-copy{width:55%}.hero h1{font-size:clamp(33px,8.2vw,42px)}.hero-text{font-size:12.5px}.auth-card{margin-left:18px;margin-right:18px;padding:27px 25px 22px}.card-heading h2{font-size:32px}.card-heading p{font-size:17px}}
@media(max-width:390px){.brand>span{font-size:22px}.brand img{width:45px}.language{min-width:82px}.language b{font-size:15px}.hero-copy{width:59%}.hero h1{font-size:31px}.hero-text{font-size:11.5px}.auth-card{margin-left:13px;margin-right:13px;padding-left:19px;padding-right:19px}.card-heading h2{font-size:28px}.terms{font-size:11.5px}}
.invite-note{margin:0 0 14px;padding:10px 12px;border:1px solid #6b542a;border-radius:7px;background:#271c0b99;color:#ead5a3;font-size:12px}.invite-note strong{letter-spacing:1.5px;color:#ffdc86}

/* Responsive auth layout: natural content height, no fixed 1280px canvas. */
html{min-height:100%;scroll-padding-bottom:24px}
body{min-width:0;width:100%}
.auth-app{min-height:100vh;min-height:100svh;display:flex;flex-direction:column}
.topbar,.hero,.auth-card,.page-footer{flex-shrink:0;min-width:0}
.auth-card{min-height:0}
.hero-copy,.card-heading>div,form,.field,.check em{min-width:0}
.hero h1,.hero-text,.eyebrow,.auth-card h2,.card-heading p,.card-lead,.notice,.field-help,.invite-note,.switch-line,.page-footer p{overflow-wrap:anywhere}
.password-toggle{flex:0 0 44px;width:44px;min-height:44px}
.check{position:relative}
.check input{width:1px;height:1px;margin:0}
.check span{flex-shrink:0}
.check input:focus-visible+span{outline:2px solid #fff;outline-offset:3px}
.primary-button,.secondary-button{height:auto;min-height:56px;padding:10px 12px}
.primary-button>span,.secondary-button>span{min-width:0;overflow-wrap:anywhere}
.primary-button b,.secondary-button b,.secondary-button svg{flex-shrink:0}
.switch-line{line-height:1.5}
.page-footer{height:auto;min-height:84px;margin-top:auto;padding:20px 14px calc(18px + env(safe-area-inset-bottom,0px))}
@media(max-width:600px){
 .auth-app{background-position:center -85px}
 .topbar{height:auto;min-height:60px;gap:10px;padding:calc(8px + env(safe-area-inset-top,0px)) max(14px,env(safe-area-inset-right,0px)) 8px max(14px,env(safe-area-inset-left,0px))}
 .brand img{width:42px;height:36px;flex-shrink:0}
 .brand>span{font-size:24px;letter-spacing:-1px}
 .language-picker{flex-shrink:0}
 .language{height:44px;min-width:82px;padding:0 10px;gap:7px}
 .language svg{width:19px}
 .language b{font-size:14px}
 .language-menu{top:48px;max-width:calc(100vw - 28px)}
 .hero{height:auto;min-height:150px;padding:14px 18px 18px}
 .hero-copy{width:84%;max-width:320px}
 .eyebrow{font-size:9px;letter-spacing:2px;margin-bottom:6px}
 .hero h1{font-size:clamp(22px,6vw,29px);line-height:1.04;letter-spacing:-.6px}
 .hero-text{width:100%;font-size:11px;line-height:1.3;margin-top:8px}
 .auth-card{margin:0 14px;padding:18px 18px 16px;border-radius:18px}
 .auth-card h2,.card-heading h2{font-size:27px;line-height:1.12;margin:0 0 6px;letter-spacing:-.5px}
 .card-lead,.card-heading p{font-size:14px;line-height:1.4}
 .card-lead{margin-bottom:16px}
 .card-heading{gap:9px;margin-bottom:16px}
 .card-heading>svg{width:30px;height:30px;flex-basis:30px;margin-top:1px}
 .field{height:48px;margin-bottom:10px;padding:0 10px;border-radius:10px}
 .field>svg{width:21px;height:21px;flex-basis:21px;margin-right:10px}
 .field input{font-size:16px;width:0;padding:0}
 .password-toggle{padding:10px;align-self:center}
 .password-toggle svg{width:22px;height:22px}
 form small{margin:-3px 0 9px;line-height:1.4;overflow-wrap:anywhere}
 .notice{margin:0 0 12px;font-size:12px;line-height:1.45}
 .form-row{margin:2px 0 14px;font-size:14px}
 .check{min-height:32px;line-height:1.4}
 .check span,.check>span{width:24px;height:24px;flex-basis:24px}
 .check input:checked+span:after{left:7px;top:3px;width:6px;height:12px}
 .primary-button,.secondary-button{min-height:48px;padding:8px 10px;font-size:16px;border-radius:10px;gap:10px}
 .primary-button b,.secondary-button b{font-size:23px}
 .secondary-button svg{width:25px;height:25px}
 .separator{height:34px;font-size:12px}
 .switch-line{font-size:12px;margin:15px 0 0}
 .switch-line a{display:inline-block;margin-left:3px}
 .field-help{margin:0 0 10px;font-size:11px;line-height:1.35}
 .terms{margin:2px 0 12px;font-size:11px;align-items:flex-start}
 .terms>span{margin-top:2px}
 .invite-note{margin:0 0 10px;padding:8px 10px;line-height:1.4}
 .page-footer{min-height:64px;padding:14px 14px calc(12px + env(safe-area-inset-bottom,0px))}
 .footer-brand img{width:34px;height:27px}
 .footer-brand b{font-size:17px}
 .page-footer p{font-size:7px;letter-spacing:1.7px;line-height:1.5}
}
@media(max-width:360px){
 .topbar{padding-left:12px;padding-right:12px;gap:6px}
 .brand img{width:36px}
 .brand>span{font-size:21px}
 .language{min-width:76px;gap:6px;padding:0 8px}
 .auth-card{margin-left:10px;margin-right:10px;padding:16px 14px}
 .hero{padding-left:14px;padding-right:14px}
 .auth-card h2,.card-heading h2{font-size:24px}
 .card-heading p,.card-lead{font-size:13px}
}
@media(max-width:600px) and (max-height:740px){
 .hero{min-height:0;padding-top:10px;padding-bottom:12px}
 .hero-copy{width:72%}
 .hero h1{font-size:22px}
 .hero-text{font-size:10px;margin-top:5px}
 .auth-card{padding-top:14px;padding-bottom:14px}
 .field{height:46px;margin-bottom:8px}
 .card-heading{margin-bottom:12px}
 .switch-line{margin-top:12px}
 .page-footer{min-height:56px;padding-top:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}
}

/* Keep the full form visible below mobile browser chrome on shorter screens. */
@media(max-width:600px) and (max-height:820px){
 .hero{min-height:0;padding:10px 18px 12px}
 .hero h1{font-size:clamp(21px,5.8vw,25px)}
 .hero-text{font-size:10px;margin-top:5px}
 .auth-card{padding-top:14px;padding-bottom:14px}
 .card-lead{margin-bottom:12px}
 .card-heading{margin-bottom:12px}
 .field{height:46px;margin-bottom:8px}
 .separator{height:30px}
 .switch-line{margin-top:11px}
 .page-footer{min-height:54px;padding-top:10px;padding-bottom:calc(9px + env(safe-area-inset-bottom,0px))}
}

@media(max-width:600px) and (max-height:820px){.hero-copy{width:90%}}

@media(max-width:600px) and (max-height:820px){
 .field{height:44px}
 .page-footer{min-height:42px;padding-top:7px;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px))}
 .footer-brand img{width:28px;height:23px}
 .footer-brand b{font-size:15px}
 .page-footer p{font-size:6px;letter-spacing:1.3px;margin-top:1px}
}

/* Android download link: compact on short mobile login screens. */
.page-footer .android-app-link{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;max-width:100%;min-height:31px;margin:9px auto 0;padding:5px 11px;border:1px solid #bd9143;border-radius:7px;background:linear-gradient(145deg,#302412,#111825);box-shadow:inset 0 1px #fff2c21c,0 3px 12px #0005;color:#ffe0a0;text-decoration:none;font-size:11px;font-weight:700;letter-spacing:.1px}
.page-footer .android-app-link svg{width:18px;height:18px;flex:none}
.page-footer .android-app-link:hover,.page-footer .android-app-link:focus-visible{border-color:#fbd271;background:#493315}
@media(max-width:600px){.page-footer{display:flex;align-items:center;justify-content:space-between;gap:5px}.page-footer p{display:none}.page-footer .android-app-link{margin:0 0 0 auto;min-height:29px;padding:4px 6px;font-size:10px;line-height:1.1;text-align:center}.page-footer .android-app-link svg{width:15px;height:15px}.page-footer .footer-brand{flex:none}}
@media(max-width:350px){.page-footer .android-app-link{font-size:9px;padding:3px 5px}.page-footer .android-app-link svg{width:13px;height:13px}}

