@import url('./tokens.css');
@import url('./base.css');
@import url('./components.css');

.ptt-auth-body { min-height:100vh; background:#f7f8fa; color:var(--ptt-text); display:grid; place-items:center; padding:32px 18px; }
.ptt-auth-shell { width:min(440px,100%); display:grid; gap:18px; }
.ptt-auth-brand { display:flex; align-items:center; gap:11px; }
.ptt-auth-brand strong { display:block; font-size:15px; letter-spacing:-.02em; }
.ptt-auth-brand span { display:block; color:var(--ptt-muted); font-size:10px; margin-top:2px; }
.ptt-auth-logo { width:36px; height:36px; display:grid; place-items:center; border-radius:10px; background:#111827; color:#fff; font-weight:800; }
.ptt-auth-card { background:#fff; border:1px solid var(--ptt-border); border-radius:14px; box-shadow:0 14px 40px rgba(15,23,42,.06); padding:26px; }
.ptt-auth-kicker { display:block; color:var(--ptt-primary); font-size:9px; font-weight:800; letter-spacing:.1em; margin-bottom:8px; }
.ptt-auth-card h1 { margin:0; font-size:22px; letter-spacing:-.03em; }
.ptt-auth-card__head p { margin:8px 0 0; color:var(--ptt-muted); font-size:11px; line-height:1.6; }
.ptt-auth-form { margin-top:22px; display:grid; gap:14px; }
.ptt-auth-field { display:grid; gap:6px; }
.ptt-auth-field span { font-size:10px; font-weight:700; }
.ptt-auth-field input { width:100%; height:42px; border:1px solid var(--ptt-border-strong); border-radius:8px; padding:0 12px; outline:none; background:#fff; color:var(--ptt-text); font:inherit; }
.ptt-auth-field input:focus { border-color:var(--ptt-primary); box-shadow:0 0 0 3px var(--ptt-primary-soft); }
.ptt-auth-submit { height:42px; border:0; border-radius:8px; background:var(--ptt-primary); color:#fff; font-weight:700; cursor:pointer; }
.ptt-auth-submit:hover { background:var(--ptt-primary-hover); }
.ptt-auth-alert { margin-top:16px; display:grid; gap:3px; padding:11px 12px; border:1px solid var(--ptt-critical-border); background:var(--ptt-critical-soft); border-radius:8px; color:var(--ptt-critical); }
.ptt-auth-alert strong { font-size:10px; }.ptt-auth-alert span{font-size:10px;color:var(--ptt-text-secondary)}
.ptt-auth-security { margin-top:18px; padding-top:15px; border-top:1px solid var(--ptt-border); display:flex; flex-wrap:wrap; gap:6px; }
.ptt-auth-security span { padding:4px 6px; background:var(--ptt-bg-muted); border-radius:5px; color:var(--ptt-muted); font-size:8px; font-weight:700; }
.ptt-auth-foot { display:flex; justify-content:space-between; color:var(--ptt-faint); font-size:9px; padding-inline:2px; }

/* MASTER 12.1 — local QR based TOTP enrollment */
.ptt-auth-shell--mfa{width:min(680px,100%)}
.ptt-mfa-grid{margin-top:18px;display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:start}
.ptt-mfa-qr-card{display:grid;gap:9px;padding:13px;border:1px solid var(--ptt-border);border-radius:12px;background:var(--ptt-bg-muted,#f7f8fa)}
.ptt-mfa-qr{min-height:232px;display:grid;place-items:center;background:#fff;border:1px solid var(--ptt-border);border-radius:10px;padding:8px;color:var(--ptt-muted);font-size:10px}
.ptt-mfa-qr svg{display:block;width:100%;height:auto;max-width:232px}
.ptt-mfa-qr-card small{font-size:9px;line-height:1.55;color:var(--ptt-muted)}
.ptt-mfa-manual{min-width:0}
.ptt-auth-security--stack{margin-top:0;padding-top:0;border-top:0;display:grid;gap:12px}
.ptt-auth-security--stack>div,.ptt-auth-security--stack details{padding:12px;border:1px solid var(--ptt-border);border-radius:9px;background:#fff;min-width:0}
.ptt-auth-security--stack strong{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:var(--ptt-muted);margin-bottom:5px}
.ptt-auth-security--stack span{display:block;padding:0;background:none;border-radius:0;color:var(--ptt-text);font-size:11px;font-weight:600}
.ptt-auth-security--stack code{display:block;font-size:12px;line-height:1.55;letter-spacing:.08em;word-break:break-all;color:var(--ptt-text)}
.ptt-auth-security--stack summary{cursor:pointer;font-size:10px;font-weight:700;color:var(--ptt-text-secondary)}
.ptt-auth-security--stack details code{margin-top:8px;font-size:9px;letter-spacing:0}
@media(max-width:620px){.ptt-mfa-grid{grid-template-columns:1fr}.ptt-mfa-qr-card{justify-items:center}.ptt-mfa-qr-card small{text-align:center}}
/* MFA enrollment escape hatch: safe return = sign out, never bypass mandatory MFA. */
.ptt-auth-cancel{margin-top:14px;padding-top:14px;border-top:1px solid var(--ptt-border);display:grid;gap:9px}
.ptt-auth-cancel__line{display:flex;align-items:center;gap:8px;color:var(--ptt-muted);font-size:10px;line-height:1.5}
.ptt-auth-cancel form{margin:0}
.ptt-auth-back{width:100%;height:40px;border:1px solid var(--ptt-border-strong);border-radius:8px;background:#fff;color:var(--ptt-text);font-weight:700;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}
.ptt-auth-back:hover{background:var(--ptt-bg-muted,#f7f8fa);border-color:#94a3b8;box-shadow:0 3px 10px rgba(15,23,42,.05)}
.ptt-auth-back:focus-visible{outline:none;border-color:var(--ptt-primary);box-shadow:0 0 0 3px var(--ptt-primary-soft)}
.ptt-auth-cancel small{color:var(--ptt-muted);font-size:9px;line-height:1.55}



/* NEXTGEN MASTER V4 / LOGIN P1 — self-contained dark control identity. */
.nx-auth-page{--nx-bg:#070c13;--nx-card:#111a25;--nx-line:#263743;--nx-gold:#e5c179;--nx-mint:#7ae7c2;--nx-copy:#d9e4e8;min-height:100vh;padding:0;margin:0;display:block;background:var(--nx-bg);color:#fff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}
.nx-auth-page *{box-sizing:border-box}
.nx-auth-page a{color:inherit}
.nx-auth-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(410px,.75fr);min-height:100vh}
.nx-auth-visual{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 52% 57%,#0c3c39 0%,#091c25 34%,#070d15 76%);border-right:1px solid #213138}
.nx-auth-visual::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,9,16,.8),transparent 38%),linear-gradient(105deg,transparent,#0b2c2a2f);pointer-events:none}
.nx-gridlines{position:absolute;inset:0;opacity:.36;background-image:linear-gradient(#53948215 1px,transparent 1px),linear-gradient(90deg,#53948215 1px,transparent 1px);background-size:60px 60px;mask-image:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent)}
.nx-halo{position:absolute;aspect-ratio:1;border:1px solid #7fecc02e;border-radius:50%;left:50%;top:42%;transform:translate(-50%,-50%);box-shadow:0 0 70px #37b9950f,inset 0 0 80px #2895820e;animation:nx-orbit 28s linear infinite;pointer-events:none}
.nx-halo--one{width:min(58vw,670px)}.nx-halo--two{width:min(44vw,500px);border-style:dashed;animation-direction:reverse;animation-duration:35s}
.nx-visual-inner{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column;padding:40px clamp(28px,5vw,90px) 50px}
.nx-brand-top{display:flex;align-items:center;gap:20px}.nx-main-logo{display:block;width:180px;max-height:62px;object-fit:contain;object-position:left center}.nx-brand-separator{height:26px;border-left:1px solid #516760}.nx-control-tag{font-size:10px;font-weight:750;letter-spacing:.2em;color:#c3d8d1}
.nx-hero-icon{position:absolute;top:14%;left:50%;transform:translateX(-50%);width:min(62%,420px);opacity:.85;filter:drop-shadow(0 0 60px #5beabc25);animation:nx-float 8s ease-in-out infinite}
.nx-hero-icon img{display:block;width:100%;height:auto;object-fit:contain}
.nx-hero-copy{margin-top:auto;margin-bottom:25px;position:relative;z-index:2}.nx-eyebrow{font-size:10px;font-weight:800;letter-spacing:.22em;color:var(--nx-mint);text-transform:uppercase}
.nx-pulse{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:var(--nx-mint);box-shadow:0 0 12px var(--nx-mint)}
.nx-hero-copy h1{font-size:clamp(42px,4vw,70px);font-weight:750;letter-spacing:-.05em;line-height:1.09;margin:20px 0}.nx-hero-copy h1 em{font-style:normal;color:var(--nx-gold)}.nx-hero-copy p{color:#b0c7c7;font-size:14px;line-height:1.8;max-width:420px;margin:0}
.nx-product-rail{border-top:1px solid #55706752;padding-top:16px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;position:relative;z-index:2}
.nx-product{min-width:0;display:grid;gap:7px;align-content:center;opacity:.88}.nx-product img{display:block;object-fit:contain;object-position:left center;width:100%;height:31px;filter:grayscale(.13)}.nx-product small{font-size:8px;letter-spacing:.08em;color:#a4bfc1;font-weight:750}.nx-product--text strong{font-size:10px;line-height:1.4;color:#e2c68c}
.nx-auth-side{background:radial-gradient(ellipse at 20% 0,#142a30 0%,#0c151e 30%,#0a121b 75%);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:35px 26px}
.nx-login-wrap{width:min(438px,100%);margin:auto 0}.nx-mobile-brand{display:none}.nx-auth-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:42px;color:#90acb2;font-size:10px;letter-spacing:.14em;font-weight:750}.nx-lock{display:inline-block;height:9px;width:9px;border:1px solid #70e6bf;border-radius:2px;margin-right:9px;box-shadow:0 0 9px #64e4bb55}.nx-auth-dots{display:flex;gap:5px}.nx-auth-dots b{width:5px;height:5px;border-radius:50%;background:#6fc6a4}.nx-auth-dots b:nth-child(2){opacity:.5}.nx-auth-dots b:nth-child(3){opacity:.3}
.nx-form-icon{display:grid;place-items:center;width:74px;height:74px;border:1px solid #497a67;border-radius:20px;background:linear-gradient(130deg,#21493f,#0e1a20);margin-bottom:22px;box-shadow:0 15px 50px #0007}.nx-form-icon img{height:56px;width:56px;object-fit:contain}
.nx-form-head h2{font-size:39px;letter-spacing:-.052em;line-height:1.15;margin:12px 0 9px;color:#f6fbfc}.nx-form-head p{font-size:13px;line-height:1.65;color:#9fb4bc;margin:0}
.nx-login-form{display:grid;gap:17px;margin-top:32px}.nx-field{display:grid;gap:8px}.nx-field span{font-size:12px;color:#d4e3e7;font-weight:650}.nx-field small{font-size:10px;color:#8ca2a9;font-weight:400}
.nx-field input{width:100%;min-height:53px;padding:0 16px;border:1px solid #304550;background:#111f2a;color:#f4fcfa;border-radius:10px;outline:0;font:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}.nx-field input::placeholder{color:#708691}.nx-field input:focus{border-color:#80e8c0;box-shadow:0 0 0 3px #80e8c025}
.nx-password{position:relative}.nx-password input{padding-right:95px}.nx-reveal{position:absolute;right:8px;top:8px;bottom:8px;border:0;border-radius:7px;background:#243a43;color:#c7d5d6;padding:0 12px;font-size:11px;cursor:pointer}.nx-reveal:hover{background:#2f5057}
.nx-login-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#849ca4;font-size:10px}.nx-login-meta a{color:#e4c783;text-decoration:none;font-weight:700}.nx-login-meta a:hover{text-decoration:underline}
.nx-submit{display:flex;align-items:center;justify-content:center;gap:16px;width:100%;height:55px;background:linear-gradient(105deg,#d8b773,#f2d9a0);color:#19251f;border:0;border-radius:10px;font-size:13px;font-weight:800;letter-spacing:.02em;cursor:pointer;box-shadow:0 14px 32px #d6ab5c20;transition:filter .15s,transform .15s}.nx-submit:hover{filter:brightness(1.08);transform:translateY(-1px)}.nx-submit span{font-size:19px}
.nx-form-alert{margin-top:18px;display:grid;gap:5px;padding:14px;border:1px solid #bc6b6688;border-radius:10px;background:#48232650;color:#ffe3e0;font-size:12px}
.nx-auth-footer{margin-top:26px;border-top:1px solid #2f4149;padding-top:17px}.nx-auth-footer div{display:flex;gap:14px;flex-wrap:wrap;color:#91cdb6;font-size:10px;font-weight:650}.nx-auth-footer p{color:#778b95;font-size:10px;line-height:1.7;margin:10px 0}
.nx-login-langs{display:flex;gap:6px;margin-top:25px}.nx-login-langs a{text-decoration:none;border:1px solid #2f4550;border-radius:6px;color:#92aab2;font-size:10px;font-weight:750;padding:6px 9px}.nx-login-langs a.is-active{color:#e4c787;border-color:#e4c78788}
.nx-login-bottom{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:#6e8791;max-width:438px;width:100%}
.nx-intro{position:fixed;inset:0;background:#050a11;z-index:10;display:flex;align-items:center;justify-content:center;gap:18px;flex-direction:column;animation:nx-intro-out 1.4s cubic-bezier(.2,.8,.2,1) both;pointer-events:none}.nx-intro img{width:95px;height:95px;object-fit:contain;animation:nx-inpulse 1s ease}.nx-intro span{letter-spacing:.32em;font-size:13px;color:#e6cf9c;font-weight:750}.nx-intro i{height:2px;width:170px;background:linear-gradient(90deg,transparent,#72eec1,transparent);animation:nx-progress 1.3s ease both}
@keyframes nx-intro-out{0%,50%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}100%{opacity:0;visibility:hidden}}
@keyframes nx-progress{from{transform:scaleX(.1)}to{transform:scaleX(1)}}
@keyframes nx-inpulse{50%{filter:drop-shadow(0 0 20px #82e7bdaa)}}
@keyframes nx-float{50%{transform:translate(-50%,-4%)}}
@keyframes nx-orbit{50%{rotate:180deg}to{rotate:360deg}}
@media(max-width:1050px){.nx-auth-layout{grid-template-columns:minmax(0,1fr) minmax(390px,.95fr)}.nx-visual-inner{padding:30px}.nx-product-rail{grid-template-columns:repeat(3,1fr)}.nx-hero-icon{top:18%}}
@media(max-width:800px){.nx-auth-layout{display:block}.nx-auth-visual{display:none}.nx-auth-side{min-height:100vh;padding:35px 22px}.nx-mobile-brand{display:block;margin-bottom:27px}.nx-mobile-brand img{width:165px;height:auto}.nx-form-head h2{font-size:34px}}
@media(max-width:480px){.nx-auth-side{padding:22px 17px}.nx-form-head h2{font-size:31px}.nx-auth-top{margin-bottom:29px}.nx-login-form{margin-top:25px}.nx-login-meta{align-items:flex-start;flex-direction:column}.nx-login-bottom{margin-top:35px}}
@media(prefers-reduced-motion:reduce){.nx-auth-page *, .nx-auth-page *::before,.nx-auth-page *::after{animation:none!important;transition:none!important}.nx-intro{display:none}}
/* Same design language for MFA and password-recovery pages */
.ptt-auth-body:not(.nx-auth-page){background:radial-gradient(ellipse at top left,#123d39 0%,#0b1b25 34%,#081019 78%);color:#edf8f6}
.ptt-auth-body:not(.nx-auth-page) .ptt-auth-card{background:#11232c;border:1px solid #30544e;box-shadow:0 18px 45px #0005;color:#edf8f6}
.ptt-auth-body:not(.nx-auth-page) .ptt-auth-brand strong{color:#f7faf9}.ptt-auth-body:not(.nx-auth-page) .ptt-auth-brand span{color:#a9c3bd}
.ptt-auth-body:not(.nx-auth-page) .ptt-auth-logo{background:#254f42;color:#e7c98d}
.ptt-auth-body:not(.nx-auth-page) .ptt-auth-field span{color:#d4e7e5}
.ptt-auth-body:not(.nx-auth-page) .ptt-auth-field input{background:#10202a;color:#eef6f5;border-color:#43605e}
.ptt-auth-body:not(.nx-auth-page) .ptt-auth-submit{background:#e2c084;color:#151d1c}
.ptt-auth-body:not(.nx-auth-page) .ptt-auth-security span{color:#b4d1c9;background:#214238}
.ptt-auth-body:not(.nx-auth-page) .ptt-auth-back{background:#1d373b;color:#e3f0eb;border-color:#3d5c57}
.ptt-auth-body:not(.nx-auth-page) .ptt-mfa-qr-card{background:#173339;border-color:#355754}
.ptt-auth-body:not(.nx-auth-page) .ptt-auth-security--stack>div,.ptt-auth-body:not(.nx-auth-page) .ptt-auth-security--stack details{background:#132a31;border-color:#355754}
.ptt-auth-body:not(.nx-auth-page) .ptt-auth-security--stack code,.ptt-auth-body:not(.nx-auth-page) .ptt-auth-security--stack span{color:#eaf5ec}

/* NEXTGEN V4 P1-LANGUAGE: accessible clickable locale controls. */
.nx-login-langs{align-items:center;flex-wrap:wrap}
.nx-login-langs button{appearance:none;background:transparent;cursor:pointer;border:1px solid #2f4550;border-radius:6px;color:#a9c4c7;font:inherit;font-size:11px;font-weight:750;line-height:1.4;padding:7px 12px;transition:background .16s,border-color .16s,color .16s}
.nx-login-langs button:hover,.nx-login-langs button:focus-visible{color:#f7e1a4;background:#163a36;border-color:#c9aa6b;outline-offset:3px}
.nx-login-langs button.is-active{color:#e4c787;border-color:#e4c78788;background:#243a38}
.nx-login-langs--compact{justify-content:center; margin-top:22px}
html[dir="rtl"] .nx-login-langs{direction:ltr}
