/* ============================================================
   SAR Japanese Language Center — Shared Design System
   Blue / cherry-blossom brand, matches the reference login art
   ============================================================ */
:root{
  --navy:#0a2a6b;
  --navy-deep:#081f52;
  --blue:#1261d5;
  --blue-light:#eaf5ff;
  --gold:#f0a900;
  --sakura:#ee8dab;
  --ink:#102e68;
  --muted:#6f7f9c;
  --line:#dce6f2;
  --card:#ffffff;
  --danger:#c62828;
  --success:#1f8a4c;
  --radius-lg:26px;
  --radius-md:16px;
  --radius-sm:10px;
  --shadow-card:0 24px 60px rgba(10,42,107,0.16);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:'Poppins','Noto Sans Bengali',sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at 15% 0%, #dcecff 0%, transparent 45%),
    radial-gradient(circle at 100% 10%, #fbeaf1 0%, transparent 40%),
    linear-gradient(180deg,#eaf5ff 0%,#ffffff 55%,#eef6ff 100%);
  min-height:100vh;
  overflow-x:hidden;
}

a{color:inherit}

/* ---------- floating sakura petals ---------- */
.petal{position:fixed;color:var(--sakura);pointer-events:none;z-index:3;animation:fall 10s linear infinite;font-size:20px;opacity:.85}
.p1{left:6%;top:-30px}
.p2{left:85%;top:-30px;animation-delay:-3s}
.p3{left:45%;top:-30px;animation-delay:-6.5s}
.p4{left:70%;top:-30px;animation-delay:-2s;font-size:15px}
@keyframes fall{to{transform:translate(90px,110vh) rotate(480deg);opacity:0}}

/* ---------- shell / header ---------- */
.wrap{width:min(1080px,94%);margin:auto;padding:34px 0 50px}
.brand-header{text-align:center;margin-bottom:22px}
.brand-header .logo{width:120px;height:120px;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(10,42,107,0.18));animation:pop .6s ease}
.brand-header .center-name{font-size:13px;font-weight:700;letter-spacing:2px;color:var(--muted);margin-top:8px}
.brand-header h1{font-size:clamp(22px,3.6vw,34px);line-height:1.15;margin:6px 0 0;color:var(--navy)}
.brand-header h1 span{display:block;color:var(--gold)}
.brand-header .tag{font-size:13px;color:var(--muted);margin:8px 0 0}

@keyframes pop{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}
@keyframes riseIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

/* ---------- generic card ---------- */
.panel{
  position:relative;
  z-index:5;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card);
  animation:riseIn .6s ease;
}

/* ---------- auth layout (login / signup) — single centered card ---------- */
.auth-card{
  max-width:460px;
  margin:0 auto;
  padding:44px 8%;
  position:relative;
  overflow:hidden;
}
.auth-card::before{
  content:"";position:absolute;top:-60px;right:-60px;width:180px;height:180px;
  background:radial-gradient(circle,rgba(240,169,0,0.16),transparent 70%);
  border-radius:50%;pointer-events:none;
}
.auth-card::after{
  content:"";position:absolute;bottom:-70px;left:-70px;width:200px;height:200px;
  background:radial-gradient(circle,rgba(18,97,213,0.10),transparent 70%);
  border-radius:50%;pointer-events:none;
}
.auth-corner{position:absolute;font-size:22px;color:var(--sakura);opacity:.55;pointer-events:none}
.auth-corner.tl{top:18px;left:20px}
.auth-corner.tr{top:18px;right:24px;font-size:15px}

.auth-form{position:relative;z-index:2;display:flex;flex-direction:column}
.auth-icon{
  width:64px;height:64px;margin:0 auto 16px;border-radius:50%;
  display:grid;place-items:center;font-size:26px;color:#fff;
  background:linear-gradient(135deg,var(--gold),#ffcf55);
  box-shadow:0 12px 26px rgba(240,169,0,0.35);
}
.auth-form h2{text-align:center;margin:0;font-size:26px;color:var(--navy)}
.auth-form>p.sub{text-align:center;color:var(--muted);font-size:13px;line-height:1.6;margin:6px auto 26px}

.field{
  border:1px solid var(--line);
  border-radius:14px;
  display:flex;align-items:center;gap:10px;
  padding:0 14px;height:56px;margin-bottom:14px;
  box-shadow:0 5px 16px rgba(20,57,110,0.05);
  background:#fff;
}
.field:focus-within{border-color:var(--blue);box-shadow:0 0 0 4px rgba(18,97,213,0.12)}
.field .ico{color:var(--blue);font-size:17px;width:18px;text-align:center;flex:none}
.field input,.field select{border:0;outline:0;flex:1;font:inherit;font-size:14px;background:transparent;color:var(--ink)}
.field button.toggle{border:0;background:none;color:var(--muted);cursor:pointer;font-size:16px}

.row-between{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--muted);margin:2px 0 20px}
.row-between label{display:flex;align-items:center;gap:7px;cursor:pointer}
.row-between a{color:var(--blue);font-weight:600;text-decoration:none}
.row-between a:hover{text-decoration:underline}

