/* Icefire Phoenix: the approved artwork is a plate, never a raster form. */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  color-scheme:light;--bg:#edf3fa;--card:#fbfcfe;--ink:#081c40;--ink2:#4c5870;--ink3:#4f6380;
  --line:#d5dfed;--control-line:#8b9db7;--focus:#346bb3;--accent:#bd461b;--accent-hover:#a43713;
  --accent-pale:#fff0e6;--success:#13755c;--error:#b72f40;
  --phoenix-flame:linear-gradient(110deg,#bf4a10,#c04419 58%,#af3e14);
}
html{background:var(--bg)}
body{min-width:320px;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(420px,.8fr);color:var(--ink);font:16px/1.6 var(--font-sans,-apple-system,BlinkMacSystemFont,sans-serif);background:linear-gradient(145deg,#eaf3fd,#fcf8f2)}
::selection{color:var(--ink);background:#f6ceaa}
button,input{font:inherit}button{touch-action:manipulation}button:focus-visible{outline:2px solid var(--focus);outline-offset:4px}
.auth-story{position:relative;isolation:isolate;min-width:0;min-height:100dvh;display:flex;flex-direction:column;justify-content:flex-end;padding:240px clamp(32px,4vw,72px) 48px;overflow:hidden;color:#f5f6fc;background:#111e3c}
.auth-story::before{content:'';position:absolute;z-index:-2;inset:0;background:url('/assets/phoenix-icefire-login.webp') 58% 36%/cover no-repeat}
.auth-story::after{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(0deg,rgba(9,24,51,.65),transparent 46%),linear-gradient(90deg,rgba(9,24,51,.2),transparent 65%)}
.auth-brand{position:absolute;top:36px;left:clamp(32px,4vw,72px);display:flex;gap:15px;align-items:center;font-size:32px;font-weight:750;letter-spacing:-.025em;line-height:1.2}
.auth-brand img{width:72px;height:84px;object-fit:contain}.brand-fire{color:#fb9900}
.auth-brand small{display:block;margin-top:7px;color:#c1d0e7;font-size:11px;font-weight:500;letter-spacing:.32em}
.auth-story h1{max-width:6em;font-size:clamp(40px,5.15vw,82px);font-weight:730;line-height:1.22;letter-spacing:-.025em;white-space:pre-line;text-wrap:balance}
html[lang=en] .auth-story h1{max-width:16ch;font-size:clamp(38px,4vw,62px)}
.auth-story p{max-width:43ch;margin-top:20px;color:#e5ebf7;font-size:clamp(16px,1.6vw,25px);line-height:1.8;text-wrap:pretty}
.auth-story .auth-access-note{max-width:65ch;margin-top:54px;font-size:12px;line-height:1.8;color:#c6d3e8}
.auth-container{position:relative;isolation:isolate;min-width:0;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:100px clamp(28px,3.6vw,64px) 64px;background:transparent}
.auth-language-slot{position:absolute;top:28px;right:clamp(24px,3vw,48px)}
.auth-transition{position:absolute;z-index:-1;left:-110px;top:0;width:calc(100% + 110px);height:100%;overflow:visible;pointer-events:none}
.auth-card{position:relative;z-index:1}.auth-language-slot{z-index:2}
.auth-language-slot .phx-language-switcher{min-height:44px;border:1px solid transparent;border-radius:10px;background:transparent;box-shadow:none}
.auth-language-slot .phx-language-switcher select{color:var(--ink2)!important;background:transparent!important;font-size:14px!important}
.auth-language-slot .phx-language-switcher:focus-within{border-color:var(--focus);box-shadow:none}
.auth-card{width:min(100%,450px);padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.auth-header{display:flex;flex-direction:column;align-items:flex-start;margin-bottom:30px;gap:7px}
.auth-logo{display:none;width:52px;height:64px;object-fit:contain}
.auth-title{font-size:clamp(30px,3vw,48px);font-weight:730;line-height:1.3;letter-spacing:-.03em;color:var(--ink)}
.auth-subtitle{font-size:22px;color:var(--ink2)}
.auth-tabs{display:flex;gap:20px;margin-bottom:30px;border-bottom:1px solid var(--line)}
.auth-tab{position:relative;flex:0 1 110px;min-height:48px;border:0;border-radius:0;background:transparent;color:var(--ink3);font-size:15px;font-weight:650;cursor:pointer;transition:color .18s}
.auth-tab::after{content:'';position:absolute;inset:auto 0 -1px;height:3px;border-radius:3px 3px 0 0;background:transparent}
.auth-tab.active{color:var(--accent)}.auth-tab.active::after{background:var(--phoenix-flame)}.auth-tab:hover:not(:disabled){color:var(--accent-hover)}
.form-group{min-width:0;margin-bottom:22px}.form-label{display:block;margin-bottom:9px;color:var(--ink);font-size:17px;font-weight:650}
.form-input{width:100%;min-height:54px;padding:12px 15px;border:1px solid var(--control-line);border-radius:10px;color:var(--ink);background:rgba(246,250,255,.94);font-size:16px;line-height:1.5;outline:none;caret-color:var(--accent);transition:border-color .18s,background .18s}
.form-input:hover:not(:disabled){border-color:var(--focus)}.form-input:focus{border-color:var(--focus);background:#fff;outline:2px solid color-mix(in srgb,var(--focus) 24%,transparent);outline-offset:2px}
.form-input::placeholder{color:var(--ink3);opacity:1}
.password-control{position:relative}.password-control .form-input{padding-right:56px}
.password-visibility{position:absolute;top:5px;right:5px;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--ink2);cursor:pointer}
.password-visibility:hover{background:#e7effa;color:var(--ink)}.password-eye-slash{display:none}.password-visibility[aria-pressed=true] .password-eye-slash{display:block}
.btn-submit{position:relative;width:100%;min-height:64px;margin-top:10px;padding:12px 48px;border:0;border-radius:10px;color:#fff;background:linear-gradient(110deg,#ef6a15,#e45211);font-size:20px;font-weight:700;cursor:pointer;transition:filter .18s,transform .18s}
.btn-submit::after{content:'→';position:absolute;right:calc(50% - 72px);top:50%;font-size:26px;line-height:1;transform:translateY(-50%)}
.btn-submit:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.btn-submit:active:not(:disabled){transform:translateY(0);filter:brightness(.94)}
.btn-submit:disabled{opacity:.55;cursor:wait;transform:none}.btn-submit:disabled::after{display:none}
.auth-msg{display:none;margin-bottom:20px;padding:12px 15px;border:1px solid var(--line);border-radius:10px;font-size:14px;line-height:1.7;overflow-wrap:anywhere}
.auth-msg.error{color:var(--error);border-color:#e8bdc5;background:#fff1f3}.auth-msg.success{color:var(--success);border-color:#abd1c4;background:#edf8f2}
.auth-msg.info{color:var(--ink2);border-color:#c6d7ed;background:#edf5ff}
.auth-security-note,.auth-registration-note{margin-bottom:14px;color:var(--ink2);font-size:13px;line-height:1.8}
.auth-security-note{padding-left:24px;position:relative}
.auth-security-note::before{content:'';position:absolute;left:2px;top:5px;width:11px;height:13px;border:1.6px solid #627b9e;border-radius:2px 2px 6px 6px}
.auth-security-note{display:flex;align-items:center;gap:12px;padding-left:0}.auth-security-note::before{content:none}.auth-security-note svg{flex:none;color:#526a90}
.auth-registration-note{padding:13px 15px;background:#eaf2fc;border-radius:10px}
.auth-footer{margin-top:46px;color:var(--ink3);font-size:12px;text-align:center;letter-spacing:.01em}
.reg-type-toggle{display:flex;gap:6px;margin-bottom:22px;padding:4px;background:#e8eef7;border-radius:10px}
.reg-type-btn{flex:1;min-height:44px;padding:8px;border:0;border-radius:7px;color:var(--ink2);background:transparent;font-size:14px;font-weight:600;cursor:pointer}
.reg-type-btn.active{color:var(--accent);background:#fff}.reg-type-btn:hover:not(:disabled){color:var(--accent-hover)}
.pw-strength{margin-top:10px}.pw-strength-bar{display:flex;gap:4px;margin-bottom:6px}.pw-strength-bar span{height:4px;flex:1;border-radius:2px;background:#d6e0ef;transition:background .2s}
.pw-strength-text{color:var(--ink3);font-size:12px}.pw-rules{display:flex;flex-wrap:wrap;gap:5px 12px;margin-top:6px;font-size:12px;line-height:1.6}.pw-rules .rule{color:var(--ink3)}.pw-rules .rule.pass{color:var(--success)}.pw-rules .rule::before{content:'○ ';font-size:10px}.pw-rules .rule.pass::before{content:'● '}
.auth-card:has(.auth-noscript) :is(.auth-tabs,#loginForm,#registerForm){display:none!important}.auth-noscript{padding:20px 0;font-size:14px;line-height:1.8;color:var(--ink2)}
.hidden{display:none!important}
@media(min-width:761px) and (min-height:501px), (min-width:961px){
 body{grid-template-columns:60.4% 39.6%;background:url('/assets/phoenix-login-faithful.webp') center/100% 100% no-repeat;min-height:100dvh}
 .auth-story{background:transparent;padding:0 36px 52px 3.6vw;min-height:100dvh}
 .auth-story::before,.auth-story::after,.auth-transition{display:none}
 .auth-brand{top:36px;left:2.6vw;gap:18px;font-size:44px;font-weight:700}
 .auth-brand img{width:88px;height:96px}.auth-brand small{font-size:15px;letter-spacing:.47em;color:#d3dbee;font-weight:400}
 .auth-story h1{font-size:clamp(50px,5.17vw,82px);font-weight:750;line-height:1.27;max-width:7em;letter-spacing:.035em;color:#fff4df}
 .auth-story p{font-size:clamp(16px,1.6vw,25px);margin-top:16px;max-width:42ch}
 .auth-story .auth-access-note{font-size:14px;margin-top:62px;max-width:70ch}
 .auth-container{padding:0 3.6vw 0 7.2vw;align-items:flex-start;min-height:100dvh}
 .auth-card{width:100%;max-width:452px;padding-top:20.2dvh;transform:none}
 .auth-header{margin-bottom:28px;gap:4px}.auth-title{font-size:48px;line-height:1.3}.auth-subtitle{font-size:24px;line-height:1.6}
 .auth-tabs{gap:16px;margin-bottom:36px}.auth-tab{font-size:18px;min-height:48px;flex-basis:114px}
 .form-input{min-height:66px;border-color:#cbd9ed;border-radius:10px;padding:16px 20px;font-size:18px;background:#f4f9ff}
 .form-label{font-size:18px;margin-bottom:8px}.form-group{margin-bottom:26px}
 .password-visibility{top:11px;right:12px}
 .auth-security-note{margin-top:0;font-size:15px;line-height:1.6}
 .btn-submit{min-height:66px;margin-top:12px;background:linear-gradient(110deg,#ff8c0e,#ed4a08);font-size:20px}
 .auth-footer{margin-top:120px;font-size:14px}
 .auth-language-slot{top:28px;right:2.6vw}
 body:has(#registerForm:not(.hidden)) .auth-card,body:has(#loginMFAGroup:not(.hidden)) .auth-card{padding-top:12dvh}
 body:has(#registerForm:not(.hidden)) .auth-footer,body:has(#loginMFAGroup:not(.hidden)) .auth-footer{margin-top:48px}
 body:has(#registerForm:not(.hidden)) .auth-card{padding-top:8dvh;padding-bottom:24px}
 body:has(#registerForm:not(.hidden)) .auth-title{font-size:36px}
 body:has(#registerForm:not(.hidden)) .auth-subtitle{font-size:20px}
 body:has(#registerForm:not(.hidden)) .auth-header{margin-bottom:18px}
 body:has(#registerForm:not(.hidden)) .auth-tabs{margin-bottom:18px}
 body:has(#registerForm:not(.hidden)) .reg-type-toggle{margin-bottom:16px}
 body:has(#registerForm:not(.hidden)) .form-group{margin-bottom:16px}
 body:has(#registerForm:not(.hidden)) .form-label{font-size:16px}
 body:has(#registerForm:not(.hidden)) .form-input{min-height:54px;padding:12px 56px 12px 16px;font-size:16px}
 body:has(#registerForm:not(.hidden)) .password-visibility{top:5px;right:5px}
 body:has(#registerForm:not(.hidden)) .auth-footer{margin-top:24px}
}
@media(min-width:761px) and (max-height:760px){.auth-container{padding-top:90px;padding-bottom:40px}.auth-story{padding-bottom:32px}.auth-story h1{font-size:50px}.auth-story .auth-access-note{margin-top:24px}.auth-header{margin-bottom:22px}.auth-tabs{margin-bottom:22px}.auth-footer{margin-top:30px}}
@media(max-width:1100px){body{grid-template-columns:minmax(0,1fr) minmax(400px,1fr)}.auth-story{padding-left:32px;padding-right:32px}.auth-brand{left:32px;font-size:27px}.auth-story p{font-size:16px}.auth-container{padding-left:36px;padding-right:36px}}
@media(min-width:761px) and (max-width:900px){html[lang=en] .auth-story h1{font-size:32px;letter-spacing:0}}
@media(max-width:760px), (max-width:960px) and (max-height:500px){
  body{display:block;background:#edf3fa}.auth-container{min-height:0;align-items:flex-start;padding:64px 24px 24px;background:radial-gradient(ellipse at 100% 0,#daeafa,transparent 54%),radial-gradient(ellipse at 0 100%,#ffe9d2,transparent 60%),#f8fbff}
  .auth-language-slot{top:12px;right:16px;max-width:calc(100vw - 48px)}.auth-language-slot select{max-width:100%;min-width:0;padding-right:24px!important}
  .auth-card{width:min(100%,390px)}.auth-header{margin-bottom:20px;gap:4px}.auth-title{font-size:30px}.auth-subtitle{font-size:15px}.form-label{font-size:14px}.form-group{margin-bottom:18px}
  .btn-submit{padding-inline:24px}.btn-submit::after{position:static;display:inline-block;margin-left:12px;transform:none;vertical-align:middle}
  .auth-tabs{margin-bottom:20px}.auth-footer{margin-top:20px}.auth-story{min-height:0;padding:24px 24px 20px}.auth-story::before{background-position:70% 24%}.auth-story::after{background:linear-gradient(90deg,rgba(9,24,51,.94),rgba(9,24,51,.54) 68%,rgba(9,24,51,.22))}.auth-brand{display:none}
  .auth-transition{display:none}.auth-story h1{max-width:12ch;font-size:28px}html[lang=en] .auth-story h1{max-width:20ch;font-size:26px}.auth-story p{max-width:43ch;font-size:13px;line-height:1.6;margin-top:8px}.auth-story .auth-access-note{max-width:65ch;margin-top:12px;font-size:12px;line-height:1.6}
}
@media(min-width:761px) and (max-width:960px) and (max-height:500px){.auth-story h1,html[lang=en] .auth-story h1,.auth-story p,.auth-story .auth-access-note{max-width:none;white-space:normal}}
@media(max-width:360px){.auth-container{padding-inline:20px}.auth-title{font-size:30px}.form-group{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
