*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

:root{
  --primary:#0E6B63;
  --primary-dark:#0A4F49;
  --primary-deep:#052220;
  --secondary:#4FA89A;
  --accent:#E9F3F0;
  --gold:#B8860B;
  --gold-deep:#8C6A0F;
  --gold-light:#DDB25C;
  --bg:#FFFFFF;
  --bg-alt:#F4F7F6;
  --text:#182E2B;
  --text-muted:#5C716C;
  --text-soft:#8FA19C;
  --danger:#B3432E;
  --border:#E2EAE7;
  --shadow-1:0 2px 10px rgba(8,38,34,.06);
  --shadow-2:0 10px 30px rgba(8,45,40,.10);
  --shadow-3:0 30px 70px -12px rgba(4,20,18,.35);
  --r-sm:14px;
  --r-md:22px;
  --r-lg:32px;
  --r-full:999px;
  --ease:cubic-bezier(.22,1,.36,1);
  --font:'Vazirmatn',sans-serif;
  --font-display:'Lalezar',sans-serif;
}

html,body{height:100%;}
body{font-family:var(--font);color:var(--text);line-height:1.7;-webkit-font-smoothing:antialiased;}
a{text-decoration:none;color:inherit;}
button{font-family:var(--font);}
img{display:block;max-width:100%;}

.page{min-height:100vh;display:flex;flex-direction:column;position:relative;}

/* ---------- Background ---------- */
.bg{position:fixed;inset:0;z-index:0;background:var(--primary-deep);}
.bg img{width:100%;height:100%;object-fit:cover;opacity:.9;}
.bg .scrim{position:absolute;inset:0;background:linear-gradient(165deg,rgba(4,20,18,.86) 0%,rgba(9,58,54,.74) 55%,rgba(4,20,18,.88) 100%);}

/* ---------- Back link ---------- */
.back-link{position:relative;z-index:2;display:inline-flex;align-items:center;gap:8px;align-self:flex-start;margin:28px 32px 0;color:rgba(255,255,255,.88);font-size:.85rem;padding:10px 20px;border:1px solid rgba(255,255,255,.28);border-radius:var(--r-full);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:.3s var(--ease);}
.back-link:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.5);}
.back-link svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transform:scaleX(-1);}

/* ---------- Auth layout ---------- */
.auth-wrap{position:relative;z-index:1;flex:1;display:flex;align-items:center;justify-content:center;padding:36px 20px 50px;}

.auth-card{
  position:relative;
  width:100%;
  max-width:452px;
  background:#fff;
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-3);
  padding:46px 42px 38px;
  overflow:hidden;
  animation:cardIn .7s var(--ease) both;
}
@keyframes cardIn{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:none;}}

