
.dc-login{
  min-height:100%;
  position:relative;
  font-family:var(--font);
  color:var(--ink);
  line-height:1.7;
  overflow-x:hidden;
  background:transparent;
}
.dc-login a:hover{text-decoration:none}
.dc-login .lang-sw button{
  border:0;background:transparent;padding:6px 15px;border-radius:99px;
  font-size:.8rem;font-weight:800;cursor:pointer;color:var(--muted);
  transition:.25s;line-height:1.4;user-select:none;font-family:var(--font)
}
.dc-login .lang-sw button.on{background:var(--g);color:#fff;box-shadow:0 6px 14px -4px rgba(34,197,94,.55)}
.dc-login .lang-sw button:not(.on):hover{color:var(--g)}
.dc-login .inp input.filled~.ic{color:var(--r)}
.dc-login-shell{
  min-height:100%;
  background:#fdfffe;
}

.dc-login{
  --g:#16a34a;--g2:#22c55e;--g3:#4ade80;--g-deep:#14532d;--mint:#dcfce7;
  --r:#e11d48;--r2:#ef4444;--r3:#fb7185;--rose:#ffe4e6;
  --k:#0f172a;--k2:#1e293b;
  --ink:#13221a;--muted:#5f6f66;--muted2:#93a29a;
  --bg:#ffffff;--soft:#f6fbf8;--line:#e6ede8;
  --font:'Hind Siliguri','Noto Sans Bengali','SolaimanLipi',system-ui,sans-serif;
}
.dc-login, .dc-login *{box-sizing:border-box}
.dc-login{scroll-behavior:smooth}
.dc-login{font-family:var(--font);background:var(--bg);color:var(--ink);line-height:1.7;min-height:100vh;overflow-x:hidden;position:relative}
.dc-login ::selection{background:var(--g2);color:#fff}
.dc-login a{text-decoration:none;color:inherit}
.dc-login button,
.dc-login input{font-family:var(--font)}
/* ══ BACKGROUND FX ══ */
.dc-login .bg{position:fixed;inset:0;z-index:-3;background:
  radial-gradient(680px 460px at 92% -6%,rgba(34,197,94,.16),transparent 60%),
  radial-gradient(560px 420px at -8% 96%,rgba(225,29,72,.10),transparent 60%),
  radial-gradient(480px 380px at 40% 110%,rgba(15,23,42,.06),transparent 60%),#fdfffe}
.dc-login .bg::before{content:"";position:absolute;inset:0;opacity:.55;
  background-image:radial-gradient(rgba(16,90,48,.12) 1.2px,transparent 1.2px);background-size:28px 28px;
  mask-image:linear-gradient(180deg,#000 30%,transparent 90%);-webkit-mask-image:linear-gradient(180deg,#000 30%,transparent 90%)}
/* moving gradient blobs */
.dc-login .blob{position:fixed;border-radius:50%;filter:blur(70px);opacity:.55;z-index:-2;animation:dcl-blobMove 14s ease-in-out infinite}
.dc-login .b1{width:320px;height:320px;background:rgba(34,197,94,.4);top:-100px;right:-80px}
.dc-login .b2{width:260px;height:260px;background:rgba(225,29,72,.25);bottom:-90px;left:-70px;animation-delay:3s;animation-duration:17s}
.dc-login .b3{width:170px;height:170px;background:rgba(15,23,42,.18);top:50%;right:8%;animation-delay:6s}
.dc-login .b4{width:190px;height:190px;background:rgba(74,222,128,.28);bottom:18%;left:16%;animation-delay:1.5s;animation-duration:19s}
@keyframes dcl-blobMove{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(26px,-32px) scale(1.12)}66%{transform:translate(-20px,22px) scale(.94)}}
/* rising particles */
.dc-login .pt{position:fixed;bottom:-14px;border-radius:50%;z-index:-1;opacity:0;animation:dcl-ptRise linear infinite;pointer-events:none}
.dc-login .pt.g{background:var(--g2)}
.dc-login .pt.r{background:var(--r3)}
.dc-login .pt.k{background:#334155}
@keyframes dcl-ptRise{0%{opacity:0;transform:translateY(0) scale(.6)}12%{opacity:.75}85%{opacity:.5}100%{opacity:0;transform:translateY(-108vh) scale(1.15)}}
.dc-login .pt:nth-child(1){left:6%;width:7px;height:7px;animation-duration:13s;background:var(--g2)}
.dc-login .pt:nth-child(2){left:16%;width:5px;height:5px;animation-duration:17s;animation-delay:2s;background:var(--r3)}
.dc-login .pt:nth-child(3){left:27%;width:8px;height:8px;animation-duration:15s;animation-delay:5s;background:var(--g3)}
.dc-login .pt:nth-child(4){left:38%;width:4px;height:4px;animation-duration:19s;animation-delay:1s;background:#334155}
.dc-login .pt:nth-child(5){left:52%;width:6px;height:6px;animation-duration:14s;animation-delay:7s;background:var(--g2)}
.dc-login .pt:nth-child(6){left:63%;width:9px;height:9px;animation-duration:20s;animation-delay:3s;background:rgba(34,197,94,.5)}
.dc-login .pt:nth-child(7){left:74%;width:5px;height:5px;animation-duration:16s;animation-delay:8s;background:var(--r3)}
.dc-login .pt:nth-child(8){left:84%;width:7px;height:7px;animation-duration:18s;animation-delay:4s;background:var(--g2)}
.dc-login .pt:nth-child(9){left:93%;width:5px;height:5px;animation-duration:15s;animation-delay:9s;background:#334155}
.dc-login .pt:nth-child(10){left:46%;width:4px;height:4px;animation-duration:22s;animation-delay:11s;background:var(--g3)}
/* deco shapes */
.dc-login .shape{position:fixed;z-index:-1;opacity:.45;pointer-events:none;animation:dcl-shapeFloat 7s ease-in-out infinite}
.dc-login .sq1{width:22px;height:22px;border:3px solid var(--g3);border-radius:6px;top:20%;left:6%;transform:rotate(18deg)}
.dc-login .sq2{width:14px;height:14px;background:var(--r3);border-radius:4px;top:68%;right:9%;animation-delay:1.4s}
.dc-login .sq3{width:17px;height:17px;border:3px solid #334155;border-radius:5px;top:12%;right:16%;transform:rotate(-12deg);animation-delay:.7s;opacity:.3}
.dc-login .plus{top:80%;left:8%;animation-delay:2s}
.dc-login .plus svg{width:26px;height:26px}
.dc-login .ring-d{width:26px;height:26px;border:3.5px dashed var(--g2);border-radius:50%;top:36%;right:4%;animation:dcl-spin 14s linear infinite;animation-delay:0s}
@keyframes dcl-shapeFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(8deg)}}
@keyframes dcl-spin{to{transform:rotate(360deg)}}
.dc-login .dots4{bottom:14%;right:5%;animation-delay:1s}
.dc-login .dots4 svg{width:46px;height:46px}
/* ══ TOP ══ */
.dc-login .top{display:flex;align-items:center;justify-content:space-between;padding:20px 26px;position:relative;z-index:5}
.dc-login .mini-brand{display:flex;align-items:center;gap:10px}
.dc-login .cap-wrap{position:relative;width:44px;height:44px}
.dc-login .cap-wrap::before{content:"";position:absolute;inset:-6px;border:2px dashed rgba(34,197,94,.55);border-radius:16px;animation:dcl-spin 12s linear infinite}
.dc-login .cap{width:44px;height:44px;border-radius:12px;background:#fff;overflow:hidden;
  display:grid;place-items:center;box-shadow:0 8px 20px -6px rgba(34,197,94,.45);transition:.35s;position:relative}
.dc-login .mini-brand:hover .cap{transform:rotate(-6deg) scale(1.06)}
.dc-login .cap img{width:100%;height:100%;object-fit:contain;display:block}
.dc-login .mini-brand .t{line-height:1.1}
.dc-login .mini-brand .t small{display:block;font-size:.66rem;font-weight:700;color:var(--muted2);letter-spacing:.6px}
.dc-login .mini-brand .t b{font-size:1.15rem;color:var(--k)}
.dc-login .mini-brand .t b i{font-style:normal;color:var(--g)}
.dc-login .mini-brand .t b u{font-weight:700;color:var(--r);text-decoration:none}
.dc-login .top-right{display:flex;align-items:center;gap:10px}
.dc-login .lang-sw{display:inline-flex;align-items:center;background:#fff;border:1.5px solid var(--line);border-radius:99px;padding:3px;gap:2px;box-shadow:0 8px 20px -12px rgba(15,40,25,.35)}
.dc-login .lang-sw span{padding:6px 15px;border-radius:99px;font-size:.8rem;font-weight:800;cursor:pointer;color:var(--muted);transition:.25s;line-height:1.4;user-select:none}
.dc-login .lang-sw span.on{background:var(--g);color:#fff;box-shadow:0 6px 14px -4px rgba(34,197,94,.55)}
.dc-login .lang-sw span:not(.on):hover{color:var(--g)}
.dc-login .hotline{display:inline-flex;align-items:center;gap:8px;padding:9px 17px;border-radius:99px;background:var(--k);color:#fff;
  font-weight:700;font-size:.82rem;transition:.28s}
.dc-login .hotline:hover{background:var(--r);transform:translateY(-2px)}
.dc-login .back{position:relative;z-index:5;display:inline-flex;align-items:center;gap:8px;margin:2px 26px 0;padding:9px 18px;border-radius:99px;
  background:#fff;border:1.5px solid var(--line);font-weight:700;font-size:.88rem;color:var(--ink);transition:.28s;box-shadow:0 8px 20px -12px rgba(15,40,25,.3)}
.dc-login .back svg{transition:.28s}
.dc-login .back:hover{border-color:var(--g);color:var(--g);transform:translateX(-4px)}
.dc-login .back:hover svg{transform:translateX(-3px)}
/* ══ CARD ══ */
.dc-login .wrap{display:grid;place-items:center;padding:24px 18px 56px;min-height:calc(100vh - 170px);perspective:1400px}
.dc-login .card{width:min(1020px,100%);display:grid;grid-template-columns:1.05fr .95fr;background:#fff;border:1px solid var(--line);
  border-radius:30px;box-shadow:0 46px 100px -34px rgba(15,40,25,.4);overflow:hidden;position:relative;
  animation:dcl-rise .85s cubic-bezier(.2,.8,.25,1) both;transform-style:preserve-3d;transition:transform .18s ease-out}
@keyframes dcl-rise{from{opacity:0;transform:translateY(56px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.dc-login .card::before{content:"";position:absolute;inset:0;border-radius:30px;pointer-events:none;z-index:5;opacity:0;transition:.4s;
  background:radial-gradient(560px circle at var(--mx,50%) var(--my,50%),rgba(34,197,94,.08),transparent 45%)}
.dc-login .card:hover::before{opacity:1}
/* ── left panel ── */
.dc-login .lc-left{position:relative;padding:46px 40px 38px;color:#eafaf0;overflow:hidden;display:flex;flex-direction:column;
  background:linear-gradient(160deg,#0b3620,#14532d 40%,#15803d 75%,#16a34a);background-size:170% 170%;animation:dcl-panelShift 10s ease infinite}
@keyframes dcl-panelShift{0%,100%{background-position:0% 0%}50%{background-position:100% 100%}}
.dc-login .lc-left::before{content:"";position:absolute;inset:0;opacity:.2;
  background-image:radial-gradient(rgba(255,255,255,.5) 1.2px,transparent 1.2px);background-size:22px 22px;
  mask-image:linear-gradient(200deg,#000,transparent 75%);-webkit-mask-image:linear-gradient(200deg,#000,transparent 75%)}
.dc-login .lc-left::after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;filter:blur(60px);
  background:rgba(74,222,128,.4);bottom:-90px;left:-80px;animation:dcl-blobMove 12s ease-in-out infinite}
.dc-login .lc-left>*{position:relative;z-index:1}
/* cap with pulse rings */
.dc-login .big-cap{position:relative;width:66px;height:66px;margin-bottom:24px;border-radius:20px;background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.3);display:grid;place-items:center;animation:dcl-capFloat 4s ease-in-out infinite}
.dc-login .big-cap svg{width:34px;height:34px}
.dc-login .big-cap .pulse{position:absolute;inset:0;border-radius:20px;border:2px solid rgba(134,239,172,.7);animation:dcl-pulseOut 2.4s ease-out infinite}
.dc-login .big-cap .pulse.p2{animation-delay:1.2s}
@keyframes dcl-pulseOut{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(1.7)}}
@keyframes dcl-capFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.dc-login .lc-left h2{font-size:1.8rem;font-weight:800;color:#fff;line-height:1.4;margin-bottom:8px}
.dc-login .lc-left h2 .hl{position:relative;display:inline-block}
.dc-login .lc-left h2 .hl::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:9px;border-radius:5px;z-index:-1;
  background:linear-gradient(90deg,rgba(225,29,72,.55),rgba(225,29,72,.15))}
.dc-login .lc-left .sub{color:#b7e4c7;font-size:.95rem;margin-bottom:24px}
.dc-login .lc-list{display:grid;gap:11px;margin-bottom:26px}
.dc-login .lc-list li{display:flex;gap:11px;align-items:center;font-size:.92rem;font-weight:600;color:#d3f1df;
  animation:dcl-slideIn .6s cubic-bezier(.2,.8,.25,1) both}
.dc-login .lc-list li:nth-child(1){animation-delay:.55s}
.dc-login .lc-list li:nth-child(2){animation-delay:.7s}
.dc-login .lc-list li:nth-child(3){animation-delay:.85s}
.dc-login .lc-list li:nth-child(4){animation-delay:1s}
@keyframes dcl-slideIn{from{opacity:0;transform:translateX(-26px)}to{opacity:1;transform:none}}
.dc-login .lc-list .ck{flex:none;width:24px;height:24px;border-radius:50%;background:rgba(74,222,128,.22);border:1px solid rgba(74,222,128,.5);
  display:grid;place-items:center;color:#86efac;animation:dcl-ckPop .5s cubic-bezier(.3,1.6,.5,1) both}
.dc-login .lc-list li:nth-child(1) .ck{animation-delay:.75s}
.dc-login .lc-list li:nth-child(2) .ck{animation-delay:.9s}
.dc-login .lc-list li:nth-child(3) .ck{animation-delay:1.05s}
.dc-login .lc-list li:nth-child(4) .ck{animation-delay:1.2s}
@keyframes dcl-ckPop{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}
.dc-login .lc-list .ck svg{width:12px;height:12px}
/* rfid mini scene */
.dc-login .rfid-scene{position:relative;height:118px;margin:2px 0 22px}
.dc-login .rf-reader{position:absolute;right:12%;bottom:0;width:74px;height:88px;border-radius:14px;
  background:linear-gradient(160deg,#1e293b,#0f172a);border:1px solid rgba(255,255,255,.2);
  display:grid;place-items:center;box-shadow:0 18px 40px -14px rgba(0,0,0,.55);z-index:2}
.dc-login .rf-screen{width:54px;height:40px;border-radius:9px;background:#06210f;display:grid;place-items:center;position:relative}
.dc-login .rf-screen .ok{color:#4ade80;font-size:1.15rem;font-weight:800;animation:dcl-blink 1.8s infinite}
.dc-login .rf-screen .pc{position:absolute;bottom:3px;left:0;right:0;text-align:center;font-size:.5rem;color:#86efac;font-weight:700}
@keyframes dcl-blink{50%{opacity:.35}}
.dc-login .rf-card{position:absolute;left:8%;bottom:16px;width:96px;height:60px;border-radius:11px;z-index:3;
  background:linear-gradient(135deg,#4ade80,#16a34a);box-shadow:0 16px 34px -12px rgba(34,197,94,.75);
  display:grid;place-items:center;color:#052e16;font-weight:800;letter-spacing:.8px;font-size:.68rem;
  animation:dcl-tapCard 3.4s ease-in-out infinite}
.dc-login .rf-card::before{content:"";position:absolute;top:7px;left:50%;transform:translateX(-50%);width:20px;height:5px;border-radius:99px;background:rgba(5,46,22,.4)}
@keyframes dcl-tapCard{0%,14%{transform:translateX(0) rotate(-6deg)}48%,62%{transform:translateX(150px) rotate(0) scale(.96)}92%,100%{transform:translateX(0) rotate(-6deg)}}
.dc-login .rf-wave{position:absolute;left:calc(8% + 94px);bottom:36px;width:18px;height:18px;border:2.5px solid rgba(134,239,172,.7);
  border-radius:50%;opacity:0;animation:dcl-waveOut 3.4s ease-out infinite}
.dc-login .rf-wave.w2{animation-delay:.45s}
@keyframes dcl-waveOut{0%,22%{opacity:0;transform:scale(.4)}40%{opacity:.95}72%,100%{opacity:0;transform:scale(2.5)}}
/* mini stats */
.dc-login .mini-stat{margin-top:auto;display:flex;gap:12px;flex-wrap:wrap}
.dc-login .mst{flex:1;min-width:104px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);border-radius:15px;
  padding:13px 14px;text-align:center;backdrop-filter:blur(6px);transition:.3s}
.dc-login .mst:hover{background:rgba(255,255,255,.17);transform:translateY(-4px)}
.dc-login .mst b{display:block;font-size:1.28rem;font-weight:800;color:#fff;font-variant-numeric:tabular-nums}
.dc-login .mst small{font-size:.72rem;color:#b7e4c7;font-weight:600}
/* ── right / form ── */
.dc-login .lc-right{padding:48px 46px;display:flex;flex-direction:column;justify-content:center;position:relative}
.dc-login .lc-right h1{font-size:1.9rem;font-weight:800;color:var(--k);margin-bottom:22px;animation:dcl-fadeUp .6s .25s both}
.dc-login .lc-right h1 em{font-style:normal;background:linear-gradient(90deg,var(--g),var(--g2) 50%,var(--r));background-size:200%;
  -webkit-background-clip:text;background-clip:text;color:transparent;animation:dcl-gslide 4s linear infinite}
@keyframes dcl-gslide{to{background-position:200% 0}}
.dc-login .lc-right .desc{color:var(--muted);font-size:.95rem;margin-bottom:26px;animation:dcl-fadeUp .6s .35s both}
.dc-login .srv-off{display:flex;align-items:center;gap:7px;margin:-10px 0 16px;color:#be123c;font-size:.82rem;font-weight:700}
.dc-login .srv-off .dot{flex:none;width:8px;height:8px;border-radius:50%;background:#e11d48}
@keyframes dcl-fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.dc-login .err-msg{display:none;background:var(--rose);border:1px solid #f8c9d4;color:#9f1239;font-size:.85rem;font-weight:700;
  border-radius:12px;padding:10px 15px;margin-bottom:16px;animation:dcl-fadeUp .3s ease;align-items:center;gap:8px}
.dc-login .err-msg.show{display:flex}
.dc-login .field{margin-bottom:17px;animation:dcl-fadeUp .6s both}
.dc-login .field.f1{animation-delay:.45s}
.dc-login .field.f2{animation-delay:.55s}
.dc-login .opts{animation:dcl-fadeUp .6s .65s both}
.dc-login .login-btn{animation:dcl-fadeUp .6s .75s both}
.dc-login .divider{animation:dcl-fadeUp .6s .85s both}
.dc-login .register-hint{animation:dcl-fadeUp .6s .95s both}
.dc-login .field label{display:block;font-size:.88rem;font-weight:700;color:var(--k);margin-bottom:7px}
.dc-login .inp{position:relative}
.dc-login .inp .ic{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--muted2);display:grid;place-items:center;transition:.25s}
.dc-login .inp input{width:100%;padding:13.5px 48px;border:1.5px solid var(--line);border-radius:14px;font-size:1rem;color:var(--k);
  background:var(--soft);outline:none;transition:.25s}
.dc-login .inp input::placeholder{color:var(--muted2)}
.dc-login .inp input:focus{border-color:var(--g2);background:#fff;box-shadow:0 0 0 4px rgba(34,197,94,.14)}
.dc-login .inp input:focus~.ic{color:var(--g)}
.dc-login .inp input.filled~.ic,
.dc-login .inp input.modified~.ic{color:var(--r)}
.dc-login .inp input.valid,
.dc-login .inp input.invalid{box-shadow:none}
.dc-login .eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:10px;border:none;
  background:transparent;color:var(--muted2);cursor:pointer;display:grid;place-items:center;transition:.25s}
.dc-login .eye:hover{color:var(--g);background:var(--mint)}
.dc-login .opts{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:22px;flex-wrap:nowrap}
/* row + nowrap: the global "label{flex-direction:column}" in app.css stacked the box above the text */
.dc-login .remember{display:inline-flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:9px;margin:0;min-width:0;
  font-size:.88rem;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;line-height:1.3}
.dc-login .remember .box{flex:none}
.dc-login .remember input{display:none}
.dc-login .remember .box{width:20px;height:20px;border-radius:6px;border:1.8px solid var(--line);display:grid;place-items:center;transition:.22s;background:#fff}
.dc-login .remember .box svg{width:11px;height:11px;color:#fff;opacity:0;transform:scale(.5);transition:.22s}
.dc-login .remember input:checked+.box{background:var(--g);border-color:var(--g);animation:dcl-ckPop .35s cubic-bezier(.3,1.6,.5,1)}
.dc-login .remember input:checked+.box svg{opacity:1;transform:scale(1)}
.dc-login .forgot{font-size:.88rem;font-weight:700;color:var(--r);transition:.25s;white-space:nowrap;line-height:1.3}
.dc-login .forgot:hover{color:#9f1239;text-decoration:underline}
.dc-login .login-btn{position:relative;width:100%;padding:15px;border:none;border-radius:15px;cursor:pointer;
  background:linear-gradient(135deg,#15803d,var(--g2));background-size:150% 150%;color:#fff;font-size:1.05rem;font-weight:800;letter-spacing:.3px;
  box-shadow:0 14px 32px -10px rgba(34,197,94,.6);transition:.3s;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:10px}
.dc-login .login-btn::before{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;transform:skewX(-25deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);transition:.6s}
.dc-login .login-btn:hover::before{left:130%}
.dc-login .login-btn:hover{transform:translateY(-2px);box-shadow:0 18px 40px -10px rgba(34,197,94,.7);background-position:100% 50%}
.dc-login .login-btn:active{transform:translateY(1px) scale(.99)}
.dc-login .login-btn .arrow{transition:.3s}
.dc-login .login-btn:hover .arrow{transform:translateX(5px)}
.dc-login .login-btn.loading{pointer-events:none;filter:saturate(.85)}
.dc-login .spinner{width:18px;height:18px;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;
  animation:dcl-spin .7s linear infinite;display:none}
.dc-login .login-btn.loading .spinner{display:block}
.dc-login .login-btn.loading .arrow{display:none}
.dc-login .divider{display:flex;align-items:center;gap:14px;color:var(--muted2);font-size:.8rem;font-weight:700;margin:22px 0 16px}
.dc-login .divider::before,
.dc-login .divider::after{content:"";flex:1;height:1px;background:var(--line)}
.dc-login .register-hint{text-align:center;font-size:.9rem;color:var(--muted)}
.dc-login .register-hint a{color:var(--g);font-weight:800;transition:.25s}
.dc-login .register-hint a:hover{color:var(--r)}
.dc-login .shake{animation:dcl-shake .45s ease}
@keyframes dcl-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-9px)}40%{transform:translateX(8px)}60%{transform:translateX(-6px)}80%{transform:translateX(4px)}}
.dc-login .foot-note{text-align:center;color:var(--muted2);font-size:.8rem;margin-top:26px;position:relative;z-index:1;animation:dcl-fadeUp .6s 1.1s both;white-space:nowrap}
.dc-login .foot-note b{color:var(--g);font-weight:700}
.dc-login .foot-note .rr{color:var(--r);display:inline-flex;vertical-align:-1px}
/* toast */
.dc-login .toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%) translateY(90px);z-index:99;
  display:flex;align-items:center;gap:11px;background:var(--k);color:#fff;font-weight:700;font-size:.92rem;
  padding:14px 24px;border-radius:99px;box-shadow:0 20px 50px -14px rgba(15,23,42,.7);opacity:0;transition:.45s cubic-bezier(.2,.8,.25,1);max-width:92vw}
.dc-login .toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.dc-login .toast .ti{width:26px;height:26px;border-radius:50%;background:var(--g2);display:grid;place-items:center;flex:none}
.dc-login .toast .ti svg{width:13px;height:13px}
.dc-login .toast.warn .ti{background:var(--r2)}
/* ══ MOBILE ══ */
@media (max-width:900px){.dc-login .card{grid-template-columns:1fr;width:min(560px,100%)}
.dc-login .lc-left{display:none}
.dc-login .lc-right{padding:38px 28px}
.dc-login .hotline{display:none}}
@media (max-width:480px){.dc-login .top{padding:16px 18px}
.dc-login .back{margin:0 18px}
.dc-login .wrap{padding:18px 12px 44px}
.dc-login .card{border-radius:22px}
.dc-login .lc-right{padding:30px 20px}
.dc-login .lc-right h1{font-size:1.55rem}
.dc-login .inp input{font-size:16px}
.dc-login .opts{gap:8px}
.dc-login .remember{gap:7px}
.dc-login .remember,.dc-login .forgot{font-size:clamp(.7rem,3.6vw,.88rem)}
/* footer stays on one line: smaller text, icon and separators */
.dc-login .foot-note{font-size:clamp(.5rem,2.95vw,.8rem);letter-spacing:-.1px;margin-left:-6px;margin-right:-6px}
.dc-login .foot-note > svg{width:1.05em;height:1.05em;vertical-align:-.15em}
.dc-login .foot-note .rr svg{width:.9em;height:.9em}}
@media (prefers-reduced-motion:reduce){.dc-login, .dc-login *,
.dc-login *::before,
.dc-login *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}