.auth-screen{position:fixed;inset:0;background:linear-gradient(135deg,#10162a 0%, #171d35 52%, #211d3d 100%);display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000;overflow-y:auto;}
body.logged-in .auth-screen{display:none !important}
body:not(.logged-in) .app{display:none}
.auth-card{background:var(--surface);border-radius:22px;padding:30px 26px;width:100%;max-width:410px;box-shadow:0 24px 70px rgba(0,0,0,.35);animation:pop .3s ease;margin:auto;}
.auth-brand{text-align:center;margin-bottom:24px;}
.auth-brand-logo{width:66px;height:66px;border-radius:20px;display:grid;place-items:center;font-size:32px;background:linear-gradient(135deg,var(--primary),#7c5cf7);color:#fff;margin:0 auto 12px;box-shadow:0 10px 24px rgba(47,111,237,.4);overflow:hidden;}
.auth-brand-logo img{width:100%;height:100%;object-fit:contain;background:#fff;display:block;}
.auth-brand h1{margin:0 0 4px;font-size:21px;font-weight:700;}
.auth-brand p{margin:0;color:var(--muted);font-size:12.5px;}
.auth-view{display:none;}
.auth-view.active{display:block;}
.auth-view h2{font-size:16px;margin:0 0 18px;text-align:center;color:var(--text);font-weight:700;}
.auth-submit{width:100%;padding:11px;font-size:14px;}
.auth-switch{text-align:center;margin-top:18px;font-size:13px;color:var(--muted);}
.auth-switch a{color:var(--primary);text-decoration:none;font-weight:700;cursor:pointer;}
.auth-switch a:hover{text-decoration:underline;}
.auth-info-banner{font-size:12px;padding:10px 12px;border-radius:12px;background:var(--primary-soft);color:var(--primary);margin-bottom:14px;line-height:1.7;text-align:center}

.password-wrap{position:relative;display:flex;align-items:center}
.password-wrap .input{padding-inline-start:44px;}
.password-toggle{position:absolute;inset-inline-start:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;background:transparent;cursor:pointer;display:grid;place-items:center;border-radius:9px;color:var(--muted);transition:.15s;padding:0;z-index:2;}
.password-toggle:hover{background:var(--surface-2);color:var(--primary)}
.password-toggle:active{transform:translateY(-50%) scale(.92)}
.password-toggle svg{width:19px;height:19px;display:block;pointer-events:none}
.password-toggle .eye-off{display:none}
.password-toggle.visible .eye-on{display:none}
.password-toggle.visible .eye-off{display:block}
html[dir="rtl"] .password-toggle{inset-inline-start:6px;inset-inline-end:auto}
/* ====== گزینه «من را به یاد داشته باش» ====== */
.remember-me{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:9px;
  margin:4px 0 15px;
  cursor:pointer;
  user-select:none;
  color:var(--text);
  font-size:12.5px;
  line-height:1.4;
}
.remember-me input{
  position:absolute;
  opacity:0;
  width:1px;
  height:1px;
  pointer-events:none;
}
.remember-switch{
  width:48px;
  height:27px;
  flex:0 0 48px;
  border-radius:999px;
  background:#cbd5e1;
  padding:3px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  box-sizing:border-box;
  transition:background .18s ease, box-shadow .18s ease;
  direction:ltr;
}
.remember-knob{
  width:21px;
  height:21px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.22);
  transition:transform .18s ease;
}
.remember-me input:checked + .remember-switch{
  background:#2fba68;
  box-shadow:0 2px 8px rgba(47,186,104,.25);
}
.remember-me input:checked + .remember-switch .remember-knob{
  transform:translateX(21px);
}
.remember-me:hover .remember-switch{box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 10%, transparent);}
.remember-me input:focus-visible + .remember-switch{box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 22%, transparent);}
.remember-label{font-weight:600;}

.field-optional{font-size:.82em;color:var(--muted);font-weight:400}

/* ====== بازیابی گذرواژه ====== */
.auth-forgot{text-align:right;margin:-5px 0 13px;font-size:12.5px}
.auth-forgot a{color:var(--primary);text-decoration:none;font-weight:700;cursor:pointer}
.auth-forgot a:hover{text-decoration:underline}
.secondary-auth-btn{margin-top:9px}
.reset-code-input{direction:ltr;text-align:center;letter-spacing:7px;font-size:18px;font-weight:700}

/* ===== Landing page ===== */
.landing-screen{position:fixed;inset:0;z-index:1100;overflow:hidden;background:#f7f9fc;color:#172033;font-family:inherit;display:flex;flex-direction:column;isolation:isolate}
body.logged-in .landing-screen{display:none!important}
.landing-screen:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 76% 28%,rgba(72,105,255,.12),transparent 31%),radial-gradient(circle at 14% 82%,rgba(124,92,247,.08),transparent 28%);z-index:-2}
.landing-nav{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:28px 0;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}
.landing-brand{display:inline-flex;align-items:center;gap:10px;color:#172033;text-decoration:none;font-weight:900;font-size:17px}
.landing-brand-mark{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;color:#fff;font-size:22px;background:linear-gradient(145deg,#376cf6,#7a5cf5);box-shadow:0 10px 24px rgba(63,91,220,.2);transform:rotate(-8deg)}
.landing-login-link{border:1px solid #dbe1ec;background:rgba(255,255,255,.68);backdrop-filter:blur(12px);color:#26324a;padding:10px 18px;border-radius:12px;font:inherit;font-weight:800;cursor:pointer;transition:.2s ease}
.landing-login-link:hover{border-color:#b8c5dc;transform:translateY(-1px);box-shadow:0 8px 20px rgba(25,40,75,.07)}
.landing-main{width:min(1180px,calc(100% - 48px));margin:auto;display:grid;grid-template-columns:1.02fr .98fr;gap:72px;align-items:center;flex:1;padding:20px 0 40px}
.landing-copy{max-width:650px}
.landing-eyebrow{display:flex;align-items:center;gap:9px;color:#66738c;font-size:13px;font-weight:800;margin-bottom:20px}
.landing-eyebrow span{width:8px;height:8px;border-radius:50%;background:#4b72f3;box-shadow:0 0 0 6px rgba(75,114,243,.1)}
.landing-copy h1{font-size:clamp(40px,5vw,68px);line-height:1.08;letter-spacing:-2.2px;margin:0 0 22px;font-weight:900;color:#172033}
.landing-copy h1 em{font-style:normal;background:linear-gradient(90deg,#326af5,#7b59f4);-webkit-background-clip:text;background-clip:text;color:transparent}
.landing-lead{max-width:610px;color:#66738c;font-size:16px;line-height:2.05;margin:0 0 28px}
.landing-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.landing-primary,.landing-secondary{border:0;font:inherit;font-weight:850;cursor:pointer;border-radius:14px;padding:13px 20px;transition:.22s ease}
.landing-primary{background:#172033;color:#fff;box-shadow:0 14px 28px rgba(23,32,51,.14)}
.landing-primary span{display:inline-block;margin-right:8px;transition:transform .2s}
.landing-primary:hover{transform:translateY(-2px);box-shadow:0 18px 34px rgba(23,32,51,.2)}
.landing-primary:hover span{transform:translateX(-4px)}
.landing-secondary{background:transparent;color:#52617b;border:1px solid #d9e0eb}
.landing-secondary:hover{background:#fff;transform:translateY(-1px)}
.landing-trust{display:flex;gap:17px;align-items:center;flex-wrap:wrap;color:#8a95a8;font-size:11px;margin-top:24px}
.landing-trust span{color:#3f71f4;font-weight:900}
.landing-preview{position:relative;min-height:510px;display:grid;place-items:center}
.landing-preview:before{content:"";position:absolute;width:440px;height:440px;border-radius:50%;background:linear-gradient(135deg,rgba(69,109,246,.13),rgba(125,88,244,.06));filter:blur(1px);z-index:-1}
.preview-window{width:min(460px,100%);background:rgba(255,255,255,.82);border:1px solid rgba(216,224,237,.92);border-radius:24px;padding:18px;box-shadow:0 35px 80px rgba(38,54,88,.13),0 4px 16px rgba(38,54,88,.05);backdrop-filter:blur(18px);transform:rotate(1.5deg)}
.preview-top{height:24px;display:flex;align-items:center;gap:5px;margin-bottom:18px;color:#8a95a8;font-size:11px}.preview-top span{width:7px;height:7px;border-radius:50%;background:#d9dfeb}.preview-top b{margin-right:auto;font-size:11px;font-weight:800}
.preview-balance{position:relative;background:linear-gradient(135deg,#263553,#3b5aa1);color:#fff;border-radius:18px;padding:20px 21px;overflow:hidden}.preview-balance:after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.08);left:-60px;bottom:-90px}.preview-balance small{display:block;color:rgba(255,255,255,.68);font-size:10px;margin-bottom:8px}.preview-balance strong{font-size:26px;letter-spacing:.4px}.preview-balance i{font-style:normal;font-size:10px;margin-right:5px;color:rgba(255,255,255,.65)}.preview-chip{position:absolute;left:18px;top:18px;padding:5px 9px;border-radius:9px;background:rgba(255,255,255,.12);font-size:10px}
.preview-chart{height:100px;display:flex;align-items:flex-end;gap:10px;padding:20px 8px 10px}.preview-chart div{flex:1;border-radius:7px 7px 3px 3px;background:linear-gradient(180deg,#6288f5,#b9c8f8);opacity:.9}
.preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.preview-grid div{background:#f7f9fc;border:1px solid #edf0f5;border-radius:12px;padding:11px}.preview-grid span{display:block;font-size:9px;color:#8c96a8;margin-bottom:5px}.preview-grid b{font-size:12px;color:#27334a}.preview-list{margin-top:9px;display:grid;gap:6px}.preview-list div{display:grid;grid-template-columns:12px 1fr auto;gap:7px;align-items:center;padding:8px 4px;font-size:9px;color:#6e7b91}.preview-list b{font-size:10px;color:#27334a}.dot{width:7px;height:7px;border-radius:50%}.dot.green{background:#4fb08b}.dot.blue{background:#6385e9}.dot.violet{background:#9b79dc}
.landing-float{position:absolute;background:rgba(255,255,255,.9);border:1px solid #e5eaf2;border-radius:14px;padding:10px 13px;box-shadow:0 18px 40px rgba(42,57,91,.1);font-size:10px;font-weight:800;color:#52617b;backdrop-filter:blur(10px)}.landing-float-one{right:-18px;top:112px}.landing-float-one span{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:6px;background:#eaf8f2;color:#35a477;margin-left:6px}.landing-float-two{left:-22px;bottom:88px;display:flex;flex-direction:column;gap:2px}.landing-float-two strong{color:#376cf6;font-size:15px}.landing-float-two small{font-size:9px;color:#8792a6}
.landing-footer{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:18px 0 24px;border-top:1px solid #e9edf3;display:flex;justify-content:space-between;color:#9aa3b2;font-size:10px}
@media(max-width:900px){.landing-main{grid-template-columns:1fr;gap:20px;padding-top:25px}.landing-copy{max-width:700px}.landing-preview{min-height:360px}.preview-window{max-width:440px}.landing-float-one{right:0}.landing-float-two{left:0;bottom:45px}.landing-copy h1{font-size:clamp(40px,9vw,58px)}}
@media(max-width:600px){.landing-nav,.landing-main,.landing-footer{width:min(100% - 28px,1180px)}.landing-nav{padding:18px 0}.landing-login-link{padding:8px 13px;font-size:12px}.landing-main{padding:12px 0 20px}.landing-copy h1{font-size:40px;letter-spacing:-1.4px}.landing-lead{font-size:14px;line-height:1.9}.landing-trust{gap:10px;font-size:10px}.landing-preview{min-height:315px}.preview-window{padding:13px;border-radius:18px}.landing-float{display:none}.landing-footer{font-size:9px;padding-bottom:16px}.landing-footer span:first-child{display:none}.landing-footer span:last-child{margin-right:auto}}

/* ===== Landing split-open entrance ===== */
.landing-screen{background:#0b1020;color:#f7f9ff;cursor:pointer;outline:none}
.landing-screen:before,.landing-screen:after{display:none}
.landing-finance-title{position:absolute;top:30px;left:50%;z-index:13;transform:translateX(-50%);font-size:clamp(34px,4vw,48px);font-weight:900;letter-spacing:.08em;white-space:nowrap;color:transparent;background:linear-gradient(90deg,#eee7ff,#a78bfa,#7c3aed,#a78bfa,#eee7ff);background-size:300% 100%;background-position:0% 50%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 0 18px rgba(167,139,250,.28),0 1px 2px rgba(0,0,0,.38);animation:wave 8s linear infinite;text-align:center;transform-origin:center;pointer-events:none;transition:opacity .5s ease,transform .7s cubic-bezier(.77,0,.18,1),filter .5s ease}
@keyframes wave{0%{background-position:0% 50%}100%{background-position:300% 50%}}
.landing-screen.is-opening .landing-finance-title{opacity:0;filter:blur(8px);transform:translateX(-50%) translateY(-18px) scale(.96)}
.landing-curtain{position:absolute;top:0;bottom:0;width:50.1%;z-index:8;background:linear-gradient(145deg,#10182e 0%,#17233d 48%,#0d1427 100%);transition:transform .78s cubic-bezier(.77,0,.18,1);box-shadow:0 0 80px rgba(0,0,0,.22)}
.landing-curtain-left{right:50%;border-left:1px solid rgba(255,255,255,.05)}
.landing-curtain-right{left:50%;border-right:1px solid rgba(255,255,255,.05)}
.landing-screen .landing-content{position:relative;z-index:5;min-height:100%;transition:opacity .28s ease,transform .65s ease}
.landing-snow{position:absolute;inset:0;width:100%;height:100%;z-index:9;pointer-events:none;opacity:1;visibility:visible;display:block;transition:opacity .45s ease}
.landing-screen.is-opening .landing-snow{opacity:0}
.landing-center-mark{position:absolute;z-index:12;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:13px;pointer-events:none;transition:opacity .25s ease,transform .6s ease}
.landing-mark-ring{width:76px;height:76px;border:1px solid rgba(255,255,255,.22);border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.055);box-shadow:0 0 0 12px rgba(255,255,255,.018),0 18px 50px rgba(0,0,0,.25);backdrop-filter:blur(10px)}
.landing-mark-ring span{font-size:32px;color:#fff;transform:rotate(-12deg);display:block}
.landing-mark-line{width:1px;height:38px;background:linear-gradient(transparent,rgba(255,255,255,.5),transparent)}
.landing-center-mark small{font-size:15.4px;color:rgba(255,255,255,.65);letter-spacing:.3px;white-space:nowrap}
.landing-nav{color:#fff;padding-top:30px}
.landing-brand{color:#fff}
.landing-brand-mark{background:linear-gradient(145deg,#fff,#a9baff);color:#18223a;box-shadow:0 10px 28px rgba(0,0,0,.18)}
.landing-hint{font-size:11px;color:rgba(255,255,255,.55);letter-spacing:.2px}
.landing-copy h1{color:#fff;font-size:clamp(48px,6vw,78px);letter-spacing:-3px}
.landing-copy h1 em{background:linear-gradient(90deg,#a9bcff,#d4c6ff);-webkit-background-clip:text;background-clip:text}
.landing-eyebrow{color:rgba(255,255,255,.62)}
.landing-eyebrow span{background:#a9bcff;box-shadow:0 0 0 6px rgba(169,188,255,.08)}
.landing-lead{color:rgba(255,255,255,.58);max-width:560px}
.landing-enter-note{display:flex;align-items:center;gap:9px;color:rgba(255,255,255,.46);font-size:11px;margin-top:24px}
.landing-enter-note span{width:27px;height:27px;border:1px solid rgba(255,255,255,.16);border-radius:50%;display:grid;place-items:center;color:#b7c5ff}
.landing-enter-note b{color:rgba(255,255,255,.78)}
.landing-preview:before{background:radial-gradient(circle,rgba(112,135,255,.17),transparent 68%)}
.preview-window{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.12);box-shadow:0 35px 90px rgba(0,0,0,.35),0 4px 16px rgba(0,0,0,.12);backdrop-filter:blur(24px)}
.preview-top{color:rgba(255,255,255,.48)}
.preview-top span{background:rgba(255,255,255,.28)}
.preview-balance{background:linear-gradient(135deg,#263a68,#4a5fb0)}
.preview-grid div{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.07)}
.preview-grid span,.preview-list div{color:rgba(255,255,255,.48)}
.preview-grid b,.preview-list b{color:#fff}
.landing-footer{border-top-color:rgba(255,255,255,.08);color:rgba(255,255,255,.34)}
.landing-screen.is-opening .landing-curtain-left{transform:translateX(-100%)}
.landing-screen.is-opening .landing-curtain-right{transform:translateX(100%)}
.landing-screen.is-opening .landing-center-mark{opacity:0;transform:translate(-50%,-50%) scale(.78)}
.landing-screen.is-opening .landing-content{opacity:0;transform:scale(.985)}
.landing-screen.is-opening{cursor:default}
@media(max-width:900px){.landing-main{grid-template-columns:1fr}.landing-preview{min-height:350px}.landing-copy h1{font-size:clamp(44px,10vw,64px)}}
@media(max-width:600px){.landing-nav{padding-top:20px}.landing-hint{display:none}.landing-copy h1{font-size:43px;letter-spacing:-1.8px}.landing-lead{font-size:14px}.landing-enter-note{font-size:10px}.landing-preview{min-height:280px}.landing-footer{width:calc(100% - 28px)}}