.card-motif{position:absolute;top:0;right:0;left:0;height:132px;z-index:0;pointer-events:none;}
.card-motif svg{width:100%;height:100%;display:block;-webkit-mask-image:linear-gradient(to bottom,#000,transparent);mask-image:linear-gradient(to bottom,#000,transparent);}
.motif-stroke{stroke:var(--gold);opacity:.45;}

.auth-brand{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:22px;}
.auth-logo{width:46px;height:46px;border-radius:14px;object-fit:cover;box-shadow:0 8px 18px -4px rgba(14,107,99,.4);}
.auth-org{font-size:.95rem;font-weight:700;color:var(--text);}

.auth-head{position:relative;z-index:1;text-align:center;margin-bottom:32px;}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;color:var(--primary);letter-spacing:.02em;background:var(--accent);padding:7px 18px;border-radius:var(--r-full);margin-bottom:16px;}
.eyebrow::before{content:'';width:6px;height:6px;background:var(--gold);transform:rotate(45deg);flex-shrink:0;border-radius:1px;}
.auth-head h1{font-family:var(--font);font-weight:800;font-size:1.7rem;letter-spacing:-.01em;margin-bottom:10px;color:var(--text);}
.auth-sub{color:var(--text-muted);font-size:.9rem;line-height:1.8;}

/* ---------- Form ---------- */
form{position:relative;z-index:1;}
.field{margin-bottom:18px;}
.field label{display:block;font-size:.83rem;font-weight:600;color:var(--text);margin-bottom:8px;}

.input-wrap{position:relative;display:flex;align-items:center;border:1.5px solid var(--border);border-radius:var(--r-sm);background:var(--bg-alt);transition:.25s var(--ease);}
.input-wrap:focus-within{border-color:var(--primary);background:#fff;box-shadow:0 0 0 4px var(--accent);}
.input-wrap .lead-icon{position:absolute;right:16px;width:19px;height:19px;stroke:var(--text-soft);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;transition:.25s;}
.input-wrap:focus-within .lead-icon{stroke:var(--primary);}
.input-wrap input{flex:1;min-width:0;border:none;background:transparent;padding:14px 46px 14px 16px;font-family:var(--font);font-size:.92rem;color:var(--text);outline:none;}
.input-wrap input::placeholder{color:var(--text-soft);}
.input-wrap.has-toggle input{padding-left:44px;}

.toggle-pass{position:absolute;left:10px;background:none;border:none;cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;color:var(--text-soft);border-radius:10px;transition:.2s;}
.toggle-pass:hover{color:var(--primary);background:rgba(14,107,99,.08);}
.toggle-pass svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}

.field-error{display:block;min-height:18px;font-size:.78rem;color:var(--danger);margin-top:6px;}

.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:26px;flex-wrap:wrap;}
.checkbox{display:inline-flex;align-items:center;gap:9px;font-size:.85rem;color:var(--text-muted);cursor:pointer;user-select:none;}
.checkbox input{position:absolute;opacity:0;width:0;height:0;}
.checkbox .box{width:18px;height:18px;border:1.5px solid var(--border);border-radius:6px;display:inline-flex;align-items:center;justify-content:center;transition:.2s;flex-shrink:0;background:#fff;}
.checkbox .box::after{content:'';width:9px;height:5px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg) translate(-1px,-1px);opacity:0;transition:.15s;}
.checkbox input:checked + .box{background:var(--primary);border-color:var(--primary);}
.checkbox input:checked + .box::after{opacity:1;}
.checkbox input:focus-visible + .box{box-shadow:0 0 0 3px var(--accent);}
.link-muted{font-size:.85rem;color:var(--primary);font-weight:600;}
.link-muted:hover{text-decoration:underline;}

.btn-submit{width:100%;padding:15px;border:none;border-radius:var(--r-sm);background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;font-size:.98rem;font-weight:700;cursor:pointer;transition:.3s var(--ease);box-shadow:0 14px 28px -8px rgba(14,107,99,.5);display:flex;align-items:center;justify-content:center;gap:10px;position:relative;}
.btn-submit:hover{transform:translateY(-2px);box-shadow:0 18px 34px -8px rgba(14,107,99,.6);}
.btn-submit:active{transform:translateY(0);}
.btn-submit:disabled{cursor:default;opacity:.85;transform:none;}
.btn-submit .spinner{width:17px;height:17px;border-radius:50%;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;display:none;animation:spin .7s linear infinite;}
.btn-submit.loading .spinner{display:inline-block;}
.btn-submit.loading .btn-label{opacity:.85;}
@keyframes spin{to{transform:rotate(360deg);}}

.form-note{min-height:0;max-height:0;overflow:hidden;font-size:.83rem;text-align:center;color:var(--primary-dark);background:var(--accent);border-radius:var(--r-sm);margin-top:0;opacity:0;transition:.35s var(--ease);}
.form-note.show{min-height:20px;max-height:80px;padding:12px 14px;margin-top:18px;opacity:1;}

.auth-divider{position:relative;z-index:1;display:flex;align-items:center;gap:14px;color:var(--text-soft);font-size:.78rem;margin:28px 0 20px;}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border);}

.auth-footer{position:relative;z-index:1;text-align:center;font-size:.87rem;color:var(--text-muted);}
.auth-footer a{color:var(--primary);font-weight:700;}
.auth-footer a:hover{text-decoration:underline;}

.page-footer{position:relative;z-index:1;text-align:center;color:rgba(255,255,255,.68);font-size:.8rem;padding:0 20px 26px;}

@media (max-width:520px){
  .auth-card{padding:38px 26px 32px;max-width:100%;}
  .back-link{margin:20px 18px 0;font-size:.8rem;padding:9px 16px;}
  .auth-head h1{font-size:1.5rem;}
}