.btn-main{
  height:58px;width:100%;border:0;border-radius:14px;cursor:pointer;
  background:linear-gradient(100deg,var(--navy-deep),var(--blue));
  color:#fff;font-size:17px;font-weight:700;letter-spacing:.5px;
  box-shadow:0 14px 28px rgba(10,42,107,0.28);
  display:flex;align-items:center;justify-content:center;gap:10px;
  transition:transform .15s ease, box-shadow .15s ease;
  font-family:inherit;
}
.btn-main:hover{transform:translateY(-2px)}
.btn-main:disabled{opacity:.65;cursor:progress;transform:none}

.switch-line{text-align:center;font-size:13px;color:var(--muted);margin-top:20px}
.switch-line a{color:var(--blue);font-weight:700;text-decoration:none}
.switch-line a:hover{text-decoration:underline}

.form-msg{min-height:20px;text-align:center;font-size:12.5px;margin-top:12px;font-weight:600}
.form-msg.ok{color:var(--success)}
.form-msg.err{color:var(--danger)}

/* ---------- whatsapp pill ---------- */
.wa{
  position:relative;z-index:5;
  width:min(620px,92%);margin:26px auto 4px;padding:16px 22px;
  background:linear-gradient(135deg,#ffffff,#f3fff7);
  border:1px solid #d9f2e3;border-radius:22px;
  box-shadow:0 16px 40px rgba(15,150,80,0.14), 0 2px 0 rgba(255,255,255,0.6) inset;
  display:flex;align-items:center;gap:15px;text-decoration:none;color:inherit;
  transition:transform .15s ease, box-shadow .15s ease;
}
.wa:hover{transform:translateY(-2px);box-shadow:0 20px 46px rgba(15,150,80,0.2)}
.wa .wa-icon-wrap{position:relative;flex:none;width:52px;height:52px;display:grid;place-items:center}
.wa .wa-icon-wrap::before{
  content:"";position:absolute;inset:0;border-radius:50%;
  background:#25D366;opacity:.35;animation:waPulse 2.2s ease-out infinite;
}
.wa i{
  position:relative;width:52px;height:52px;border-radius:50%;
  background:linear-gradient(145deg,#2be374,#1aa855);color:#fff;
  display:grid;place-items:center;font-style:normal;font-size:23px;flex:none;
  box-shadow:0 8px 18px rgba(20,150,80,0.35);
}
@keyframes waPulse{0%{transform:scale(1);opacity:.4}70%{transform:scale(1.55);opacity:0}100%{opacity:0}}
.wa span{display:flex;flex-direction:column}
.wa span b{font-size:14px;color:#1c5c37;letter-spacing:.2px}
.wa small{font-size:11.5px;color:var(--muted)}
.wa>strong{margin-left:auto;color:#0f9450;font-size:21px;letter-spacing:.4px;font-weight:800}

footer.site-footer{text-align:center;color:var(--muted);font-size:11px;margin-top:22px}

/* ---------- buttons (general) ---------- */
.btn-secondary{
  height:52px;width:100%;border-radius:14px;background:var(--blue-light);
  color:var(--navy);border:1px solid var(--line);font-weight:700;font-size:14.5px;
  cursor:pointer;font-family:inherit;
}

/* ---------- responsive ---------- */
@media(max-width:780px){
  .auth-card{padding:36px 8%}
  .wa{flex-wrap:wrap}
  .wa>strong{width:100%;margin-left:67px;margin-top:-6px;font-size:17px}
  /* keep sakura petals from drifting across the card and covering text */
  .p3,.p4{display:none}
  .p1{left:2%}
  .p2{left:90%}
}

/* ---------- utility ---------- */
.hidden{display:none !important}
.center-text{text-align:center}
.loading-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;animation:blink 1s infinite ease-in-out}
@keyframes blink{0%,80%,100%{opacity:.2}40%{opacity:1}}
