@font-face{font-family:'IRANYekanLoginBold';src:url('/user/assets/login-fonts/iranyekan-bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'IRANYekan';src:url('/user/assets/login-fonts/iranyekan-regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
*{box-sizing:border-box;margin:0;padding:0;font-family:'IRANYekan',sans-serif}
:root{--bg:#0b1220;--card:#111827;--card2:#182235;--bd:#273449;--ac:#3f9bd4;--ac2:#2f86bd;--gr:#22a06b;--rd:#dc4c4c;--yw:#d97706;--tx:#e5e7eb;--mu:#94a3b8;--ib:#0f172a;--rs:10px;--glass-bd:rgba(255,255,255,.08);--type-control:13px;--type-body:14px}
body.light{--bg:#f4f7f9;--card:#fff;--card2:#f1f1f1;--bd:#e5e7eb;--tx:#0f172a;--mu:#475569;--ib:#f1f5f9;--ac:#3f9bd4;--ac2:#2f86bd;--glass-bd:rgba(255,255,255,.8);--rs:18px}
html{min-height:100%;overflow-y:scroll;scrollbar-gutter:stable;background:var(--bg)}
body{background:var(--bg);color:var(--tx);font-family:'IRANYekan',sans-serif;text-rendering:optimizeLegibility;-webkit-font-smoothing:auto;font-synthesis:none;direction:rtl;min-height:100vh;position:relative;isolation:isolate;font-size:var(--type-body);line-height:1.65}
body::before{content:'';position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(ellipse 90vw 55vh at 50% -8%,rgba(11,120,184,.35),transparent 60%),radial-gradient(ellipse 70vw 65vh at 85% 105%,rgba(11,120,184,.22),transparent 65%),radial-gradient(ellipse 60vw 50vh at 5% 95%,rgba(56,158,211,.14),transparent 60%),var(--bg)}
body.light::before{background:var(--bg)}
input,select,textarea,button{font-family:'IRANYekan',sans-serif}button{line-height:1.5}.hidden{display:none!important}.text-center{text-align:center}.text-muted{color:var(--mu)}.input-full{width:100%}
input,select,textarea{background:var(--ib);border:1px solid var(--bd);border-radius:var(--rs);padding:7px 10px;color:var(--tx);font-size:var(--type-control);line-height:1.55;outline:none;direction:rtl;transition:border .2s}
input:focus,select:focus,textarea:focus{border-color:var(--ac)}
#login-u,#login-p,#otp-phone{background:var(--card);border-radius:12px;direction:ltr!important}
.form-label{color:var(--tx);font-size:var(--type-control);line-height:1.5;margin-bottom:3px;display:block;font-weight:500;padding-inline-start:8px}
#login-form .login-field-label{margin:0 0 6px;padding-inline-start:4px;font-size:12px;line-height:1.6;font-weight:600;color:var(--tx)}
.btn{background:linear-gradient(135deg,var(--ac),var(--ac2));color:#fff;border:none;border-radius:var(--rs);padding:7px 14px;font-size:var(--type-body);font-weight:400;cursor:pointer;font-family:inherit;transition:.15s;white-space:nowrap;position:relative;overflow:hidden;box-shadow:none}
.btn::after{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.35) 50%,transparent 80%);transform:translateX(-120%);transition:transform .5s ease;pointer-events:none}.btn:hover::after{transform:translateX(120%)}.btn:hover{opacity:.94;transform:translateY(-1px)}.btn:disabled{opacity:.75;cursor:not-allowed;transform:none}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:transparent;position:relative;overflow:hidden}
.login-card{position:relative;background:rgba(0,0,0,.4);background:linear-gradient(180deg,rgba(0,0,0,.4) 0%,rgba(0,0,0,.4) 30%,rgba(0,0,0,.4) 50%,color-mix(in srgb,#3f9bd4 1.8%,rgba(0,0,0,.4)) 70%,color-mix(in srgb,#3f9bd4 5%,rgba(0,0,0,.4)) 100%);border:none;border-radius:20px;padding:26px 24px;width:350px;max-width:94vw;box-shadow:0 6px 18px rgba(0,0,0,.09),0 2px 7px rgba(0,0,0,.035),0 1px 0 rgba(255,255,255,.02) inset;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);animation:loginCardIn .55s cubic-bezier(.16,.9,.28,1)}
@keyframes loginCardIn{from{opacity:0;transform:translateY(48px)}to{opacity:1;transform:translateY(0)}}
body.light .login-card{background:#fff;background:linear-gradient(180deg,#fff 0%,#fff 30%,#fff 50%,color-mix(in srgb,#bfdbfe 1.8%,#fff) 70%,color-mix(in srgb,#bfdbfe 5%,#fff) 100%);border:none;box-shadow:0 5px 16px rgba(15,23,42,.032),0 2px 7px rgba(15,23,42,.018);backdrop-filter:none;-webkit-backdrop-filter:none}
.login-card::before{content:'';position:absolute;inset:-1px;border-radius:inherit;padding:1px;pointer-events:none;background:conic-gradient(from var(--ang,0deg),transparent 0deg,rgba(255,255,255,.55) 25deg,transparent 60deg,transparent 300deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:borderSweep 3.5s linear infinite}@keyframes borderSweep{to{--ang:360deg}}@property --ang{syntax:'<angle>';inherits:false;initial-value:0deg}body.light .login-card::before{display:none}
.login-card .form-group,.login-card button,.login-card .divider,.login-card>div,.login-card>form{position:relative;z-index:1}
.login-title{font-family:'IRANYekanLoginBold','IRANYekan',sans-serif!important;font-weight:700;font-size:20px;line-height:1.4;white-space:nowrap;display:block;margin-bottom:9px;background:linear-gradient(180deg,#fff,rgba(255,255,255,.75));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
body.light .login-title{background:linear-gradient(180deg,#0f172a,rgba(15,23,42,.75));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.login-subtitle{font-size:15px;line-height:1.4;min-height:1.4em;margin-bottom:36px}
.login-form-fade{animation:loginFormIn .25s ease}@keyframes loginFormIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
#login-form .form-group,#otp-login-form .form-group{margin-bottom:16px}
.field-float-fs{position:relative;margin:0;padding:0;border:1px solid var(--bd);border-radius:12px;min-width:0;background:var(--card)}
.field-float-fs input{border:none!important;background:transparent!important;width:100%}
.field-float-fs>legend{height:0;overflow:visible;margin:0;margin-inline-start:12px;padding:0 6px;font-size:12px;line-height:1.4;width:auto;float:none;transform:translateY(-8.4px)}
.field-float-fs:focus-within,.field-float-fs.autofill-active{border-color:var(--ac);box-shadow:0 0 0 2px rgba(56,158,211,.15)}
.field-float-fs.invalid{border-color:var(--rd)!important}
.login-username-wrap,.pw-wrap,.otp-phone-wrap{position:relative;display:flex;align-items:stretch}
.login-username-wrap input{padding-left:40px;padding-right:10px;flex:1;min-width:0}.pw-wrap input{padding-right:10px;padding-left:36px;flex:1;min-width:0}.otp-phone-wrap input{padding-left:40px;padding-right:10px;flex:1;min-width:0;text-align:left;font-weight:700}
#login-u,#login-p,#otp-phone{padding-top:11px;padding-bottom:11px;font-size:13px!important;color:var(--tx);outline:0}
.login-username-wrap .field-ico,.otp-phone-wrap .field-ico{position:absolute;top:0;bottom:0;left:13px;right:auto;margin:auto 0;height:19px;width:19px;display:flex;align-items:center;justify-content:center;color:var(--mu);pointer-events:none}.login-username-wrap .field-ico svg,.otp-phone-wrap .field-ico svg{width:19px;height:19px;display:block}
.pw-wrap .pw-lock-ico{position:absolute;top:0;bottom:0;left:12px;right:auto;margin:auto 0;height:19px;width:19px;display:flex;align-items:center;justify-content:center;color:var(--mu);cursor:pointer;pointer-events:auto}.pw-wrap .pw-lock-ico:hover{color:var(--tx)}.pw-wrap .pw-lock-ico svg{width:19px;height:19px;display:block}
body.light #login-screen .login-username-wrap .field-ico,body.light #login-screen .pw-wrap .pw-lock-ico{width:28px;height:28px;left:8px;border-radius:0;background:transparent;display:flex;align-items:center;justify-content:center}body.light #login-screen .otp-phone-wrap .field-ico{width:28px;height:28px;left:8px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center}
.field-float-fs:focus-within .field-ico,.field-float-fs:focus-within .pw-lock-ico,.field-float-fs.autofill-active .field-ico,.field-float-fs.autofill-active .pw-lock-ico{color:var(--ac)!important}
.login-id-hint{min-height:17px;margin-top:5px;font-size:10.5px;line-height:1.6;color:var(--mu);transition:color .16s ease}
/* REV3127: keep mobile browser autofill/selected credentials visually aligned with the tinted login field from first paint. */
body.light #login-screen{color-scheme:light}
#login-screen input:-webkit-autofill,
#login-screen input:-webkit-autofill:hover{
  -webkit-text-fill-color:var(--tx)!important;
  caret-color:var(--tx)!important;
  -webkit-box-shadow:0 0 0 1000px var(--ib) inset!important;
  box-shadow:0 0 0 1000px var(--ib) inset!important;
  border-radius:11px;
  transition:background-color 9999s ease-out 0s!important;
}
#login-screen input:-webkit-autofill:focus,
#login-screen input:-webkit-autofill:active,
#login-screen .field-float-fs:focus-within input:-webkit-autofill{
  -webkit-box-shadow:0 0 0 1000px color-mix(in srgb,var(--ac) 5%,var(--ib)) inset!important;
  box-shadow:0 0 0 1000px color-mix(in srgb,var(--ac) 5%,var(--ib)) inset!important;
}
#login-screen input:autofill{
  color:var(--tx)!important;
  caret-color:var(--tx)!important;
  background:var(--ib)!important;
  box-shadow:0 0 0 1000px var(--ib) inset!important;
  border-radius:11px;
}
#login-screen .field-float-fs:focus-within input:autofill{
  background:color-mix(in srgb,var(--ac) 5%,var(--ib))!important;
  box-shadow:0 0 0 1000px color-mix(in srgb,var(--ac) 5%,var(--ib)) inset!important;
}
.login-alert,.otp-login-msg{display:flex;align-items:center;justify-content:center;gap:6px;text-align:center;color:var(--rd);font-size:12px;font-weight:600;background:color-mix(in srgb,var(--rd) 10%,transparent);border-radius:12px;padding:7px 14px;margin-bottom:10px;animation:loginAlertIn .2s ease}@keyframes loginAlertIn{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}
.login-method-tabs{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:4px;margin:0 0 14px;border-radius:var(--rs);background:var(--bg);position:relative;z-index:2}.login-method-indicator{display:none!important}.login-method-tab{position:relative;z-index:1;min-width:0;min-height:0;padding:6px 14px;border:0;border-radius:calc(var(--rs) - 2px);background:transparent;color:var(--mu);font:inherit;font-size:13px;font-weight:650;line-height:1.6;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .18s ease;box-sizing:border-box}.login-method-tab.active{background:var(--card);color:var(--ac);box-shadow:none}body.light .login-method-tab.active{color:var(--ac2)}.login-method-tab:focus-visible{outline:2px solid color-mix(in srgb,var(--ac) 55%,transparent);outline-offset:2px}
.otp-copy{margin:0 0 13px;color:var(--mu);font-size:11.5px;line-height:1.75;text-align:center}.otp-submit{width:100%;padding:11px 8px;font-size:14px;font-weight:700;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:6px}.otp-btn-text{display:inline-flex;align-items:center;line-height:1}
.login-footer-divider{height:1px;margin:4px 0 14px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent)}body.light .login-footer-divider{background:linear-gradient(90deg,transparent,rgba(15,23,42,.14),transparent)}.login-legal{font-size:11px;line-height:1.7;color:var(--mu);opacity:.7;letter-spacing:.1px}.login-version-badge{display:inline-flex;align-items:center;margin-top:10px;padding:3px 11px;border-radius:20px;font-size:10.5px;letter-spacing:.3px;color:rgba(255,255,255,.45);background:rgba(255,255,255,.06)}body.light .login-version-badge{color:rgba(15,23,42,.55);background:rgba(15,23,42,.04)}
.login-center-picker{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(15,23,42,.38);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.login-center-picker-card{width:min(430px,94vw);max-height:min(620px,88vh);overflow:auto;background:var(--card);color:var(--tx);border:1px solid var(--glass-bd);border-radius:20px;padding:18px;box-shadow:0 24px 70px rgba(15,23,42,.22)}.login-center-picker-title{font-size:16px;font-weight:800;text-align:right;margin:0 0 5px}.login-center-picker-sub{font-size:12px;line-height:1.8;color:var(--mu);margin-bottom:13px}.login-center-options{display:grid;gap:9px}.login-center-option{width:100%;border:1px solid var(--bd);background:var(--card);color:inherit;border-radius:14px;padding:11px 13px;text-align:right;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;transition:border-color .15s ease,background .15s ease,transform .15s ease}.login-center-option:hover,.login-center-option:focus-visible{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 7%,var(--card));outline:none;transform:translateY(-1px)}.login-center-option-main{min-width:0}.login-center-option-name{font-weight:800;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.login-center-option-meta{font-size:11px;color:var(--mu);margin-top:3px;direction:ltr;text-align:right}.login-center-option-role{font-size:11px;font-weight:700;color:var(--ac);white-space:nowrap}.login-center-picker-actions{display:flex;justify-content:flex-start;margin-top:13px}.login-center-picker-cancel{border:0;background:transparent;color:var(--mu);font:inherit;font-size:12px;cursor:pointer;padding:7px 9px}

/* REV3122: the User card uses the exact Admin card edge, geometry and shadow. */
.login-card{
  position:relative;
  background:rgba(0,0,0,.4);
  background:linear-gradient(180deg,rgba(0,0,0,.4) 0%,rgba(0,0,0,.4) 30%,rgba(0,0,0,.4) 50%,color-mix(in srgb,#3f9bd4 1.8%,rgba(0,0,0,.4)) 70%,color-mix(in srgb,#3f9bd4 5%,rgba(0,0,0,.4)) 100%);
  border:none;
  border-radius:20px;
  padding:26px 24px;
  width:350px;
  max-width:94vw;
  box-shadow:0 14px 38px rgba(0,0,0,.22),0 5px 18px rgba(63,155,212,.07),0 0 20px rgba(63,155,212,.025),0 1px 0 rgba(255,255,255,.03) inset;
  backdrop-filter:blur(22px);
  -webkit-backdrop-filter:blur(22px);
  animation:loginCardIn .55s cubic-bezier(.16,.9,.28,1);
}
body.light .login-card{
  background:#fff;
  background:linear-gradient(180deg,#fff 0%,#fff 30%,#fff 50%,color-mix(in srgb,#bfdbfe 1.8%,#fff) 70%,color-mix(in srgb,#bfdbfe 5%,#fff) 100%);
  border:none;
  box-shadow:0 12px 32px rgba(15,23,42,.08),0 4px 14px rgba(63,155,212,.04),0 0 18px rgba(63,155,212,.02);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

/* User requested borderless National-ID and password controls. */
#login-screen .login-username-wrap,
#login-screen .pw-wrap{
  border:0;
  box-shadow:none;
  background:var(--ib);
  min-height:44px;
}
#login-screen .login-username-wrap:focus-within,
#login-screen .login-username-wrap.autofill-active,
#login-screen .pw-wrap:focus-within,
#login-screen .pw-wrap.autofill-active{
  border:0;
  box-shadow:none;
  background:color-mix(in srgb,var(--ac) 5%,var(--ib));
}
#login-screen .login-username-wrap.invalid,
#login-screen .pw-wrap.invalid{
  border:0!important;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--rd) 38%,transparent);
}
#login-screen #login-u,
#login-screen #login-p{
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  background:transparent!important;
  border-radius:12px;
  text-align:left;
  font-weight:700;
}
#login-screen .login-national-id-input{
  font-variant-numeric:tabular-nums;
  letter-spacing:.15px;
}
#login-screen #login-submit-btn{
  width:100%;
  padding:11px 8px;
  font-size:14px;
  font-weight:700;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  margin-top:6px;
}
@media(max-width:380px){.login-card{padding:18px 14px}}
@media(prefers-reduced-motion:reduce){.login-card::before{animation:none;background:rgba(255,255,255,.14)}body.light .login-card::before{background:rgba(11,120,184,.22)}.login-card{animation:none}.login-form-fade{animation:none}.btn{transition:none!important}}
::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bd);border-radius:2px}

/* REV3128: standardized vertical rhythm inside Clinic/Admin login cards. */
#login-screen .login-card{padding:24px}
#login-screen .login-title{margin-bottom:8px}
#login-screen .login-subtitle{margin-bottom:24px}
#login-screen #login-form{display:flex;flex-direction:column;gap:12px}
#login-screen #login-form .form-group{margin-bottom:0}
#login-screen #login-form .login-field-label{margin-bottom:8px}
#login-screen #login-submit-btn{margin-top:4px}
#login-screen .login-footer-divider{margin:20px 0 12px}
#login-screen .login-version-badge{margin-top:8px}
@media(max-width:380px){#login-screen .login-card{padding:20px 16px}}
